/* Spatial pass: kept separate from the compressed prototype stylesheet. */
.garden-grade {
  background:
    radial-gradient(circle at var(--mx, 50%) var(--my, 50%),
      rgba(255, 158, 197, calc(.025 + var(--awaken, 0) * .095)) 0,
      rgba(126, 186, 255, calc(var(--awaken, 0) * .07)) 16%,
      transparent 36%),
    linear-gradient(120deg,
      rgba(160, 83, 128, calc(var(--awaken, 0) * .055)),
      transparent 38%,
      rgba(73, 137, 176, calc(var(--awaken, 0) * .045)) 75%,
      transparent);
}
@media (pointer:coarse){body[data-experience="ACT1_EXPLORE"] .garden{touch-action:none;overscroll-behavior:none}.garden-night-veil{--reveal-radius:calc(96px + var(--awaken,0) * 20vw)}}

.archive-card {
  border-color: rgba(255, 242, 247, .42);
  background: linear-gradient(135deg, rgba(255, 255, 255, .09), rgba(255, 207, 224, .008));
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, .2),
    inset -12px -18px 32px rgba(164, 106, 132, .035),
    0 16px 50px rgba(0, 0, 0, .35), 0 0 22px rgba(233, 181, 197, .08);
  backdrop-filter: blur(5px) saturate(1.3);
}
.archive-card { isolation:isolate; border-radius:48% 48% 11% 11%/24% 24% 9% 9%; }
.archive-door-preview { position:absolute; z-index:-2; inset:0; background-image:linear-gradient(180deg,rgba(3,3,7,.1),rgba(4,3,7,.78)),var(--door-image); background-size:cover; background-position:center; opacity:.66; transform:scale(1.08); transition:transform 1s cubic-bezier(.16,.8,.24,1),opacity .45s; }
.archive-card:nth-child(1) .archive-door-preview{background-image:radial-gradient(circle at 66% 48%,rgba(232,183,199,.28),transparent 18%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.82)),var(--door-image)}
.archive-card:nth-child(2) .archive-door-preview{background-image:radial-gradient(circle at 72% 35%,rgba(184,215,255,.34),transparent 22%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.82)),var(--door-image)}
.archive-card:nth-child(3) .archive-door-preview{background-image:linear-gradient(135deg,transparent 35%,rgba(216,198,155,.34) 51%,transparent 53%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.84)),var(--door-image)}
.archive-card:nth-child(4) .archive-door-preview{background-image:radial-gradient(closest-side at 72% 45%,rgba(216,169,235,.35),transparent 60%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.84)),var(--door-image)}
.archive-card:nth-child(5) .archive-door-preview{background-image:radial-gradient(circle at 69% 46%,#ffb088 0 3%,rgba(255,130,70,.24) 4% 13%,transparent 22%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.8)),var(--door-image)}
.archive-card:nth-child(6) .archive-door-preview{background-image:linear-gradient(90deg,transparent 62%,rgba(156,201,216,.25) 62.5% 63%,transparent 63.5%),linear-gradient(180deg,rgba(3,3,7,.08),rgba(4,3,7,.82)),var(--door-image)}
.archive-card::after { content:""; position:absolute; z-index:-1; inset:4px; border:1px solid color-mix(in srgb,var(--archive-accent,#ecc),transparent 74%); border-radius:inherit; box-shadow:inset 0 0 22px rgba(0,0,0,.68); pointer-events:none; }
.archive-door-glyph { position:absolute; right:.8rem; top:.65rem; font-style:normal; font-size:1rem; color:var(--archive-accent,#eed); text-shadow:0 0 14px currentColor; opacity:.68; }
.archive-card em { display:block; margin-top:.45rem; font:500 .45rem/1 Arial; letter-spacing:.18em; color:rgba(255,238,244,.54); font-style:normal; }
.archive-card:hover .archive-door-preview,.archive-card:focus-visible .archive-door-preview { transform:scale(1); opacity:.8; }
.archive-orbit:has(.archive-card:hover) .archive-card:not(:hover),.archive-orbit:has(.archive-card:focus-visible) .archive-card:not(:focus-visible){opacity:.5;filter:blur(1px);transform:translate3d(-50%,-50%,var(--portal-z)) scale(calc(var(--portal-scale) * .94))}
.archive-card:focus-visible{outline:1px solid var(--archive-accent);outline-offset:5px}
.archive-card:nth-child(1),.archive-card:nth-child(5) { z-index:30; }
.archive-card:nth-child(2),.archive-card:nth-child(6) { z-index:31; }
.archive-card:nth-child(3),.archive-card:nth-child(4) { z-index:32; }

.archive-stage {
  position: fixed;
  z-index: 70;
  inset: 0;
  overflow: hidden;
  background: #07060a;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.13) translateZ(0);
  clip-path: circle(0 at var(--portal-x, 50vw) var(--portal-y, 50vh));
  transition: opacity .8s ease, transform 1.25s cubic-bezier(.16, .75, .18, 1), clip-path 1.05s cubic-bezier(.16,.76,.18,1), visibility .8s;
}

.archive-stage.open { opacity: 1; visibility: visible; transform: scale(1) translateZ(0); clip-path:circle(150vmax at var(--portal-x,50vw) var(--portal-y,50vh)); }
.archive-stage-bg { position: absolute; inset: -5%; background-position: center; background-size: cover; filter: saturate(.8) brightness(.42); transform: scale(1.08); transition: transform 8s ease; }
.archive-stage.open .archive-stage-bg { transform: scale(1); }
.archive-stage::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(5,4,7,.94), rgba(5,4,7,.75) 36%, rgba(5,4,7,.08) 72%), radial-gradient(circle at 70% 50%, transparent, rgba(4,3,5,.72) 82%); }
.archive-world { position:absolute; z-index:3; inset:0; overflow:hidden; perspective:1100px; pointer-events:none; }
.archive-world-sky { position:absolute; inset:-15%; background:radial-gradient(circle at 68% 45%,color-mix(in srgb,var(--archive-accent),transparent 62%),transparent 18%),radial-gradient(circle at 62% 50%,rgba(255,255,255,.08),transparent 34%); filter:blur(20px); animation:world-breathe 7s ease-in-out infinite alternate; }
.archive-world-horizon { position:absolute; left:45%; top:57%; width:70%; height:1px; background:linear-gradient(90deg,transparent,var(--archive-accent),transparent); box-shadow:0 0 40px var(--archive-accent); transform:perspective(700px) rotateZ(-8deg); opacity:.65; }
.archive-world-orbit { position:absolute; left:69%; top:48%; width:min(44vw,40rem); aspect-ratio:1; border:1px solid color-mix(in srgb,var(--archive-accent),transparent 45%); border-radius:50%; transform:translate(-50%,-50%) rotateX(66deg); box-shadow:0 0 32px color-mix(in srgb,var(--archive-accent),transparent 70%),inset 0 0 25px color-mix(in srgb,var(--archive-accent),transparent 78%); animation:world-orbit 11s linear infinite; }
.archive-world .orbit-b { width:min(29vw,27rem); animation-direction:reverse; animation-duration:8s; opacity:.55; }
.archive-world-core { position:absolute; left:69%; top:48%; width:8vw; min-width:5rem; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 42% 35%,#fff,var(--archive-accent) 16%,rgba(10,8,14,.35) 45%,transparent 70%); box-shadow:0 0 70px color-mix(in srgb,var(--archive-accent),transparent 35%); transform:translate(-50%,-50%); animation:world-core 4s ease-in-out infinite alternate; }
.archive-world-path { position:absolute; left:43%; top:69%; width:65%; height:28%; border-top:2px solid color-mix(in srgb,var(--archive-accent),transparent 25%); border-radius:50%; transform:perspective(500px) rotateX(63deg) rotateZ(-12deg); box-shadow:0 -10px 40px color-mix(in srgb,var(--archive-accent),transparent 68%); }
.archive-world-nodes { position:absolute; inset:0; background:radial-gradient(circle at 54% 66%,#fff 0 2px,transparent 3px),radial-gradient(circle at 65% 61%,var(--archive-accent) 0 3px,transparent 5px),radial-gradient(circle at 79% 54%,#fff 0 2px,transparent 4px),radial-gradient(circle at 87% 42%,var(--archive-accent) 0 3px,transparent 5px); filter:drop-shadow(0 0 7px var(--archive-accent)); animation:nodes-drift 6s ease-in-out infinite alternate; }
.archive-world-foreground { position:absolute; right:-7%; bottom:-18%; width:48%; height:45%; background:var(--archive-image) center/cover; opacity:.18; filter:blur(2px) saturate(.8); clip-path:polygon(20% 0,100% 18%,100% 100%,0 100%); transform:perspective(700px) rotateY(-16deg); }
@keyframes world-breathe{to{transform:scale(1.08) translate3d(-1.5%,1%,0);opacity:.75}}@keyframes world-orbit{to{transform:translate(-50%,-50%) rotateX(66deg) rotateZ(360deg)}}@keyframes world-core{to{transform:translate(-50%,-50%) scale(1.12);filter:hue-rotate(12deg)}}@keyframes nodes-drift{to{transform:translate3d(2%,-1.5%,0)}}
.archive-stage[data-archive="1"] .archive-world-core { border-radius:48% 52% 44% 56%; }
.archive-stage[data-archive="1"] .archive-world-horizon{top:66%;height:16%;border:1px solid color-mix(in srgb,var(--archive-accent),transparent 55%);border-radius:50%;background:rgba(255,255,255,.025);transform:perspective(700px) rotateX(67deg) rotateZ(-5deg)}
.archive-stage[data-archive="2"] .archive-world-orbit { border-style:dashed; }
.archive-stage[data-archive="2"] .archive-world-nodes{background:radial-gradient(circle at 52% 64%,#fff 0 3px,transparent 4px),radial-gradient(circle at 61% 38%,var(--archive-accent) 0 5px,transparent 7px),radial-gradient(circle at 77% 61%,#fff 0 4px,transparent 6px),radial-gradient(circle at 88% 31%,var(--archive-accent) 0 6px,transparent 8px)}
.archive-stage[data-archive="3"] .archive-world-core { opacity:.25; }
.archive-stage[data-archive="3"] .archive-world-path { width:85%; height:38%; }
.archive-stage[data-archive="3"] .archive-world-path{left:36%;top:58%;height:54%;border-width:3px;border-radius:50% 50% 0 0;transform:perspective(520px) rotateX(65deg) rotateZ(-18deg);background:repeating-linear-gradient(90deg,transparent 0 12%,color-mix(in srgb,var(--archive-accent),transparent 66%) 12.2% 12.4%,transparent 12.6% 18%)}
.archive-stage[data-archive="4"] .archive-world-core { clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%); border-radius:0; }
.archive-stage[data-archive="4"] .archive-world-orbit{border-radius:18%;transform:translate(-50%,-50%) rotateX(64deg) rotateZ(30deg)}
.archive-stage[data-archive="5"] .archive-world-core { background:radial-gradient(circle,#ffddac,#ff8d58 16%,#151117 42%,transparent 70%); }
.archive-stage[data-archive="5"] .archive-world-path{border-radius:100% 20% 80% 30%;box-shadow:0 -8px 55px rgba(255,125,67,.35)}
.archive-stage[data-archive="6"] .archive-world-orbit { border-radius:20%; transform:translate(-50%,-50%) rotateX(64deg) rotateZ(45deg); }
.archive-stage[data-archive="6"] .archive-world-nodes{background:linear-gradient(90deg,transparent 54%,color-mix(in srgb,var(--archive-accent),transparent 72%) 54.1% 54.2%,transparent 54.3%),linear-gradient(0deg,transparent 58%,color-mix(in srgb,var(--archive-accent),transparent 72%) 58.1% 58.2%,transparent 58.3%),radial-gradient(circle at 54% 58%,#fff 0 3px,transparent 4px),radial-gradient(circle at 69% 42%,var(--archive-accent) 0 4px,transparent 6px),radial-gradient(circle at 82% 65%,#fff 0 3px,transparent 5px)}
.archive-stage-depth { position: absolute; z-index: 2; border: 1px solid rgba(255,236,242,.22); background: rgba(255,255,255,.025); backdrop-filter: blur(7px); transform: perspective(900px) rotateY(-18deg); box-shadow: inset 0 0 30px rgba(255,255,255,.035), 0 30px 80px #000; }
.depth-a { right: 12vw; top: 15vh; width: 20vw; height: 52vh; }
.depth-b { right: 4vw; top: 30vh; width: 15vw; height: 40vh; opacity: .5; }
.archive-stage-copy { position: absolute; z-index: 4; left: 7vw; top: 50%; width: min(37rem, 42vw); transform: translateY(-50%); }
.archive-stage-kicker { font: 600 .6rem Arial; letter-spacing: .35em; color: var(--archive-accent,#e2aebc); text-shadow:0 0 22px color-mix(in srgb,var(--archive-accent,#e2aebc),transparent 55%); }
.archive-stage-copy h2 { font-size: clamp(3rem, 6.5vw, 7.5rem); line-height: .9; margin: .8rem 0 1.8rem; }
.archive-stage-lead { font-family: Georgia, "Songti SC", serif; font-size: clamp(1rem, 1.5vw, 1.35rem); line-height: 1.7; color: #d4c8cc; }
.archive-stage-content { margin-top: 2rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.18); font-size: .75rem; line-height: 2; color: #998e93; letter-spacing: .05em; }
.archive-stage-content>p{margin:0}.archive-detail{margin-top:1.4rem}.archive-detail>span{font:600 .5rem/1 Arial;letter-spacing:.28em;color:var(--archive-accent)}.archive-detail>div{display:flex;gap:.65rem;margin:1rem 0}.archive-detail b{display:grid;min-width:6.2rem;padding:.7rem .8rem;border:1px solid color-mix(in srgb,var(--archive-accent),transparent 72%);background:rgba(4,3,7,.38);font-weight:400}.archive-detail strong{font:400 1rem/1 Georgia,serif;color:#f8f0f2}.archive-detail small{margin-top:.45rem;font-size:.5rem;line-height:1.2;color:#90858a}.archive-detail em{display:block;max-width:34rem;font-style:normal;color:#b8aeb2}
.archive-detail--metrics>div,.archive-detail--capabilities>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.archive-detail--timeline>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.archive-detail--metrics b,.archive-detail--capabilities b,.archive-detail--timeline b{min-width:0}.archive-detail--timeline strong{font:500 .67rem/1.2 Arial}.archive-detail--timeline small{font-size:.55rem}.archive-detail--capabilities strong{font-size:.8rem}.archive-detail--metrics strong{color:var(--archive-accent)}
.resume-link{display:inline-flex;margin-top:1rem;padding:.65rem .9rem;border:1px solid color-mix(in srgb,var(--archive-accent),transparent 66%);color:#e9dfe2;text-decoration:none;font:600 .55rem/1 Arial;letter-spacing:.14em;background:rgba(3,3,7,.38)}.resume-link:hover,.resume-link:focus-visible{border-color:var(--archive-accent);box-shadow:0 0 22px color-mix(in srgb,var(--archive-accent),transparent 72%)}
.archive-back { position: absolute; z-index: 5; left: 4vw; top: 5vh; border: 0; background: transparent; font-size: .65rem; letter-spacing: .2em; color: #c9bbc0; cursor: pointer; }
.archive-stage-nav { position: absolute; z-index: 5; right: 3vw; bottom: 5vh; display: flex; gap: .55rem; }
.archive-stage-nav button { width: 2.75rem; height: 2.75rem; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(0,0,0,.25); font: 500 .55rem Arial; color: #8e8287; cursor: pointer; }
.archive-stage-nav button.active { border-color: var(--archive-accent,#f2dbe2); color: #fff; box-shadow: 0 0 22px color-mix(in srgb,var(--archive-accent,#f2dbe2),transparent 68%); }
.project-showcase{position:absolute;z-index:4;left:33vw;right:5vw;top:13vh;bottom:14vh;display:none;grid-template-columns:minmax(0,1.55fr) minmax(15rem,.75fr);gap:1.2rem;align-items:center}.archive-stage[data-archive="5"] .project-showcase,.archive-stage[data-archive="6"] .project-showcase{display:grid}.archive-stage[data-archive="5"] .archive-stage-copy,.archive-stage[data-archive="6"] .archive-stage-copy{left:5vw;top:27%;width:25vw}.archive-stage[data-archive="5"] .archive-world,.archive-stage[data-archive="6"] .archive-world{opacity:.22}.project-player-shell{position:relative;border:1px solid color-mix(in srgb,var(--archive-accent),transparent 52%);background:#030307;box-shadow:0 24px 100px #000,0 0 40px color-mix(in srgb,var(--archive-accent),transparent 84%);overflow:hidden}.project-demo{display:block;width:100%;aspect-ratio:16/9;background:#020204;object-fit:contain}.project-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:15rem;padding:1rem 1.4rem;border:1px solid color-mix(in srgb,var(--archive-accent),transparent 42%);border-radius:99px;background:rgba(3,3,7,.74);backdrop-filter:blur(12px);font:600 .65rem/1.2 Arial;letter-spacing:.16em;cursor:pointer}.project-play[hidden]{display:none}.project-architecture{position:relative;margin:0;cursor:zoom-in;border:1px solid rgba(255,255,255,.2);background:rgba(3,3,7,.72);transition:.55s cubic-bezier(.16,.8,.24,1);outline:none}.project-architecture:focus-visible{border-color:var(--archive-accent);box-shadow:0 0 0 3px rgba(4,3,7,.88),0 0 0 5px var(--archive-accent)}.project-architecture img{display:block;width:100%;max-height:56vh;object-fit:contain}.project-architecture figcaption{padding:.7rem 1rem;font:500 .52rem/1 Arial;letter-spacing:.2em;color:#a99ea2}.project-architecture.expanded{position:fixed;z-index:90;inset:4vh 4vw;display:grid;place-items:center;background:#020205;cursor:zoom-out}.project-architecture.expanded img{width:100%;height:88vh;max-height:none}.project-architecture.expanded figcaption{position:absolute;right:1rem;bottom:1rem}

@media (max-width: 780px) {
  .archive-stage-copy { left: 8vw; top: 56%; width: 78vw; }
  .archive-stage-depth { opacity: .32; }
  .archive-detail>div{gap:.35rem;flex-wrap:wrap}.archive-detail b{min-width:5rem}.archive-world{opacity:.7}.archive-stage-copy h2{font-size:clamp(2.8rem,13vw,5rem)}
  .archive-stage[data-archive="5"] .archive-stage-copy,.archive-stage[data-archive="6"] .archive-stage-copy{left:8vw;top:26%;width:84vw}.archive-stage[data-archive="5"] .archive-stage-copy .archive-stage-content,.archive-stage[data-archive="6"] .archive-stage-copy .archive-stage-content{display:none}.project-showcase{left:7vw;right:7vw;top:46vh;bottom:11vh;grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:.8rem;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.project-architecture img{max-height:22vh}.project-architecture.expanded{inset:2vh 3vw}.project-architecture.expanded img{height:84vh}.project-architecture.expanded figcaption{right:.5rem;bottom:.5rem}.project-play{min-width:12rem;min-height:44px;font-size:.55rem}.archive-stage[data-archive="5"] .archive-stage-nav,.archive-stage[data-archive="6"] .archive-stage-nav{bottom:2vh}
  .archive-detail--metrics>div,.archive-detail--capabilities>div,.archive-detail--timeline>div{grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive-stage[data-archive="5"],.archive-stage[data-archive="6"]{display:flex;flex-direction:column;align-items:stretch;overflow-x:hidden;overflow-y:auto;padding:0 7vw 7rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .archive-stage.architecture-open{overflow:hidden}
  .archive-stage[data-archive="5"] .archive-stage-copy,.archive-stage[data-archive="6"] .archive-stage-copy{position:relative;order:1;left:auto;top:auto;width:auto;transform:none;margin:8.5rem 1vw 0}
  .archive-stage[data-archive="5"] .archive-stage-copy .archive-stage-content,.archive-stage[data-archive="6"] .archive-stage-copy .archive-stage-content{display:block;margin-top:1.2rem}
  .archive-stage[data-archive="5"] .project-showcase,.archive-stage[data-archive="6"] .project-showcase{position:relative;order:2;left:auto;right:auto;top:auto;bottom:auto;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;gap:1rem;overflow:visible;margin:2rem 0 0}
  .archive-stage[data-archive="5"] .project-architecture img,.archive-stage[data-archive="6"] .project-architecture img{max-height:none}.archive-stage>.project-architecture.expanded{position:absolute;z-index:90;inset:2vh 3vw;margin:0;display:grid;place-items:center;background:#020205}.archive-stage>.project-architecture.expanded img{width:100%;height:84vh;max-height:none;object-fit:contain}.archive-stage>.project-architecture.expanded figcaption{position:absolute;right:.5rem;bottom:.5rem}
  .archive-stage[data-archive="5"] .archive-stage-nav,.archive-stage[data-archive="6"] .archive-stage-nav{position:relative;order:3;right:auto;bottom:auto;align-self:center;margin:2rem 0 0;flex-wrap:wrap;justify-content:center}
  .archive-stage[data-archive="5"] .archive-world,.archive-stage[data-archive="6"] .archive-world{position:fixed}
}

.goddess-plate::after { content:""; position:absolute; z-index:5; inset:-10%; pointer-events:none; opacity:.4; background:radial-gradient(ellipse at 8% 16%,rgba(255,213,226,.6) 0 1.2%,transparent 2.8%),radial-gradient(ellipse at 88% 24%,rgba(232,173,197,.52) 0 1.4%,transparent 3.1%),radial-gradient(ellipse at 76% 82%,rgba(255,230,238,.4) 0 1%,transparent 2.6%); filter:blur(7px); transform:translate3d(var(--fx,0px),var(--fy,0px),0) scale(1.08); mix-blend-mode:screen; }
body[data-phase="goddess"] #world { z-index: 3; opacity: .72; mix-blend-mode: screen; }
body[data-phase="threshold"] #world { opacity:0; }
body[data-phase="garden"] #world { opacity:0; }
#world { transition: opacity 1.1s ease; pointer-events: none; }

/* Act 0: the crystal flora behaves like a physical cinema curtain. */
.crystal-curtain { position:fixed; z-index:24; inset:0; pointer-events:none; overflow:hidden; opacity:1; visibility:visible; transition:opacity .55s ease,visibility .55s; }
.crystal-curtain::after { content:"ENTER"; position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%); font:500 .62rem/1 Arial,sans-serif; letter-spacing:.48em; color:rgba(246,235,255,.82); text-shadow:0 0 14px rgba(230,208,255,.95),0 0 40px rgba(196,142,255,.62); transition:opacity .3s ease; }
.crystal-curtain-panel { position:absolute; top:-3%; bottom:-3%; width:50.2%; background-image:linear-gradient(rgba(5,8,20,.04),rgba(2,4,14,.18)),url("../assets/crystal-curtain-cinematic-v2.png"); background-size:200% 106%; filter:saturate(1.03) brightness(.82) contrast(1.08); will-change:transform; transition:transform 1.85s cubic-bezier(.45,.05,.55,.95); box-shadow:0 0 80px rgba(178,195,255,.2); }
.crystal-curtain-left { left:0; background-position:left center; transform:translate3d(0,0,0); }
.crystal-curtain-right { right:0; background-position:right center; transform:translate3d(0,0,0); }
.crystal-curtain-glint { position:absolute; left:50%; top:8%; bottom:8%; width:1px; transform:translateX(-50%); background:linear-gradient(transparent,rgba(230,224,255,.76),rgba(255,210,234,.9),transparent); box-shadow:0 0 22px rgba(235,220,255,.75),0 0 70px rgba(178,140,255,.38); opacity:.68; transition:opacity .45s ease; }
.crystal-chain-wind{position:absolute;z-index:2;inset:-2% 0 20%;pointer-events:none;overflow:hidden;transition:opacity .35s ease}
.crystal-chain-wind i{position:absolute;top:-4%;left:var(--chain-x);width:clamp(3px,.32vw,7px);height:var(--chain-h);transform-origin:50% 0;background:repeating-linear-gradient(180deg,rgba(244,242,255,.78) 0 7px,rgba(168,183,238,.18) 9px 14px,transparent 15px 22px);filter:drop-shadow(0 0 7px rgba(210,217,255,.75));opacity:.48;animation:chainWind var(--chain-speed) ease-in-out var(--chain-delay) infinite alternate}
.crystal-chain-wind i::after{content:"";position:absolute;left:50%;bottom:-12px;width:15px;height:23px;transform:translateX(-50%) rotate(45deg);border:1px solid rgba(234,227,255,.62);background:linear-gradient(135deg,rgba(255,255,255,.24),rgba(144,157,226,.05));box-shadow:0 0 14px rgba(199,183,255,.4)}
.crystal-chain-wind i:nth-child(1){--chain-x:8%;--chain-h:42%;--chain-speed:4.7s;--chain-delay:-1.1s}.crystal-chain-wind i:nth-child(2){--chain-x:27%;--chain-h:58%;--chain-speed:5.4s;--chain-delay:-3.2s}.crystal-chain-wind i:nth-child(3){--chain-x:49.7%;--chain-h:35%;--chain-speed:4.2s;--chain-delay:-2.3s}.crystal-chain-wind i:nth-child(4){--chain-x:72%;--chain-h:54%;--chain-speed:5.8s;--chain-delay:-.7s}.crystal-chain-wind i:nth-child(5){--chain-x:91%;--chain-h:45%;--chain-speed:4.9s;--chain-delay:-4s}
@keyframes chainWind{0%{transform:rotate(-.65deg) translateX(-2px)}55%{transform:rotate(.2deg) translateX(1px)}100%{transform:rotate(.85deg) translateX(3px)}}
body.curtain-open .crystal-curtain-left { transform:translate3d(-110%,0,0) rotateY(-8deg); }
body.curtain-open .crystal-curtain-right { transform:translate3d(110%,0,0) rotateY(8deg); }
body.curtain-open .crystal-curtain-glint { opacity:0; }
body.curtain-open .crystal-chain-wind{opacity:0}
body.curtain-open .crystal-curtain::after { opacity:0; }
body.curtain-open .threshold-copy,
body.curtain-open .crystal-hit span,
body.curtain-open .sound-note { opacity:0; visibility:hidden; }
body[data-experience="ACT1_STORM"] .crystal-curtain,
body[data-experience="ACT1_BLACK"] .crystal-curtain,
body[data-experience="ACT1_EXPLORE"] .crystal-curtain,
body[data-experience="ACT1_AWAKEN"] .crystal-curtain,
body[data-experience="ACT1_PUSH"] .crystal-curtain,
body[data-experience="GATE_WARNING"] .crystal-curtain,
body[data-experience="GATE_SUCTION"] .crystal-curtain,
body[data-experience="ACT2_READY"] .crystal-curtain,
body[data-experience="ACT2_WAIT"] .crystal-curtain { opacity:0; visibility:hidden; }
body[data-phase="goddess"] .crystal-curtain { opacity:0; visibility:hidden; }
body[data-experience="CURTAIN_OPENING"] #world { opacity:0; }
body[data-experience="CURTAIN_OPENING"] .threshold-copy,
body[data-experience="CURTAIN_OPENING"] .crystal-hit span,
body[data-experience="CURTAIN_OPENING"] .sound-note { opacity:0; transition:opacity .35s ease; }

/* Act I: a moving pool of colour wakes inside an almost-black world. */
.garden video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; filter:none; transform:none; transition:none; }
.garden-freeze-frame { position:absolute; z-index:1; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; visibility:hidden; pointer-events:none; }
.garden-freeze-frame.active { opacity:1; visibility:visible; }
.garden::after { background:radial-gradient(ellipse at 50% 43%,transparent 38%,rgba(0,0,0,.16) 72%,rgba(0,0,0,.5) 100%); }
.garden-night-veil { --reveal-radius:14vmin; position:absolute; z-index:2; inset:-2px; pointer-events:none; background:#000; opacity:1; transition:opacity 1.35s cubic-bezier(.4,0,.6,1); }
.garden.has-reveal .garden-night-veil { background:rgba(0,0,0,.992); -webkit-mask-image:radial-gradient(ellipse calc(var(--reveal-radius) * 1.32) calc(var(--reveal-radius) * .84) at var(--mx,50%) var(--my,50%),rgb(0 0 0 / calc(1 - var(--reveal-strength,0))) 0 28%,rgb(0 0 0 / calc(1 - var(--reveal-strength,0) * .92)) 49%,rgb(0 0 0 / calc(1 - var(--reveal-strength,0) * .58)) 75%,#000 100%); mask-image:radial-gradient(ellipse calc(var(--reveal-radius) * 1.32) calc(var(--reveal-radius) * .84) at var(--mx,50%) var(--my,50%),rgb(0 0 0 / calc(1 - var(--reveal-strength,0))) 0 28%,rgb(0 0 0 / calc(1 - var(--reveal-strength,0) * .92)) 49%,rgb(0 0 0 / calc(1 - var(--reveal-strength,0) * .58)) 75%,#000 100%); }
body[data-experience="ACT1_AWAKEN"] .garden-night-veil,
body[data-experience="ACT1_PUSH"] .garden-night-veil,
body[data-experience="ACT1_STORM"] .garden-night-veil,
body[data-experience="GATE_WARNING"] .garden-night-veil,
body[data-experience="GATE_SUCTION"] .garden-night-veil,
body[data-experience="ACT2_WAIT"] .garden-night-veil { opacity:0; }
.garden-copy,.awaken-meter { opacity:0; transition:opacity .8s ease; }
body[data-experience="ACT1_EXPLORE"] .awaken-meter { opacity:.42; }
body[data-experience="ACT1_AWAKEN"] .garden-copy,
body[data-experience="ACT1_AWAKEN"] .awaken-meter,
body[data-experience="ACT1_PUSH"] .garden-copy,
body[data-experience="ACT1_PUSH"] .awaken-meter,
body[data-experience="GATE_WARNING"] .garden-copy,
body[data-experience="GATE_SUCTION"] .garden-copy,
body[data-experience="ACT2_WAIT"] .garden-copy { opacity:1; }
body[data-experience="ACT1_PUSH"] .garden video,
body[data-experience="ACT2_WAIT"] .garden video { transform:none; }
.garden-grade { z-index:3; mix-blend-mode:soft-light; opacity:.55; transition:opacity 1.2s ease; }
body[data-experience="ACT1_EXPLORE"] .garden-grade { opacity:.18; }
body[data-experience="ACT1_AWAKEN"] .garden-grade { opacity:0; transition-duration:.75s; }
body[data-experience="ACT1_PUSH"] .garden-grade,
body[data-experience="GATE_WARNING"] .garden-grade,
body[data-experience="GATE_SUCTION"] .garden-grade,
body[data-experience="ACT2_WAIT"] .garden-grade { opacity:0; }
.opening-storm{position:absolute;z-index:8;inset:-2%;pointer-events:none;background:#010106;opacity:0;visibility:hidden;will-change:opacity}
.opening-storm i{position:absolute;inset:0;opacity:0;mix-blend-mode:screen}
.opening-storm i:first-child{background:radial-gradient(ellipse at 68% 18%,rgba(235,241,255,.55) 0 5%,rgba(160,181,235,.2) 17%,rgba(80,99,158,.06) 34%,transparent 58%)}
.opening-storm i:last-child{background:radial-gradient(ellipse at 30% 22%,rgba(226,235,255,.42) 0 5%,rgba(145,168,225,.16) 18%,rgba(71,88,145,.05) 35%,transparent 56%)}
.opening-storm i::after{content:"";position:absolute;width:3px;height:34vh;top:4vh;opacity:0;background:linear-gradient(#f5f7ff,#c7d7ff 42%,transparent);filter:drop-shadow(0 0 5px rgba(221,231,255,.85));clip-path:polygon(40% 0,100% 0,58% 39%,100% 39%,16% 100%,43% 52%,0 52%);transform:rotate(8deg);transform-origin:top}
.opening-storm i:first-child::after{left:69%;animation:openingBoltA 1.7s linear both}
.opening-storm i:last-child::after{left:29%;top:10vh;height:27vh;transform:rotate(-7deg);animation:openingBoltB 1.7s linear both}
body[data-experience="ACT1_STORM"] .garden{opacity:1;visibility:visible;transition:none}
body[data-experience="ACT1_STORM"] .opening-storm{visibility:visible;animation:openingStormBlack 1.7s linear both}
body[data-experience="ACT1_STORM"] .opening-storm i:first-child{animation:openingFlashA 1.7s ease-out both}
body[data-experience="ACT1_STORM"] .opening-storm i:last-child{animation:openingFlashB 1.7s ease-out both}
@keyframes openingStormBlack{0%,8%,30%,50%,76%,100%{opacity:.97}14%{opacity:.12}21%{opacity:.58}61%{opacity:.2}68%{opacity:.68}}
@keyframes openingFlashA{0%,7%,28%,100%{opacity:0}13%{opacity:.35}20%{opacity:.12}}
@keyframes openingFlashB{0%,50%,75%,100%{opacity:0}59%{opacity:.27}67%{opacity:.08}}
@keyframes openingBoltA{0%,12%,18%,100%{opacity:0}13%,16%{opacity:.82}14%,17%{opacity:.18}}
@keyframes openingBoltB{0%,57%,64%,100%{opacity:0}58%,61%{opacity:.58}59%,63%{opacity:.12}}
.gate-transition{position:absolute;z-index:9;inset:0;pointer-events:none;opacity:0;overflow:hidden}
.gate-lightning,.gate-suction{position:absolute;inset:-4%}
.gate-lightning{opacity:0;background:radial-gradient(ellipse at 62% 24%,rgba(235,240,255,.58) 0 5%,rgba(173,190,240,.24) 15%,rgba(102,119,178,.07) 34%,transparent 62%);mix-blend-mode:screen}
.gate-suction{opacity:0;inset:-22%;background:radial-gradient(circle at 50% 46%,rgba(236,238,255,.12) 0 3%,transparent 8%,rgba(9,9,19,.12) 17%,rgba(0,0,3,.76) 44%,#000 76%);transform:none}
.gate-suction::after{content:"";position:absolute;inset:0;background:#000;opacity:0;animation:gateBlackout .95s cubic-bezier(.55,.02,.75,.34) both}
.gate-leaf{position:absolute;left:50%;top:47%;width:20px;height:40px;transform:translate(-50%,-50%) scale(.72) rotate(-32deg);font-size:0;border-radius:100% 0 100% 0;background:linear-gradient(135deg,rgba(237,246,239,.9),rgba(115,167,151,.3));box-shadow:0 0 20px #d9dcff,0 0 55px rgba(178,155,255,.55);opacity:0}
.gate-leaf::after{content:"";position:absolute;left:48%;top:12%;width:1px;height:78%;background:rgba(240,255,245,.6);transform:rotate(-4deg)}
body[data-experience="GATE_WARNING"] .gate-transition,body[data-experience="GATE_SUCTION"] .gate-transition{opacity:1}
body[data-experience="GATE_WARNING"] .garden{animation:gateTremor .42s .22s cubic-bezier(.36,.07,.19,.97) both}
body[data-experience="GATE_WARNING"] .gate-lightning{animation:gateFlash .7s ease-out both}
body[data-experience="GATE_WARNING"] .gate-leaf{animation:gateLeaf .7s ease-out both}
body[data-experience="GATE_SUCTION"] .gate-suction{animation:gateSuction .95s cubic-bezier(.55,.02,.75,.34) both}
body[data-experience="GATE_SUCTION"] .garden video{animation:gateCameraPull .95s cubic-bezier(.4,0,.8,.2) both}
body[data-experience="GATE_SUCTION"] .gate-leaf{animation:gateLeafSuction .95s cubic-bezier(.4,0,.8,.2) both}
@keyframes gateFlash{0%,100%{opacity:0}9%{opacity:.08}18%{opacity:.58}34%{opacity:.32}55%{opacity:.04}72%{opacity:.18}82%{opacity:0}}
@keyframes gateTremor{0%,100%{transform:translate3d(0,0,0)}18%{transform:translate3d(-2px,1px,0)}38%{transform:translate3d(2px,-1px,0)}62%{transform:translate3d(-1px,1px,0)}82%{transform:translate3d(1px,0,0)}}
@keyframes gateLeaf{0%{opacity:0;transform:translate(-50%,-50%) scale(.72) rotate(-32deg)}45%,100%{opacity:.85;transform:translate(-50%,-50%) scale(1) rotate(-25deg)}}
@keyframes gateSuction{0%{opacity:0}25%{opacity:.28}100%{opacity:1}}
@keyframes gateBlackout{0%,42%{opacity:0}76%{opacity:.38}100%{opacity:1}}
@keyframes gateCameraPull{0%{transform:scale(1)}65%{transform:scale(1.018)}100%{transform:scale(1.035)}}
@keyframes gateLeafSuction{0%{opacity:.8;transform:translate(-50%,-50%) scale(1) rotate(-25deg)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(-18deg)}}
.garden-copy,.awaken-meter { z-index:4; }
body:not([data-experience="ACT2_PLAYING"]):not([data-experience="ACT2_FINAL_HOLD"]):not([data-experience="PORTALS_REVEAL"]):not([data-experience="PORTFOLIO_READY"]) .chapter-rail,
body:not([data-experience="ACT2_PLAYING"]):not([data-experience="ACT2_FINAL_HOLD"]):not([data-experience="PORTALS_REVEAL"]):not([data-experience="PORTFOLIO_READY"]) .willow-secret { opacity:0; visibility:hidden; pointer-events:none; }
@media (max-width:780px) { .crystal-curtain-panel{width:50.3%;}.crystal-curtain-left{left:0;}.crystal-curtain-right{right:0;}.garden-night-veil{--reveal-radius:calc(72px + var(--awaken,0) * 18vw);} }
@media (max-aspect-ratio: 4/5) { .garden video { object-position:52% 50%; } }
@media (max-aspect-ratio: 4/5) { .garden::after { background:radial-gradient(ellipse at 52% 45%,transparent 36%,rgba(0,0,0,.15) 72%,rgba(0,0,0,.48) 100%); } }
body[data-phase="garden"] .grain { opacity:.07; }

.sound-toggle{position:fixed;z-index:80;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));display:flex;align-items:center;gap:.48rem;min-height:44px;padding:.55rem .8rem;border:1px solid rgba(238,229,255,.2);border-radius:99px;background:rgba(7,6,13,.58);color:rgba(247,241,255,.86);backdrop-filter:blur(8px);cursor:pointer}
.sound-toggle span{font-size:1rem;filter:drop-shadow(0 0 8px #bfc9ff)}.sound-toggle b{font:500 .56rem/1 Arial;letter-spacing:.16em}.sound-toggle[aria-pressed="false"]{opacity:.55}
.narrator-caption{position:fixed;z-index:70;left:50%;bottom:max(3.5vh,2rem);width:min(42rem,82vw);transform:translate(-50%,.6rem);text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,transform .55s ease,visibility .55s}
.narrator-caption.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.narrator-caption p{display:inline-block;margin:0;padding:.5rem .9rem;border-radius:99px;background:rgba(3,4,10,.4);font:400 clamp(.88rem,1.25vw,1.08rem)/1.7 Georgia,"Songti SC",serif;letter-spacing:.09em;color:rgba(243,239,247,.9);text-shadow:0 2px 14px #000}
body[data-phase="goddess"] .narrator-caption{bottom:max(2.5vh,1.2rem)}
.story-leaf{position:fixed;z-index:23;left:50%;top:70%;width:20px;height:40px;transform:translate(-50%,-50%);pointer-events:none;opacity:.72;filter:drop-shadow(0 0 10px rgba(194,225,220,.55));transition:left 1.2s ease,top 1.2s ease,opacity .6s ease,transform 1.2s ease}
.story-leaf i{display:block;width:100%;height:100%;border-radius:100% 0 100% 0;background:linear-gradient(135deg,rgba(237,246,239,.88),rgba(115,167,151,.25));transform:rotate(-32deg);animation:leafBreathe 3.8s ease-in-out infinite alternate}
.story-leaf i::after{content:"";position:absolute;left:48%;top:12%;width:1px;height:78%;background:rgba(240,255,245,.55);transform:rotate(-4deg)}
body[data-experience="CURTAIN_OPENING"] .story-leaf{left:52%;top:56%;transform:translate(-50%,-50%) scale(.82)}
body[data-experience="ACT1_BLACK"] .story-leaf{left:50%;top:49%;opacity:.18;transform:translate(-50%,-50%) scale(.62)}
body[data-experience="ACT1_EXPLORE"] .story-leaf{left:var(--mx,50%);top:var(--my,50%);z-index:8;opacity:.8}
body[data-experience="ACT1_AWAKEN"] .story-leaf,body[data-experience="ACT1_PUSH"] .story-leaf{left:51%;top:42%;z-index:8;opacity:.68;transform:translate(-50%,-50%) scale(.7)}
body[data-experience="GATE_WARNING"] .story-leaf,body[data-experience="GATE_SUCTION"] .story-leaf,body[data-phase="goddess"] .story-leaf{opacity:0}
@keyframes leafBreathe{to{transform:rotate(-25deg) translate3d(3px,-6px,0)}}

.willow-secret{--pull:0px;left:50%;right:auto;top:max(calc(env(safe-area-inset-top) + 10px),1.2vh);bottom:auto;width:min(23rem,78vw);height:5.8rem;transform:translate3d(-50%,var(--pull),0);touch-action:none;cursor:ns-resize;opacity:.82;transition:opacity .35s ease,transform .55s cubic-bezier(.16,.8,.24,1)}
.willow-secret:hover,.willow-secret:focus-visible{transform:translate3d(-50%,calc(var(--pull) + 4px),0);opacity:1;outline:none}
.willow-secret:focus-visible{filter:drop-shadow(0 0 12px rgba(229,211,255,.55))}
.willow-secret.pulling{transition:none}
.willow-crystal-leaf{position:absolute;left:50%;top:0;width:20px;height:40px;transform:translateX(-50%) rotate(140deg);filter:drop-shadow(0 0 11px rgba(198,225,229,.65));animation:willowLeafFloat 3.2s ease-in-out infinite alternate}
.willow-crystal-leaf i{display:block;width:100%;height:100%;border:1px solid rgba(239,251,248,.46);border-radius:100% 0 100% 0;background:linear-gradient(135deg,rgba(244,252,250,.88),rgba(114,161,161,.18));box-shadow:inset 0 0 9px rgba(255,255,255,.2)}
.willow-crystal-leaf i::after{content:"";position:absolute;left:48%;top:12%;width:1px;height:78%;background:rgba(245,255,252,.66)}
.willow-secret p{position:absolute;left:50%;right:auto;top:2.65rem;margin:0;transform:translateX(-50%);white-space:nowrap;text-align:center;font-size:.58rem;line-height:1.65;letter-spacing:.16em;color:rgba(191,181,199,.74)}
.willow-secret p span{color:rgba(235,217,228,.9)}
.willow-secret::after{content:"";position:absolute;left:50%;top:4.7rem;width:1px;height:max(8px,calc(var(--pull) * .42));background:linear-gradient(rgba(235,215,229,.8),transparent);box-shadow:0 0 10px rgba(230,175,192,.65)}
@keyframes willowLeafFloat{to{transform:translateX(-50%) translateY(4px) rotate(144deg)}}
.fate-choices .delayed-choice[hidden]{display:none}
.fate-choices .delayed-choice{opacity:0;filter:blur(5px);transform:translateY(10px);pointer-events:none}
.fate-choices .delayed-choice.is-visible{animation:fateDefyReveal 1.4s cubic-bezier(.16,.8,.24,1) forwards;pointer-events:auto}
@keyframes fateDefyReveal{to{opacity:1;filter:blur(0);transform:translateY(0)}}
.fate-story.coda-reading .fate-question{white-space:pre-line;min-height:8.5em;transition:opacity .45s ease,transform .45s ease}
.fate-story.coda-reading .fate-choices{display:none}

.secret-overlay { grid-template-columns: minmax(18rem, 40vw) minmax(24rem, 42rem); place-content: stretch; align-items: center; gap: 5vw; padding: 8vh 7vw; text-align: left; isolation:isolate; }
.secret-overlay::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 24% 28%,rgba(205,151,174,.2),transparent 24%),radial-gradient(circle at 75% 65%,rgba(96,66,106,.2),transparent 32%),linear-gradient(120deg,rgba(255,255,255,.025),transparent 36%);animation:fateVeil 10s ease-in-out infinite alternate}.secret-overlay.open .fate-portrait{animation:fate-arrive .85s cubic-bezier(.16,.8,.24,1) both}.secret-overlay.open .fate-story{animation:fate-copy-arrive .7s .16s cubic-bezier(.16,.8,.24,1) both}@keyframes fateVeil{to{transform:scale(1.04) translate3d(-1%,1%,0)}}@keyframes fate-arrive{from{opacity:0;transform:translate3d(-3%,5%,0) scale(.95)}}@keyframes fate-copy-arrive{from{opacity:0;transform:translate3d(2rem,0,0)}}
.fate-portrait { position: relative; height: 76vh; overflow: hidden; border: 1px solid rgba(255,231,239,.18); border-radius: 48% 48% 8% 8% / 22% 22% 5% 5%; box-shadow: 0 35px 100px rgba(0,0,0,.55), inset 0 0 50px rgba(255,255,255,.04); }
.fate-portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(8,5,9,.82)); }
.fate-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; animation: fateBreath 7s ease-in-out infinite alternate; }
@keyframes fateBreath { to { transform: scale(1.035) translateY(-.5%); filter: brightness(1.08); } }
.fate-story { position: relative; z-index: 2; }
.fate-kicker { font: 600 .6rem Arial; letter-spacing: .35em; color: #dba7b5; }
.fate-story h2 { font-size: clamp(2.7rem, 5vw, 6rem); line-height: 1.05; margin: 1rem 0 1.8rem; }
.fate-question { max-width: 38rem; font-family: Georgia, "Songti SC", serif; font-size: clamp(.95rem, 1.3vw, 1.25rem); line-height: 1.9; color: #d2c5ca; }
.fate-choices { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }
.fate-choices button { border: 1px solid rgba(255,231,239,.3); border-radius: 99px; padding: .85rem 1.35rem; background: rgba(255,255,255,.025); color: #d8cbd0; cursor: pointer; letter-spacing: .08em; transition: .3s; }
.fate-choices button:hover,.fate-choices button:focus-visible { border-color: #f5dce4; color: white; box-shadow: 0 0 24px rgba(224,160,180,.15); outline:none; }
.fate-note { margin-top: 1.5rem; font-size: .62rem; letter-spacing: .12em; color: #776c71; }
.fate-payment { width: min(15rem, 45vw); margin-top: 1.5rem; border-radius: 1rem; box-shadow: 0 20px 60px #000; }
@media(max-width:780px){.secret-overlay{display:block;padding:10vh 7vw 8vh;overflow:auto}.fate-portrait{height:38vh;margin-bottom:1.6rem}.fate-story h2{font-size:clamp(2.2rem,10vw,3.4rem);margin:.65rem 0 1rem}.fate-question{font-size:.92rem;line-height:1.75}.fate-choices{display:grid;margin-top:1.4rem}.fate-choices button{min-height:48px}.secret-close{position:fixed;z-index:4;top:2rem;right:1.2rem;background:rgba(6,4,8,.78);backdrop-filter:blur(10px)}}
@media(max-width:780px){.willow-secret{top:max(calc(env(safe-area-inset-top) + 8px),1vh);width:min(21rem,74vw);height:5.4rem}.willow-crystal-leaf{width:18px;height:36px}.willow-secret p{top:2.35rem;font-size:.53rem}}
@media(max-aspect-ratio:4/5){.opening-storm i:first-child{background:radial-gradient(ellipse at 72% 16%,rgba(235,241,255,.5) 0 5%,rgba(160,181,235,.17) 17%,rgba(80,99,158,.05) 34%,transparent 58%)}.opening-storm i:last-child{background:radial-gradient(ellipse at 28% 20%,rgba(226,235,255,.37) 0 5%,rgba(145,168,225,.13) 18%,rgba(71,88,145,.04) 35%,transparent 56%)}}
@media(max-width:780px){.sound-toggle b{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.sound-toggle{width:44px;justify-content:center;padding:0}.willow-secret{width:min(18rem,64vw)}.willow-secret p{white-space:normal;width:100%;line-height:1.5}}
@media(prefers-reduced-motion:reduce){.secret-overlay::before,.secret-overlay.open .fate-portrait,.secret-overlay.open .fate-story,.fate-portrait img,.willow-crystal-leaf{animation:none}.fate-choices .delayed-choice.is-visible{animation-duration:.2s}body[data-experience="ACT1_STORM"] .opening-storm{animation:openingStormReduced 1.7s linear both}body[data-experience="ACT1_STORM"] .opening-storm i:first-child{animation:openingFlashReduced 1.7s ease-out both}body[data-experience="ACT1_STORM"] .opening-storm i:last-child{animation:none}@keyframes openingStormReduced{0%,8%,30%,100%{opacity:.96}14%{opacity:.68}}@keyframes openingFlashReduced{0%,8%,25%,100%{opacity:0}14%{opacity:.16}}}

/* ACT II continuous camera + articulated arm pass */
.goddess-plate { transition:none; transform-origin:50% 44%; }
.goddess-motion { position:absolute; inset:0; z-index:3; width:100%; height:100%; object-fit:cover; object-position:50% 35%; opacity:0; pointer-events:none; clip-path:ellipse(18% 8.5% at 43% 33%); filter:saturate(.9) contrast(1.03); transition:none; }
.goddess.motion-ready .goddess-motion { opacity:0; }
.goddess[data-motion-approved="true"].motion-ready .goddess-motion { clip-path:none; opacity:1; }
.goddess[data-motion-approved="true"].motion-ready .goddess-image { opacity:0 !important; }
.goddess-image.closed { z-index:1; opacity:1; }
.goddess-image.open { z-index:2; opacity:var(--eye-progress,0) !important; transition:none; }
.goddess-image.closed { opacity:1 !important; }
.goddess-arm-3d { display:none !important; position:absolute; z-index:4; inset:0; width:100%; height:100%; pointer-events:none; opacity:0; transition:opacity .5s ease; }
.goddess.webgl-character-ready .goddess-arm-3d { opacity:1; }
.goddess.webgl-character-ready .goddess-image { opacity:0 !important; }
.goddess[data-motion-approved="false"] .goddess-arm-3d,
.goddess[data-motion-approved="false"] .archive-orbit { display:none !important; }
.goddess-focus-glow { position:absolute; z-index:5; left:var(--focus-x,43%); top:var(--focus-y,31%); width:10vw; height:10vw; border-radius:50%; transform:translate(-50%,-50%); background:radial-gradient(circle,rgba(255,237,242,.11),rgba(255,188,210,.018) 34%,transparent 68%); filter:blur(16px); mix-blend-mode:screen; pointer-events:none; }
.archive-orbit { perspective:1100px; transform-style:preserve-3d; transform-origin:var(--palm-x,68vw) var(--palm-y,58vh); }
.goddess-foreground-matte { position:absolute; z-index:7; inset:0; width:100%; height:100%; pointer-events:none; opacity:0; transition:opacity .28s ease; }
.goddess.portals-visible .goddess-foreground-matte { opacity:1; }
.goddess-start{position:absolute;z-index:10;left:50%;bottom:8vh;width:min(30rem,86vw);transform:translate(-50%,1rem);display:grid;justify-items:center;gap:.75rem;text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .6s ease,transform .6s cubic-bezier(.16,.8,.24,1),visibility .6s}
.goddess-start p{margin:0;font-family:Georgia,"Songti SC",serif;font-size:clamp(1.05rem,1.7vw,1.4rem);letter-spacing:.1em;text-shadow:0 2px 18px #000}
.goddess-start button{min-width:9.5rem;min-height:48px;border:1px solid rgba(255,232,240,.55);border-radius:99px;background:rgba(8,5,10,.58);box-shadow:0 0 30px rgba(231,173,196,.14),inset 0 0 18px rgba(255,255,255,.04);cursor:pointer;letter-spacing:.2em;backdrop-filter:blur(5px)}
.goddess-start button:hover,.goddess-start button:focus-visible{outline:1px solid #f4dbe3;outline-offset:4px;box-shadow:0 0 38px rgba(231,173,196,.28)}
.goddess-start small{font-size:.62rem;letter-spacing:.12em;color:rgba(225,210,217,.68)}
.goddess.awaiting-awakening .goddess-start{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.memory-reveal{position:absolute;z-index:9;left:50%;bottom:8vh;width:min(46rem,88vw);transform:translate(-50%,.75rem);text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,transform .7s ease,visibility .7s}
.memory-reveal p{margin:0;font-family:Georgia,"Songti SC",serif;font-size:clamp(1rem,1.6vw,1.35rem);letter-spacing:.1em;text-shadow:0 2px 20px #000}
.goddess.memory-revealing .memory-reveal{opacity:1;visibility:visible;transform:translate(-50%,0)}
.goddess.portals-visible .memory-reveal{opacity:0;visibility:hidden}
.archive-card { left:calc(var(--palm-x,68vw) + var(--offset-x)); top:calc(var(--palm-y,58vh) + var(--offset-y)); transition:opacity .45s ease,transform .45s cubic-bezier(.16,.8,.24,1),border-color .3s,box-shadow .3s; }
.goddess:not(.portals-visible) .archive-card{opacity:0 !important;visibility:hidden;transform:translate3d(-50%,-50%,var(--portal-z)) scale(calc(var(--portal-scale) * .94));}
.archive-card:disabled { pointer-events:none; }
.archive-card::before{min-width:44px;min-height:44px}
.archive-card:nth-child(1),.archive-card:nth-child(5) { filter:blur(.45px); opacity:.82; }
.archive-card:nth-child(3),.archive-card:nth-child(4) { filter:none; }
.archive-card:nth-child(2),.archive-card:nth-child(6) { filter:blur(.2px); }
.goddess.portals-visible .archive-card { visibility:visible; opacity:1; transform:translate3d(-50%,-50%,var(--portal-z)) scale(var(--portal-scale)); }
.goddess.portals-visible .archive-orbit { transform:rotate(var(--palm-angle,0deg)) scale(var(--palm-scale,1)); }
@media (min-aspect-ratio:4/5) {
  /* Keep the final system portal inside the 16:9 safe area without changing
     the approved palm track or the six-door visual composition. */
  .archive-card:nth-child(6){--offset-y:13vh!important}
}
@media (max-aspect-ratio:4/5) {
  .goddess-motion { object-position:58% 50%; }
  .goddess-foreground-matte{display:none}
  .archive-orbit{transform-origin:var(--palm-x,50vw) var(--palm-y,58vh)}
  .archive-card{width:9rem;height:5.7rem;padding:.8rem;backdrop-filter:blur(4px) saturate(1.2)}
  .archive-card b{font-size:.82rem}.archive-card small,.archive-card em{font-size:.56rem}
  .archive-card:nth-child(1){left:30vw!important;top:25vh!important;--portal-scale:.84!important}.archive-card:nth-child(2){left:70vw!important;top:27vh!important;--portal-scale:.9!important}
  .archive-card:nth-child(3){left:25vw!important;top:40vh!important;--portal-scale:.84!important}.archive-card:nth-child(4){left:74vw!important;top:43vh!important;--portal-scale:.86!important}
  .archive-card:nth-child(5){left:27vw!important;top:77vh!important;--portal-scale:.82!important}.archive-card:nth-child(6){left:73vw!important;top:80vh!important;--portal-scale:.86!important}
  .sound-toggle b{display:none}.sound-toggle{padding:.55rem .7rem}
}
@media(prefers-reduced-motion:reduce){body[data-experience="GATE_WARNING"] .garden{animation:none}.gate-lightning{animation-duration:.25s!important}.gate-suction{animation-duration:.28s!important}.archive-card{transition-duration:.2s}.goddess-start,.memory-reveal{transition-duration:.2s}.crystal-chain-wind i,.story-leaf i{animation:none}}

.identity-anchor{display:grid;gap:.28rem;margin:0 0 1.35rem;color:rgba(246,239,240,.72);font-size:.67rem;letter-spacing:.13em}.identity-anchor b{font:600 .58rem Arial,sans-serif;letter-spacing:.3em;color:rgba(246,239,240,.9)}
.career-echo-trigger{position:fixed;z-index:44;left:50%;bottom:max(18px,calc(env(safe-area-inset-bottom) + 14px));display:none;min-height:52px;padding:.65rem 1.25rem;border:1px solid rgba(239,211,222,.32);border-radius:999px;background:rgba(8,7,12,.72);color:#eee3e7;backdrop-filter:blur(14px);transform:translateX(-50%);cursor:pointer;box-shadow:0 0 30px rgba(208,154,177,.1)}body[data-experience="PORTFOLIO_READY"] .career-echo-trigger{display:grid;grid-template-columns:auto auto;gap:.12rem .75rem;align-items:center}.career-echo-trigger span{grid-row:1/3;font:600 .5rem Arial;letter-spacing:.22em;color:#d6a9b7}.career-echo-trigger b{font:400 .78rem Georgia,"Songti SC",serif;letter-spacing:.08em}.career-echo-trigger small{color:#8f8187;font-size:.55rem;letter-spacing:.14em}
.career-echo{position:fixed;z-index:88;inset:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(17rem,.65fr);gap:clamp(2rem,6vw,7rem);align-items:center;padding:clamp(4rem,8vw,9rem);background:radial-gradient(circle at 78% 35%,rgba(117,74,105,.2),transparent 28%),radial-gradient(circle at 18% 72%,rgba(91,112,146,.14),transparent 33%),rgba(4,4,8,.97);opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s}.career-echo.open{opacity:1;visibility:visible}.career-echo::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.025) 46%,transparent 62%)}.career-echo-close{position:absolute;z-index:2;right:max(18px,calc(env(safe-area-inset-right) + 18px));top:max(18px,calc(env(safe-area-inset-top) + 18px));min-height:44px;padding:.6rem 1rem;border:1px solid rgba(245,225,234,.3);border-radius:999px;background:rgba(5,5,9,.6);color:#ddd0d5;cursor:pointer}.career-echo-copy{position:relative;z-index:1;max-width:60rem}.career-echo h2{max-width:13em;margin:.65rem 0 1rem;font-size:clamp(2.4rem,5vw,6rem);line-height:1.08}.career-position{color:#e3b8c5;letter-spacing:.12em}.career-lead{max-width:50rem;color:#c8bbc0;font:400 clamp(.88rem,1.2vw,1.12rem)/1.9 Georgia,"Songti SC",serif}.career-proof{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0}.career-proof b{min-width:10.5rem;padding:1rem 1.15rem;border:1px solid rgba(236,211,222,.18);border-radius:1rem;background:rgba(255,255,255,.025)}.career-proof strong,.career-proof small{display:block}.career-proof strong{font:400 1.25rem Georgia;color:#f1d6df}.career-proof small{margin-top:.35rem;color:#8e7e84;font-size:.58rem;letter-spacing:.1em}.career-seeking{color:#9fb9c7}.career-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}.career-actions a,.career-actions button{display:inline-grid;place-items:center;min-height:48px;padding:.75rem 1.25rem;border:1px solid rgba(242,218,228,.32);border-radius:999px;background:rgba(255,255,255,.035);color:#eee1e6;text-decoration:none;cursor:pointer}.career-contact{position:relative;z-index:1;padding:1.2rem;border:1px solid rgba(245,225,234,.22);border-radius:2rem;background:rgba(255,255,255,.035);opacity:.35;transform:translateY(8px);transition:.55s;pointer-events:none}.career-contact.revealed{opacity:1;transform:none;pointer-events:auto}.career-contact p{font:600 .52rem Arial;letter-spacing:.25em;color:#cf9dac}.career-contact h3{font:400 1.6rem Georgia;margin:.5rem 0 1rem}.career-contact img{display:block;width:100%;max-height:44vh;object-fit:contain;border-radius:1.2rem;filter:sepia(.12) contrast(1.04)}.career-contact small{display:block;margin-top:.8rem;color:#94858b;line-height:1.6}
@media(max-width:780px){.identity-anchor{max-width:85vw;margin-bottom:.9rem;font-size:.58rem}.career-echo-trigger{bottom:max(12px,calc(env(safe-area-inset-bottom) + 9px));width:min(88vw,25rem)}.career-echo{display:block;padding:max(5.5rem,calc(env(safe-area-inset-top) + 4.5rem)) 6vw max(4rem,calc(env(safe-area-inset-bottom) + 3rem));overflow:auto}.career-echo h2{font-size:clamp(2.2rem,10vw,3.6rem)}.career-position{font-size:.72rem;line-height:1.65}.career-lead{font-size:.88rem}.career-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.career-proof b{min-width:0;padding:.7rem}.career-proof strong{font-size:.92rem}.career-proof small{font-size:.48rem}.career-actions{display:grid}.career-contact{margin-top:1.5rem}.career-contact img{max-height:none}.career-contact:not(.revealed){display:none}}

/* Career finale remains a single, isolated cinematic layer; the QR is never filtered. */
.career-echo{z-index:110;overflow:auto;padding-left:max(clamp(4rem,8vw,9rem),env(safe-area-inset-left));padding-right:max(clamp(4rem,8vw,9rem),env(safe-area-inset-right))}
.career-contact img{background:#fff;filter:none}.mobile-contact-hint{display:none}
body.career-modal-open .willow-secret,body.career-modal-open .sound-toggle,body.career-modal-open .privacy-consent{opacity:0!important;pointer-events:none!important}
@media(max-width:780px){.career-echo{padding-top:max(5.5rem,calc(env(safe-area-inset-top) + 4.5rem));padding-right:max(6vw,env(safe-area-inset-right));padding-bottom:max(4rem,calc(env(safe-area-inset-bottom) + 3rem));padding-left:max(6vw,env(safe-area-inset-left))}.desktop-contact-hint{display:none}.mobile-contact-hint{display:inline}}
@media(max-height:760px) and (min-width:781px){.career-echo{align-items:start;padding-top:5rem;padding-bottom:3rem}.career-echo h2{font-size:clamp(2.2rem,4.4vw,4.2rem)}.career-contact img{max-height:55vh}}

/* Project galleries: copy remains readable beside the real product demo. */
@media (min-width:781px){
  .archive-stage[data-archive="5"] .archive-stage-copy,
  .archive-stage[data-archive="6"] .archive-stage-copy{left:5vw;top:50%;width:25vw}
  .archive-stage[data-archive="5"] .archive-stage-copy h2,
  .archive-stage[data-archive="6"] .archive-stage-copy h2{font-size:clamp(2.6rem,4.4vw,4.8rem)}
}
