:root{font-family:Trebuchet MS,system-ui,-apple-system,sans-serif;color:#39213e;background:#fff7ed;font-synthesis:none;--pink:#cb256f;--plum:#49223f;--cream:#fff9ee;--gold:#ffe19a;--line:#ecdcca}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{min-height:46px;border:0;border-radius:15px;padding:11px 19px;cursor:pointer;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:9px;color:inherit;transition:transform .16s,background .16s,box-shadow .16s}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.47}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:4px solid #167cac;outline-offset:4px}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin-top:0}p{line-height:1.6}h1,h2,h3{line-height:1.12}button span{line-height:1.2}.primary{background:linear-gradient(135deg,#ffe8a3,#ffce6a);color:#583323;box-shadow:0 5px #bd8041,0 10px 25px #40202220}.primary:hover{background:#ffeaaa}.secondary{background:#f9e9dd;border:1px solid #e7cbb7}.wide{width:100%}.quiet{background:transparent}.glass{background:#fff8ee20;border:1px solid #fff7ec65;color:#fff9ee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.text-button{padding:7px 10px;min-height:42px;background:transparent;font-size:14px;text-decoration:underline;text-underline-offset:3px}.icon-button{background:#fff8ef;border:1px solid #e8d1b8;padding:10px;min-width:44px;min-height:44px}.icon-button>span{font-size:21px}.icon-button svg+span{display:none}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:900;color:#9b526e;margin-bottom:10px}.home{min-height:100svh;position:relative;isolation:isolate;overflow:hidden;background:#3b3530;color:#fff9ec;display:flex;flex-direction:column}.home-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;z-index:-3}.home-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#351d36eF 0%,#351d36bf 25%,#351d3630 54%,transparent 80%),linear-gradient(0deg,#281b30db,transparent 25%)}.home-header{display:flex;justify-content:space-between;align-items:center;padding:28px 4.5vw}.brand-stamp{display:flex;align-items:center;gap:9px;font-weight:900;font-size:12px;letter-spacing:2px}.brand-stamp svg{color:#ffe39e;fill:#ffe39e;stroke:none}.home-content{padding:3vh 5vw 5vh;width:560px;max-width:52vw;flex:1}.chapter-pill{font-size:11px;font-weight:900;letter-spacing:2px;display:inline-block;padding:9px 13px;border-radius:30px;border:1px solid #ffefd96b;margin-bottom:22px;color:#ffe6a3}.home h1{font-family:Georgia,serif;font-weight:900;font-size:clamp(64px,6.8vw,106px);letter-spacing:-4px;line-height:.91;text-shadow:0 4px 20px #20102550;margin-bottom:18px}.and{font-size:.5em;color:#ffd68d;font-style:italic;vertical-align:middle}.sonic{color:#ffbfd9}.home h2{font-size:clamp(20px,2.1vw,30px);font-weight:700;margin-bottom:20px;letter-spacing:.2px}.home-content>p{font-size:18px;color:#fff0e3}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px;max-width:380px;margin-top:25px}.home-actions .jumbo{grid-column:1/-1;min-height:65px;font-size:25px;border-radius:18px}.home-actions .glass{font-size:15px;padding:13px 10px}.saved-label{font-size:13px!important;margin-top:21px;max-width:350px}.home-footer{display:flex;justify-content:space-between;gap:20px;padding:20px 4.5vw;font-size:13px;color:#f5e8d5}.home-footer span{display:flex;align-items:center;gap:9px}.home-footer svg{width:18px;height:18px}.page-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line);background:#fff9f1}.small-brand{display:flex;align-items:center;gap:8px;font-family:Georgia,serif;font-weight:700;font-size:23px}.small-brand svg{color:var(--pink);fill:var(--pink);stroke:none}.small-brand em{color:var(--pink)}.page-title{margin:38px auto 15px;max-width:1320px;padding:0 30px}.page-title h1{font-family:Georgia,serif;font-size:46px;letter-spacing:-1.5px;margin-bottom:10px}.map-intro{max-width:1320px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 30px}.map-intro p{max-width:670px;color:#785d72}.progress-pill{white-space:nowrap;font-size:14px;font-weight:800;background:#f8e3eb;border-radius:30px;padding:11px 18px}.world-nav{display:flex;gap:8px;overflow:auto;max-width:1320px;margin:22px auto 10px;padding:0 30px 15px}.world-nav a{background:#fff;border:1px solid var(--line);color:#70536a;text-decoration:none;white-space:nowrap;border-radius:25px;padding:12px 16px;font-size:14px;font-weight:700}.world-nav a:hover{background:#fbe4ef}.worlds{max-width:1320px;margin:auto;padding:0 30px 60px}.world{padding-top:27px;margin-bottom:22px;scroll-margin-top:15px}.world-heading{display:flex;align-items:center;gap:15px;margin-bottom:19px}.world-heading>span{font-family:Georgia,serif;font-size:45px;color:#d68caa}.world-heading .eyebrow{margin:0 0 5px}.world-heading h2{font-family:Georgia,serif;font-size:27px;margin:0}.levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:17px}.level{padding:0;display:block;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;text-align:left;box-shadow:0 6px 18px #4d303b0b}.level.locked{opacity:.75}.level-image{aspect-ratio:1.5;position:relative;overflow:hidden}.level-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.level:hover:not(:disabled) img{transform:scale(1.05)}.locked img{filter:saturate(.35)}.level-number{position:absolute;left:10px;top:10px;min-width:33px;height:33px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#fffbf0;color:#764165;font-size:15px}.level-number svg{width:16px}.next-label{position:absolute;right:9px;bottom:9px;background:#ffd889;border-radius:20px;padding:6px 10px;font-size:12px}.level-text{padding:13px;display:flex;flex-direction:column;gap:8px}.level-text strong{font-size:15px;line-height:1.3;min-height:39px}.stars{display:inline-flex;gap:5px;color:#decfc1;font-size:22px;letter-spacing:1px}.stars .earned{color:#eab448;text-shadow:0 1px #af7335}.game{height:100dvh;min-height:480px;display:flex;flex-direction:column;background:#fff7ea;overflow:hidden}.game-header{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 25px;background:#fff9ed;box-shadow:0 2px 12px #30242b15;z-index:2;flex-shrink:0}.game-location{display:flex;align-items:center;gap:15px}.game-location h1{font-family:Georgia,serif;font-size:23px;margin:0}.game-location .eyebrow{font-size:10px;margin:0 0 6px}.game-stats{display:flex;align-items:center;gap:24px;font-size:14px;font-weight:800}.timer{display:flex;align-items:center;gap:9px;padding:11px 16px;background:#f5e9d6;border-radius:15px;color:#5a4531;min-width:114px;justify-content:center}.timer b{font-size:24px;font-variant-numeric:tabular-nums}.timer.low{background:#ffe0df;color:#ac3452;transition:background 1s}.scene-wrap{position:relative;flex:1;min-height:0;overflow:hidden;background:#293629}.scene-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.scene-tools{position:absolute;right:16px;top:16px;display:flex;gap:6px;filter:drop-shadow(0 3px 5px #27162130)}.scene-tools button{background:#fff9eced}.scene-tools .full-button{margin-left:5px}.tray{flex-shrink:0;padding:15px 25px 6px;border-top:4px solid #e4bd82;background:linear-gradient(#fff9ec,#fff1da);box-shadow:0 -5px 20px #30251a22;z-index:2}.tray-heading{display:flex;justify-content:space-between;gap:15px;font-size:11px;letter-spacing:1.8px;font-weight:900;color:#996b47;margin-bottom:11px}.tray-tip{letter-spacing:0;font-weight:400;font-size:12px;color:#826c59}.tray-row{display:flex;gap:17px}.targets{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;flex:1}.target{min-height:58px;padding:10px 12px;background:#fffdf6;border:1px solid #ddc7a4;box-shadow:0 3px #e7d6b7;border-radius:12px;justify-content:flex-start;gap:8px;text-align:left;font-size:14px}.target-dot{width:8px;height:8px;border:1.5px solid #c59b72;border-radius:50%;flex-shrink:0}.target.selected{background:#ffe0ed;border-color:#cc4e87;box-shadow:0 3px #d5a3b6}.target.selected .target-dot{background:#cf327a;border-color:#cf327a}.hint-button{width:100px;flex-shrink:0;flex-direction:column;background:#cc2c78;color:#fff;border-radius:16px;padding:9px;font-size:13px;box-shadow:0 4px #9d235b;position:relative;overflow:hidden}.hint-button:disabled{background:#866178;opacity:1;box-shadow:0 4px #664459;color:#fff}.hint-button:after{content:"";position:absolute;left:0;bottom:0;width:calc(var(--charge,1)*100%);height:4px;background:#ffdfa0}.hint-button svg{width:25px;height:25px}.game-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#7c614f;min-height:30px}.game-bottom .text-button{font-size:12px;min-height:30px;padding:5px}.tutorial{position:absolute;left:18px;top:18px;max-width:280px;padding:15px 17px;background:#fff9ecf5;border:2px solid #efc779;border-radius:16px;box-shadow:0 5px 20px #291b2850;font-size:14px}.tutorial[hidden]{display:none}.tutorial p{margin:8px 0}.tutorial .text-button{font-size:12px;padding:3px;min-height:28px}.modal{border:0;border-radius:26px;max-width:min(480px,calc(100vw - 30px));width:480px;max-height:calc(100dvh - 30px);padding:30px;background:#fff9ee;color:#492840;box-shadow:0 28px 90px #17081865;text-align:center;overflow:auto}.modal::backdrop{background:#2c163ada;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px)}.modal h2{font-family:Georgia,serif;font-size:34px;letter-spacing:-.8px;margin:9px 0 15px}.modal p{color:#7e6070;font-size:15px}.dialog-actions{display:flex;gap:12px;justify-content:center;margin:22px 0 8px}.stack{display:flex;flex-direction:column;gap:13px;margin-top:22px}.mission{padding-top:0;overflow-x:hidden}.mission-art{height:160px;background-size:cover;background-position:center;margin:0 -30px 25px;position:relative}.mission-art span{position:absolute;bottom:15px;left:22px;background:#fff7e8;border-radius:30px;padding:7px 12px;font-weight:900;font-size:12px;letter-spacing:1px}.mission-facts{display:flex;justify-content:center;gap:24px;margin:23px 0;font-size:14px;font-weight:700}.mission-facts span{display:flex;gap:7px;align-items:center}.mission-facts svg{color:#c55280;width:19px}.mission .wide{margin:5px 0 13px;min-height:54px}.pause-emblem{background:#f8d9e6;width:70px;height:70px;border-radius:24px;margin:0 auto 24px;display:grid;place-items:center;color:#ca3f7c}.pause-emblem svg{width:34px;height:34px}.victory{padding-top:0}.victory-art{height:200px;margin:0 -30px 26px;position:relative;background:#2b352c}.victory-art img{width:100%;height:100%;object-fit:cover;object-position:center 44%}.victory-art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#33213a55)}.victory-art .stars{position:absolute;bottom:-21px;left:0;right:0;justify-content:center;font-size:49px;z-index:2;filter:drop-shadow(0 3px 3px #54352655)}.victory-art .stars span:nth-child(2){transform:translateY(-8px)}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px;background:#f5e7d7;padding:17px;border-radius:17px}.score-grid div{display:flex;flex-direction:column;gap:5px}.score-grid strong{font-size:26px}.score-grid span{font-size:12px;color:#876778}.result-mode{font-size:12px!important;margin:9px 0}.settings-modal{width:600px;max-width:min(600px,calc(100vw - 26px));text-align:left}.settings-head{display:flex;justify-content:space-between;align-items:center}.settings-head h2{margin-bottom:20px}.settings-head .eyebrow{margin-bottom:0}.setting{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid #ebddce;font-size:16px;font-weight:800}.setting small{display:block;font-size:12px;line-height:1.5;color:#887481;font-weight:400;margin-top:4px}.setting input{width:23px;height:23px;accent-color:#ca2d77;cursor:pointer}.setting select{max-width:62%;border:1px solid #decbb8;border-radius:10px;padding:10px 8px;background:#fffdfa;color:#53324b;font-size:14px}.settings-modal .help{font-size:12px;line-height:1.6;margin-top:14px}.settings-modal details{padding:14px 0;font-size:14px}.settings-modal summary{cursor:pointer;font-weight:800;line-height:1.5}.settings-modal details p{font-size:13px;margin-top:13px}.save-settings{border-top:1px solid #e9d8c6;margin-top:9px;padding-top:20px}.save-settings h3{font-size:19px;margin-bottom:10px}.save-settings p{font-size:13px}.save-settings .dialog-actions{justify-content:flex-start;flex-wrap:wrap}.save-settings button{font-size:13px}.danger-link{background:transparent;color:#a9395a;text-decoration:underline;margin-top:6px;padding-left:0}.modal progress{width:100%;height:15px;accent-color:#d64288;margin-top:22px}#notice{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:#4c2748;color:#fff9eb;border:1px solid #b7779c;padding:12px 20px;border-radius:14px;max-width:min(500px,90vw);font-size:14px;z-index:100;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;text-align:center;box-shadow:0 5px 22px #2a102033}#notice.show{opacity:1;transform:translate(-50%)}.reduced *,.reduced *:before,.reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(min-width:1500px){.home-content{padding-top:7vh}.home h1{font-size:112px}.home-art{object-position:center 40%}}@media(max-width:1000px){.levels{gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.home-content{max-width:60vw}.home-shade{background:linear-gradient(90deg,#351d36e8,#351d36a0 35%,transparent 85%),linear-gradient(0deg,#281b30db,transparent 30%)}.targets{grid-template-columns:repeat(3,minmax(0,1fr))}.target{min-height:44px}.tray{padding:10px 18px 4px}.hint-button{width:84px}.game-header{padding:10px 18px;min-height:72px}.game-stats{gap:12px}.game-location h1{font-size:19px}.game-stats #progress-text{font-size:12px}.timer{padding:8px 10px;min-width:95px}.timer b{font-size:21px}.full-button{display:none!important}}@media(max-width:600px){.home{min-height:100svh}.home-art{object-position:59% top;height:61%;object-fit:cover}.home-shade{background:linear-gradient(0deg,#382039 0% 33%,#382039e0 44%,#38203922 70%,#38203930)}.home-header{padding:16px 18px;align-items:flex-start}.brand-stamp{font-size:9px;letter-spacing:1px}.brand-stamp svg{width:17px}.home-header button{padding:8px 10px;font-size:12px;min-height:36px}.home-header svg{width:17px}.home-content{max-width:none;width:100%;padding:calc(40svh - 65px) 25px 22px;text-align:center}.chapter-pill{font-size:9px;margin-bottom:14px;padding:7px 10px}.home h1{font-size:63px;letter-spacing:-2.5px;line-height:.98;margin-bottom:10px}.home h1 br{display:none}.and{font-size:.55em;padding:0 3px}.sonic{display:inline}.home h2{font-size:22px;margin-bottom:12px}.home-content>p{font-size:14px;margin-bottom:0;line-height:1.55}.home-content>p br{display:none}.home-actions{margin:20px auto 0;gap:13px;max-width:390px}.home-actions .jumbo{min-height:56px;font-size:22px}.home-actions .glass{font-size:14px;min-height:45px}.home-footer{justify-content:center;padding:8px 15px 18px;font-size:12px}.home-footer span:nth-child(2){display:none}.saved-label{margin-left:auto;margin-right:auto;font-size:11px!important}.page-header{height:67px;padding:0 10px}.page-header button{font-size:12px;padding:8px}.small-brand{font-size:18px;gap:5px}.small-brand svg{width:17px}.page-title{padding:0 20px;margin-top:28px}.page-title h1{font-size:35px}.map-intro{padding:0 20px;display:block}.map-intro p{font-size:14px}.progress-pill{display:inline-block;font-size:12px;padding:8px 12px}.world-nav{padding:0 20px 10px}.world-nav a{font-size:12px}.worlds{padding:0 20px 30px}.levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.world-heading h2{font-size:23px}.world-heading>span{font-size:36px}.level-text{padding:11px}.level-text strong{font-size:13px;min-height:34px}.stars{font-size:18px}.game{min-height:420px}.game-header{padding:8px 10px;gap:6px;min-height:77px;align-items:center}.game-location{gap:8px;min-width:0}.game-location>div{min-width:0}.game-location h1{font-size:16px;line-height:1.1;max-width:170px}.game-location .eyebrow{font-size:8px;letter-spacing:1px}.game-location .icon-button{min-width:40px;min-height:42px;padding:8px}.game-stats{flex-direction:column-reverse;gap:4px;flex-shrink:0}.game-stats #progress-text{font-size:10px}.timer{padding:4px 10px;min-width:88px;border-radius:10px}.timer b{font-size:19px}.timer svg{width:16px}.scene-tools{right:8px;top:8px;gap:4px}.scene-tools .icon-button{min-width:38px;min-height:38px;padding:6px;border-radius:11px}.scene-tools .icon-button>span{font-size:16px}.tray{padding:10px 10px 2px;border-top-width:3px}.tray-heading{font-size:9px;letter-spacing:1px;margin-bottom:8px}.tray-tip{display:none}.tray-row{gap:9px}.targets{gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.target{font-size:12px;min-height:43px;padding:7px;gap:5px;border-radius:9px}.target-dot{width:6px;height:6px}.hint-button{width:58px;border-radius:13px;font-size:11px}.hint-button svg{width:24px;height:24px}.game-bottom{font-size:9px;gap:6px;min-height:28px}.game-bottom>span:first-child{max-width:65%;line-height:1.3}.game-bottom .text-button{font-size:10px;min-height:28px;padding:4px}.tutorial{max-width:210px;left:8px;top:57px;font-size:12px;padding:11px}.modal{padding:24px;max-height:calc(100dvh - 20px);border-radius:22px}.modal h2{font-size:28px}.modal p{font-size:14px}.mission-art{margin-left:-24px;margin-right:-24px;height:145px}.victory-art{margin-left:-24px;margin-right:-24px;height:175px}.settings-modal{padding:21px}.setting{font-size:14px;gap:10px}.setting select{font-size:12px;padding:9px 5px;max-width:61%}.settings-head h2{font-size:29px}.settings-head button{font-size:12px}.dialog-actions{gap:9px}.dialog-actions button{font-size:13px;padding:11px}.mission-facts{gap:17px;font-size:13px}.mission-facts svg{width:17px}#notice{bottom:190px;font-size:12px;max-width:85vw;width:max-content;padding:10px 14px}}@media(max-height:580px)and (min-width:601px){.game-header{min-height:53px;padding:5px 15px}.game-location .eyebrow{display:none}.game-location h1{font-size:16px}.game-location button{min-height:38px}.timer{padding:5px 10px}.timer b{font-size:19px}.targets{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.target{font-size:11px;min-height:39px;padding:6px}.tray{padding:6px 12px 1px}.tray-heading{margin-bottom:5px;font-size:9px}.tray-tip{display:none}.hint-button{width:65px;flex-direction:row;font-size:11px;padding:6px}.hint-button svg{width:20px}.game-bottom{min-height:23px;font-size:10px}.game-bottom .text-button{min-height:23px;padding:3px;font-size:10px}.scene-tools{top:8px;right:10px}.scene-tools .icon-button{min-height:36px;min-width:36px;padding:6px}.tutorial{max-width:220px;top:10px;font-size:12px;padding:10px}.home-content{padding-top:0}.home h1{font-size:66px}.home-header{padding-top:16px;padding-bottom:10px}.home-content>p{display:none}.home-footer{padding:10px 4vw}.chapter-pill{margin-bottom:10px}.home-actions{margin-top:15px}.home-actions .jumbo{min-height:50px}.game{min-height:300px}}@media(max-width:600px){.home-art{object-position:20% top}.target{font-size:14px;min-height:46px}.target-dot{display:none}.home-content>p br:after{content:" "}}#selected-label{display:flex;align-items:center;gap:7px}.object-sample{width:28px;height:28px;object-fit:contain;flex-shrink:0}.tray .tutorial{position:static;max-width:none;width:100%;margin:0 0 10px;padding:9px 14px;box-shadow:none;font-size:13px;background:#fff9e8}.tray .tutorial p{display:inline;margin:0 10px;line-height:1.4}.tray .tutorial strong{display:inline}.tray .tutorial .text-button{display:inline-flex;font-size:12px;min-height:28px;padding:2px 8px}@media(max-width:600px){.tray .tutorial{font-size:12px;padding:7px 9px;margin-bottom:7px}.tray .tutorial p{display:block;margin:4px 0}}.tray-heading{align-items:center}.tray .scene-tools{position:static;filter:none;flex-shrink:0;letter-spacing:0;gap:5px}.tray .scene-tools .icon-button{min-height:34px;min-width:34px;height:34px;padding:5px;border-radius:10px}.tray .scene-tools .icon-button>span{font-size:15px}.tray .scene-tools svg{width:19px;height:19px}@media(max-width:700px){.tray-heading{gap:5px}.tray-heading>span:first-child{max-width:50%}}
