@font-face{font-family:CQ Pixel;font-display:swap;src:url(/app-assets/fonts/PressStart2P-Regular.woff2)format("woff2"),url(/game-assets/fonts/PressStart2P-Regular.woff2)format("woff2"),url(/game-assets/fonts/PressStart2P-Regular.ttf)format("truetype")}@font-face{font-family:CQ Body;font-weight:400;font-display:swap;src:url(/app-assets/fonts/Nunito-400.woff2)format("woff2"),url(/game-assets/fonts/Nunito-400.woff2)format("woff2")}@font-face{font-family:CQ Body;font-weight:700;font-display:swap;src:url(/app-assets/fonts/Nunito-700.woff2)format("woff2"),url(/game-assets/fonts/Nunito-700.woff2)format("woff2")}@font-face{font-family:CQ Body;font-weight:800;font-display:swap;src:url(/app-assets/fonts/Nunito-800.woff2)format("woff2"),url(/game-assets/fonts/Nunito-800.woff2)format("woff2")}:root{--forest:#1f4d2b;--forest-dark:#143520;--forest-deep:#0d2616;--leaf:#3f9b3f;--leaf-light:#6cc04a;--gold:#e8c35a;--gold-dark:#b8892a;--gold-light:#ffe9a3;--parchment:#f3e3b5;--parchment-dark:#e2cc8f;--ink:#2b1d0e;--ink-soft:#5a4325;--sky:#5fb7e5;--heart:#e23c3c;--night:#10204a;--pixel:"CQ Pixel", "Press Start 2P", ui-monospace, monospace;--body:"CQ Body", "Nunito", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, sans-serif;--mono:ui-monospace, Menlo, monospace;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--tap:48px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}html{overscroll-behavior:none;-webkit-text-size-adjust:100%}body{font-family:var(--body);color:var(--parchment);background:var(--forest);overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background-image:radial-gradient(circle at 20% 15%,#6cc04a2e,#0000 40%),radial-gradient(circle at 85% 80%,#e8c35a1a,#0000 45%),repeating-linear-gradient(45deg,#0000000d 0 8px,#0000 8px 16px);font-size:17px;line-height:1.4;overflow:hidden}input,textarea,.cm-content,.selectable{-webkit-user-select:text;user-select:text}button{touch-action:manipulation;font-family:inherit}img.px,.px{image-rendering:pixelated;image-rendering:crisp-edges}.pixel{font-family:var(--pixel);letter-spacing:.5px;line-height:1.5}h1,h2,h3{font-family:var(--pixel);margin:0 0 .6em;font-weight:400;line-height:1.5}h1{font-size:22px}h2{font-size:16px}h3{font-size:13px}a{color:var(--gold)}.app{flex-direction:column;display:flex;position:fixed;inset:0}.scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-y:auto}.btn{min-height:var(--tap);min-width:var(--tap);cursor:pointer;font:800 17px var(--body);color:var(--ink);background:linear-gradient(#ffe9a3, var(--gold));border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink), inset 0 2px 0 #fff9;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.btn:active{box-shadow:0 1px 0 var(--ink), inset 0 2px 0 #fff6;transform:translateY(3px)}.btn:disabled{opacity:.5;cursor:default}.btn.green{background:linear-gradient(#8fd96a, var(--leaf));color:#fff;text-shadow:0 2px #00000059}.btn.red{background:linear-gradient(#ff8a7a, var(--heart));color:#fff;text-shadow:0 2px #00000059}.btn.blue{background:linear-gradient(#9ad8ff, var(--sky));color:var(--ink)}.btn.dark{background:linear-gradient(#2c6a3d, var(--forest-dark));color:var(--parchment);border-color:var(--gold);box-shadow:0 4px #000}.btn.ghost{color:var(--parchment);box-shadow:none;background:#00000040;border-color:#e8c35a99}.btn.small{border-radius:10px;min-height:44px;padding:0 12px;font-size:15px}.btn.big{border-radius:16px;min-height:64px;padding:0 28px;font-size:21px}.btn.icon{width:var(--tap);padding:0}.btn.glow{animation:1.2s ease-in-out infinite glow}@keyframes glow{0%,to{box-shadow:0 4px 0 var(--ink), 0 0 0 0 #ffe9a3e6}50%{box-shadow:0 4px 0 var(--ink), 0 0 18px 6px #ffe9a3e6}}.parchment{color:var(--ink);background-color:var(--parchment);background-image:url(/app-assets/parchment.png), radial-gradient(ellipse at center, #f7ebc8 0%, var(--parchment) 60%, var(--parchment-dark) 100%);image-rendering:pixelated;border:4px solid var(--gold);box-shadow:0 0 0 3px var(--ink), 0 8px 0 3px #00000059, inset 0 0 24px #78501440;background-size:64px 64px,100% 100%;border-radius:10px;padding:16px 18px}.parchment h1,.parchment h2,.parchment h3{color:var(--ink)}.panel-dark{border:3px solid var(--gold);background:#0d2616e0;border-radius:10px;box-shadow:0 0 0 2px #000,0 6px 0 2px #0006}.dialog-blue{background:var(--night);color:#fff;border:4px solid var(--gold);border-radius:8px;padding:14px 16px;box-shadow:0 0 0 3px #000}.topbar{padding:calc(8px + var(--sat)) calc(14px + var(--sar)) 8px calc(14px + var(--sal));background:linear-gradient(var(--forest-deep), #0d2616d9);border-bottom:3px solid var(--gold);flex-shrink:0;align-items:center;gap:12px;display:flex}.topbar .brand{font-family:var(--pixel);color:var(--gold);align-items:center;gap:10px;font-size:13px;display:flex}.topbar .brand img{height:36px}.topbar .spacer{flex:1}.stat{font:800 18px var(--body);color:#fff;background:#00000059;border:2px solid #e8c35a80;border-radius:22px;align-items:center;gap:6px;min-height:40px;padding:4px 12px 4px 8px;display:inline-flex}.hearts{align-items:center;gap:3px;display:inline-flex}.title-screen{background:linear-gradient(#2c3e8f 0%,#6b5bb5 25%,#f08a5d 52%,#ffd27a 62%,#3f9b3f 62.5%,#2f7a35 75%,#1f4d2b 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.title-bg{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.title-hills{pointer-events:none;background:radial-gradient(60% 40% at 20% 100%,#2f7a35 60%,#0000 61%),radial-gradient(70% 50% at 80% 100%,#24612c 60%,#0000 61%);height:45%;position:absolute;bottom:0;left:0;right:0}.title-vignette{pointer-events:none;background:radial-gradient(#0000 40%,#0000008c 100%);position:absolute;inset:0}.title-content{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:22px;padding:24px;display:flex;position:relative}.logo-img{width:min(80vw,640px);image-rendering:pixelated;filter:drop-shadow(0 6px #00000080);animation:4s ease-in-out infinite float}.logo-text{font-family:var(--pixel);color:var(--gold-light);letter-spacing:4px;text-shadow:4px 4px 0 var(--gold-dark), 8px 8px 0 var(--ink), 0 0 30px #ffe9a399;font-size:clamp(34px,7vw,72px);animation:4s ease-in-out infinite float}.tagline{font-family:var(--pixel);color:#fff;text-shadow:2px 2px #000;font-size:clamp(11px,1.8vw,16px)}.press-start{font-family:var(--pixel);color:#fff;text-shadow:2px 2px #000;font-size:14px;animation:1.1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.dev-users{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.dev-user{flex-direction:column;align-items:center;gap:6px;min-width:120px;padding:12px;display:flex}.dev-user .ava{font-size:40px}.sparkles{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.sparkle{width:10px;height:10px;animation:3s ease-in-out infinite twinkle;position:absolute}.sparkle:before,.sparkle:after{content:"";background:#fff8d0;position:absolute;box-shadow:0 0 8px #fff2a8}.sparkle:before{width:2px;height:10px;top:0;left:4px}.sparkle:after{width:10px;height:2px;top:4px;left:0}@keyframes twinkle{0%,to{opacity:0;transform:scale(.3)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(45deg)}}.home{min-height:0;padding:18px calc(18px + var(--sar)) calc(18px + var(--sab)) calc(18px + var(--sal));flex:1}.home-grid{grid-template-columns:minmax(0,1fr) 320px;gap:20px;max-width:1300px;margin:0 auto;display:grid}@media (width<=900px){.home-grid{grid-template-columns:1fr}}.hero-card{align-items:center;gap:16px;display:flex}.hero-card .emblem{width:72px;height:72px;image-rendering:pixelated;flex-shrink:0}.big-actions{grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 22px;display:grid}.big-actions .btn{white-space:normal;border-radius:18px;flex-direction:column;gap:2px;min-height:84px;font-size:20px}.big-actions .btn small{font:700 13px var(--body);opacity:.85}.title-content .btn.big{flex-direction:column;gap:2px}.title-content .btn.big small{font:700 13px var(--body);opacity:.9;letter-spacing:0}.map{padding:18px;position:relative}.map-path{flex-direction:column;gap:14px;display:flex}.chapter{grid-template-columns:76px 1fr;align-items:start;gap:14px;display:grid}.chapter-icon{background:radial-gradient(circle at 35% 30%, #fff6cf, var(--gold) 55%, var(--gold-dark));border:4px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:36px;display:flex;box-shadow:0 4px #0006}.chapter.locked .chapter-icon{filter:grayscale()brightness(.7)}.chapter-body h2{margin-bottom:4px;font-size:14px}.chapter-intro{color:var(--ink-soft);margin:0 0 8px;font-size:15px}.quest-chips{flex-wrap:wrap;gap:8px;display:flex}.quest-chip{cursor:pointer;border:3px solid var(--ink-soft);min-height:48px;color:var(--ink);font:800 15px var(--body);background:#ffffff8c;border-radius:24px;align-items:center;gap:8px;padding:6px 14px;display:inline-flex}.quest-chip.done{background:linear-gradient(#b9f09a,#7fcf5a);border-color:#2c6b1f}.quest-chip.current{background:linear-gradient(#fff2b8, var(--gold));border-color:var(--ink);animation:1.6s infinite glow}.quest-chip.locked{opacity:.55}.progress-bar{border:2px solid var(--ink);background:#2b1d0e40;border-radius:8px;height:14px;overflow:hidden}.progress-bar>div{background:linear-gradient(90deg, var(--leaf), var(--leaf-light));height:100%;transition:width .6s}.side-col{flex-direction:column;gap:16px;display:flex}.badges{flex-wrap:wrap;gap:8px;display:flex}.badge{background:linear-gradient(#fff6cf, var(--gold));border:3px solid var(--ink);border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:flex}.badge.empty{opacity:.6;background:#2b1d0e26;border-style:dashed}.menu-list{flex-direction:column;gap:10px;display:flex}.menu-list .btn{justify-content:flex-start}.page{min-height:0;padding:18px calc(18px + var(--sar)) calc(24px + var(--sab)) calc(18px + var(--sal));flex:1}.page-inner{flex-direction:column;gap:18px;max-width:980px;margin:0 auto;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{font-weight:800}.text-input{min-height:var(--tap);font:700 18px var(--body);border:3px solid var(--ink);color:var(--ink);background:#fffdf3;border-radius:10px;padding:8px 14px}.dial-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}@media (width<=760px){.dial-options{grid-template-columns:1fr}}.dial-opt{cursor:pointer;text-align:center;border:3px solid var(--ink-soft);min-height:110px;color:var(--ink);font:800 15px var(--body);background:#ffffff80;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.dial-opt .ico{font-size:30px}.dial-opt small{color:var(--ink-soft);font-size:12.5px;font-weight:600}.dial-opt.on{background:linear-gradient(#fff2b8, var(--gold));border-color:var(--ink);box-shadow:0 0 0 3px var(--leaf)}.toggle{justify-content:space-between;align-items:center;gap:12px;min-height:56px;font-weight:800;display:flex}.switch{border:3px solid var(--ink);cursor:pointer;background:#b9a77a;border-radius:20px;flex-shrink:0;width:72px;height:40px;position:relative}.switch:after{content:"";border:2px solid var(--ink);background:#fff;border-radius:50%;width:28px;height:28px;transition:left .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--leaf)}.switch.on:after{left:35px}.table{border-collapse:collapse;width:100%;font-size:15px}.table th,.table td{text-align:left;vertical-align:top;border-bottom:2px solid #2b1d0e33;padding:8px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.gallery-card{flex-direction:column;gap:8px;display:flex}.gallery-card .ava{text-align:center;font-size:46px}.empty-note{color:var(--ink-soft);font-style:italic}.title-help{font-family:var(--pixel);color:#fff;text-shadow:2px 2px #000;opacity:.85;margin-top:6px;font-size:11px}.help-tabs{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.help-small{opacity:.75;font-size:13px}.ack-group h3{margin:18px 0 6px;font-size:16px}.ack-group h3 small{opacity:.6;font-weight:400}.ack-item{border-top:1px solid #2b1d0e26;padding:8px 2px}.ack-item summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;display:flex}.ack-ver{opacity:.6;font-size:13px}.ack-lic{background:#2b1d0e14;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px}.ack-text{white-space:pre-wrap;overflow-wrap:anywhere;background:#ffffff8c;border-radius:8px;max-height:320px;margin:8px 0 0;padding:10px;font-size:11px;line-height:1.4;overflow:auto}.modal.wide.vote-modal{width:min(1060px,100%)}.btn.gold{background:linear-gradient(#ffe08a, var(--gold));color:var(--ink)}.vote-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:12px 0;display:grid}@media (width<=760px){.vote-cards{grid-template-columns:1fr}}.vote-card{background:#fff9;border:3px solid #0000;border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 3px #00000026}.vote-card.mine{border-color:var(--gold);box-shadow:0 0 0 3px #e8c35a80,0 3px #00000026}.brand-banner{text-align:center;color:#fff;flex-direction:column;align-items:center;gap:8px;padding:16px 10px 14px;display:flex;position:relative;overflow:hidden}.brand-icon{width:56px;height:56px;image-rendering:pixelated;filter:drop-shadow(2px 2px #00000059);flex:none}.brand-word{font-family:var(--pixel);letter-spacing:1px;text-shadow:2px 2px #00000073;white-space:nowrap;font-size:clamp(13px,1.6vw,19px)}.brand-tag{opacity:.95;margin-top:4px;font-size:13px;font-weight:700}.brand-story{flex:1;padding:0 14px;font-size:15px;line-height:1.45}.vote-btn{min-height:48px;margin:0 12px 14px}.brand-wand .brand-banner{background:radial-gradient(circle at 80% 20%,#8f6bff 0,#0000 45%),linear-gradient(135deg,#24164a,#4b2f9e)}.brand-wand .brand-word{color:#ffd86b}.brand-wand .vote-btn{color:#fff;background:linear-gradient(#a58bff,#5b3cc4)}.brand-sword .brand-banner{background:linear-gradient(135deg,#1f4d2b,#3f9b3f 60%,#8fb3c9)}.brand-sword .brand-word{color:#eef4ff}.brand-sword .vote-btn{background:linear-gradient(#8fd96a, var(--leaf));color:#fff}.brand-acorn .brand-banner{background:linear-gradient(135deg,#6b3a14,#c0661c 55%,#f0b25a)}.brand-acorn .brand-word{color:#fff3dc}.brand-acorn .vote-btn{color:#fff;background:linear-gradient(#f5b770,#c0661c)}.vote-thanks{border-radius:14px;margin-bottom:8px;overflow:hidden}.tally-row{align-items:center;gap:10px;margin:8px 0;display:flex}.tally-name{width:120px;font-weight:800}.tally-bar{background:#2b1d0e1a;border-radius:8px;flex:1;height:16px;overflow:hidden}.tally-bar i{background:var(--gold);height:100%;display:block}.brand-wand .tally-bar i{background:#5b3cc4}.brand-sword .tally-bar i{background:var(--leaf)}.brand-acorn .tally-bar i{background:#c0661c}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.boot{color:var(--gold);justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;inset:0}.title-foot{bottom:calc(10px + var(--sab));text-align:center;color:#fff9;z-index:2;font-size:12px;position:absolute;left:0;right:0}.modal-back{z-index:80;padding:20px;padding-top:calc(20px + var(--sat));background:#050f0899;justify-content:center;align-items:center;animation:.15s fadein;display:flex;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:88vh;animation:.22s cubic-bezier(.3,1.6,.6,1) pop;overflow:auto}.modal.wide{width:min(760px,100%)}@keyframes fadein{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.story{margin:0 0 12px;font-size:17px;line-height:1.5}.step-list{flex-direction:column;gap:8px;margin:0 0 14px;padding-left:0;list-style:none;display:flex}.step-list li{align-items:center;gap:10px;min-height:36px;font-weight:700;display:flex}.step-list li.done{color:#2c6b1f;text-decoration:line-through;text-decoration-thickness:2px}.step-list li.cur{color:var(--ink);background:#e8c35a73;border-radius:8px;margin:0 -8px;padding:4px 8px}.step-box{border:3px solid var(--ink);background:#fffdf3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:inline-flex}.step-list li.done .step-box{background:var(--leaf);color:#fff}.toasts{top:calc(70px + var(--sat));z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--night);color:#fff;border:3px solid var(--gold);border-radius:12px;max-width:90vw;padding:10px 18px;font-weight:800;animation:.2s pop;box-shadow:0 0 0 2px #000,0 6px 16px #0006}.toast.good{background:#1d5a2a}.toast.bad{background:#6a1e1e}@media (width<=700px){.hide-small{display:none}}.celebrate{z-index:150;background:radial-gradient(circle,#ffe9a373,#0a140cd1 70%);justify-content:center;align-items:center;animation:.2s fadein;display:flex;position:fixed;inset:0}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:2px;animation:linear forwards fall;position:absolute;top:-20px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.item-get{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;position:relative}.chest-wrap{justify-content:center;align-items:flex-end;width:128px;height:128px;display:flex;position:relative}.chest-beam{transform-origin:bottom;filter:blur(2px);background:conic-gradient(from 160deg at 50% 100%,#0000 0deg,#fff0aad9 20deg,#0000 40deg);width:200px;height:260px;animation:1.2s .4s both beam;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}@keyframes beam{0%{opacity:0;transform:translate(-50%)scaleY(0)}to{opacity:1;transform:translate(-50%)scaleY(1)}}.chest-sprite{width:128px;height:128px;animation:.5s chestBounce;position:relative;overflow:hidden}.chest-sprite img{width:256px;height:128px;image-rendering:pixelated;animation:.4s step-end .4s both chestOpen;position:absolute;top:0;left:0}@keyframes chestOpen{to{left:-128px}}@keyframes chestBounce{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.chest-svg .lid{transform-origin:2px 13px;transition:transform .3s .4s}.chest-svg.open .lid{transform:rotate(-35deg)translate(-2px,-3px)}.item-get-title{color:var(--gold-light);text-shadow:3px 3px 0 var(--ink), 0 0 20px #ffe9a3cc;font-size:clamp(18px,3vw,28px);animation:.4s .6s both pop}.item-get-text{color:#fff;text-shadow:2px 2px #000;font-size:22px;font-weight:800;animation:.4s .8s both pop}.item-get-gems{font:800 30px var(--body);color:#fff;text-shadow:2px 2px #000;align-items:center;gap:8px;animation:.4s 1s both pop;display:flex}.studio{padding-left:var(--sal);padding-right:var(--sar);flex-direction:column;display:flex;position:fixed;inset:0}.studio-top{padding:calc(6px + var(--sat)) 8px 6px;background:linear-gradient(var(--forest-deep), #0d2616eb);border-bottom:3px solid var(--gold);flex-shrink:0;align-items:center;gap:8px;display:flex}.studio-main{flex:1;min-height:0;position:relative}.studio.wide .studio-main{padding:8px 8px calc(8px + var(--sab));grid-template:"play code"minmax(0,1.25fr)"terminal code"minmax(0,1fr)/minmax(380px,44%) 1fr;gap:8px;display:grid}.studio.wide .pane-play{grid-area:play}.studio.wide .pane-terminal{grid-area:terminal}.studio.wide .pane-code{grid-area:code}.studio.narrow .studio-main{flex-direction:column;padding:6px;display:flex}.studio.narrow .pane{flex:1;min-height:0}.pane{border:3px solid var(--gold);background:#0d1a12;border-radius:10px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;box-shadow:0 0 0 2px #000}.pane.hidden{display:none}.pane.flash{animation:1.2s paneFlash}@keyframes paneFlash{0%,to{box-shadow:0 0 0 2px #000}30%{box-shadow:0 0 0 2px #000,0 0 24px 8px #ffe9a3e6}}.pane-quests{box-shadow:none;background:0 0;border:none;padding:4px}.pane-pip{box-shadow:none;background:0 0;border:none}.tabbar{background:var(--forest-deep);border-top:3px solid var(--gold);padding-bottom:var(--sab);flex-shrink:0;display:flex}.tabbar-btn{min-height:62px;color:var(--parchment);font:800 13px var(--body);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.tabbar-ico{font-size:24px;line-height:1}.tabbar-btn.on{color:var(--gold-light);background:linear-gradient(#e8c35a59,#e8c35a14)}.tabbar-btn.on:before{content:"";background:var(--gold);border-radius:0 0 4px 4px;height:4px;position:absolute;top:0;left:20%;right:20%}.tabbar-btn.unread:after{content:"";background:var(--heart);border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:8px;right:calc(50% - 22px)}.quest-bar{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.quest-bar-main{cursor:pointer;text-align:left;min-width:0;min-height:46px;color:var(--ink);border:3px solid var(--gold);font:700 15px var(--body);background:linear-gradient(90deg,#f3e3b5f2,#e2cc8ff2);border-radius:10px;flex:1;align-items:center;gap:10px;padding:4px 12px;display:flex;box-shadow:0 0 0 2px #000}.quest-bar.flash .quest-bar-main{animation:.75s 2 glow}.quest-bar-ico{font-size:20px}.quest-bar-title{white-space:nowrap;color:var(--ink-soft);font-size:10px}.quest-bar-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:800;overflow:hidden}.quest-pips{gap:4px;display:flex}.quest-pips i{border:2px solid var(--ink);background:#ffffff80;border-radius:3px;width:12px;height:12px;transform:rotate(45deg)}.quest-pips i.on{background:var(--leaf)}.quest-pips i.cur{background:var(--gold)}.quest-bar-count{color:var(--ink-soft);font-size:14px;font-weight:800}@media (width<=700px){.quest-bar-title,.quest-pips{display:none}}.quest-modal{width:min(620px,100%);animation:.22s cubic-bezier(.3,1.6,.6,1) pop}.quest-panel{flex-direction:column;display:flex}.quest-panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.quest-chapter{color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;font-size:13px;font-weight:800}.quest-hint{border:2px dashed var(--ink-soft);background:#fff9;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-weight:700}.quest-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.game-pane{background:#000;flex-direction:column;flex:1;min-height:0;display:flex;container:game/inline-size}@container game (width<=520px){.game-toolbar .lbl{display:none}.source-pick select{max-width:140px}}.game-pane.fullscreen{z-index:90;padding:var(--sat) var(--sar) var(--sab) var(--sal);position:fixed;inset:0}.game-toolbar{background:var(--forest-deep);border-bottom:2px solid #2b4a33;flex-shrink:0;align-items:center;gap:6px;padding:6px;display:flex}.source-pick select{border:2px solid var(--gold);min-height:44px;color:var(--parchment);font:800 15px var(--body);background:#13241a;border-radius:10px;max-width:170px;padding:0 10px}.game-stage{background:#000;flex:1;min-height:0;position:relative}.game-frame{background:#000;border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.game-idle{color:var(--parchment);cursor:pointer;background:radial-gradient(circle at 50% 40%,#2c6a3d,#0d2616 70%);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.game-idle-play{background:linear-gradient(#8fd96a, var(--leaf));border:4px solid var(--ink);color:#fff;width:96px;height:96px;box-shadow:0 6px 0 var(--ink);border-radius:50%;justify-content:center;align-items:center;padding-left:8px;font-size:40px;animation:2.5s ease-in-out infinite float;display:flex}.game-overlay{z-index:5;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.error-panel{z-index:6;background:#2808088c;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0;overflow:auto}.error-panel .parchment{border-color:var(--heart);width:min(520px,100%);animation:.25s pop}.error-head{align-items:center;gap:12px;margin-bottom:6px;display:flex}.error-ico{font-size:34px}.error-title{color:#9a1f1f;font-size:13px}.error-where{font:800 15px var(--mono);color:var(--ink-soft);margin-top:4px}.error-text{margin:6px 0 8px;font-size:16px}.error-panel details{margin-bottom:10px;font-size:14px}.error-panel summary{cursor:pointer;min-height:32px;color:var(--ink-soft);font-weight:700}.error-panel code{font:13px var(--mono);white-space:pre-wrap;word-break:break-word;background:#00000014;border-radius:6px;padding:8px;display:block}.error-actions{flex-wrap:wrap;gap:8px;display:flex}.game-log{font:13px var(--mono);color:#b8d8b8;white-space:nowrap;text-overflow:ellipsis;background:#0d1a12;border-top:2px solid #2b4a33;flex-shrink:0;padding:4px 10px;overflow:hidden}.btn.glow-soft{animation:2s ease-in-out infinite glow}.btn.on{box-shadow:0 0 0 3px var(--gold-light), 0 4px 0 #000}.code-pane{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.code-toolbar{background:var(--forest-deep);border-bottom:2px solid #2b4a33;flex-shrink:0;align-items:center;gap:6px;padding:6px;display:flex}.tabs{scrollbar-width:none;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{background:#1d3526;border:2px solid #2f5a3c;border-radius:10px 10px 4px 4px;flex-shrink:0;align-items:stretch;display:flex;overflow:hidden}.tab.on{background:var(--parchment);border-color:var(--gold)}.tab-name{min-height:42px;color:var(--parchment);font:800 15px var(--mono);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0 6px 0 12px;display:flex}.tab.on .tab-name{color:var(--ink)}.tab-x{width:36px;color:var(--parchment);opacity:.6;cursor:pointer;background:0 0;border:none;font-size:14px}.tab.on .tab-x{color:var(--ink)}.dirty-dot{background:var(--gold);border-radius:50%;width:9px;height:9px;animation:1s infinite blink;display:inline-block}.code-opts{background:#13241a;border-bottom:2px solid #2b4a33;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-weight:700;display:flex}.code-body{flex:1;min-height:0;display:flex;position:relative}.file-tree{background:#0f1f15;border-right:2px solid #2b4a33;flex-shrink:0;width:250px;padding:4px 0}.code-pane{container:code/inline-size}@container code (width<=760px){.file-tree{z-index:4;width:min(300px,85%);position:absolute;top:0;bottom:0;left:0;box-shadow:6px 0 20px #00000080}}@container code (width<=640px){.code-toolbar .lbl{display:none}}.file-tree-head{color:var(--gold);justify-content:space-between;align-items:center;padding:4px 8px 6px 12px;display:flex}.file-tree-head .btn{min-height:36px;padding:0 8px;font-size:12px}.file-row{width:100%;min-height:44px;color:var(--parchment);font:700 15.5px var(--mono);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;align-items:center;gap:6px;padding-right:8px;display:flex;overflow:hidden}.file-row>span:first-child{width:12px;color:var(--gold);display:inline-block}.file-row.on{color:var(--gold-light);box-shadow:inset 4px 0 0 var(--gold);background:#e8c35a38}.editor-wrap{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.cm-host{flex:1;min-height:0}.cm-host .cm-editor{height:100%}.cm-host .cm-editor.cm-focused{outline:none}.editor-empty{color:var(--parchment);opacity:.8;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.original-view{z-index:3;flex-direction:column;display:flex;position:absolute;inset:0}.original-banner{background:var(--parchment);color:var(--ink);border-bottom:3px solid var(--gold);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;font-weight:700;display:flex}.pip-typing{color:#fff;border-bottom:2px solid var(--gold);background:linear-gradient(90deg,#1b3c6e,#10204a);align-items:center;gap:8px;padding:6px 12px;font-weight:800;display:flex}.pip-typing-fairy{font-size:20px;animation:1s ease-in-out infinite float}.cm-pip-line{background:linear-gradient(90deg,#78c8ff47,#78c8ff0f);animation:1.6s ease-in-out infinite pipGlow;box-shadow:inset 4px 0 #9ad8ff}@keyframes pipGlow{50%{background-color:#a0dcff2e}}.cm-pip-label{color:#bfe6ff;font:700 12px var(--body);white-space:nowrap;background:#10204a;border:1px solid #9ad8ff;border-radius:10px;margin-left:14px;padding:1px 8px}.cm-pip-highlight{box-shadow:inset 4px 0 0 var(--gold);background:#e8c35a47}.cm-pip-bubble{background:var(--parchment);color:var(--ink);border:3px solid var(--gold);font:700 16px var(--body);white-space:normal;border-radius:14px;align-items:center;gap:10px;max-width:560px;margin:6px 12px;padding:8px 10px;display:flex;position:relative;box-shadow:0 0 0 2px #000}.cm-pip-bubble img{width:40px;height:40px;image-rendering:pixelated}.cm-pip-emoji{font-size:30px}.cm-pip-bubble-text{flex:1}.cm-pip-bubble-x{border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:50%;min-width:40px;min-height:40px;font-size:14px}.cm-err-line{box-shadow:inset 4px 0 0 var(--heart);background:#e23c3c40}.cm-err-label{color:#ffd6d6;font:700 12.5px var(--body);white-space:nowrap;background:#6a1e1e;border-radius:10px;margin-left:14px;padding:1px 8px}.symbol-bar{background:#0d1a12;border-top:2px solid #2b4a33;flex-shrink:0;padding:5px 4px}.symbol-bar.floating{z-index:95;border-top:3px solid var(--gold);background:#13241a;padding-bottom:6px;position:fixed;left:0;right:0}.symbol-scroll{scrollbar-width:none;gap:5px;display:flex;overflow-x:auto}.symbol-scroll::-webkit-scrollbar{display:none}.sym{min-width:46px;height:46px;color:var(--gold-light);font:800 20px var(--mono);cursor:pointer;background:linear-gradient(#2a4a35,#1b3324);border:2px solid #3d6a4a;border-radius:9px;flex-shrink:0;box-shadow:0 3px #000}.sym:active{transform:translateY(2px);box-shadow:0 1px #000}.sym.wide{font:800 15px var(--body);padding:0 12px}.scrub-pop{z-index:30;width:310px;padding:10px 12px;animation:.15s pop;position:absolute}.scrub-title{margin-bottom:6px;font-weight:800}.scrub-val{font-family:var(--mono);color:#9a5a00;font-size:20px}.scrub-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.scrub-range{height:44px;accent-color:var(--leaf);flex:1}.scrub-color{border:3px solid var(--ink);background:0 0;border-radius:10px;width:100%;height:56px;margin-bottom:8px}.terminal-pane{background:#07110b;flex-direction:column;flex:1;min-height:0;display:flex}.term-scroll{min-height:0;font:15.5px/1.45 var(--mono);color:#d9e8c8;flex:1;padding:8px 10px}.term-line{white-space:pre-wrap;word-break:break-word;min-height:1.45em}.term-line.cmd{color:#fff}.term-prompt{color:#7ee06c;white-space:nowrap;font-weight:800}.term-input-row{align-items:center;gap:8px;display:flex}.term-input{color:#fff;min-width:60px;min-height:40px;font:16px var(--mono);caret-color:var(--gold);background:0 0;border:none;outline:none;flex:1;padding:0}.term-suggest{color:#dff3ff;font:700 15px var(--body);background:#10204a;border:2px solid #9ad8ff;border-radius:10px;margin:6px 0;padding:8px 10px}.term-choices{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.term-chips{scrollbar-width:none;background:#0d1a12;border-top:2px solid #2b4a33;flex-shrink:0;gap:6px;padding:6px;display:flex;overflow-x:auto}.term-chips::-webkit-scrollbar{display:none}.term-chip{color:#bfe8a8;min-width:48px;min-height:44px;font:800 15px var(--mono);cursor:pointer;background:#1b3324;border:2px solid #3d6a4a;border-radius:10px;flex-shrink:0;padding:0 12px;box-shadow:0 3px #000}.term-chip.key{color:#dbe9ff;font-family:var(--body);background:#2a3d55;border-color:#4f6f99}.term-chip.enter{border-color:var(--leaf-light);color:#fff;background:#2c6b1f}.term-chip:active{transform:translateY(2px);box-shadow:0 1px #000}.term-sep{background:#2b4a33;flex-shrink:0;width:2px;margin:4px 2px}.pip-fab{right:calc(22px + var(--sar));bottom:calc(84px + var(--sab));z-index:70;cursor:pointer;border:4px solid var(--gold);background:radial-gradient(circle at 40% 35%,#e6f6ff,#7cc8f0 55%,#2a6aa8);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:86px;height:86px;padding:0;animation:3s ease-in-out infinite fairyFloat;display:flex;position:fixed;box-shadow:0 0 0 3px #000,0 0 26px 6px #96d7ffb3}.pip-fab .pip-face{image-rendering:pixelated}.pip-fab-label{background:var(--night);color:var(--gold);border:2px solid var(--gold);border-radius:8px;padding:3px 7px;font-size:9px;position:absolute;bottom:-12px}.pip-fab.busy{animation:1s ease-in-out infinite fairyFloat;box-shadow:0 0 0 3px #000,0 0 36px 12px #fff0a0d9}.pip-fab.unread:after{content:"";background:var(--heart);border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:2px;right:2px}@keyframes fairyFloat{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-10px)rotate(3deg)}}.pip-scrim{z-index:74;opacity:0;pointer-events:none;background:#0000004d;transition:opacity .2s;position:fixed;inset:0}.pip-scrim.open{opacity:1;pointer-events:auto}.pip-drawer{z-index:75;width:min(430px,92vw);padding:calc(8px + var(--sat)) calc(8px + var(--sar)) calc(8px + var(--sab)) 8px;transition:transform .28s cubic-bezier(.2,.9,.3,1.1);position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.pip-drawer.open{transform:none}.pip-panel{border:4px solid var(--gold);color:#fff;background:linear-gradient(#173a6a,#10204a 40%,#0c1838);border-radius:16px;flex-direction:column;gap:8px;height:100%;padding:10px;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 3px #000,-10px 0 30px #00000080}.pip-panel.inline{box-shadow:0 0 0 2px #000}.pip-panel:before{content:"";pointer-events:none;background-image:radial-gradient(2px 2px at 20% 30%,#fff9,#0000),radial-gradient(2px 2px at 70% 15%,#ffffff80,#0000),radial-gradient(1.5px 1.5px at 85% 60%,#ffffff80,#0000),radial-gradient(1.5px 1.5px at 35% 80%,#fff6,#0000);position:absolute;inset:0}.pip-head{align-items:center;gap:10px;display:flex;position:relative}.pip-head-face{border:3px solid var(--gold);background:radial-gradient(circle,#e6f6ff,#5fb7e5 70%);border-radius:50%;justify-content:center;align-items:center;width:62px;height:62px;animation:3s ease-in-out infinite fairyFloat;display:flex;box-shadow:0 0 18px #96d7ffcc}.pip-face{image-rendering:pixelated}.pip-dial-btn{color:#fff;min-height:44px;font:700 15px var(--body);cursor:pointer;text-align:left;background:#00000040;border:2px solid #e8c35a99;border-radius:12px;padding:0 12px;position:relative}.pip-dial-list{flex-direction:column;gap:6px;display:flex;position:relative}.pip-dial-opt{color:#fff;min-height:48px;font:15px var(--body);cursor:pointer;text-align:left;background:#ffffff14;border:2px solid #ffffff40;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 12px;display:flex}.pip-dial-opt small{opacity:.75;width:100%;margin-top:-4px;padding-left:30px}.pip-dial-opt.on{border-color:var(--gold);background:#e8c35a4d}.pip-messages{flex-direction:column;flex:1;gap:10px;min-height:0;padding:4px 2px;display:flex;position:relative}.pip-msg{align-items:flex-end;gap:8px;display:flex}.pip-msg.kid{justify-content:flex-end}.kid-bubble{background:var(--leaf);color:#fff;white-space:pre-wrap;border:2px solid #2c6b1f;border-radius:16px 16px 4px;max-width:80%;padding:9px 13px;font-weight:700}.pip-bubble{background:var(--parchment);max-width:85%;color:var(--ink);border:2px solid var(--gold);border-radius:16px 16px 16px 4px;padding:9px 13px;font-size:16.5px;line-height:1.45}.pip-text{white-space:pre-wrap}.tool-chip{color:#bfe6ff;font:700 13px var(--body);background:#10204a;border-radius:12px;align-items:center;gap:4px;margin:0 4px 6px 0;padding:3px 10px;animation:.2s pop;display:inline-flex}.pip-auto{color:var(--ink-soft);font-style:italic}.pip-error{color:#9a1f1f;margin-top:4px;font-weight:700}.pip-dots{gap:5px;padding:4px 0;display:flex}.pip-dots i{background:var(--gold-dark);border-radius:50%;width:8px;height:8px;animation:1s infinite dot}.pip-dots i:nth-child(2){animation-delay:.15s}.pip-dots i:nth-child(3){animation-delay:.3s}@keyframes dot{50%{opacity:.4;transform:translateY(-6px)}}.pip-question{border:3px solid var(--gold);background:#ffffff1a;border-radius:14px;padding:10px;animation:.25s pop}.pip-question-text{font:800 18px var(--body);margin-bottom:8px}.pip-question-opts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pip-question-opts .btn{white-space:normal;min-height:64px;padding:6px 10px;font-size:17px}.pip-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid;position:relative}.pip-input-row{gap:6px;display:flex;position:relative}.pip-input{flex:1;min-width:0}.pip-resting{text-align:center;opacity:.9;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-weight:700;display:flex}.admin-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg-btn{border:2px solid var(--ink-soft);min-height:44px;color:var(--ink);font:700 14px var(--body);cursor:pointer;background:#ffffff80;border-radius:10px;padding:0 10px}.seg-btn.on{background:var(--gold);border-color:var(--ink);font-weight:800}.admin-events{background:#ffffff73;border-radius:8px;max-height:260px;margin-top:10px;padding:8px;font-size:14px;overflow:auto}.admin-events code{font-weight:800}.ev-data{color:var(--ink-soft);font-family:var(--mono);font-size:12px}.snap-list{flex-direction:column;gap:8px;display:flex}.snap-row{background:#ffffff73;border-radius:10px;align-items:center;gap:10px;padding:6px 10px;display:flex}.snap-ico{font-size:24px}.snap-label{flex-direction:column;flex:1;display:flex}.snap-label small{color:var(--ink-soft)}
