/* Full-viewport soul cover; all narrative content lives in detail pages. */
body.spiral-home{overflow-x:clip}
body.spiral-home main{overflow:visible}
body.spiral-home .site-header{position:fixed;inset:0 0 auto;height:78px;padding:16px clamp(20px,4vw,64px);display:flex;justify-content:space-between;background:linear-gradient(#08091688,transparent);border:0;z-index:30;pointer-events:none}
body.spiral-home .site-header>*{pointer-events:auto}
.spiral-brand{font:400 19px/1.3 var(--serif);color:#f3e9ff;letter-spacing:.18em}.spiral-brand span{display:block;font:8px/1.7 var(--sans);letter-spacing:.23em;color:#c8badb;margin-top:4px}
#spiral-journey{position:relative;height:680svh}
body .spiral-screen.galaxy-hero.soul-hero{position:sticky;top:0;height:100svh;min-height:0;margin:0;padding:0;overflow:hidden}
body .spiral-screen .galaxy-stage{height:100%;width:100%;background:transparent;touch-action:pan-y}
body .spiral-screen .galaxy-canvas{mask-image:none;-webkit-mask-image:none}
body .spiral-screen .galaxy-gem-target span{display:none}
body .spiral-screen .galaxy-stage .node-label{top:48px!important;bottom:auto!important;width:180px;line-height:1.5}
body .spiral-screen .galaxy-stage .node-label b{font-size:12px;font-weight:500;color:#f4ecff}
body .spiral-screen .galaxy-stage .node-label small{font-size:9px;letter-spacing:.14em;color:#dbcaec}
body .spiral-screen .life-node .node-orbit{inset:3px;width:40px;height:40px;border-color:#c2acff50;transform:rotateX(45deg) rotateZ(-25deg);box-shadow:0 0 22px #a394ef30}
body .spiral-screen .node-orbit:after{content:'';position:absolute;inset:-8px;border:1px solid #dcc4ff38;border-radius:50%;transform:rotateZ(70deg) rotateY(45deg)}
body .spiral-screen .life-node.in-focus .node-orbit{transform:scale(1.45) rotateX(30deg);border-color:#fff0ff;box-shadow:0 0 32px #c0a2ff60}
body .spiral-screen .life-node.in-focus .node-label b{color:#fff}
.spiral-caption{position:absolute;left:clamp(20px,4vw,64px);bottom:32px;z-index:8;max-width:55vw;pointer-events:none}
.spiral-eyebrow{font:9px var(--sans);letter-spacing:.28em;color:#ad9fc7}
#spiral-hint{color:#cfc3df;font:11px/1.6 var(--sans);margin:7px 0}
#spiral-current{pointer-events:auto;display:inline-block;color:#f3eaff;font:14px/1.5 var(--sans);text-decoration:underline;text-underline-offset:6px;text-decoration-color:#dcc4ff50}
.spiral-actions{position:absolute;right:clamp(20px,4vw,64px);bottom:76px;display:flex;gap:16px;z-index:9}.spiral-actions button{min-height:44px;border:0;border-bottom:1px solid #cdb8e84d;padding:4px 0;background:none;color:#ddcdec;font:11px var(--sans);cursor:pointer}
.spiral-rail{position:absolute;right:15px;top:40%;display:flex;flex-direction:column-reverse;gap:4px;z-index:9}.spiral-rail button{width:28px;height:28px;padding:10px;border:0;border-radius:50%;background:none;cursor:pointer}.spiral-rail button:after{content:'';display:block;width:5px;height:5px;background:#a59abd88;border-radius:50%}.spiral-rail button[aria-current=true]:after{background:#fff;box-shadow:0 0 12px #ccb4ff}
body.spiral-home .reading-progress{background:linear-gradient(90deg,#7598f5,#dab9ed);height:1px}
body.spiral-home .atmosphere-toggle{right:clamp(20px,4vw,64px);bottom:20px;font-size:9px;border-color:#b0a1c029}
.archive-portrait{margin-left:40px;max-width:220px;flex-shrink:0}.archive-portrait img{width:100%;border-radius:50% 50% 4px 4px;border:1px solid #e4cff450}.archive-portrait span{display:block;font:11px/1.8 var(--sans);color:#c2b7d2;margin-top:16px}.archive-stats{display:flex;gap:40px;flex-wrap:wrap}.archive-stats div{flex:1;min-width:180px}
body[data-page=profile] .detail-hero{justify-content:space-between;gap:30px}body[data-page=profile] .detail-hero h1{font-size:clamp(36px,5vw,76px)}
.no-script-chapters a{display:block;padding:16px;color:#e5d6f5}
@media(max-width:700px){body.spiral-home .site-header{height:70px;padding:14px 18px}.spiral-brand{font-size:16px}.spiral-brand span{font-size:7px}.spiral-home .language-switcher button{font-size:10px;padding:5px 7px}body .spiral-screen .galaxy-stage .node-label{width:112px;top:42px!important}body .spiral-screen .galaxy-stage .node-label b{font-size:10px;line-height:1.55}body .spiral-screen .galaxy-stage .node-label small{font-size:8px}.spiral-caption{left:20px;bottom:26px;max-width:58vw}#spiral-hint{font-size:10px}#spiral-current{font-size:12px}.spiral-actions{right:20px;bottom:73px;gap:10px}.spiral-actions button{font-size:10px}.spiral-rail{right:0;top:38%;gap:0}.spiral-rail button{width:22px;height:25px;padding:9px}body.spiral-home .atmosphere-toggle{right:16px;font-size:8px}.archive-portrait{max-width:160px;margin:0}body[data-page=profile] .detail-hero{flex-wrap:wrap;padding-top:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.spiral-screen *{animation:none!important;transition:none!important}}
