.memory-intro{isolation:isolate}.memory-collage{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.memory-collage:before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(90deg,#030304 8%,#030304d9 42%,#03030442 72%,#030304 100%),linear-gradient(0deg,#030304 0,transparent 25% 75%,#030304 100%)}.memory-collage img{position:absolute;width:clamp(180px,24vw,390px);height:70%;object-fit:cover;object-position:top;opacity:.28;filter:grayscale(1) contrast(1.35) brightness(.58);mix-blend-mode:screen;animation:collage-drift 11s ease-in-out infinite alternate}.memory-collage img:nth-child(1){left:46%;top:11%;transform:rotate(-5deg)}.memory-collage img:nth-child(2){left:65%;top:-7%;transform:rotate(6deg);animation-delay:-7s}.memory-collage img:nth-child(3){right:-5%;top:19%;transform:rotate(-3deg);animation-delay:-4s}.memory-collage img:nth-child(4){left:57%;top:43%;transform:rotate(4deg);animation-delay:-9s}.memory-collage img:nth-child(5){right:7%;top:52%;transform:rotate(-7deg);animation-delay:-2s}.memory-intro:before{content:"PIRATED MEMORY / PIRATED MEMORY / PIRATED MEMORY /";position:absolute;z-index:1;right:-4%;top:46%;color:#b51f3d22;font:900 clamp(3rem,8vw,8rem)/.8 monospace;letter-spacing:-.08em;transform:rotate(-8deg);white-space:nowrap;animation:signal-slide 9s linear infinite}.memory-enter{position:relative;overflow:hidden}.memory-enter:after{content:"";position:absolute;top:-20%;bottom:-20%;width:35px;background:#fff9;filter:blur(8px);transform:skewX(-20deg);animation:button-scan 2.6s ease-in-out infinite}
.memory-depth{pointer-events:none}.memory-shard{pointer-events:auto;display:flex;flex-direction:column;z-index:2;outline:0}.memory-shard span{padding:11px 13px 2px}.memory-shard b{display:block;margin-top:auto;padding:0 13px 13px;text-align:left;color:#ff5875;font:900 9px monospace;letter-spacing:.12em}.memory-shard:hover,.memory-shard:focus-visible{z-index:20;border-color:#ff4968;outline:2px solid #ff4968;outline-offset:4px}.memory-shard.viewed b{color:#99d5a6}.memory-shard:after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,#fff2 48%,transparent 66%);transform:translateX(-110%);transition:transform .65s}.memory-shard:hover:after,.memory-shard:focus-visible:after{transform:translateX(110%)}
.memory-worm{left:-38%;top:54%;width:clamp(260px,35vw,520px);height:94px;border-radius:0;background:none;box-shadow:none;display:flex;align-items:center;gap:0;filter:drop-shadow(0 0 16px #d21c42);animation:worm-through 5.4s cubic-bezier(.35,.02,.64,.99) infinite}.memory-worm span{display:block;flex:1;height:clamp(26px,4vw,48px);margin-left:-3px;border:1px solid #ff4769;border-radius:48% 52% 46% 54%;background:radial-gradient(circle at 35% 25%,#ff718b 0 6%,#8e0f2b 28%,#25030b 72%);box-shadow:inset -5px -7px 8px #080002aa;animation:worm-segment .75s ease-in-out infinite alternate}.memory-worm span:nth-child(2n){animation-delay:-.22s}.memory-worm span:nth-child(3n){animation-delay:-.45s}.memory-worm span:first-child{flex:1.35;height:58px;background:radial-gradient(circle at 68% 31%,#fff 0 3%,#140005 4% 7%,transparent 8%),radial-gradient(circle at 37% 24%,#ff9ab0,#9c0e2d 30%,#24020a 78%)}.memory-worm span:last-child{flex:.42;height:20px}.memory-viewer.recovered .memory-worm{background:none;box-shadow:none;filter:drop-shadow(0 0 20px #bfffd0)}.memory-viewer.recovered .memory-worm span{border-color:#c9ffd4;background:radial-gradient(circle at 35% 25%,#fff 0 6%,#79c48b 28%,#122d1a 72%)}.memory-viewer.recovered .memory-worm span:first-child{background:radial-gradient(circle at 68% 31%,#102416 0 3%,#effff2 4% 7%,transparent 8%),radial-gradient(circle at 37% 24%,#fff,#72b983 32%,#102718 78%)}
.open-file-cue{display:block;margin-top:17px;color:#e54863;font:900 9px monospace;letter-spacing:.11em}.person:focus-visible,.club-card:focus-visible{outline:3px solid #e54863;outline-offset:4px}.twin-card{position:relative}.twin-card:after{position:absolute;z-index:3;right:10px;top:10px;padding:6px 8px;border:1px solid #fff5;background:#050405df;color:#fff;font:900 9px monospace;letter-spacing:.13em}.echo-card:after{content:"FILE 023-E · ECHO"}.halo-card:after{content:"FILE 023-H · HALO"}.echo-card img{object-position:70% 18%}.halo-card img{object-position:92% 5%;filter:contrast(1.14) brightness(.88)}.club-card{appearance:none;width:100%;color:#fff;text-align:left;cursor:pointer}.club-card:hover{border-color:#e54863;transform:translateY(-4px);box-shadow:0 20px 55px #000}.club-card>b{margin-top:18px;color:#e54863!important}
@keyframes collage-drift{to{translate:12px -26px;opacity:.42}}@keyframes signal-slide{to{translate:-12% 0}}@keyframes button-scan{0%,35%{left:-20%}70%,100%{left:120%}}@keyframes worm-segment{to{transform:translateY(-16px) rotate(8deg)}}
@media(max-width:760px){.memory-collage img{opacity:.18}.memory-shard b{font-size:8px}.memory-depth{transform:none}.memory-shard{width:40vw;max-width:165px}.memory-shard:nth-child(1){--x:25%!important;--y:25%!important}.memory-shard:nth-child(2){--x:74%!important;--y:25%!important}.memory-shard:nth-child(3){--x:25%!important;--y:68%!important}.memory-shard:nth-child(4){--x:74%!important;--y:68%!important}.memory-shard:nth-child(n+5){display:none}.memory-worm{height:62px}.twin-card img{object-position:top center}}

/* v83 — keep the memory readable; make the infection feel embedded, not pasted on. */
.memory-viewer{height:100dvh;max-height:100dvh;overflow:hidden;grid-template-columns:minmax(0,56%) minmax(380px,44%);isolation:isolate}
.memory-viewer article{min-width:0;height:100dvh;overflow-y:auto;justify-content:flex-start;padding:clamp(72px,8vh,104px) clamp(30px,4vw,72px) 54px;scrollbar-color:#8f1931 #12090c}
.memory-viewer article h3{font-size:clamp(3.4rem,5.4vw,6.4rem);overflow-wrap:anywhere}
.memory-visual{isolation:isolate;background:radial-gradient(circle at 50% 34%,#281118 0,#080608 58%,#020203 100%)}
.memory-visual:before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,transparent 76%,#030304 100%),linear-gradient(0deg,#030304 0,transparent 18% 86%,#030304 100%);pointer-events:none}
.memory-visual img{position:relative;z-index:0;width:100%;height:100%;object-fit:contain;object-position:center center;transform:none;filter:grayscale(.82) contrast(1.18) brightness(.58)}
.memory-viewer.recovered .memory-visual img{transform:none}
.memory-noise{z-index:1;opacity:.16}
.memory-worm{display:none!important}
.hijos-alteration{position:absolute;z-index:3;inset:0;pointer-events:none;overflow:hidden;transition:.6s}
.hijos-alteration span{position:absolute;left:18px;bottom:18px;padding:7px 9px;border:1px solid #d62c4b;background:#050405e8;color:#ff5975;font:900 9px monospace;letter-spacing:.14em;box-shadow:0 0 24px #b61634aa}
.hijos-alteration i{position:absolute;left:-10%;width:120%;height:clamp(14px,2.4vh,26px);background:#9e1630d9;mix-blend-mode:multiply;box-shadow:0 0 18px #cf2343;animation:alteration-slip 2.8s steps(2) infinite}
.hijos-alteration i:nth-child(2){top:28%;animation-delay:-.8s}.hijos-alteration i:nth-child(3){top:52%;animation-delay:-1.7s}.hijos-alteration i:nth-child(4){top:76%;animation-delay:-2.3s}
.memory-viewer.recovered .hijos-alteration{opacity:0;transform:translateX(12%)}
@keyframes alteration-slip{50%{transform:translateX(8%);opacity:.35}}
.memory-infection{position:absolute;z-index:3;left:0;right:0;bottom:4.5%;height:clamp(82px,13vh,132px);overflow:hidden;pointer-events:none;filter:drop-shadow(0 0 18px #ae1736a8)}
.memory-infection svg{position:absolute;left:-18%;top:0;width:138%;height:100%;animation:infection-crawl 7s ease-in-out infinite alternate}
.infection-shadow{fill:none;stroke:#000;stroke-width:54;opacity:.74;filter:blur(8px)}
.infection-body{fill:url(#infectionBody);filter:url(#infectionGlow);opacity:.92}
.infection-ridge{fill:none;stroke:#ff6d86;stroke-width:2;stroke-dasharray:5 16;opacity:.42;animation:infection-pulse 1.4s linear infinite}
.memory-infection span{position:absolute;right:18px;bottom:3px;padding:5px 8px;background:#050405d9;color:#e54863;font:900 8px monospace;letter-spacing:.13em}
.memory-viewer.recovered .memory-infection{filter:drop-shadow(0 0 18px #8ec99aa8)}
.memory-viewer.recovered .infection-body{fill:#254e31;opacity:.82}
.memory-viewer.recovered .infection-ridge{stroke:#dcffe4}
.memory-viewer.recovered .memory-infection span{color:#a9dab4}.memory-viewer.recovered .memory-infection span:after{content:" · CONTAINED"}
@keyframes infection-crawl{0%{transform:translateX(-12%) scaleY(.84)}45%{transform:translateX(1%) scaleY(1.05)}100%{transform:translateX(10%) scaleY(.91)}}
@keyframes infection-pulse{to{stroke-dashoffset:-42}}
@media(max-width:900px){.memory-viewer{grid-template-columns:52% 48%}.memory-viewer article{padding-left:28px;padding-right:28px}.memory-viewer article h3{font-size:clamp(3rem,6vw,5rem)}}
@media(max-width:760px){.memory-viewer{grid-template-columns:1fr;grid-template-rows:38dvh 62dvh}.memory-viewer article{height:62dvh;padding:34px 20px 42px}.memory-viewer article h3{font-size:3rem}.memory-infection{height:72px;bottom:2%}.memory-close{top:4px;right:10px}.memory-visual img{object-position:center 18%}}

/* v84 — the In-Between is purgatory: one waiting soul, one clear action. */
.memory-intro{min-height:920px;background:linear-gradient(90deg,#020203f2 0,#020203bd 48%,#02020338 78%),linear-gradient(0deg,#020203 0,transparent 30% 75%,#020203 100%),url('assets/in-between-mason.png') center/cover no-repeat}.memory-intro .memory-collage{display:none}.memory-intro:before{content:"THE IN-BETWEEN / LIGHT ABOVE / HIJOS BELOW";right:-2%;top:62%;color:#b51f3d2b}.memory-intro h2{max-width:900px}.memory-intro>p:not(.eyebrow){max-width:690px;color:#d1c9ca}.memory-intro em{color:#fff;font-style:normal}
.memory-rules{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.memory-rules span{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid #66575c;background:#080608cf;color:#d9d1d2;font:900 9px monospace;letter-spacing:.1em}.memory-rules b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#a81936;color:#fff}
.memory-stream{height:100dvh;min-height:720px;background:#020203 url('assets/in-between-mason.png') center/cover no-repeat}
.memory-stream:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0008 0,transparent 25%,transparent 58%,#4e0617b8 100%),radial-gradient(circle at 50% 48%,transparent 0 17%,#0007 68%);pointer-events:none}
.memory-depth{display:grid;place-items:end center;padding:90px 24px 76px;perspective:none;transform:none}
.forest-stage{position:relative;z-index:3;width:min(870px,calc(100vw - 48px));padding:28px 34px 24px;text-align:center;border:1px solid #f5efe94d;background:#050405d9;box-shadow:0 24px 80px #000,0 -2px 40px #ffffff1a;backdrop-filter:blur(13px)}
.forest-stage:before{content:"LIGHT ABOVE";position:absolute;left:18px;top:-28px;color:#eee;font:900 8px monospace;letter-spacing:.17em}.forest-stage:after{content:"HIJOS BELOW";position:absolute;right:18px;bottom:-27px;color:#ef3658;font:900 8px monospace;letter-spacing:.17em}
.forest-stage>p{margin:0;color:#d84a64;font:900 10px monospace;letter-spacing:.17em}.forest-stage h3{margin:10px auto 18px;max-width:780px;font-size:clamp(2.5rem,5vw,5.2rem);line-height:.84;letter-spacing:-.06em}.stage-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.stage-actions button{min-width:min(330px,100%);padding:17px 22px;border:1px solid #f1eae3;background:#eee8e1;color:#080708;font:900 11px monospace;letter-spacing:.1em;box-shadow:0 0 28px #ffffff1f}.stage-actions button:last-child{min-width:220px;background:#080608e8;color:#fff;border-color:#a81936}.stage-actions button:hover{background:#b11b39;color:#fff;border-color:#d93454;transform:translateY(-3px)}
.forest-stage ol{display:flex;justify-content:center;gap:10px;margin:20px 0 12px;padding:0;list-style:none}.forest-stage li{width:38px;height:5px;background:#4d4649}.forest-stage li.active{background:#f0e9e1;box-shadow:0 0 15px #fff}.forest-stage li.passed{background:#b51f3d;box-shadow:0 0 12px #b51f3d}.forest-stage li span{position:absolute;clip:rect(0 0 0 0)}.forest-stage small{color:#8d8588;font:900 8px monospace;letter-spacing:.14em}
.memory-reading{position:relative;padding-top:17px}.memory-reading>small{color:#b8b1b3;font:900 9px monospace;letter-spacing:.16em}.memory-reading.altered>small{color:#ef4260}.memory-reading .memory-line{margin-top:7px}.soul-weight{margin:20px 0 4px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:#aaa;font:900 9px monospace;letter-spacing:.12em}.soul-weight>i{height:8px;overflow:hidden;background:#30131a}.soul-weight>i>b{display:block;height:100%;width:93%;background:linear-gradient(90deg,#721027,#e53657);box-shadow:0 0 15px #d62043;transition:width 1.1s ease}.soul-weight>strong{color:#e54a65;font-size:9px}.memory-viewer.recovered .soul-weight>i>b{background:#e8eee9;box-shadow:0 0 15px #fff}.memory-viewer.recovered .soul-weight>strong{color:#dce9df}
.memory-viewer.recovered .hijos-alteration{opacity:0}.memory-viewer.recovered .corrupt-line{opacity:.35}.memory-truth{margin-top:17px}
.memory-viewer.echo-held .hijos-alteration i:nth-child(2){opacity:0}.memory-viewer.echo-held .memory-visual img{filter:grayscale(.55) contrast(1.12) brightness(.68)}.memory-viewer.echo-held .soul-weight>i>b{background:#9e8e92}.memory-viewer.echo-held .corrupt-line{opacity:.72}
.player-deck{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 12px}.player-card{min-width:0;display:grid;grid-template-columns:86px 1fr;border:1px solid #59444a;background:#100c0e;overflow:hidden;transition:.25s}.player-card img{width:100%;height:100%;min-height:190px;object-fit:cover;filter:grayscale(.72) brightness(.62);transition:.35s}.echo-player img{object-position:64% top}.halo-player img{object-position:94% top}.player-card>div{display:flex;flex-direction:column;padding:15px 13px}.player-card small{color:#b9aeb1;font:900 7px monospace;letter-spacing:.11em}.player-card h4{margin:5px 0;font-size:27px;line-height:1}.player-card p{margin:0 0 9px;color:#aaa0a3;font:700 10px/1.4 monospace}.player-card b{margin-top:auto;color:#e34a65;font:900 8px monospace;letter-spacing:.12em}.player-card button{width:100%;margin-top:9px;padding:11px 8px;border:1px solid #b82442;background:#a81936;color:#fff;font:900 8px monospace;letter-spacing:.08em}.player-card button:disabled{cursor:not-allowed;opacity:.28}.player-card.locked{opacity:.5}.player-card.complete{border-color:#d9e1da;box-shadow:0 0 22px #fff2}.player-card.complete img{filter:grayscale(.15) brightness(.83)}.player-card.complete b{color:#dce8de}.release-soul{width:100%;margin:0 0 16px!important;padding:16px!important;border-color:#e8ece9!important;background:#e8ece9!important;color:#080908!important;box-shadow:0 0 28px #fff4}.release-soul[hidden]{display:none!important}
@media(max-width:760px){.memory-stream{min-height:100dvh}.memory-depth{padding:78px 12px 58px}.forest-stage{width:100%;padding:22px 16px}.forest-stage h3{font-size:2.7rem}.stage-actions{display:grid}.stage-actions button{min-width:0;width:100%}.soul-weight{grid-template-columns:1fr}.soul-weight>span,.soul-weight>strong{display:block}.stream-instruction{display:none}.memory-rules{display:grid}.memory-rules span{width:max-content}.player-deck{grid-template-columns:1fr}.player-card{grid-template-columns:80px 1fr}.player-card img{min-height:170px}}
