:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#fffaf0;background:#110d2d;font-synthesis:none;text-rendering:optimizeLegibility;--gold: #ffd77b;--ink: #171033;--lavender: #a99cf8}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button{font:inherit}button:focus-visible{outline:4px solid #fff;outline-offset:4px}.app-shell,.screen{width:100%;height:100%;position:relative}.screen{overflow:hidden}.home-screen,.map-screen,.camera-screen{background:linear-gradient(90deg,#0b0826c2,#0b08261f 58%,#0b08262e),url(/assets/enchanted-clearing.webp) center / cover no-repeat}.home-screen:after,.map-screen:after,.camera-screen:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,7,31,.08),transparent 48%,rgba(8,7,31,.55))}.story-title{position:absolute;z-index:3;left:clamp(52px,7vw,150px);top:50%;transform:translateY(-52%);width:min(630px,43vw)}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--gold);font-size:clamp(12px,.95vw,20px);letter-spacing:.18em;text-transform:uppercase;font-weight:800}.story-title h1{margin:22px 0 18px;font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:.8;text-shadow:0 8px 34px rgba(3,2,23,.72)}.story-title h1 span{display:block;color:#fff8eb;font-size:clamp(88px,9.2vw,180px);font-style:italic;letter-spacing:-.065em}.story-title h1 small{display:block;margin-left:.25em;margin-top:.3em;color:var(--gold);font-size:clamp(31px,3.2vw,64px);font-weight:400;letter-spacing:-.035em}.story-title p{max-width:500px;margin:30px 0;color:#ffffffd6;font-size:clamp(17px,1.25vw,25px);line-height:1.5}.hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.primary-button,.secondary-button{min-height:62px;border:0;border-radius:999px;padding:0 28px;display:inline-flex;align-items:center;justify-content:center;gap:11px;font-weight:900;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.primary-button{color:#2d1842;background:linear-gradient(135deg,#ffe8a5,#f9b956 62%,#ffc86f);box-shadow:0 14px 38px #f9b95654,inset 0 1px #ffffffb8;font-size:clamp(16px,1.12vw,22px)}.primary-button:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 18px 45px #f9b95680}.primary-button:disabled{opacity:.65;cursor:wait}.secondary-button{min-height:56px;color:#fff;border:1px solid rgba(255,255,255,.24);background:#1911418a;backdrop-filter:blur(18px);font-size:16px}.secondary-button:hover{background:#3b2b74a3;transform:translateY(-2px)}.save-note{display:flex;align-items:center;gap:10px;margin-top:22px;color:#ffffffa6;font-size:14px}.save-note span{color:var(--gold);font-weight:900}.home-whisper{position:absolute;z-index:2;left:clamp(52px,7vw,150px);bottom:27px;color:#ffffff7a;font-size:13px;letter-spacing:.04em}.portal-pulse{position:absolute;z-index:1;right:4.7%;top:27%;width:16.5vw;aspect-ratio:1 / 1.25;border-radius:48%;box-shadow:0 0 60px 20px #ffce6842;animation:portalPulse 3.4s ease-in-out infinite}.scene-depth{position:absolute;inset:-4%;background:url(/assets/enchanted-clearing.webp) center / cover no-repeat;opacity:.01;pointer-events:none}.scene-depth-one{animation:drift 9s ease-in-out infinite alternate}.scene-depth-two{animation:drift 12s ease-in-out -4s infinite alternate-reverse}.firefly-field{position:absolute;inset:0;z-index:2;pointer-events:none}.firefly-field i{--x: calc((var(--i) * 47) % 91);position:absolute;left:calc(5% + var(--x) * 1%);top:calc(18% + ((var(--i) * 31) % 68) * 1%);width:4px;height:4px;border-radius:50%;background:#ffe890;box-shadow:0 0 12px 4px #ffe077a3;animation:fairyFloat calc(4s + var(--i) * .17s) ease-in-out calc(var(--i) * -.3s) infinite alternate}.utility-bar{position:fixed;z-index:30;right:30px;top:27px;display:flex;gap:10px}.camera-live-button{color:#203c35;background:#93e5c8;box-shadow:0 0 0 5px #93e5c821,0 0 20px #6feabf61}.round-button{width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.2);color:#fff;background:#17103994;backdrop-filter:blur(16px);display:grid;place-items:center;cursor:pointer;transition:transform .2s,background .2s}.round-button:hover{transform:scale(1.06);background:#544194b3}.round-button svg{width:21px}.map-screen{overflow-y:auto;background-attachment:fixed}.map-screen:before{content:"";position:fixed;inset:0;background:#0b0826a3;backdrop-filter:blur(9px)}.page-header{position:relative;z-index:4;width:min(1440px,calc(100% - 80px));margin:0 auto;padding:34px 110px 26px 0;display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:20px}.page-header.compact{padding-right:0}.page-header h2{margin:4px 0 0;font-family:Georgia,serif;font-size:clamp(30px,3vw,54px);font-weight:400;letter-spacing:-.035em}.map-progress{width:76px;height:44px;border-radius:30px;border:1px solid rgba(255,255,255,.18);background:#140d3899;display:grid;place-items:center;color:var(--gold);font-weight:900}.world-path{position:relative;z-index:3;width:min(1180px,calc(100% - 80px));margin:0 auto 90px;padding:15px 0 30px 110px}.world-path:before{content:"";position:absolute;left:46px;top:73px;bottom:145px;width:2px;background:linear-gradient(#ffd987,#987ee657);box-shadow:0 0 13px #ffd987}.world-stop{position:relative;min-height:200px;margin:0 0 34px;padding:30px 220px 30px 36px;border-top:1px solid rgba(255,255,255,.13);background:linear-gradient(90deg,#21194d9e,#140e342e);backdrop-filter:blur(13px)}.world-stop.locked{opacity:.55;filter:saturate(.45)}.world-orb{position:absolute;left:-112px;top:23px;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;font-size:42px;background:radial-gradient(circle at 35% 28%,var(--world-b),var(--world-a) 65%,#231746);border:2px solid rgba(255,255,255,.56);box-shadow:0 0 0 8px #ffffff0d,0 15px 32px #0006}.world-orb b{position:absolute;right:-7px;bottom:-3px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f5cd73;color:#251747;font-size:14px}.world-copy small{color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-weight:900}.world-copy h3{margin:5px 0 7px;font-family:Georgia,serif;font-size:30px;font-weight:400}.world-copy p{color:#ffffffa6;margin:0 0 20px}.world-copy ol{display:grid;grid-template-columns:1fr 1fr;gap:9px 28px;margin:0;padding:0;list-style:none}.world-copy li{display:flex;align-items:center;gap:10px;color:#ffffffc7;font-size:14px}.world-copy li span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#ffffff17;color:#e6d7ff;font-size:11px}.world-play{position:absolute;right:32px;top:50%;transform:translateY(-50%);border:0;border-radius:30px;padding:14px 19px;display:flex;align-items:center;gap:6px;color:#2b1945;background:var(--gold);font-weight:900;cursor:pointer}.lock-label{position:absolute;right:32px;top:50%;transform:translateY(-50%);color:#ffffff8c;font-size:13px}.tester-ribbon{position:relative;z-index:4;width:min(1180px,calc(100% - 80px));margin:0 auto 12px;padding:11px 18px;border:1px solid rgba(255,220,140,.35);border-radius:18px;color:#ffe39a;background:#65461f47;text-align:center;font-size:13px}.campaign-world{padding-right:36px}.level-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:22px}.level-buttons button{min-height:67px;padding:9px 12px;border:1px solid rgba(255,255,255,.1);border-radius:15px;display:grid;grid-template-columns:32px 1fr;grid-template-rows:1fr 1fr;gap:0 9px;align-items:center;color:#fff;background:#ffffff0b;text-align:left;cursor:pointer;transition:transform .18s,background .18s,border-color .18s}.level-buttons button:hover:not(:disabled){transform:translateY(-2px);background:#ffffff1f;border-color:#ffdc9366}.level-buttons button>span{grid-row:1 / 3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#281941;background:var(--gold);font-size:11px;font-weight:900}.level-buttons button>span svg{width:14px}.level-buttons button b{align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.level-buttons button small{align-self:start;color:#ffffff80;font-size:10px}.level-buttons button.done>span{background:#90e4c7}.level-buttons button.locked{opacity:.35;cursor:default}.dressing-screen{overflow-y:auto;background:radial-gradient(circle at 26% 44%,#4c3c8d,transparent 35%),radial-gradient(circle at 74% 40%,#5b295f,transparent 32%),#171033}.dressing-screen:before{content:"";position:fixed;inset:0;opacity:.4;background-image:radial-gradient(circle,#f5d58b 1px,transparent 1.5px);background-size:53px 53px}.costume-stage{position:relative;width:min(1300px,calc(100% - 80px));min-height:calc(100vh - 130px);margin:0 auto;display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:70px}.costume-preview{position:relative;aspect-ratio:4/5;max-height:660px;border-radius:48% 48% 25% 25%;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;background:linear-gradient(165deg,#ffffff24,#ffffff05);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 80px #ffffff0f,0 34px 80px #00000059}.costume-preview.live{width:100%;aspect-ratio:16/9;max-height:none;border-radius:38px;background:#110d2d}.costume-preview.live video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.costume-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(circle,#8160d080,#140e35f2 68%);text-align:center}.costume-fallback span{color:var(--costume);font-family:Georgia,serif;font-size:clamp(100px,13vw,190px);text-shadow:0 0 30px var(--costume)}.costume-fallback small{position:absolute;z-index:8;left:50%;top:18px;transform:translate(-50%);width:min(390px,82%);padding:8px 14px;border-radius:18px;color:#ffffffd1;background:#150e36b8;backdrop-filter:blur(8px);font-size:13px;line-height:1.45}.costume-preview.live .preview-name{position:absolute;z-index:8;left:50%;bottom:20px;transform:translate(-50%);width:max-content;margin:0;padding:9px 20px;border-radius:24px;color:#fff;background:#130d33ad;backdrop-filter:blur(12px);font-size:clamp(20px,2vw,31px);text-shadow:0 2px 8px #000}.fitting-ok,.air-ready{position:absolute;z-index:9;left:16px;top:16px;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:22px;color:#193e35;background:#a4f2d5;box-shadow:0 6px 20px #00000047;font-size:12px;font-weight:900}.fitting-ok svg,.air-ready svg{width:16px}.costume-preview.princess{--costume: #e7b4ff}.costume-preview.fairy{--costume: #8ff0df}.costume-preview.dragon{--costume: #ffab74}.costume-preview.elf{--costume: #c4df77}.preview-glow{position:absolute;width:62%;aspect-ratio:1;border-radius:50%;background:var(--costume);filter:blur(80px);opacity:.48}.preview-symbol{position:relative;font-family:Georgia,serif;font-size:clamp(110px,12vw,210px);color:var(--costume);filter:drop-shadow(0 0 24px var(--costume))}.preview-name{position:relative;margin-top:30px;font-family:Georgia,serif;font-size:clamp(25px,2.4vw,42px)}.preview-sparkles{position:relative;color:var(--gold);margin-top:22px}.costume-list{display:flex;flex-direction:column;gap:10px}.costume-list>button:not(.primary-button){min-height:86px;padding:10px 22px 10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:22px;display:grid;grid-template-columns:64px 1fr 30px;align-items:center;gap:15px;text-align:left;color:#fff;background:#ffffff0b;cursor:pointer}.costume-list>button.selected{background:#ffffff21;border-color:#ffdc938c;transform:translate(-9px)}.costume-list b,.costume-list small{display:block}.costume-list b{font-size:18px}.costume-list small{color:#ffffff94;margin-top:5px;line-height:1.35}.costume-icon{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;font-family:Georgia,serif;font-size:34px;background:#7562bd}.costume-icon.fairy{background:#338f83}.costume-icon.dragon{background:#ad5e3f}.costume-icon.elf{background:#6b8240}.wardrobe-continue{justify-self:start;margin-top:18px}.camera-screen:before{content:"";position:absolute;inset:0;background:#090722ab;backdrop-filter:blur(14px)}.fitting-scene{overflow:hidden;background:#100d2d}.fitting-scene:before{display:none}.fitting-camera{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 40% 45%,#513e8a,#110d2c 68%)}.fitting-camera>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.fitting-camera .costume-overlay{inset:0}.fitting-background{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(120deg,#1a1243b3,#46265c61),url(/assets/enchanted-clearing.webp) center / cover}.fitting-portal{width:min(480px,45vw);aspect-ratio:1.55;border:2px solid rgba(255,227,143,.6);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#ffffffb3;background:radial-gradient(circle,#5f47a5b3,#160f3aa6);box-shadow:0 0 0 12px #ffe08914,0 0 90px #b57eff59}.fitting-portal b{color:#fff;font-family:Georgia,serif;font-size:30px}.fitting-portal span{font-size:13px}.fitting-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#07051c26 0 52%,#07051cd6 77%),linear-gradient(180deg,rgba(7,5,28,.45),transparent 22%,transparent 74%,rgba(7,5,28,.6));pointer-events:none}.fitting-top{position:absolute;z-index:12;left:35px;top:28px;display:flex;align-items:center;gap:20px;text-shadow:0 2px 12px #000}.fitting-top h2{margin:3px 0 0;font-family:Georgia,serif;font-size:clamp(29px,3vw,49px);font-weight:400}.fitting-wardrobe{position:absolute;z-index:14;right:4%;top:50%;transform:translateY(-48%);width:min(410px,32vw);padding:27px;border:1px solid rgba(255,255,255,.17);border-radius:30px;color:#fff;background:#160f37ad;backdrop-filter:blur(22px);box-shadow:0 24px 70px #00000059}.fitting-wardrobe h3{margin:7px 0 19px;font-family:Georgia,serif;font-size:clamp(29px,2.7vw,44px);font-weight:400}.fitting-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fitting-choices button{position:relative;min-height:105px;padding:12px 8px;border:1px solid rgba(255,255,255,.13);border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#fff;background:#ffffff0d;cursor:pointer}.fitting-choices button>span{color:#ffe496;font-family:Georgia,serif;font-size:36px}.fitting-choices button b{font-size:13px}.fitting-choices button>svg{position:absolute;right:9px;top:9px;width:17px;color:#8ef0cc}.fitting-choices button.selected{border-color:#ffe39a;background:#ffe08e29;box-shadow:inset 0 0 22px #ffdc8714}.fitting-choices button.fairy>span{color:#8ff0df}.fitting-choices button.dragon>span{color:#ffab74}.fitting-choices button.elf>span{color:#c4df77}.fitting-start{width:100%;margin-top:18px}.fitting-mouse{width:100%}.fitting-instruction{position:absolute;z-index:13;left:35px;bottom:28px;max-width:380px;padding:12px 18px 12px 12px;border-radius:28px;display:flex;align-items:center;gap:13px;color:#fff;background:#140e34b8;backdrop-filter:blur(15px);box-shadow:0 8px 28px #0000004d}.fitting-instruction>svg{width:43px;height:43px;padding:10px;border-radius:50%;color:#342449;background:#ffe197}.fitting-instruction b,.fitting-instruction span{display:block}.fitting-instruction span{color:#ffffffb3;font-size:12px;line-height:1.4}.fitting-instruction b{color:#fff;margin-bottom:2px;font-size:14px}.camera-layout{position:relative;z-index:3;width:min(1260px,calc(100% - 80px));height:calc(100vh - 130px);margin:0 auto;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:70px}.mirror{position:relative;width:100%;aspect-ratio:16/9;justify-self:center;overflow:hidden;border:9px solid #d6b56c;border-radius:40px;background:radial-gradient(circle,#51468d,#1e173d);box-shadow:0 0 0 6px #6b4d2f,0 0 0 9px #f4d98c,0 24px 70px #0000008c,inset 0 0 40px #fff3}.mirror video,.player-mirror video{width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.pose-camera-source{position:fixed;width:2px;height:2px;left:-10px;top:-10px;opacity:.01;pointer-events:none}.mirror-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#ffffffab;text-align:center;padding:50px;line-height:1.5}.mirror-shine{position:absolute;left:13%;top:10%;width:24%;height:70%;border-radius:50%;transform:rotate(18deg);background:linear-gradient(90deg,rgba(255,255,255,.11),transparent);pointer-events:none}.camera-copy h3{margin:7px 0 16px;font-family:Georgia,serif;font-size:clamp(36px,3.4vw,58px);font-weight:400}.chapter-kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900}.camera-copy>p{color:#ffffffb3;line-height:1.55;margin-bottom:24px}.safety-line{display:flex;align-items:center;gap:13px;margin:11px 0;color:#ffffffd6}.safety-line span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#2b1945;background:var(--gold);font-weight:900;font-size:12px}.camera-copy .primary-button{margin-top:25px;width:100%}.text-button{border:0;background:transparent;color:#ffffffb8;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px}.camera-copy .text-button{width:100%;margin-top:3px}.text-button svg{width:18px}.camera-error{margin-top:18px;padding:13px 16px;border-radius:14px;color:#ffe9b4;background:#a64b4852;line-height:1.4;font-size:14px}.costume-overlay{position:absolute;z-index:5;inset:0;overflow:hidden;pointer-events:none}.headpiece{position:absolute;z-index:5;top:var(--head-y, 12%);left:var(--head-x, 50%);width:var(--head-size, 16%);aspect-ratio:1.4;transform:translate(-50%,-92%);display:grid;place-items:center;color:#ffe27b;filter:drop-shadow(0 0 7px #fff4bd) drop-shadow(0 8px 7px rgba(45,20,50,.65))}.headpiece svg{width:100%;overflow:visible}.headpiece path,.headpiece circle{fill:currentColor;stroke:#ffffffdb;stroke-width:2.4;stroke-linejoin:round}.headpiece .jewel{fill:#eaa8ff;stroke:#fff}.headpiece .vine{fill:none;stroke:currentColor;stroke-width:7;stroke-linecap:round}.headpiece .leaf{fill:#a9f0b3}.left-wing,.right-wing{position:absolute;z-index:2;top:var(--shoulder-y, 34%);left:var(--shoulder-x, 50%);width:var(--wing-width, 25%);height:var(--wing-height, 34%);opacity:0;border-radius:90% 12% 70% 10%;background:linear-gradient(135deg,#d8fbffe0,#8268f133);border:2px solid rgba(239,255,255,.75);filter:drop-shadow(0 0 16px rgba(150,230,255,.8))}.left-wing{transform:translate(-96%,-8%) rotate(-22deg)}.right-wing{transform:translate(-4%,-8%) scaleX(-1) rotate(-22deg)}.fairy .left-wing,.fairy .right-wing,.dragon .left-wing,.dragon .right-wing{opacity:.92;animation:wingBeat 1.8s ease-in-out infinite alternate;transform-origin:bottom center}.dragon .left-wing,.dragon .right-wing{background:linear-gradient(135deg,#ffaa68db,#ad3a3626);border-color:#ffd4a799}.magic-gown{position:absolute;z-index:3;left:var(--shoulder-x, 50%);top:calc(var(--shoulder-y, 34%) + 2%);width:var(--gown-width, 44%);height:min(66%,520px);transform:translate(-50%);opacity:.9;filter:drop-shadow(0 0 14px rgba(230,171,255,.65))}.magic-gown i{position:absolute;display:block}.costume-bodice{z-index:2;left:31%;top:0;width:38%;height:34%;clip-path:polygon(12% 0,88% 0,100% 92%,50% 100%,0 92%);border-radius:20% 20% 34% 34%;background:linear-gradient(120deg,#ffffffbf,#bd78ea 42%,#67409c);box-shadow:inset 0 0 18px #ffffff73}.costume-skirt{inset:27% 3% 0;clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);border-radius:10% 10% 36% 36%;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.56),transparent 18%),repeating-linear-gradient(103deg,rgba(255,255,255,.16) 0 3%,transparent 3% 15%),linear-gradient(120deg,#e7b6ffd1,#a252cf 46%,#3f1f7db8);mix-blend-mode:screen}.costume-belt{z-index:4;left:29%;top:26%;width:42%;height:7%;border-radius:50%;background:linear-gradient(90deg,#d79742,#fff1a6,#d79742);box-shadow:0 0 11px #ffe9a4}.fairy .costume-bodice,.fairy .costume-skirt{background-color:#39beaa;filter:hue-rotate(65deg)}.fairy .headpiece{color:#8cf0d8}.dragon .costume-bodice,.dragon .costume-skirt{background:linear-gradient(120deg,#ffd19fc7,#df6d3c 45%,#8b302c)}.dragon .costume-skirt{clip-path:polygon(31% 0,69% 0,85% 90%,66% 83%,50% 100%,36% 83%,15% 90%)}.elf .costume-bodice,.elf .costume-skirt{background:linear-gradient(120deg,#dff5a0d1,#79a54d 45%,#345e42)}.elf .costume-skirt{clip-path:polygon(33% 0,67% 0,91% 88%,71% 80%,50% 100%,29% 80%,9% 88%)}.costume-stars{position:absolute;z-index:6;left:var(--hip-x, 50%);top:var(--hip-y, 62%);transform:translate(-50%,-50%);width:var(--gown-width, 44%);color:#fff0a3;font-size:clamp(17px,2vw,34px);text-align:center;text-shadow:0 0 12px #fff,0 0 25px #ffd35a;animation:trackingPulse 1.8s ease-in-out infinite}.dragon .headpiece{color:#ffb276;text-shadow:0 0 5px #fff,0 0 18px #ff6b3d}.elf .headpiece{color:#d8f493;text-shadow:0 0 5px #fff,0 0 18px #84c44f}.game-screen{background:#121033;cursor:default}.game-background{position:absolute;inset:-2%;background:url(/assets/enchanted-clearing.webp) center / cover no-repeat;animation:gameBreathe 10s ease-in-out infinite alternate}.campaign-background{position:absolute;inset:-2%;background-position:center;background-size:cover;background-repeat:no-repeat;animation:gameBreathe 10s ease-in-out infinite alternate}.game-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,6,28,.52) 0%,transparent 20%,transparent 70%,rgba(7,5,25,.72)),radial-gradient(circle at 50% 46%,transparent 20%,rgba(8,6,28,.2) 85%);pointer-events:none}.game-topbar{position:absolute;z-index:18;left:24px;right:24px;top:18px;height:60px;display:flex;align-items:center;gap:15px}.glass{background:#100b329e}.level-label{display:flex;flex-direction:column;min-width:250px;text-shadow:0 2px 12px #000}.level-label small{color:#ffffff94;font-size:11px;letter-spacing:.05em}.level-label b{font-family:Georgia,serif;font-size:19px;font-weight:400}.chapter-dots{flex:1;display:flex;justify-content:center;gap:10px}.campaign-task-dots{flex:1;display:flex;justify-content:center;gap:13px}.campaign-task-dots i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#ffffff73;border:1px solid rgba(255,255,255,.22);background:#130d377a;font-style:normal;font-size:12px}.campaign-task-dots i.done{color:#24483d;background:#8de2c6;border-color:#d5fff1}.campaign-task-dots i.current{color:#28193f;background:var(--gold);border-color:#fff;box-shadow:0 0 21px #ffd270a6;transform:scale(1.14)}.chapter-dots i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#ffffff73;border:1px solid rgba(255,255,255,.2);background:#130d376b;font-style:normal;font-size:11px}.chapter-dots i.done{color:#25183e;background:#8de2c6;border-color:#c6ffec}.chapter-dots i.current{color:#26193f;background:var(--gold);border-color:#fff;box-shadow:0 0 20px #ffd2709e;transform:scale(1.15)}.star-counter{border-radius:30px;padding:11px 18px;color:#3a234c;background:var(--gold);font-weight:900}.quest-banner{position:absolute;z-index:17;top:93px;left:50%;transform:translate(-50%);min-width:min(610px,80vw);min-height:69px;padding:10px 25px 10px 12px;display:flex;align-items:center;gap:14px;border:1px solid rgba(255,255,255,.16);border-radius:40px;background:#1a1243b5;backdrop-filter:blur(18px);box-shadow:0 14px 30px #0003}.quest-banner>span{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#39204c;background:var(--gold);font-family:Georgia,serif;font-size:27px}.quest-banner small,.quest-banner b{display:block}.quest-banner small{color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.quest-banner b{margin-top:3px;font-size:clamp(14px,1.2vw,19px)}.player-mirror{position:absolute;z-index:5;left:50%;bottom:6.5%;transform:translate(-50%);height:61%;aspect-ratio:16/9;overflow:visible;filter:drop-shadow(0 16px 28px rgba(6,4,31,.56))}.player-mirror video{position:relative;z-index:2;border-radius:48% 48% 42% 42%;mask-image:linear-gradient(to bottom,#000 72%,transparent 100%);opacity:.92;mix-blend-mode:screen}.player-mirror .costume-overlay{z-index:4}.mouse-hero{position:absolute;inset:0;z-index:3;border-radius:48% 48% 42% 42%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at 50% 40%,rgba(133,105,219,.8),rgba(22,16,60,.18) 65%,transparent 72%)}.mouse-hero span{color:var(--gold);font-family:Georgia,serif;font-size:19vh;text-shadow:0 0 45px rgba(255,215,123,.8)}.mouse-hero small{color:#ffffffa6}.tracking-glow{position:absolute;z-index:1;inset:5% -7% 0;border-radius:50%;box-shadow:0 0 70px #9178ed8a;animation:trackingPulse 2.4s ease-in-out infinite}.hand-cursor{position:absolute;z-index:40;width:64px;height:64px;margin:-32px;border:3px solid white;border-radius:50%;display:grid;place-items:center;color:#392451;background:radial-gradient(circle,#fff7c7,#f5ba58);box-shadow:0 0 0 9px #ffde8d30,0 0 28px #ffd574;pointer-events:none}.hand-cursor svg{width:28px}.air-pointer{position:fixed;z-index:240;width:68px;height:68px;margin:-34px;display:grid;place-items:center;color:#392451;border-radius:50%;background:radial-gradient(circle,#fffbd4,#f4bd56);box-shadow:0 0 0 7px #ffe69e29,0 0 25px #ffd574;pointer-events:none;will-change:left,top;transform:translateZ(0)}.air-right{color:#123f48;background:radial-gradient(circle,#e3fffb,#68d7df);box-shadow:0 0 0 7px #77e4e929,0 0 25px #63eaf0}.air-pointer.aimed{box-shadow:0 0 0 10px #fff0b038,0 0 38px #ffe08d}.air-pointer>b{position:absolute;right:-4px;top:-5px;width:22px;height:22px;border:2px solid white;border-radius:50%;display:grid;place-items:center;color:#fff;background:#3b2857;font-size:10px}.air-pointer>svg.air-ring{position:absolute;inset:-2px;width:80px;height:80px;transform:rotate(-90deg);overflow:visible}.air-pointer>svg.air-ring circle{fill:none;stroke-width:5}.air-track{stroke:#ffffff59}.air-progress{stroke:#73efc1;stroke-linecap:round;stroke-dasharray:195;transition:stroke-dashoffset .06s linear;filter:drop-shadow(0 0 4px #4cffbf)}.air-pointer>svg.air-hand{position:relative;width:31px;height:31px}.air-pointer>span{position:absolute;top:84px;left:50%;transform:translate(-50%);width:max-content;max-width:230px;padding:7px 12px;border-radius:15px;color:#fff;background:#19113ae0;font-size:12px;font-weight:900;text-align:center;box-shadow:0 6px 18px #00000059}button[data-air-hover=true]{outline:5px solid rgba(255,225,128,.8)!important;outline-offset:5px;filter:brightness(1.14)}.air-ready{top:auto;bottom:16px;color:#2a2147;background:#ffe39a}.game-help{position:absolute;z-index:18;bottom:18px;left:24px;right:24px;display:flex;align-items:center;gap:12px}.game-help>span,.game-help button{height:42px;padding:0 16px;border-radius:24px;display:flex;align-items:center;gap:8px;color:#ffffffc2;border:1px solid rgba(255,255,255,.15);background:#120c3494;backdrop-filter:blur(12px);font-size:12px}.game-help button{cursor:pointer}.game-help button:nth-last-child(2){margin-left:auto}.game-help svg{width:16px}.status-dot{width:8px;height:8px;border-radius:50%;background:#77e5b7;box-shadow:0 0 10px #77e5b7}.campaign-targets{position:absolute;z-index:12;inset:15% 0 9%}.set-piece{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.piece-collect>span{position:absolute;left:50%;bottom:2%;transform:translate(-50%);font-size:clamp(70px,9vw,150px);filter:drop-shadow(0 12px 18px rgba(0,0,0,.5))}.piece-collect i{position:absolute;width:25%;height:14%;border-radius:50%;background:radial-gradient(ellipse,rgba(109,75,36,.7),transparent 70%)}.piece-collect i:nth-child(2){left:6%;bottom:8%}.piece-collect i:nth-child(3){right:7%;bottom:13%}.piece-collect i:nth-child(4){left:37%;bottom:23%}.piece-trace{inset:4% 21% 3%;border:2px solid rgba(255,225,137,.22);border-radius:50%;background:radial-gradient(circle,rgba(116,73,199,.22),transparent 66%);box-shadow:inset 0 0 55px #ab70ff26,0 0 40px #ffd6741a}.piece-trace>span{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);color:#ffe68b38;font-size:30vh}.piece-trace b{position:absolute;left:50%;bottom:5%;transform:translate(-50%);color:#ffeeb87a;font-family:Georgia,serif;font-size:18px}.piece-climb{left:42%;right:42%;border-left:8px solid #9b643e;border-right:8px solid #9b643e;filter:drop-shadow(0 0 13px rgba(255,194,100,.34))}.piece-climb i{position:absolute;left:-3px;right:-3px;height:8px;border-radius:8px;background:linear-gradient(#e9bc72,#754327)}.piece-climb i:nth-child(1){top:13%}.piece-climb i:nth-child(2){top:31%}.piece-climb i:nth-child(3){top:49%}.piece-climb i:nth-child(4){top:67%}.piece-climb i:nth-child(5){top:85%}.piece-dig{inset:7% 31% 0;border-radius:50% 50% 9% 9%;background:radial-gradient(ellipse at 50% 35%,#543f5073,#140e22e0 67%);box-shadow:inset 0 0 60px #000000b3,0 0 0 20px #5639283d}.piece-dig span{position:absolute;left:50%;top:8%;transform:translate(-50%) rotate(-18deg);color:#ffe4a4;font-size:70px;text-shadow:0 0 15px #eebd5d}.piece-dig b{position:absolute;left:50%;bottom:7%;transform:translate(-50%);width:max-content;color:#ffffff80}.piece-push span{position:absolute;bottom:8%;width:19%;aspect-ratio:1;display:grid;place-items:center;color:#f0c67b;border:4px solid #6d4228;border-radius:12px;background:linear-gradient(135deg,#ba7a43,#684127);box-shadow:inset 0 0 0 4px #ffd28226,0 18px 24px #0006;font-size:54px}.piece-push span:nth-child(1){left:15%;transform:rotate(-7deg)}.piece-push span:nth-child(2){left:41%;bottom:3%}.piece-push span:nth-child(3){right:14%;transform:rotate(6deg)}.piece-rhythm i{position:absolute;color:#ffe89d2e;font-size:25vh;font-style:normal;text-shadow:0 0 25px rgba(255,203,106,.2);animation:poseFloat 1.6s ease-in-out infinite alternate}.piece-rhythm i:nth-child(1){left:12%;top:25%}.piece-rhythm i:nth-child(2){left:42%;top:3%;animation-delay:-.5s}.piece-rhythm i:nth-child(3){right:11%;top:29%;animation-delay:-1s}.piece-touch>span{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);color:#ffeca821;font-size:25vh;text-shadow:0 0 40px rgba(255,205,99,.18)}.piece-touch i{position:absolute;inset:20% 31%;border:2px dashed rgba(255,229,150,.12);border-radius:50%;animation:spin 18s linear infinite}.campaign-targets svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 9px #ffe392);pointer-events:none}.campaign-targets polyline{fill:none;stroke:#ffeaa780;stroke-width:.7;stroke-dasharray:1.5 1.4}.campaign-targets button{position:absolute;transform:translate(-50%,-50%);width:clamp(66px,5.7vw,104px);aspect-ratio:1;border:1px solid rgba(255,255,255,.62);border-radius:50%;color:#fff3a7;background:radial-gradient(circle,#fff3a8 0 5%,#efa94c 8%,#6c48c17a 38%,#20164f14 69%);box-shadow:0 0 0 7px #ffeaa01a,0 0 28px #ffcb619e;cursor:pointer;animation:targetHover 1.8s ease-in-out calc(var(--target-index) * -.22s) infinite alternate}.campaign-targets button i{font-style:normal;font-size:clamp(20px,2vw,35px);text-shadow:0 0 13px #fff}.campaign-targets button.done{animation:targetDone .62s forwards;pointer-events:none}.campaign-targets button:not(.next):not(.done){opacity:.42;filter:saturate(.45)}.targets-collect button{animation-name:collectFloat}.targets-push button{border-radius:42% 58% 44% 56%}.targets-climb:before{content:"";position:absolute;z-index:-1;left:50%;top:6%;bottom:6%;width:9px;transform:translate(-50%);border-radius:10px;background:linear-gradient(90deg,#68462d,#d8a562 45%,#674329);box-shadow:0 0 20px #ffce7473}.targets-dig:before{content:"";position:absolute;inset:13% 34% 4%;border-radius:50% 50% 16% 16%;background:linear-gradient(180deg,#53342540,#211521ad);box-shadow:inset 0 0 35px #00000080}.lean-guide{position:absolute;z-index:13;left:50%;top:52%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;text-shadow:0 3px 15px #08051e}.lean-guide div{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;color:#3b2450;background:radial-gradient(circle,#fff8d3,#ffc765 62%,#ffc0501a 72%);box-shadow:0 0 40px #ffd06f;font-size:76px;animation:leanPulse 1s ease-in-out infinite alternate}.lean-guide.left div{transform:translate(-65px)}.lean-guide.right div{transform:translate(65px)}.lean-guide b{margin-top:18px;font-family:Georgia,serif;font-size:26px}.lean-guide span{margin-top:7px;color:var(--gold);font-weight:900}.pose-guide{position:absolute;z-index:11;left:50%;top:51%;transform:translate(-50%,-50%);width:270px;height:270px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(255,224,133,.36),rgba(116,82,197,.18) 52%,transparent 70%)}.pose-guide span{position:relative;z-index:2;color:#fff1ae;font-size:96px;filter:drop-shadow(0 0 19px #ffd371);animation:poseFloat 1.4s ease-in-out infinite alternate}.pose-guide i{position:absolute;inset:16%;border:2px dashed rgba(255,239,186,.68);border-radius:50%;animation:spin 8s linear infinite}.pose-freeze i{animation:trackingPulse 1.4s ease-in-out infinite}.story-overlay{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:28px;background:#07051c73;backdrop-filter:blur(9px)}.story-panel{position:relative;width:min(570px,100%);padding:42px 46px;border:1px solid rgba(255,255,255,.2);border-radius:38px;background:linear-gradient(160deg,#312468f2,#140e34f5);box-shadow:0 35px 90px #0000008c;text-align:center}.story-world-mark{width:82px;height:82px;margin:-78px auto 24px;border:4px solid rgba(255,255,255,.72);border-radius:50%;display:grid;place-items:center;font-size:42px;box-shadow:0 13px 35px #00000073}.story-panel .eyebrow{justify-content:center}.story-panel h2{margin:12px 0 15px;font-family:Georgia,serif;font-size:clamp(34px,3vw,50px);font-weight:400;line-height:1.02}.story-panel>p{color:#ffffffbf;font-size:17px;line-height:1.55}.guide-line{width:fit-content;margin:24px auto;padding:9px 18px 9px 10px;border-radius:30px;display:flex;align-items:center;gap:12px;background:#ffffff12;text-align:left}.guide-line>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#ffffff1c;font-size:25px}.guide-line small,.guide-line b{display:block}.guide-line small{color:#ffffff7a;font-size:10px}.guide-line b{margin-top:2px}.story-panel .primary-button{width:100%}.story-panel .text-button{width:100%;margin-top:5px}.level-reward{width:min(570px,100%)}.reward-label{margin:18px 0;padding:13px 18px;border:1px solid rgba(255,224,145,.24);border-radius:18px;background:#ffdc8914}.reward-label small,.reward-label b{display:block}.reward-label small{color:#ffffff80}.reward-label b{margin-top:3px;color:var(--gold);font-size:18px}.finale{background:radial-gradient(circle at 50% 40%,#de8ddd73,#07051dd9 65%)}.parent-unlock{width:100%;min-height:48px;margin:6px 0 15px;border:1px solid rgba(255,218,128,.35);border-radius:18px;display:flex;justify-content:center;align-items:center;gap:9px;color:#ffe49b;background:#ffda8014;cursor:pointer}.parent-unlock svg{width:18px}.orb-field{position:absolute;z-index:9;inset:15% 0 9%}.magic-orb{position:absolute;transform:translate(-50%,-50%);width:clamp(76px,7vw,128px);aspect-ratio:1;border:0;border-radius:50%;color:#fff5b6;background:radial-gradient(circle,#fff5be 0 7%,#efb652 10%,rgba(164,101,211,.38) 36%,transparent 70%);cursor:pointer;animation:orbFloat 2.3s ease-in-out infinite alternate}.magic-orb i{position:absolute;inset:17%;border:1px solid rgba(255,255,255,.55);border-radius:50%;animation:spin 5s linear infinite}.magic-orb i:before,.magic-orb i:after{content:"";position:absolute;inset:-9px;border:1px dashed rgba(255,226,137,.6);border-radius:50%}.magic-orb span{font-size:28px;text-shadow:0 0 18px white}.magic-orb.hit{animation:orbDone .7s forwards}.firefly{position:absolute;transform:translate(-50%,-50%);width:84px;height:84px;border:0;color:#fff6aa;background:transparent;font-size:42px;text-shadow:0 0 9px #fff,0 0 24px #f6c553;cursor:pointer;animation:flyDance 2.6s ease-in-out var(--delay) infinite alternate}.firefly:before,.firefly:after{content:"";position:absolute;top:26px;width:29px;height:19px;border-radius:80% 20%;background:#c8eeff75}.firefly:before{left:3px;transform:rotate(22deg)}.firefly:after{right:3px;transform:scaleX(-1) rotate(22deg)}.firefly.caught{animation:flyCaught .7s forwards;pointer-events:none}.sleepy-branch{position:absolute;z-index:11;left:-5%;right:-4%;top:45%;height:90px;border-radius:0 60% 40% 0;transform:rotate(2deg);background:linear-gradient(#5c392c,#261c25);box-shadow:0 14px 28px #0006;animation:branchSway 4s ease-in-out infinite alternate}.sleepy-branch:before{content:"";position:absolute;left:20%;bottom:45%;width:28%;height:80px;border-radius:100% 0;transform:rotate(-12deg);background:linear-gradient(100deg,#4f312a,#2e2027)}.sleepy-branch i{position:absolute;width:60px;height:36px;border-radius:100% 0;background:#334d48}.sleepy-branch i:nth-child(1){left:32%;top:-21px;transform:rotate(-28deg)}.sleepy-branch i:nth-child(2){right:20%;bottom:-18px;transform:rotate(140deg)}.sleepy-branch span{position:absolute;right:25%;top:-36px;color:#ffffffa6;font-family:Georgia,serif;font-style:italic}.hold-meter{position:absolute;z-index:18;left:50%;bottom:77px;transform:translate(-50%);width:min(350px,64vw);text-align:center}.hold-meter b{display:block;margin-bottom:8px;text-shadow:0 2px 8px #000}.hold-meter>div{height:12px;overflow:hidden;border:2px solid rgba(255,255,255,.7);border-radius:10px;background:#110c30b3}.hold-meter i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#7ce0bf,#ffe27e);box-shadow:0 0 14px #ffe27e;transition:width .08s linear}.moon-stream{position:absolute;z-index:10;left:-5%;right:-5%;bottom:9%;height:24%;overflow:hidden;background:linear-gradient(180deg,#97ddff14,#5f9de7ad 45%,#3e42a7bf);transform:perspective(500px) rotateX(55deg);transform-origin:bottom;box-shadow:0 -12px 28px #8fd4ff52}.stream-ripples{position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0 9px,rgba(212,246,255,.36) 10px 12px,transparent 13px 28px);animation:waterFlow 2s linear infinite}.moon-stream span{position:absolute;left:50%;top:28%;transform:translate(-50%) rotateX(-40deg);color:#fff7ba;font-family:Georgia,serif;font-size:34px;text-shadow:0 0 20px white}.star-trace{position:absolute;z-index:11;left:20%;top:20%;width:60%;height:63%}.star-trace svg{position:absolute;inset:0;overflow:visible;filter:drop-shadow(0 0 10px #fbd16f)}.star-trace path{fill:#f8d57c0f;stroke:#ffeaa27a;stroke-width:.7;stroke-dasharray:2 2}.star-trace button{position:absolute;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,255,255,.46);color:#ffffff9e;background:#3e2b788a;box-shadow:0 0 20px #ac89ff66;cursor:pointer;font-weight:900}.star-trace button.next{color:#35234c;background:var(--gold);transform:translate(-50%,-50%) scale(1.24);animation:nextPoint 1.1s ease-in-out infinite alternate}.star-trace button.traced{color:#27463e;background:#98edcf;border-color:#fff}.portal-awake{position:absolute;z-index:9;right:2%;top:21%;width:24%;height:66%;border:12px solid rgba(173,116,55,.78);border-bottom:0;border-radius:50% 50% 0 0;box-shadow:inset 0 0 60px 18px #ffdf7bcc,0 0 40px #ffc95bb8;overflow:hidden}.portal-awake>div{position:absolute;inset:0;background:radial-gradient(ellipse,#fff8c9,#e7b74d 38%,#9455da59 70%);animation:portalSwirl 2.2s linear infinite}.portal-awake span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;text-align:center;color:#49295d;font-family:Georgia,serif;font-size:clamp(16px,1.7vw,28px);font-weight:700}.success-burst{position:absolute;z-index:60;left:50%;top:50%;transform:translate(-50%,-50%);width:260px;height:260px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3b2451;background:radial-gradient(circle,#fffbe6,#ffe08a 48%,#ffc95705 71%);filter:drop-shadow(0 0 32px #ffda73);text-align:center}.success-burst div{font-size:60px}.success-burst b{font-family:Georgia,serif;font-size:31px}.success-burst span{font-size:13px}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#07051dc2;backdrop-filter:blur(15px)}.pause-panel,.parent-panel{position:relative;width:min(470px,100%);padding:42px;border:1px solid rgba(255,255,255,.18);border-radius:35px;color:#fff;background:radial-gradient(circle at 50% 0,#4b3c8a,#1b153b 68%);box-shadow:0 30px 80px #0000008c;text-align:center}.pause-panel h2,.parent-panel h2{margin:10px 0;font-family:Georgia,serif;font-size:38px;font-weight:400}.pause-panel p,.parent-panel p{color:#ffffffb3;line-height:1.55}.pause-panel .primary-button,.pause-panel .secondary-button{width:100%;margin-top:10px}.modal-symbol{display:block;color:var(--gold);font-family:Georgia,serif;font-size:62px;text-shadow:0 0 28px #ffd77b}.reward-gem{width:80px;height:80px;margin:16px auto;display:grid;place-items:center;color:#e9cbff;font-size:58px;text-shadow:0 0 22px #bb79ef;animation:gemFloat 1.6s ease-in-out infinite alternate}.parent-panel{width:min(620px,100%);text-align:left}.parent-panel .close{position:absolute;top:19px;right:19px}.parent-facts{margin:25px 0;display:grid;gap:11px}.parent-facts>div{display:flex;align-items:center;gap:15px;padding:13px;border-radius:16px;background:#ffffff0f}.parent-facts>div>svg{color:var(--gold)}.parent-facts b,.parent-facts small{display:block}.parent-facts small{color:#ffffff8c;margin-top:3px}.small-print{font-size:13px}.danger-text{border:0;padding:10px 0;color:#e9a6a6;background:transparent;cursor:pointer}@keyframes portalPulse{50%{transform:scale(1.04);filter:brightness(1.16)}}@keyframes drift{to{transform:translate3d(1.2%,-.6%,0) scale(1.02)}}@keyframes fairyFloat{to{transform:translate(15px,-22px) scale(1.5);opacity:.35}}@keyframes wingBeat{to{transform:rotate(-16deg) scaleY(.9)}}@keyframes gameBreathe{to{transform:scale(1.025) translateY(-.3%)}}@keyframes trackingPulse{50%{opacity:.45;transform:scale(.96)}}@keyframes orbFloat{to{transform:translate(-50%,-57%) scale(1.06);filter:brightness(1.18)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbDone{to{transform:translate(-50%,-50%) scale(1.8);opacity:0}}@keyframes flyDance{to{transform:translate(-38%,-65%) rotate(9deg);filter:brightness(1.25)}}@keyframes flyCaught{to{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes branchSway{to{transform:rotate(-1deg) translateY(8px)}}@keyframes waterFlow{to{background-position:0 40px}}@keyframes nextPoint{to{box-shadow:0 0 30px #ffe18e}}@keyframes portalSwirl{50%{filter:hue-rotate(25deg) brightness(1.2);transform:scale(1.08)}}@keyframes gemFloat{to{transform:translateY(-10px) rotate(4deg)}}@keyframes targetHover{to{transform:translate(-50%,-57%) scale(1.07);filter:brightness(1.18)}}@keyframes collectFloat{to{transform:translate(-38%,-65%) rotate(8deg) scale(1.06);filter:brightness(1.2)}}@keyframes targetDone{to{transform:translate(-50%,-50%) scale(1.9);opacity:0}}@keyframes leanPulse{to{filter:brightness(1.18)}}@keyframes poseFloat{to{transform:translateY(-9px) scale(1.05)}}@media(max-width:960px){.story-title{left:42px;width:52vw}.story-title h1 span{font-size:76px}.world-stop{padding-right:36px}.world-play,.lock-label{position:static;transform:none;margin-top:20px;display:inline-flex}.costume-stage{grid-template-columns:.8fr 1.2fr;gap:30px}.camera-layout{gap:30px}}@media(max-height:760px){.story-title p{margin:17px 0}.primary-button{min-height:54px}.page-header{padding-top:18px;padding-bottom:13px}.camera-layout{height:calc(100vh - 95px)}.costume-stage{min-height:calc(100vh - 100px)}.mirror{height:71vh}.quest-banner{top:79px}.player-mirror{height:60%}}@media(max-width:700px){.story-title{left:25px;right:25px;top:52%;width:auto}.story-title h1 span{font-size:70px}.story-title h1 small{font-size:29px}.hero-actions{align-items:stretch;flex-direction:column;width:260px}.utility-bar{right:15px;top:15px}.page-header{width:calc(100% - 28px);padding-right:0;grid-template-columns:52px 1fr}.page-header>:last-child{display:none}.world-path{width:calc(100% - 28px);padding-left:72px}.world-path:before{left:27px}.world-orb{left:-79px;width:72px;height:72px;font-size:32px}.world-stop{padding:24px 18px}.world-copy ol,.level-buttons{grid-template-columns:1fr}.costume-stage,.camera-layout{width:calc(100% - 28px);height:auto;grid-template-columns:1fr;padding-bottom:50px}.costume-preview{height:42vh}.mirror{height:48vh}.camera-screen,.dressing-screen{overflow-y:auto}.chapter-dots{display:none}.level-label{min-width:0;flex:1}.quest-banner{min-width:calc(100% - 30px)}.game-help>span{display:none}.game-help button:nth-last-child(2){margin-left:0}.game-help{justify-content:center}.player-mirror{height:53%}.portal-awake{width:34%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
