:root{
  --ink:#f7f4ff;
  --mute:rgba(247,244,255,.72);
  --dim:rgba(247,244,255,.42);
  --line:rgba(255,255,255,.14);
  --gold:#ffe27a;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Syne',system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --iris:linear-gradient(120deg,#ff6bcb,#b388ff,#4da3ff,#5ef0c0,#ffe66d,#ff8a5c,#ff6bcb);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--sans);color:var(--ink);
  background:#05040a;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
a{color:inherit}

.world{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.world-void{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 110%, rgba(20,8,40,.95), transparent 55%),
    radial-gradient(circle at 50% 45%, rgba(40,20,80,.35), transparent 50%),
    linear-gradient(180deg,#02010a 0%,#0a0618 45%,#05040a 100%);
}
.rabbit-hole{
  position:absolute;left:50%;top:42%;
  width:min(72vw,520px);aspect-ratio:1;
  transform:translate(-50%,-50%) scale(.92);
  opacity:.55;transition:opacity .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1);
}
body.scene-hole .rabbit-hole{opacity:.95;transform:translate(-50%,-48%) scale(1.08)}
body.scene-dna .rabbit-hole{opacity:.35}
body.scene-matrix .rabbit-hole{opacity:.4}
.hole-ring{
  position:absolute;inset:0;border-radius:50%;
  border:2px solid transparent;
  background:
    linear-gradient(#05040a,#05040a) padding-box,
    conic-gradient(from 0deg,#ff6bcb,#7b5cff,#4da3ff,#5ef0c0,#ffe66d,#ff6bcb) border-box;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  animation:spin 14s linear infinite;
}
.hole-ring.r1{inset:8%;animation-duration:18s;opacity:.9}
.hole-ring.r2{inset:22%;animation-duration:12s;animation-direction:reverse;opacity:.75}
.hole-ring.r3{inset:36%;animation-duration:9s;opacity:.6}
.hole-core{
  position:absolute;inset:44%;border-radius:50%;
  background:radial-gradient(circle,#000 30%,rgba(80,40,160,.5) 55%,transparent 70%);
  box-shadow:0 0 60px rgba(125,249,255,.25),inset 0 0 40px #000;
  animation:holePulse 3.5s ease-in-out infinite;
}
.hole-fall{
  position:absolute;inset:20%;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.04) 0 8deg,transparent 8deg 16deg);
  animation:spin 22s linear infinite;opacity:.5;
  -webkit-mask:radial-gradient(circle,transparent 28%,#000 45%,transparent 70%);
  mask:radial-gradient(circle,transparent 28%,#000 45%,transparent 70%);
}
@keyframes holePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
#fxDna,#fxMatrix{position:absolute;inset:0;width:100%;height:100%}
#fxDna{opacity:.85;mix-blend-mode:screen}
#fxMatrix{opacity:.55;mix-blend-mode:screen}
body.scene-matrix #fxMatrix{opacity:.82}
body.scene-dna #fxDna{opacity:1}
body.scene-hole #fxDna{opacity:.45}
body.scene-hole #fxMatrix{opacity:.35}
.aurora{
  position:absolute;inset:-30%;
  background:
    radial-gradient(ellipse 45% 40% at 20% 25%, rgba(255,107,203,.45), transparent 55%),
    radial-gradient(ellipse 40% 35% at 82% 18%, rgba(77,163,255,.4), transparent 52%),
    radial-gradient(ellipse 50% 45% at 55% 85%, rgba(123,92,255,.4), transparent 55%),
    radial-gradient(ellipse 35% 30% at 12% 78%, rgba(94,240,192,.28), transparent 50%),
    radial-gradient(ellipse 30% 28% at 90% 70%, rgba(255,230,109,.22), transparent 48%);
  filter:blur(18px) saturate(1.4);
  animation:auroraDrift 14s ease-in-out infinite alternate;
  mix-blend-mode:screen;opacity:.7;
}
.aurora-spin{
  position:absolute;inset:-40%;
  background:conic-gradient(from 40deg,rgba(255,107,203,.2),rgba(123,92,255,.18),rgba(77,163,255,.18),rgba(94,240,192,.14),rgba(255,230,109,.12),rgba(255,107,203,.2));
  animation:spin 32s linear infinite;mix-blend-mode:color-dodge;opacity:.28;
}
.vignette{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at center, transparent 28%, rgba(5,4,10,.5) 68%, rgba(5,4,10,.92) 100%);
}
.noise{
  position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.door-drop .bg{
  background:
    radial-gradient(circle at 50% 120%, rgba(0,0,0,.9), transparent 55%),
    conic-gradient(from 180deg, rgba(255,107,203,.45), rgba(77,163,255,.35), rgba(94,240,192,.3), rgba(255,107,203,.45)) !important;
  background-size:auto,200% 200% !important;
  animation:irisShift 8s ease infinite;
  opacity:.78 !important;
}
.door-drop[data-v="1"] .bg{filter:hue-rotate(90deg)}
.door-drop[data-v="2"] .bg{filter:hue-rotate(180deg)}
.jigsaw.abstract .jig-tile{
  background-image:none !important;
  background:linear-gradient(135deg, rgba(255,107,203,.55), rgba(77,163,255,.4)) !important;
}
.jigsaw.abstract .jig-tile:nth-child(2){filter:hue-rotate(50deg) brightness(.92)}
.jigsaw.abstract .jig-tile:nth-child(3){filter:hue-rotate(120deg)}

.puzzle-preview{
  width:min(180px,46vw);margin:0 auto 1rem;text-align:center;
}
.puzzle-preview-label{
  display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin-bottom:.35rem;
}
.puzzle-preview-art{
  aspect-ratio:3/2;border-radius:10px;border:1px solid rgba(255,255,255,.25);
  background:
    radial-gradient(circle at 50% 45%, rgba(255,226,122,.55), transparent 28%),
    radial-gradient(circle at 30% 60%, rgba(255,107,203,.5), transparent 42%),
    radial-gradient(circle at 70% 55%, rgba(77,163,255,.55), transparent 40%),
    linear-gradient(145deg, #1a0a28 0%, #2a1050 40%, #0a2840 100%);
  box-shadow:inset 0 0 24px rgba(125,249,255,.15);
}
.puzzle-board{
  display:grid!important;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);
  gap:6px;width:min(100%,360px);margin:0 auto 1rem;aspect-ratio:3/2;
  padding:8px;border-radius:16px;flex-wrap:nowrap;min-height:0;
  background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.18);
}
.puzzle-board.solved{border-color:rgba(94,240,192,.55);box-shadow:0 0 28px rgba(94,240,192,.2)}
.puzzle-slot{
  position:relative;min-height:0;min-width:0!important;width:auto;height:auto;padding:0!important;
  border-radius:10px;overflow:visible;
  border:2px dashed rgba(255,255,255,.28)!important;
  background:rgba(255,255,255,.04)!important;
  display:grid!important;place-items:center;box-shadow:none!important;
}
.puzzle-slot.filled{
  border-style:solid!important;border-color:rgba(125,249,255,.35)!important;
  background:transparent!important;
}
.puzzle-ghost-num{
  position:absolute;font-family:var(--serif);font-size:1.4rem;opacity:.22;pointer-events:none;
  color:#fff;z-index:0;
}
.puzzle-slot.filled .puzzle-ghost-num{opacity:0}
.puzzle-tray-label{
  text-align:center;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin:.25rem 0 .5rem;
}
.puzzle-tray{
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
  min-height:4.5rem;margin-bottom:.75rem;
}
.puzzle-piece.piece{
  position:relative;width:4.6rem;height:4.6rem;min-width:0;padding:0;border:0;
  background:transparent;animation:none;box-shadow:none;cursor:pointer;isolation:isolate;
}
.puzzle-piece .puzzle-face{
  position:absolute;inset:8%;border-radius:8px;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,226,122,.7), transparent 28%),
    radial-gradient(circle at 30% 60%, rgba(255,107,203,.65), transparent 42%),
    radial-gradient(circle at 70% 55%, rgba(77,163,255,.7), transparent 40%),
    linear-gradient(145deg, #1a0a28 0%, #2a1050 40%, #0a2840 100%);
  background-size:300% 200%;
  background-position:calc(var(--px) * 50%) calc(var(--py) * 100%);
  box-shadow:0 4px 14px rgba(0,0,0,.45), inset 0 0 12px rgba(125,249,255,.2);
}
.puzzle-piece .puzzle-num{
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--serif);font-size:1.15rem;font-weight:700;color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.8);z-index:2;pointer-events:none;
}
.puzzle-piece.shape-0 .puzzle-face{clip-path:polygon(0% 0%,100% 0%,100% 65%,88% 65%,88% 100%,65% 100%,65% 88%,0% 88%)}
.puzzle-piece.shape-1 .puzzle-face{clip-path:polygon(12% 0%,88% 0%,88% 35%,100% 35%,100% 65%,88% 65%,88% 100%,12% 100%,12% 65%,0% 65%,0% 35%,12% 35%)}
.puzzle-piece.shape-2 .puzzle-face{clip-path:polygon(0% 0%,100% 0%,100% 88%,35% 88%,35% 100%,12% 100%,12% 65%,0% 65%)}
.puzzle-piece.shape-3 .puzzle-face{clip-path:polygon(0% 12%,35% 12%,35% 0%,65% 0%,65% 12%,100% 12%,100% 100%,0% 100%)}
.puzzle-piece.shape-4 .puzzle-face{clip-path:polygon(12% 0%,88% 0%,88% 12%,100% 12%,100% 88%,88% 88%,88% 100%,12% 100%,12% 88%,0% 88%,0% 12%,12% 12%)}
.puzzle-piece.shape-5 .puzzle-face{clip-path:polygon(0% 12%,65% 12%,65% 0%,88% 0%,88% 35%,100% 35%,100% 100%,0% 100%)}
.puzzle-slot .puzzle-piece{width:92%;height:92%;max-width:none}
.puzzle-piece.selected{
  outline:2px solid #ffe27a;outline-offset:2px;border-radius:12px;
  transform:scale(1.06);
}
.puzzle-piece.ghost{opacity:.35;pointer-events:none}
.order-card{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem;
  margin:1rem 0 1.25rem;padding:1rem 1.1rem;border-radius:16px;
  background:rgba(125,249,255,.08);border:1px solid rgba(125,249,255,.3);
}
.order-card-label{
  width:100%;text-align:center;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dim);
}
.order-card-code{
  font-family:ui-monospace,monospace;font-size:1.15rem;letter-spacing:.08em;
  color:#9ef7ff;
}

.flash{
  position:fixed;inset:0;z-index:40;pointer-events:none;
  background:var(--iris);opacity:0;mix-blend-mode:screen;
  transition:opacity .15s linear;
}
.flash.on{opacity:.35}

.shell{
  position:relative;z-index:2;
  width:min(860px,100%);
  margin:0 auto;
  min-height:100vh;min-height:100dvh;
  padding:1rem 1rem 3.5rem;
  display:flex;flex-direction:column;
}
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;margin-bottom:1rem;
}
.brand{
  font-family:var(--serif);font-size:1.1rem;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;
  background:var(--iris);background-size:200% 200%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:irisShift 6s ease infinite;
}
.topbar-right{display:flex;align-items:center;gap:.85rem}
.lang-link{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);text-decoration:none}
.lang-link:hover{color:var(--gold)}
.progress{
  height:3px;border-radius:99px;margin-bottom:1.25rem;
  background:rgba(255,255,255,.08);overflow:hidden;
}
.progress>i{
  display:block;height:100%;width:0%;
  background:var(--iris);background-size:200% 100%;
  animation:irisShift 4s linear infinite;
  transition:width .6s var(--ease);
}

.stage{animation:rise .65s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.kicker{
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;
  background:var(--iris);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:irisShift 5s ease infinite;margin-bottom:.7rem;
}
h1,h2{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:.01em;text-shadow:0 8px 40px rgba(0,0,0,.55)}
h1{font-size:clamp(2.35rem,7vw,3.6rem);margin-bottom:1rem}
h2{font-size:clamp(1.65rem,4.8vw,2.35rem);margin-bottom:.8rem}
.lead{font-size:1.05rem;line-height:1.55;color:var(--mute);max-width:40rem;margin-bottom:1.4rem;text-shadow:0 2px 16px rgba(0,0,0,.4)}

.hero-orb{
  width:min(220px,46vw);aspect-ratio:1;margin:0 auto 1.4rem;
  border-radius:50%;position:relative;
  background:radial-gradient(circle at 35% 30%,#fff8,transparent 40%),var(--iris);
  background-size:100% 100%, 220% 220%;
  animation:irisShift 7s ease infinite, floaty 5s ease-in-out infinite;
  box-shadow:0 0 60px rgba(125,249,255,.35),0 0 120px rgba(255,107,203,.25);
}
.hero-orb img{width:62%;height:62%;object-fit:contain;position:absolute;inset:19%;filter:drop-shadow(0 0 18px rgba(255,255,255,.35))}
.hero-orb::after{
  content:"";position:absolute;inset:-18%;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  animation:spin 18s linear infinite;
  border-top-color:transparent;border-left-color:rgba(255,230,109,.5);
}

.choices{
  display:grid;gap:1rem;
  grid-template-columns:1fr;
}
@media(min-width:720px){
  .choices.doors{grid-template-columns:repeat(3,1fr)}
}
.choice{
  position:relative;isolation:isolate;overflow:hidden;
  text-align:left;border-radius:18px;
  border:1px solid transparent;
  background:
    linear-gradient(rgba(10,8,18,.55),rgba(10,8,18,.72)) padding-box,
    var(--iris) border-box;
  background-size:auto, 220% 220%;
  animation:irisShift 8s ease infinite;
  min-height:168px;
  transition:transform .35s var(--ease),box-shadow .35s ease,filter .35s;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.choice:hover,.choice:focus-visible{
  transform:translateY(-4px) scale(1.015);
  box-shadow:0 26px 70px rgba(0,0,0,.45),0 0 40px rgba(125,249,255,.18);
  outline:none;filter:saturate(1.15);
}
.choice-media{
  position:absolute;inset:0;z-index:-1;
  background-size:cover;background-position:center;
  opacity:.48;transform:scale(1.08);
  transition:transform .7s var(--ease),opacity .35s;
  filter:saturate(1.3);
}
.choice:hover .choice-media{transform:scale(1.16);opacity:.62}
.choice-shade{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(5,4,12,.15) 0%,rgba(5,4,12,.78) 58%,rgba(5,4,12,.92) 100%);
}
.choice-body{padding:1.05rem 1.1rem 1.15rem;display:flex;flex-direction:column;justify-content:flex-end;min-height:168px}
.choice-glyph{
  font-size:1.7rem;margin-bottom:.45rem;
  filter:drop-shadow(0 0 12px rgba(255,255,255,.35));
}
.choice strong{
  display:block;font-family:var(--serif);
  font-size:clamp(1.15rem,3vw,1.35rem);font-weight:500;margin-bottom:.3rem;
}
.choice span{display:block;font-size:.86rem;color:var(--mute);line-height:1.4}

.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  padding:1rem 1.35rem;border-radius:999px;text-decoration:none;
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);backdrop-filter:blur(10px);
  transition:transform .25s var(--ease),box-shadow .25s,background .25s;
}
.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.1)}
.btn-solid{
  border:0;color:#0a0812;
  background:var(--iris);background-size:200% 200%;
  animation:irisShift 5s ease infinite;
  box-shadow:0 10px 40px rgba(123,92,255,.35);
}
.btn-ghost{color:var(--mute)}

.card{
  border-radius:18px;padding:1.3rem 1.2rem;margin-top:1rem;
  border:1px solid transparent;
  background:
    linear-gradient(160deg,rgba(12,10,22,.78),rgba(18,12,32,.7)) padding-box,
    var(--iris) border-box;
  background-size:auto,240% 240%;
  animation:irisShift 10s ease infinite;
  backdrop-filter:blur(16px);
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.card h3{font-family:var(--serif);font-size:1.5rem;font-weight:500;margin-bottom:.5rem}
.card p{color:var(--mute);line-height:1.55;font-size:.95rem}
.tag{display:inline-block;margin-bottom:.65rem;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#ffb4e4}
.bloks{display:grid;gap:.7rem;margin:1.1rem 0}
.blok{
  padding:.9rem 1rem;border-radius:12px;
  background:rgba(255,255,255,.05);
  border-left:3px solid transparent;
  border-image:var(--iris) 1;
}
.blok b{display:block;margin-bottom:.2rem}
.blok span{font-size:.84rem;color:var(--mute);line-height:1.4}
.audio-grid{display:grid;gap:.85rem;margin-top:1rem}
.audio-card{
  display:grid;grid-template-columns:84px 1fr;gap:.9rem;align-items:center;
  padding:.75rem;border-radius:14px;
  background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);
}
.audio-card img{width:84px;height:84px;object-fit:cover;border-radius:10px;box-shadow:0 0 24px rgba(125,249,255,.2)}
.audio-card h4{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin-bottom:.2rem}
.audio-card p{font-size:.8rem;color:var(--mute);line-height:1.35}
.price-line{
  margin-top:1rem;padding:1rem 1.1rem;border-radius:14px;
  border:1px dashed rgba(255,226,122,.4);
  background:rgba(255,226,122,.06);line-height:1.45;font-size:.92rem;
}
.price-line strong{color:var(--gold)}
.pay-box{margin-top:1.1rem}
.pay-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.85rem}
.pay-tab{
  padding:.55rem .85rem;border-radius:999px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.16);color:var(--dim);
}
.pay-tab.active{
  color:#0a0812;border:0;
  background:var(--iris);background-size:200% 200%;animation:irisShift 5s ease infinite;
}
.pay-panel{
  border-radius:14px;padding:1rem;
  background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);
  font-size:.88rem;line-height:1.5;color:var(--mute);
}
.pay-row{
  display:flex;justify-content:space-between;gap:.75rem;align-items:center;
  padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08);
}
.pay-row:last-child{border-bottom:0}
.pay-row b{color:var(--ink);font-weight:500;word-break:break-all}
.copy-btn{
  flex-shrink:0;padding:.4rem .65rem;border-radius:8px;
  font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.18);color:#b8f6ff;
}
.unlock-box{margin-top:1.25rem}
.unlock-box input{
  width:100%;padding:1rem 1.1rem;border-radius:14px;margin-top:.55rem;
  border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.4);
  color:#fff;font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;text-align:center;
}
.unlock-box input:focus{outline:2px solid rgba(125,249,255,.45)}
.hint{margin-top:.85rem;font-size:.8rem;color:var(--dim);line-height:1.45}
.foot-note{margin-top:2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);font-size:.72rem;color:var(--dim);line-height:1.45}
.err{color:#ff9aa8;font-size:.85rem;margin-top:.55rem}
.waiting{
  margin-top:1rem;padding:1rem;border-radius:14px;
  background:rgba(94,240,192,.08);border:1px solid rgba(94,240,192,.28);
  color:var(--mute);font-size:.9rem;line-height:1.45;
}

@keyframes auroraDrift{from{transform:translate3d(-2%,-1%,0) rotate(-2deg)}to{transform:translate3d(3%,2%,0) rotate(3deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes irisShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

body.mood-0 .aurora{filter:blur(18px) saturate(1.5) hue-rotate(0deg)}
body.mood-1 .aurora{filter:blur(18px) saturate(1.55) hue-rotate(20deg)}
body.mood-2 .aurora{filter:blur(18px) saturate(1.45) hue-rotate(-25deg)}
body.mood-3 .aurora{filter:blur(18px) saturate(1.6) hue-rotate(50deg)}
body.mood-4 .aurora{filter:blur(18px) saturate(1.5) hue-rotate(90deg)}
body.mood-5 .aurora{filter:blur(18px) saturate(1.55) hue-rotate(140deg)}
body.mood-pay .aurora{filter:blur(18px) saturate(1.4) hue-rotate(200deg)}
body.mood-full .aurora{filter:blur(18px) saturate(1.7) hue-rotate(310deg)}

@media (max-width:520px){
  .audio-card{grid-template-columns:64px 1fr}
  .audio-card img{width:64px;height:64px}
  .choice{min-height:148px}
  .choice-body{min-height:148px}
}

/* —— Mini-juegos —— */
.game-hint{
  font-size:.9rem;color:var(--mute);line-height:1.45;margin-bottom:1rem;
  padding:.85rem 1rem;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
}
.tray,.slots{
  display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;
  margin:.75rem 0 1rem;min-height:3.2rem;
}
.slot{
  min-width:4.6rem;min-height:3rem;padding:.55rem .7rem;
  border-radius:12px;border:1.5px dashed rgba(255,255,255,.28);
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.25);transition:border-color .2s,box-shadow .2s;
}
.slot.filled{border-style:solid;border-color:rgba(125,249,255,.45);box-shadow:0 0 18px rgba(125,249,255,.15)}
.slot.target-hot{border-color:rgba(255,226,122,.7);box-shadow:0 0 20px rgba(255,226,122,.2)}
.piece{
  min-width:4.6rem;padding:.65rem .8rem;border-radius:12px;cursor:grab;
  font-family:var(--serif);font-size:1.05rem;font-weight:500;text-align:center;
  border:1px solid transparent;
  background:linear-gradient(rgba(18,14,28,.85),rgba(18,14,28,.85)) padding-box,var(--iris) border-box;
  background-size:auto,200% 200%;animation:irisShift 7s ease infinite;
  user-select:none;touch-action:none;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:transform .2s var(--ease),opacity .2s;
}
.piece:active,.piece.dragging{cursor:grabbing;transform:scale(1.06);z-index:5}
.piece.selected{outline:2px solid #ffe27a;transform:scale(1.05)}
.piece.ghost{opacity:.35;pointer-events:none}
.doors-row{display:grid;gap:.75rem;margin-top:1rem}
@media(min-width:700px){.doors-row{grid-template-columns:repeat(3,1fr)}}
.door-drop{
  position:relative;overflow:hidden;border-radius:16px;min-height:140px;
  border:1px solid rgba(255,255,255,.16);cursor:pointer;
  background:rgba(0,0,0,.35);
}
.door-drop .bg{
  position:absolute;inset:0;opacity:.78;
  background:
    radial-gradient(circle at 50% 120%, rgba(0,0,0,.9), transparent 55%),
    conic-gradient(from 180deg, rgba(255,107,203,.45), rgba(77,163,255,.35), rgba(94,240,192,.3), rgba(255,107,203,.45));
  background-size:auto,200% 200%;
  animation:irisShift 8s ease infinite;
}
.door-drop .lbl{
  position:relative;z-index:1;padding:1rem;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-height:140px;
  background:linear-gradient(transparent,rgba(5,4,12,.88));
}
.door-drop strong{font-family:var(--serif);font-size:1.2rem}
.door-drop span{font-size:.8rem;color:var(--mute)}
.door-drop.openable{box-shadow:0 0 0 2px rgba(255,226,122,.55),0 0 40px rgba(255,107,203,.25)}
.cipher-box{
  font-family:ui-monospace,Consolas,monospace;font-size:clamp(1rem,3.5vw,1.25rem);
  letter-spacing:.08em;padding:1rem;border-radius:14px;text-align:center;
  background:rgba(0,0,0,.4);border:1px solid rgba(125,249,255,.25);
  color:#b8f6ff;margin-bottom:1rem;
}
.seq-board{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1rem 0}
.seq-node{
  width:3.4rem;height:3.4rem;border-radius:50%;
  display:grid;place-items:center;font-size:1.2rem;
  border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);
  transition:transform .2s,box-shadow .2s,background .2s;
}
.seq-node.on{background:var(--iris);background-size:200% 200%;animation:irisShift 3s ease infinite;color:#0a0812;border-color:transparent;transform:scale(1.08)}
.seq-node.tap{box-shadow:0 0 0 3px rgba(255,226,122,.5)}
.jigsaw{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;
  width:min(100%,420px);margin:0 auto 1rem;aspect-ratio:1.4;
  border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.2);
}
.jig-tile{
  background-size:300% 100%;background-repeat:no-repeat;
  cursor:pointer;position:relative;
  transition:outline .15s,transform .2s;
}
.jig-tile.selected{outline:3px solid #ffe27a;z-index:2;transform:scale(.98)}
.assemble-grid{display:grid;gap:.75rem}
@media(min-width:700px){.assemble-grid{grid-template-columns:repeat(3,1fr)}}
.assemble-card{
  border-radius:16px;padding:.85rem;min-height:160px;
  border:1px dashed rgba(255,255,255,.25);background:rgba(0,0,0,.28);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
}
.assemble-card h4{font-family:var(--serif);font-size:1.1rem}
.assemble-slots{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;min-height:2.8rem}
.ok-pulse{animation:floaty .8s ease}
.game-status{text-align:center;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:.5rem 0 0;min-height:1.2em}


.maze-wrap{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin:0 auto 1rem}
#mazeCanvas{
  width:min(100%,390px);height:auto;border-radius:16px;
  border:1px solid rgba(125,249,255,.28);background:rgba(0,0,0,.45);
  box-shadow:0 12px 40px rgba(0,0,0,.45);touch-action:none;
}
.maze-pad{display:flex;flex-direction:column;align-items:center;gap:.35rem;user-select:none}
.maze-pad-mid{display:flex;gap:2.2rem}
.maze-pad button{
  width:3rem;height:3rem;border-radius:12px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);color:#fff;font-size:1rem;cursor:pointer;
}
.maze-pad button:active{background:rgba(125,249,255,.25);transform:scale(.96)}
.feel-label{
  display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dim);margin:1rem 0 .45rem;
}
.feel-box{
  width:100%;min-height:9rem;padding:1rem 1.1rem;border-radius:16px;
  border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.4);
  color:#fff;font-size:1rem;line-height:1.5;resize:vertical;font-family:inherit;
}
.feel-box:focus{outline:2px solid rgba(125,249,255,.45)}
.feel-echo p{color:var(--mute);line-height:1.5}
.report-stage .report-title{
  font-family:var(--serif);font-weight:500;font-size:clamp(2rem,6vw,3.1rem);
  line-height:1.12;letter-spacing:-.02em;max-width:16ch;
}
.report-lead,.report-reading{max-width:38rem;font-size:1.05rem;line-height:1.65}
.q-kicker{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.35rem;
}
.report-input{min-height:10rem;font-size:1.05rem;line-height:1.55}
.quote-line{
  font-family:var(--serif)!important;font-size:1.35rem!important;
  line-height:1.35;color:var(--ink)!important;margin-top:.35rem;
}
.report-stage h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.15}
body.scene-matrix #fxMatrix{opacity:.42}
body.scene-dna #fxDna{opacity:.55}
