/* Cover-only treatment. The three approved chapter palettes stay unchanged. */
/* Flat ink, cyan signal and oversized editorial type; no metallic shading. */
.memory-intro{background:#101214;color:#f7f7f2}
.memory-intro:before{background:linear-gradient(90deg,#10121400 30%,#10121455 100%)}
.memory-intro:after{content:"01";position:absolute;right:-.04em;bottom:-.21em;font:900 clamp(280px,49vw,760px)/1 Arial,sans-serif;letter-spacing:-.09em;color:#20bdd0;opacity:.13;z-index:-1;pointer-events:none}
.intro-center{text-align:left;width:min(1100px,85vw);padding:30px 0;margin:auto;isolation:isolate}
.intro-center:before{content:"";position:absolute;left:-8vw;top:13%;width:46%;height:58%;background:#22bfd4;opacity:.96;z-index:-1;clip-path:polygon(0 0,100% 0,100% 70%,75% 100%,0 100%);animation:signal-in 1.2s cubic-bezier(.16,1,.3,1) both}
.intro-center:after{content:"PERSONAL / ARCHIVE";position:absolute;right:0;top:15%;writing-mode:vertical-rl;font:9px var(--mono);letter-spacing:.22em;color:#b5bbc0;border-left:1px solid #ffffff35;padding-left:15px}
.intro-center h2{color:#fafbf7;background:none;-webkit-text-fill-color:currentColor;background-clip:border-box;-webkit-background-clip:border-box;text-shadow:none;filter:none;font-family:"Arial Black",Arial,sans-serif;font-weight:950;font-size:clamp(100px,17vw,230px);line-height:.88;letter-spacing:-.085em;margin:35px 0 24px;white-space:nowrap}
.intro-center h2 em{font-weight:950;color:#fafbf7}
.intro-center>p{color:#c6ccd0;font-size:15px;font-weight:400;margin:30px 0 0 43%;line-height:1.7}
.intro-center>p em{color:#fff;font-size:26px;font-weight:700;font-style:normal}
.intro-caption{letter-spacing:.15em;color:#e5e8e9;font-size:9px}
.intro-channels{justify-content:flex-start;margin:24px 0 0 43%;gap:22px;color:#e8edef;font-size:8px}
.intro-channels i{background:#23bfd4!important;box-shadow:none;border-radius:0}
.intro-enter-row{align-items:flex-start;margin:32px 0 0 43%;gap:16px}
.intro-enter{background:#24bfd3;color:#0c1518;border:0;border-radius:0;box-shadow:none;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);min-width:240px;justify-content:space-between;padding:19px 23px;font-weight:800;transition:background .2s,transform .2s}
.intro-enter:hover{background:#fff;color:#111;box-shadow:none;transform:translateX(4px)}
.intro-with-music{color:#929ca2;font-weight:400;font-size:9px}
.intro-top,.intro-bottom{color:#a5afb5}.intro-top{border-bottom:1px solid #ffffff21;margin:0 3.5vw;padding:25px 0}.intro-top>span{color:#edf1f2}
.intro-bottom{border-top:1px solid #ffffff21;margin:0 3.5vw;padding:23px 0;font-size:8px}
.intro-skip{background:transparent;border:0;border-left:2px solid #25bfd3;color:#e3e9ec;border-radius:0;padding:5px 13px}
.intro-orbit{border-color:#ffffff0e;left:72%;top:38%;width:58vw;height:58vw}.intro-orbit-b{border-color:#24bfd32b}.intro-orbit:before{background:#24bfd3;box-shadow:none;width:4px;height:4px;border-radius:0}
.intro-grid{opacity:.3;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);transform:none;background-size:100px 100px}
.intro-scan{background:linear-gradient(transparent,#24bfd30c,transparent)}
@keyframes signal-in{from{opacity:0;transform:translateX(-60px)}to{opacity:.96;transform:translateX(0)}}
body[data-world=portal]{--paper:#dce1e3;--ink:#14202a;--muted:#5e707b;--line:#a1aeb6;--orange:#159db2;background:#dce1e3}
body[data-world=portal] .site-header{border-bottom-width:2px;color:#1a2730}
body[data-world=portal] .brand-mark{background:#17232d;color:#d1e0e6}
body[data-world=portal] .brand-dot,body[data-world=portal] .brand-mark>span{color:#159db2}
body[data-world=portal] .gateway{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#293e4d08 25%)}
body[data-world=portal] .portal-stars{opacity:.66}
body[data-world=portal] .gateway-heading h1>span{color:#182630}
body[data-world=portal] .gateway-heading h1 .name-asterisk{color:#129db2}
body[data-world=portal] .gateway-heading>.chapter-label{color:#4f6674}
body[data-world=portal] .gateway-heading>p{color:#3d535f}
body[data-world=portal] .identity-tag{background:#233541;color:#dce7eb;transform:none}
body[data-world=portal] .gateway-glow{opacity:.04;background:repeating-linear-gradient(-45deg,#304c60 0,#304c60 1px,transparent 1px,transparent 7px)}
body[data-world=portal] .gateway-portals .portal-card{box-shadow:5px 6px 0 #1b2b37;border-color:#223644}
body[data-world=portal] .gateway-bottom{border-color:#5c717e;color:#435b69}
body[data-world=portal] .gateway-bottom .portal-soundtrack{color:#58717d}
body[data-world=portal] .portal-footer{color:#4b6572}
body[data-world=portal] .sound-dock{box-shadow:3px 3px 0 #93afbd;border-color:#b4c8d3}
body[data-world=portal] .sound-bars i{background:#b1ceda}
.cover-contacts{display:flex;flex-wrap:wrap;gap:9px 17px;margin-top:18px;padding-top:12px;border-top:1px solid #a3b0b833;font:9px var(--mono);color:#455f6f}
.cover-contacts a{white-space:nowrap}.cover-contacts a>span{font-size:6px;letter-spacing:.07em;margin-right:7px;color:#748894}
.cover-contacts a:hover{text-decoration:underline;text-underline-offset:4px}
.contact-links{display:flex;flex-wrap:wrap;gap:25px 60px;padding:0 0 34px;color:#dbe3dc;font-size:18px;line-height:1.7}
.contact-links a{display:flex;flex-direction:column;gap:8px}.contact-links a>span{font:8px var(--mono);letter-spacing:.1em;color:#92a49b}
.contact-links a:hover{color:#caff3e}
.mainboard-art img{left:15%;top:10%;width:72%;height:83%;transform:rotate(-4deg);object-fit:contain}
.case-visual .mainboard-art img{left:18%;top:7%;width:65%;height:86%;transform:rotate(-3deg)}
@media(max-height:800px) and (min-width:700px){body[data-world=portal] .gateway-heading h1{font-size:11.8vw}.cover-contacts{margin-top:13px;padding-top:9px;font-size:8px}}
@media(max-width:900px){.cover-contacts{gap:8px 15px;font-size:8px}.contact-links{gap:20px 40px;font-size:16px}}
@media(max-width:600px){.cover-contacts{grid-column:1/-1;display:flex;gap:8px 19px;margin-top:2px;padding-top:12px;font-size:8px}.cover-contacts a>span{font-size:5px;margin-right:5px}.contact-links{gap:20px;font-size:15px;flex-direction:column;padding-bottom:29px}.contact-links a{gap:5px}.mainboard-art img,.case-visual .mainboard-art img{left:13%;top:10%;width:74%;height:80%}.intro-enter{box-shadow:3px 3px 0 #060d14}.intro-center h2{text-shadow:none}.intro-center>p em{font-size:20px}}
@media(prefers-reduced-motion:reduce){.memory-intro canvas,.portal-stars{opacity:.6}}

@media(max-width:700px){.intro-center{width:84vw;padding:30px 0}.intro-center h2{font-size:18vw;margin-top:30px;line-height:1.05}.intro-center:before{left:-9vw;top:15%;width:65%;height:30%}.intro-center:after{right:-2vw;top:10%;font-size:6px}.intro-center>p,.intro-channels,.intro-enter-row{margin-left:13%}.intro-center>p{margin-top:36px;font-size:13px}.intro-center>p em{font-size:23px}.intro-caption{font-size:6px}.intro-channels{gap:16px;font-size:6px;margin-top:24px}.intro-enter-row{margin-top:29px}.intro-enter{min-width:230px;box-shadow:none}.intro-top,.intro-bottom{margin-inline:6vw}.intro-top{padding-block:22px;font-size:6px}.intro-bottom{padding-block:22px;font-size:6px}.intro-bottom>span:first-child{max-width:55%}.intro-orbit{width:130vw;height:130vw;left:80%}.memory-intro:after{font-size:85vw;bottom:-.08em}}
@media(prefers-reduced-motion:reduce){.intro-center:before{animation:none}.intro-enter{transition:none}}

/* Entry choreography: a short signal capture, then a quiet living background. */
.intro-center h2{animation:none;overflow:visible}
.intro-word{display:inline-block;animation:word-lock 1.2s cubic-bezier(.16,1,.3,1) .18s both}
.intro-word:nth-child(2){animation-delay:.32s}
.intro-center:before{transform-origin:left center;animation:cyan-unfold 1.35s cubic-bezier(.16,1,.3,1) .08s both}
.intro-center:after{animation:copy-arrive .8s .65s both}
.intro-caption{animation:copy-arrive .7s .15s both}
.intro-center>p{animation:copy-arrive .8s .65s both}
.intro-enter-row{animation:copy-arrive .8s .85s both}
.memory-intro:after{animation:archive-drift 1.8s cubic-bezier(.16,1,.3,1) .1s both}
.intro-scan{inset:0 auto 0 -20%;width:14%;height:100%;background:linear-gradient(90deg,transparent,#25bfd319,transparent);transform:skewX(-14deg);animation:signal-sweep 1.6s .15s cubic-bezier(.2,.7,.2,1) both;z-index:4}
.memory-intro.is-departing{animation:cover-release .64s cubic-bezier(.65,0,.2,1) both;pointer-events:none}
.is-departing .intro-center{transition:transform .64s cubic-bezier(.65,0,.2,1),opacity .35s;transform:scale(1.09) translateY(-14px);opacity:0}
.is-departing .intro-top,.is-departing .intro-bottom{transition:opacity .2s;opacity:0}
@keyframes word-lock{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-36px) skewX(-7deg)}40%{opacity:1}100%{opacity:1;clip-path:inset(0 -2% 0 -2%);transform:none}}
@keyframes cyan-unfold{0%{opacity:1;transform:scaleX(0) scaleY(.035)}30%{transform:scaleX(1) scaleY(.035)}100%{opacity:.96;transform:scale(1)}}
@keyframes archive-drift{from{opacity:0;transform:translateX(8%) scale(1.12)}to{opacity:.13;transform:none}}
@keyframes signal-sweep{from{left:-20%;opacity:0}20%{opacity:1}to{left:120%;opacity:0}}
@keyframes cover-release{0%{opacity:1;clip-path:inset(0)}65%{opacity:1}100%{opacity:0;clip-path:inset(0 0 100% 0)}}
@media(prefers-reduced-motion:reduce){.intro-word,.intro-center:before,.memory-intro:after,.intro-center:after{animation:none!important}.intro-scan{display:none}.memory-intro.is-departing{animation:none}.is-departing .intro-center{transition:none}}

.chapter-crosslinks{padding-top:24px;padding-bottom:60px}
.chapter-next-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:24px}
.chapter-next{position:relative;display:block;border-bottom:1px solid currentColor;padding:20px 0 28px;transition:padding .25s}
.chapter-next>.mono{font-size:8px;letter-spacing:.1em;color:var(--muted)}
.chapter-next h2{margin:18px 0 0;line-height:1.15;font-size:clamp(32px,4vw,58px)}
.chapter-next>span:last-child{position:absolute;right:7px;bottom:23px;font-size:40px;transition:transform .25s}
.chapter-next:hover>span:last-child{transform:translate(4px,-4px)}
.chapter-next:focus-visible{outline:2px solid currentColor;outline-offset:8px}
@media(max-width:600px){.chapter-crosslinks{padding-bottom:40px}.chapter-crosslinks>.mono{font-size:7px}.chapter-next-grid{gap:22px;margin-top:15px}.chapter-next{padding:15px 0 24px}.chapter-next h2{font-size:29px}.chapter-next>span:last-child{font-size:26px;right:0;bottom:24px}.chapter-next>.mono{font-size:6px}}
@media(prefers-reduced-motion:reduce){.chapter-next,.chapter-next>span:last-child{transition:none}}
