@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&family=Space+Grotesk:wght@500;700&display=swap";:root{--bg-top: #fff6e8;--bg-bottom: #ffe9c8;--planet-sky-top: #7db8ea;--planet-sky-mid: #d7ecff;--planet-ground-top: #8ccf7d;--planet-ground-bottom: #5f9f52;--weather-overlay-opacity: 0;--card: rgba(255, 255, 255, .9);--accent: #b86d00;--accent-2: #0c8b78;--text: #2f2217;--muted: #6a5a49;--danger: #c94141;--space-stack: 10px;--fs-small: .75rem;--fs-body: .82rem;--fs-medium: .9rem;--fs-large: 1rem;--panel-edge: rgba(136, 101, 58, .3);--panel-shadow: inset 0 1px 0 rgba(255, 255, 255, .62), 0 1px 0 rgba(127, 92, 49, .12);color-scheme:light}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%}body{margin:0;font-family:Manrope,sans-serif;color:var(--text);overflow-x:hidden;position:relative;background:radial-gradient(circle at 14% 10%,#fff8e2b3,#fff8e200 32%),radial-gradient(120% 55% at 50% 112%,#8fca72d9,#79b860d1 45%,#669c51e6 68%,#598d46f2),linear-gradient(180deg,var(--planet-sky-top) 0%,var(--planet-sky-mid) 60%,var(--planet-ground-top) 71%,var(--planet-ground-bottom) 100%)}body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none}body:before{z-index:-2;opacity:var(--weather-overlay-opacity);transition:opacity .22s ease}body:after{z-index:-1;background:radial-gradient(95% 50% at 50% 114%,#3a623494,#3a62344d 52%,#3a623400)}body[data-weather=SAULETA]{--planet-sky-top: #7db8ea;--planet-sky-mid: #d8eeff;--planet-ground-top: #8ccf7d;--planet-ground-bottom: #5f9f52;--weather-overlay-opacity: 0}body[data-weather=LIETINGA]{--planet-sky-top: #5f7794;--planet-sky-mid: #8ea6bc;--planet-ground-top: #648f63;--planet-ground-bottom: #476a48;--weather-overlay-opacity: .38}body[data-weather=LIETINGA]:before{background:linear-gradient(180deg,#1624342e,#1624344d),repeating-linear-gradient(100deg,#ebf4ff1f 0px 2px,#fff0 2px 16px);background-size:100% 100%,220px 220px;animation:rain-drift .46s linear infinite}body[data-weather=SNIEGAS]{--planet-sky-top: #73859d;--planet-sky-mid: #c3d3e3;--planet-ground-top: #9db0b9;--planet-ground-bottom: #7b8f98;--weather-overlay-opacity: .5}body[data-weather=SNIEGAS]:before{background:radial-gradient(circle at 20% 12%,rgba(255,255,255,.22) 0 2px,transparent 3px),radial-gradient(circle at 62% 28%,rgba(255,255,255,.2) 0 2px,transparent 3px),radial-gradient(circle at 38% 60%,rgba(255,255,255,.22) 0 2px,transparent 3px),radial-gradient(circle at 79% 76%,rgba(255,255,255,.2) 0 2px,transparent 3px),linear-gradient(180deg,#0c19261a,#0c19263d);background-size:140px 140px,180px 180px,160px 160px,200px 200px,100% 100%;animation:snow-drift 5.8s linear infinite}body[data-weather=ZAIBAS]{--planet-sky-top: #2f3f58;--planet-sky-mid: #4d607a;--planet-ground-top: #4f7653;--planet-ground-bottom: #355338;--weather-overlay-opacity: .62}body[data-weather=ZAIBAS]:before{background:linear-gradient(180deg,#08101a3d,#08101a70),repeating-linear-gradient(100deg,#dce9f714 0px 2px,#fff0 2px 16px);background-size:100% 100%,220px 220px;animation:rain-drift .43s linear infinite,sky-flash 2.8s ease-in-out infinite}.layout{min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.game{animation:rise .5s ease}.game{display:flex;flex-direction:column;gap:var(--space-stack);width:100%;max-width:580px;margin:0 auto;background:var(--card);border:1px solid rgba(130,93,47,.18);border-radius:18px;padding:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dedication{margin:0;font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:.02em;color:var(--accent);text-shadow:0 0 12px rgba(232,164,66,.35);animation:glow 2.2s ease-in-out infinite alternate}.subtitle{margin:0;color:var(--muted)}h1,h2{margin:0 0 8px}h1{text-align:center}.game>h1{margin:0}.btn-primary{margin-top:14px;width:100%;min-height:48px;border:0;border-radius:12px;background:linear-gradient(120deg,#f0a424,#ffd072);color:#3f2a10;font-size:var(--fs-large);font-weight:800}.hud{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;font-size:var(--fs-body);margin:0}.hud div{display:grid;grid-template-rows:auto 1fr;gap:4px;padding:6px 8px;min-height:74px;border-radius:10px;border:1px solid rgba(130,93,47,.2);background:#fff8e8f2;text-align:center}.hud strong{font-size:var(--fs-small);letter-spacing:.06em;text-transform:uppercase;color:#886a49}.hud span{display:flex;align-items:center;justify-content:center;height:3em;font-weight:800;font-size:var(--fs-medium);line-height:1.15;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip}#judgement{text-transform:uppercase}.autoplay-toggle{grid-column:1 / 3;min-height:42px;border-radius:10px;border:1px solid rgba(67,54,35,.28);background:linear-gradient(180deg,#fffdf4,#f6e3bb);color:#3a2b1b;font-weight:800;font-size:var(--fs-medium)}.mute-toggle{grid-column:3 / 5;min-height:42px;border-radius:10px;border:1px solid rgba(67,54,35,.28);background:linear-gradient(180deg,#fffdf4,#f6e3bb);color:#3a2b1b;font-weight:800;font-size:var(--fs-medium)}#horseCanvas{width:100%;max-width:100%;display:block;margin:0 auto;border-radius:14px;border:0;box-shadow:inset 0 0 0 1px #825d2f40;background:linear-gradient(180deg,#87c8ff,#e7f6ff 62%,#8fd380);transform:translateZ(0)}.highway-shell{--hit-line-percent: 85%;position:relative;height:220px;margin:0;border-radius:14px;overflow:hidden;border:1px solid rgba(130,93,47,.2);background:linear-gradient(180deg,#fffdf2,#ffe9be);perspective:700px}.highway{position:relative;width:100%;height:100%;background-color:#fff3d6;background-image:linear-gradient(to right,transparent 24.5%,rgba(116,87,51,.26) 24.5%,rgba(116,87,51,.26) 25.5%,transparent 25.5%),linear-gradient(to right,transparent 49.5%,rgba(116,87,51,.26) 49.5%,rgba(116,87,51,.26) 50.5%,transparent 50.5%),linear-gradient(to right,transparent 74.5%,rgba(116,87,51,.26) 74.5%,rgba(116,87,51,.26) 75.5%,transparent 75.5%),repeating-linear-gradient(180deg,#8e6e4814 0 16px,#ffffff0f 16px 32px)}.autoplay-overlay{position:absolute;left:50%;top:16px;transform:translate(-50%) scale(.96);z-index:7;padding:6px 12px;border-radius:999px;border:1px solid rgba(124,4,4,.52);background:linear-gradient(180deg,#ff5656f2,#c51212eb);color:#fff7f7;font-family:Space Grotesk,sans-serif;font-weight:800;font-size:var(--fs-small);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;box-shadow:0 6px 18px #810c0c52,inset 0 1px #ffffff57;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.autoplay-overlay.show{opacity:1;transform:translate(-50%) scale(1)}.hit-line{position:absolute;left:0;right:0;top:calc(var(--hit-line-percent) - 2px);height:4px;background:#2f2418;box-shadow:0 0 18px #ffb8538c}.judgement-pop{position:absolute;left:50%;top:calc(var(--hit-line-percent) - 34px);transform:translate(-50%) translateY(4px);font-family:Space Grotesk,sans-serif;font-weight:800;letter-spacing:.06em;opacity:0;transition:opacity .11s ease,transform .11s ease;pointer-events:none}.judgement-pop.show{opacity:1;transform:translate(-50%) translateY(0)}.judgement-pop.tobula{color:#c76900}.judgement-pop.gerai{color:#0d8b73}.judgement-pop.praleista{color:#bb5151}.note{position:absolute;width:18%;min-width:28px;max-width:48px;height:16px;border-radius:999px;transform:translate(-50%,-50%);box-shadow:inset 0 -2px #0000002e,0 2px 8px #0000002e}.hold-head{z-index:3}.hold-tail{position:absolute;width:10%;max-width:24px;min-width:14px;border-radius:999px;transform:translate(-50%);opacity:.74;z-index:2}.hold-active{position:absolute;width:12%;max-width:30px;min-width:16px;border-radius:999px;transform:translate(-50%);opacity:.92;z-index:4;animation:hold-shimmer .52s linear infinite;box-shadow:0 0 10px #ffe9a6b3,inset 0 -5px 10px #fff3}.note-lane-0{left:12.5%;background:linear-gradient(180deg,#f66f62,#d74739)}.note-lane-1{left:37.5%;background:linear-gradient(180deg,#ffd564,#d89f09)}.note-lane-2{left:62.5%;background:linear-gradient(180deg,#63a6ff,#2966bd)}.note-lane-3{left:87.5%;background:linear-gradient(180deg,#76d97e,#3e9c45)}.hold-lane-0{left:12.5%;background:linear-gradient(180deg,#f66f622e,#d74739bd)}.hold-lane-1{left:37.5%;background:linear-gradient(180deg,#ffd5642e,#d89f09bd)}.hold-lane-2{left:62.5%;background:linear-gradient(180deg,#63a6ff2e,#2966bdbd)}.hold-lane-3{left:87.5%;background:linear-gradient(180deg,#76d97e2e,#3e9c45bd)}.input-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0}.input-row button{min-height:58px;border-radius:999px;border:1px solid rgba(67,54,35,.28);background:linear-gradient(180deg,#fffef8,#f6e3bb);color:#3c2a17;font-size:var(--fs-large);font-weight:800;display:grid;place-items:center;gap:2px;position:relative;overflow:hidden;transition:transform 70ms ease,box-shadow .11s ease,filter 90ms ease;box-shadow:0 4px #00000029,0 8px 14px #0000001a}.input-row button:after{content:"";position:absolute;inset:-16%;border-radius:999px;opacity:0;transform:scale(.88);background:radial-gradient(circle,#ffffff73,#fff0 70%);pointer-events:none}.input-row button[data-lane="0"]{background:linear-gradient(180deg,#ffd0cb,#f98e83)}.input-row button[data-lane="1"]{background:linear-gradient(180deg,#ffefc0,#ffd56d)}.input-row button[data-lane="2"]{background:linear-gradient(180deg,#d9ecff,#90c0ff)}.input-row button[data-lane="3"]{background:linear-gradient(180deg,#d7f7db,#96dc9d)}.input-row button.hit{transform:translateY(2px) scale(.95);filter:saturate(1.15) brightness(1.05);box-shadow:0 1px #0003,0 0 20px #ffd8808c}.input-row button.hit:after{opacity:1;transform:scale(1.02);transition:opacity .13s ease,transform .13s ease}.input-row button.holding{box-shadow:0 1px #0003,0 0 20px #ffe497a6;filter:saturate(1.22) brightness(1.08);animation:hold-button-pulse .62s ease-in-out infinite}.perfect-burst{position:absolute;inset:0;pointer-events:none;animation:burst-ring .38s ease-out}.perfect-burst .spark{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:999px;background:#ffe39d;box-shadow:0 0 10px #ffd878d9;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--d) * -1));animation:spark-pop .38s ease-out forwards}.input-row button:active{transform:translateY(2px) scale(.95);filter:saturate(1.2) brightness(1.06)}.input-row button small{font-size:var(--fs-small);color:#8a6f4f;font-weight:700}.code-studio,.perf-stack{margin:2px 0 0;width:100%;max-width:100%;padding:0;border:1px solid var(--panel-edge);border-radius:10px;overflow:hidden;background:linear-gradient(180deg,#fffaefe6,#fff5e2e6);box-shadow:var(--panel-shadow)}.code-studio{position:relative}.editor-panel{margin-top:0;border-radius:0;border:0;border-top:1px solid rgba(148,111,66,.24);overflow:hidden;min-height:220px;height:300px;position:relative;background:#fffdf8}.editor-resizer{position:absolute;right:8px;bottom:8px;width:22px;height:22px;border:0;border-radius:6px;background-color:transparent;background:linear-gradient(135deg,transparent 42%,rgba(141,108,67,.6) 42%,rgba(141,108,67,.6) 54%,transparent 54%),linear-gradient(135deg,transparent 58%,rgba(141,108,67,.42) 58%,rgba(141,108,67,.42) 70%,transparent 70%),linear-gradient(135deg,transparent 74%,rgba(141,108,67,.28) 74%,rgba(141,108,67,.28) 86%,transparent 86%);cursor:ns-resize;touch-action:none;z-index:6}.dragging-editor-resize,.dragging-editor-resize *{cursor:ns-resize!important;-webkit-user-select:none!important;user-select:none!important}.editor{height:100%;min-height:100%}.template-panel{margin-top:var(--space-stack);border:1px solid var(--panel-edge);border-radius:10px;background:#fffaf1;padding:8px}.puzzle-panel{border:1px solid var(--panel-edge);border-radius:10px;background:linear-gradient(180deg,#fffaeefa,#ffefcdfa),radial-gradient(circle at 14% 0%,#ffffff8c,#fff0);min-height:250px;padding:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 1px #ffffff73,0 1px #976c341f}.puzzle-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed rgba(130,93,47,.24)}.puzzle-head strong{font-size:var(--fs-medium);color:#533a20;letter-spacing:.01em}#puzzleProgress{font-weight:800;font-size:var(--fs-small);color:#6d4d29;padding:2px 8px;border-radius:999px;background:#ffdb9673;border:1px solid rgba(165,120,62,.24)}.puzzle-story,.puzzle-goal,.puzzle-hint,.puzzle-done{margin:0 0 4px;font-size:var(--fs-body);line-height:1.34;color:#463220}.puzzle-goal{font-weight:800;color:#3f2b19;background:#fff6e3d1;border:1px solid rgba(134,99,56,.2);border-radius:8px;padding:6px 8px}.puzzle-hint{color:#5c4a34;margin-bottom:2px;background:linear-gradient(180deg,#fffcf2f5,#fff4d8f5);border:1px dashed rgba(166,129,78,.5);border-radius:8px;padding:7px 9px}.puzzle-hint code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:#ffffffbf;border:1px solid rgba(147,111,67,.35);border-radius:5px;padding:1px 5px;color:#5d401e}.puzzle-done{color:#0f7c5f;font-weight:800;background:#daffedb3;border:1px solid rgba(30,137,102,.24);border-radius:8px;padding:6px 8px}.puzzle-lock-note{margin:auto 0 0;font-size:var(--fs-body);line-height:1.34;color:#6b5337;background:#fff5deeb;border:1px solid rgba(165,126,70,.24);border-radius:8px;padding:8px 10px}.template-title{margin:0 0 6px;font-size:var(--fs-small);color:#6f5a43;font-weight:700}.template-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.template-btn{min-height:44px;border-radius:9px;border:1px solid rgba(130,93,47,.25);background:linear-gradient(180deg,#fffef8,#f8e8c6);color:#3d2d1d;font-weight:800;font-size:var(--fs-small);padding:6px 8px;text-align:center}.template-btn.active{border-color:#704a1f99;box-shadow:inset 0 0 0 2px #ffd68aa6;background:linear-gradient(180deg,#fff3d2,#f0ce8f)}.syntax-editor{position:relative;height:100%;min-height:100%;background:#fffdf8}.fallback-lines,.fallback-highlight,.fallback-editor{height:100%;width:100%;margin:0;padding:12px;position:absolute;inset:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;tab-size:2;overflow:auto}.fallback-lines{width:38px;padding-right:6px;border-right:1px solid rgba(130,93,47,.16);background:#fff6e4f2;color:#947656;text-align:right;white-space:pre;pointer-events:none;overflow:hidden}.fallback-highlight{left:38px;width:calc(100% - 38px);color:#2b2118;pointer-events:none}.fallback-editor{left:38px;width:calc(100% - 38px);resize:none;border:0;background:transparent;color:transparent;caret-color:#9f5d00;overflow-x:hidden;-webkit-user-select:text;user-select:text;touch-action:manipulation}.fallback-editor::selection{background:#ffc96e66}.tok-keyword{color:#7a3ab8;font-weight:700}.tok-string{color:#af5c00}.tok-number{color:#1565c0}.tok-comment{color:#6f7a88;font-style:italic}.hidden{display:none}.dedication-under-title{margin:0;text-align:center;font-size:var(--fs-medium)}.collapsible-title{margin:0;text-align:left;font-family:Space Grotesk,sans-serif;font-size:var(--fs-medium);color:#574127;font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px 10px 34px;border-radius:0;border:0;background:linear-gradient(180deg,#fffbf1fa,#ffefccf5);cursor:pointer;list-style:none;position:relative}.collapsible-title::-webkit-details-marker{display:none}.collapsible-title::marker{content:""}.collapsible-title:before{content:"▸";position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:var(--fs-medium);color:#7d5d3d;transition:transform .13s ease}.code-studio[open]>.collapsible-title:before,.perf-stack[open]>.collapsible-title:before{transform:translateY(-50%) rotate(90deg)}.perf-stack-body{margin-top:0;width:100%;padding:8px 10px 9px;border-top:1px solid rgba(148,111,66,.24)}.audio-visualizer{display:block;width:100%;height:54px;margin:0 0 6px;border:1px solid rgba(130,93,47,.22);border-radius:6px;background:#fff5e2d9}.perf-stats{margin:4px 0 0;text-align:left;font-size:var(--fs-small);line-height:1.32;color:#6d5b45;white-space:pre-line;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,SF Mono,Menlo,Consolas,monospace}.perf-stats a{color:inherit;font:inherit;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.build-number{margin:0;text-align:left;font-size:var(--fs-small);color:#7a674f;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,SF Mono,Menlo,Consolas,monospace}@keyframes glow{0%{opacity:.85}to{opacity:1;text-shadow:0 0 22px rgba(225,157,52,.65)}}@keyframes rise{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes burst-ring{0%{box-shadow:inset 0 0 #ffdf98b3}to{box-shadow:inset 0 0 0 24px #ffdf9800}}@keyframes spark-pop{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--a)) translateY(-8px) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc((var(--d) + 18px) * -1)) scale(.5)}}@keyframes hold-shimmer{0%{filter:brightness(.96)}to{filter:brightness(1.12)}}@keyframes hold-button-pulse{0%{transform:translateY(1px) scale(.99)}50%{transform:translateY(0) scale(1.02)}to{transform:translateY(1px) scale(.99)}}@keyframes rain-drift{0%{background-position:0 0,0 0}to{background-position:0 0,-22px 160px}}@keyframes snow-drift{0%{background-position:0 0,0 0,0 0,0 0,0 0}to{background-position:-18px 86px,10px 94px,-8px 102px,16px 110px,0 0}}@keyframes sky-flash{0%,70%,to{filter:brightness(1)}72%{filter:brightness(1.24)}74%{filter:brightness(.95)}76%{filter:brightness(1.18)}}@media(min-width:860px){.layout{display:grid;place-items:center}.game{padding:18px}.fallback-lines,.fallback-highlight,.fallback-editor{font-size:11px}.template-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(pointer:coarse){.monaco-editor,.monaco-editor .view-lines,.monaco-editor textarea{font-size:14px!important}}@media(orientation:landscape)and (pointer:coarse){.layout{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.game{--space-stack: 8px;max-width:none;min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:0;border-left:0;border-right:0;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.hud div{min-height:62px}#horseCanvas{border-radius:10px}.highway-shell{height:172px}.input-row button{min-height:50px}.editor,.syntax-editor,.fallback-lines,.fallback-highlight,.fallback-editor{height:100%}}
