
:root{color-scheme:dark;--ink:#102e2b;--cream:#fff2cc;--lime:#c8f36b;--gold:#ffc763;--red:#ed7164}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0a211f;color:var(--cream);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overscroll-behavior:none}button,select,input{font:inherit;color:inherit}button{cursor:pointer;border:2px solid #608578;background:#173f37;border-radius:6px;padding:9px 13px;touch-action:manipulation;box-shadow:0 3px 0 #071e1b}button:hover,button:focus-visible{background:#315a41;border-color:var(--lime);outline:2px solid #fff7;outline-offset:2px}button.primary{background:var(--lime);border-color:#f3ffb3;color:var(--ink);font-weight:900;box-shadow:0 4px 0 #6b9c44}button.small{padding:7px 10px;font-size:14px}#app{height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}header{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:6px 18px;gap:8px;background:#102e2b;border-bottom:2px solid #285044;z-index:5}.brand{font-size:13px;letter-spacing:2px;font-weight:bold;white-space:nowrap}.brand span{color:#9bbe82}nav{display:flex;gap:6px;align-items:center}select{background:#173f37;border:1px solid #608578;border-radius:5px;padding:7px;font-size:14px}#arena{position:relative;flex:1;min-height:0;overflow:hidden;background:#2d6446;isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}canvas{display:block;width:100%;height:100%;image-rendering:pixelated}#overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;background:#071e1b7a;padding:20px;z-index:5;overflow:auto}#overlay.hidden{display:none}.panel{margin:auto;max-width:660px;text-align:center;width:100%;padding:22px 26px;background:#102e2beF;border:2px solid #799b62;box-shadow:0 8px 0 #071c17,0 0 0 6px #102e2b90;border-radius:8px}.menu-panel{background:linear-gradient(180deg,#102e2bde,#102e2bf2);max-width:670px;border-color:#83b260}.eyebrow{color:#b3d3a2;letter-spacing:3px;font-size:13px;margin:0 0 12px}.logo{font-size:clamp(38px,7vw,76px);line-height:.96;letter-spacing:-3px;margin:6px 0 14px;font-weight:1000;text-shadow:3px 3px 0 #6c872f,5px 5px 0 #081e19;color:#e5ffab}.logo span{color:#ffc763}.subtitle{font-size:16px;line-height:1.5;color:#e2e6bd;max-width:530px;margin:12px auto 20px}.buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.buttons button{min-width:128px}.micro{font-size:13px;line-height:1.5;color:#aec3a3;margin:18px 0 0}.panel h2{font-size:28px;color:var(--lime);margin:2px 0 18px}.panel p{line-height:1.55}.guide{text-align:left;font-size:15px;line-height:1.7}.guide p{margin:10px 0}.guide b{color:var(--gold)}#hud{position:absolute;top:10px;left:14px;right:14px;pointer-events:none;display:none;align-items:flex-start;justify-content:space-between;gap:12px;text-shadow:2px 2px #10251c;z-index:2}.hud-box{padding:8px 12px;background:#0b2b24d9;border:1px solid #72995f;border-radius:5px;font-size:14px;font-weight:bold;min-width:135px}.hud-center{text-align:center}.hud-right{text-align:right}.health{height:8px;background:#4e302f;border:1px solid #8c9470;margin-top:5px;overflow:hidden}.health i{display:block;height:100%;background:#b7ed71;width:100%;transition:width .15s}#buffs{font-size:12px;color:#c8f36b;margin-top:4px;min-height:15px}#bossHud{position:absolute;top:86px;left:25%;width:50%;display:none;z-index:2;text-align:center;font-weight:bold;font-size:14px;color:#fff3b9;text-shadow:2px 2px #182a23}#bossHud .health{height:10px;background:#391e2d}#bossFill{background:#ed7164}#caption{position:absolute;bottom:11%;left:12%;right:12%;text-align:center;background:#0a241eea;border-left:4px solid #c8f36b;padding:16px 20px;font-size:clamp(16px,2.3vw,23px);line-height:1.45;display:none;z-index:3}#skip{position:absolute;right:18px;top:18px;z-index:4;display:none}#fullExit{position:absolute;left:max(10px,env(safe-area-inset-left));top:8px;z-index:9;display:none;padding:6px 9px;background:#102e2bbf}#touch{position:absolute;inset:0;pointer-events:none;display:none;z-index:3}#stick{position:absolute;bottom:24px;left:28px;width:112px;height:112px;border-radius:50%;border:3px solid #d7f8b075;background:#102e2b48;pointer-events:auto;touch-action:none}#knob{position:absolute;left:33px;top:33px;width:40px;height:40px;border-radius:50%;background:#dcf8ae88;border:2px solid #e7ffcda0}#fire{position:absolute;right:26px;bottom:24px;width:96px;height:96px;border-radius:50%;pointer-events:auto;background:#b4e575b3;border:3px solid #efffc5;color:#14342b;font-weight:900;font-size:15px;touch-action:none}#burst{position:absolute;right:137px;bottom:35px;width:59px;height:59px;border-radius:50%;pointer-events:auto;font-size:23px;touch-action:none;background:#fdc061b8;color:#233e2b;border-color:#ffe8a8}#touchPause{position:absolute;right:16px;top:151px;pointer-events:auto;padding:7px 12px;background:#102e2b99}footer{height:32px;display:flex;justify-content:center;align-items:center;font-size:12px;color:#afc5a7;letter-spacing:.2px;background:#102e2b;padding:0 8px;text-align:center}.fullscreen header,.fullscreen footer{display:none}.fullscreen #fullExit{display:block}.fullscreen #hud{left:65px}.scoretable{width:100%;border-collapse:collapse;margin:14px 0;font-size:16px}.scoretable td{padding:7px;border-bottom:1px solid #34533d}.scoretable td:first-child{color:#c8f36b}.initials{display:flex;justify-content:center;gap:12px;margin:20px}.initial{display:flex;flex-direction:column;gap:8px}.initial strong{font-size:38px;width:48px;color:#ffdb86}.initial button{padding:4px}#soundBtn[aria-pressed="false"]{opacity:.6}.toast{position:absolute;top:32%;left:10%;right:10%;text-align:center;color:#fff7d3;text-shadow:3px 3px #173e2d;font-size:20px;font-weight:bold;pointer-events:none;z-index:3}.hidden{display:none!important}@media(max-width:620px){header{padding:5px 10px;min-height:45px}.brand{font-size:10px;letter-spacing:1px}.brand span{display:none}nav{gap:4px}nav button{padding:6px!important}footer{font-size:10px;height:26px}.panel{padding:20px 16px}.logo{font-size:48px}.subtitle{font-size:14px;margin-bottom:16px}.micro{font-size:12px}.hud-box{min-width:0;padding:7px 8px;font-size:12px}#hud{left:8px;right:8px;gap:5px}.hud-center{max-width:125px}#buffs{font-size:10px}#bossHud{top:90px;left:15%;width:70%;font-size:12px}#caption{left:5%;right:5%;bottom:13%;padding:14px;font-size:17px}.guide{font-size:13px}#stick{left:18px;bottom:22px}#fire{right:18px;bottom:28px}#burst{right:124px;bottom:36px}}@media(max-height:500px){header{min-height:38px}footer{display:none}.panel{padding:12px 20px;max-width:620px}.logo{font-size:43px;margin:0 0 8px}.eyebrow{margin-bottom:7px}.subtitle{font-size:13px;margin:7px auto 12px}.micro{margin-top:10px;font-size:11px}.panel h2{font-size:23px;margin-bottom:8px}.guide p{margin:5px 0}.guide{font-size:12px}.hud-box{padding:5px 8px;font-size:12px}#bossHud{top:65px}#caption{bottom:7%;font-size:17px;padding:12px}#stick{bottom:16px;left:20px;width:96px;height:96px}#knob{left:25px;top:25px}#fire{width:83px;height:83px;bottom:16px;right:20px}#burst{right:113px;bottom:22px}#touchPause{top:92px}#overlay{padding:8px}.scoretable td{padding:2px}.initials{margin:6px}.initial strong{font-size:28px}}

/* The portal owns language and fullscreen. Keep in-game pause/audio available. */
.embedded header{position:absolute;right:8px;bottom:6px;min-height:0;padding:0;background:none;border:0;z-index:10}.embedded header .brand,.embedded #language,.embedded #fullBtn,.embedded #fullExit,.embedded footer{display:none!important}.embedded header nav{gap:5px}.embedded header button{background:#12382daa}.embedded #app{padding:0;height:100%;min-height:100dvh}.embedded #arena{min-height:100dvh}.embedded #overlay{padding-bottom:45px}.embedded #fullExit{display:none!important}
.controls-hidden #touch{display:none!important}.portal-full #hud{left:64px}
/* A separate touch strip keeps thumbs outside the active garden. */
.touch-layout #arena{margin-bottom:128px;min-height:0}.touch-layout #touch{position:fixed;top:auto;bottom:0;height:128px;background:#102e2b;border-top:2px solid #426c49}.touch-layout #stick{bottom:9px;left:24px;width:104px;height:104px}.touch-layout #knob{left:29px;top:29px}.touch-layout #fire{bottom:14px;right:24px;width:95px;height:95px}.touch-layout #burst{bottom:29px;right:139px}.touch-layout #touchPause{top:10px;right:calc(50% - 18px)}.touch-layout header{bottom:5px;right:calc(50% - 37px)}
@media(orientation:landscape) and (max-height:650px){.touch-layout #arena{margin:0 110px}.touch-layout #touch{inset:0;height:auto;background:none;border:0}.touch-layout #stick{left:5px;bottom:calc(50% - 48px);width:96px;height:96px}.touch-layout #knob{left:25px;top:25px}.touch-layout #fire{right:10px;bottom:calc(50% - 26px);width:85px;height:85px}.touch-layout #burst{right:25px;bottom:calc(50% - 107px)}.touch-layout #touchPause{top:14px;right:30px}.touch-layout header{bottom:10px;right:19px}.touch-layout #overlay{padding-bottom:15px}}
button:disabled{opacity:.55;cursor:wait}#assetState{color:#d2e49f;font-size:14px;line-height:1.4;margin:14px 0 0}.score-status{font-size:14px;color:#d2e49f;line-height:1.4}

#caption{bottom:9%;border:1px solid #c6d58b;border-left:4px solid #e2d699;box-shadow:0 5px 0 #082b2466;backdrop-filter:blur(3px)}#bossHud{transition:opacity .3s}#hud .hud-center{min-width:130px}@media(max-width:620px){#hud .hud-center{min-width:90px}}

/* Input belongs to the game, including buttons and the touch strip. */
html,body,#app,button,canvas,header,#touch,#touch *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#touch,#touch *{touch-action:none}button:focus:not(:focus-visible){outline:none}#knob{pointer-events:none}.touch-layout.controls-hidden #arena{margin:0}.touch-layout header{display:none}.touch-layout #touchPause{z-index:2}#touch button{box-shadow:none}canvas{outline:none}

#livesText{margin-top:3px;color:#ffdf99;font-size:12px}.defeat-scene{position:absolute;inset:0;margin:0;background:#07151a;overflow:hidden}.defeat-scene>img{width:100%;height:100%;object-fit:contain;display:block;image-rendering:pixelated}.defeat-copy{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:35px 20px 25px;background:linear-gradient(transparent,#07151aed 30%)}.defeat-copy h1{font-size:clamp(34px,7vw,68px);line-height:1;margin:0 0 12px;color:#ffd47f;text-shadow:3px 4px #372039}.defeat-copy p{max-width:640px;margin:0 auto 15px;font-size:clamp(13px,2vw,18px);line-height:1.4;color:#fff1cf}.defeat-copy button{min-width:170px}@media(max-height:450px){.defeat-copy{padding:20px 18px 12px}.defeat-copy h1{font-size:34px;margin-bottom:7px}.defeat-copy p{font-size:13px;margin-bottom:9px}.defeat-copy button{padding:6px 15px}}

.touch-layout.defeat-mode #arena{margin:0}.defeat-mode #overlay{padding:0}
