/* A single continuous atmosphere across the full site. */
html{background:#080916}body{background:transparent!important;isolation:isolate}body:before,body:after{display:none!important}
#soul-atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none!important;display:block;opacity:.26;background:radial-gradient(ellipse at 60% 40%,#3437a050,transparent 70%),#140e35}
body .site-header{background:transparent;border-bottom:0;backdrop-filter:none}
body .galaxy-hero.soul-hero,body .galaxy-stage,body .detail-main,body .detail-hero,body .section,body .closing,body .updated-label,body footer{background:transparent!important}
body .galaxy-hero.soul-hero{isolation:auto;overflow:visible;padding-bottom:20px}
body .galaxy-stage{isolation:auto;overflow:hidden}
body .galaxy-stage:after{display:none}
body .galaxy-canvas{mask-image:linear-gradient(transparent,#000 18%,#000 78%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 78%,transparent)}
body .galaxy-fallback{background:transparent}body .galaxy-fallback:before{display:none}
body .section:before,body .detail-hero:after{display:none}
body .soul-stats{background:transparent;border-top:0;border-bottom:0;padding-top:32px;padding-bottom:64px}
body .soul-stats div{border-color:#dac7e71f}
body .section{padding-top:clamp(74px,9vw,135px);padding-bottom:clamp(74px,9vw,135px)}
body .section-index{opacity:.8}body .section-index i{background:linear-gradient(90deg,#cfb4e238,transparent)}
body .project-card,body .project-card.featured{background:transparent;border-bottom-color:#dac3e922}
body .project-card:hover{background:linear-gradient(90deg,#bcb4e913,transparent);transform:translateX(5px)}
body .detail-section,body .mbsn-moments{border-color:#e1c5eb20}
body .mbsn-photo{border-color:#e3ccec38;box-shadow:0 22px 65px #02020d66}
body .detail-pager{background:transparent;border-color:#dfc1ea22}
body .closing:before,body .closing:after{opacity:.22}
body .galaxy-list-label{margin-top:30px}
body .galaxy-hero .chapter-map{border:0}.galaxy-hero .chapter-map button{border-color:#d9c1ed18}



.atmosphere-toggle{position:fixed;right:20px;bottom:18px;z-index:45;display:flex;align-items:center;gap:9px;min-height:40px;padding:8px 13px;border:1px solid #c3afd039;border-radius:24px;background:#0c0b1bcc;backdrop-filter:blur(14px);color:#d6c5e0;font:10px/1.4 var(--sans);cursor:pointer;box-shadow:0 7px 25px #02020c22}
.atmosphere-toggle:before{content:'';width:6px;height:6px;border-radius:50%;background:#dbbaff;box-shadow:0 0 9px #c190fb99}.atmosphere-toggle[aria-pressed=true]:before{background:#897b96;box-shadow:none}
body[data-effects-paused=true]{}
@media(max-width:700px){body .section{padding-block:72px}body .soul-stats{padding-top:28px;padding-bottom:36px}.atmosphere-toggle{right:12px;bottom:12px;min-height:40px;font-size:10px}body footer{padding-bottom:68px}}
@media(prefers-reduced-motion:reduce){.soul-water-lens,.atmosphere-toggle{transition:none}}

/* All motion is behind content. No displacement, blend or blur is applied to text. */
body .site-header{background:linear-gradient(#080916ed,#080916a8);backdrop-filter:none;-webkit-backdrop-filter:none}
body .profile-copy p,body .section-note,body .project-info span,body .expertise-cards p,body .tool-grid p,body .detail-copy,body .detail-copy .lead,body .method-list p{color:#d5cee3}
body .data-note,body .project-year,body .language-cards small,body .soul-intro p{color:#c5bdd5}
body .site-nav.open{background:#100f24}
body .atmosphere-toggle{background:#100f24;backdrop-filter:none;-webkit-backdrop-filter:none}

/* A short cinematic transition connects the universe and every detail page. */
body.detail-page main,body.detail-page footer{animation:page-arrive .72s cubic-bezier(.2,.75,.2,1) both}
body.page-leaving main,body.page-leaving footer,body.spiral-home.page-leaving #spiral-journey{opacity:0;transform:translateY(-12px) scale(.995);filter:blur(5px);transition:opacity .24s ease,transform .28s ease,filter .24s ease}
body.page-leaving{pointer-events:none}
body .spiral-screen .galaxy-stage .galaxy-stars{z-index:12}
body .spiral-screen .galaxy-stage .life-node{touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:12!important}
body .spiral-screen .galaxy-stage .life-node:after{content:'';position:absolute;inset:-12px;border-radius:36%;background:transparent;pointer-events:auto}
/* The visual soul stays in front; its transparent HTML hit box must not steal overlapping experience taps. */
body .spiral-screen .galaxy-gem-target{pointer-events:none}
@keyframes page-arrive{from{opacity:0;transform:translateY(16px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:700px){
  body .spiral-screen .galaxy-stage .life-node:after{inset:-20px}
  html body .spiral-screen .galaxy-stage.sg-on .life-node.in-focus .node-label{display:block!important;pointer-events:none;top:calc(100% + 7px)!important;width:148px;padding:9px 12px}
  html body .spiral-screen .galaxy-stage.sg-on .life-node.in-focus .node-label b{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  body.detail-page main,body.detail-page footer{animation:none}
  body.page-leaving main,body.page-leaving footer,body.spiral-home.page-leaving #spiral-journey{transition:none;filter:none}
}

/* Dreamcore instrumental control: visible near the top, away from the journey controls. */
.bgm-toggle{position:fixed;right:clamp(20px,4vw,64px);top:92px;bottom:auto;z-index:46;display:flex;align-items:center;gap:11px;min-height:50px;padding:8px 15px 8px 13px;border:1px solid #e0c2f35c;border-radius:28px;background:linear-gradient(120deg,#17102feF,#251947df);color:#eadcf4;font:10px/1.4 var(--sans);letter-spacing:.08em;cursor:pointer;box-shadow:0 12px 38px #02020d66,0 0 30px #be86ed1f;transition:border-color .25s ease,background .25s ease,transform .25s ease,box-shadow .25s ease;animation:bgm-invite 3.8s ease-in-out infinite}
.bgm-toggle:hover,.bgm-toggle:focus-visible{border-color:#edd6f6aa;background:linear-gradient(120deg,#201641,#31205a);transform:translateY(-2px);box-shadow:0 16px 44px #02020d7a,0 0 34px #c993ef38;animation:none}
.bgm-toggle[aria-pressed=true]{animation:none;border-color:#dab9ec73;background:linear-gradient(120deg,#1b1437ef,#2a1d50e8)}
.bgm-toggle__orb{position:relative;flex:0 0 auto;width:14px;height:14px;border:1px solid #f0dcf8cc;border-radius:50%;box-shadow:0 0 12px #c795ef77}
.bgm-toggle__orb:before,.bgm-toggle__orb:after{content:'';position:absolute;inset:-5px;border:1px solid #c6a4dc3d;border-radius:50%}
.bgm-toggle[aria-pressed=true] .bgm-toggle__orb{background:#edd9ff;box-shadow:0 0 9px #fff,0 0 22px #ba83ed}
.bgm-toggle[aria-pressed=true] .bgm-toggle__orb:before{animation:bgm-orbit 4.8s linear infinite}
.bgm-toggle__copy{display:flex;flex-direction:column;align-items:flex-start;min-width:122px;text-align:left}
.bgm-toggle__copy b{font:600 9px/1.3 var(--sans);letter-spacing:.18em;color:#f4e8fb}
.bgm-toggle__copy small{font:10px/1.5 var(--sans);letter-spacing:.03em;color:#cdbed9;margin-top:2px}
.bgm-toggle__bars{display:flex;align-items:center;gap:2px;height:12px}
.bgm-toggle__bars i{display:block;width:1px;height:4px;background:#d8bee8;transform-origin:center;animation:bgm-wave 1.15s ease-in-out infinite;animation-play-state:paused}
.bgm-toggle__bars i:nth-child(2){animation-delay:-.35s}.bgm-toggle__bars i:nth-child(3){animation-delay:-.7s}
.bgm-toggle[aria-pressed=true] .bgm-toggle__bars i{animation-play-state:running}
@keyframes bgm-orbit{to{transform:rotate(360deg)}}
@keyframes bgm-wave{0%,100%{transform:scaleY(.65);opacity:.55}50%{transform:scaleY(2.4);opacity:1}}
@keyframes bgm-invite{0%,100%{box-shadow:0 12px 38px #02020d66,0 0 20px #be86ed14}50%{box-shadow:0 12px 38px #02020d66,0 0 38px #d5a6f13b}}
@media(max-width:700px){.bgm-toggle{top:82px;right:12px;min-height:44px;padding:7px 11px;gap:8px}.bgm-toggle__orb{width:11px;height:11px}.bgm-toggle__copy{min-width:0}.bgm-toggle__copy b{font-size:8px;letter-spacing:.12em}.bgm-toggle__copy small{display:none}.bgm-toggle__bars{margin-left:2px}}
@media(prefers-reduced-motion:reduce){.bgm-toggle,.bgm-toggle__orb:before,.bgm-toggle__bars i{transition:none;animation:none!important}}
