/* Same pixel faces, teal tokens, square outlines and offset shadows as Hoppy
   and the hub. The game world deliberately has its own illustrated palette. */
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/press-start-2p-latin.woff2') format('woff2')}
@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/silkscreen-400-latin.woff2') format('woff2')}
@font-face{font-family:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/silkscreen-700-latin.woff2') format('woff2')}
:root{color-scheme:light;--display:'Press Start 2P','Courier New',monospace;--menu:Silkscreen,'Courier New',monospace;--copy:ui-monospace,'SFMono-Regular',Consolas,monospace;--ink:#0e2422;--muted:#3f5d5a;--edge:#123c39;--accent:#14b8a6;--tint:#d3f4ef;--shadow:#c3d9d5;--paper:#eef4f3;--line:#cbdedb;--green:#0b6a63}
*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;height:100dvh;overflow:hidden}body{background:#a9d4dd;color:var(--ink);font-family:var(--copy);font-synthesis:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{touch-action:manipulation}button svg{pointer-events:none}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.svg-defs{position:absolute;width:0;height:0}
.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 18px;border:2px solid var(--edge);border-radius:0;background:#fff;color:var(--ink);font:700 14px/1.35 var(--menu);letter-spacing:.04em;text-transform:uppercase;box-shadow:3px 3px 0 var(--shadow);cursor:pointer;transition:transform .12s steps(3,end),box-shadow .12s steps(3,end)}
.ui-btn:hover:not(:disabled){background:var(--tint)}.ui-btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:none}.ui-btn:disabled{opacity:.5;cursor:default}.ui-btn:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:3px}.ui-btn.primary{background:var(--accent);color:#04231f}.ui-btn.primary:hover{background:#2ad4c0}.ui-btn.gold{background:#f6d27a;color:#614a16}.ui-btn.gold:hover{background:#f7c94f}.ui-btn.danger{background:#fdeaec;color:#c62b3f}.ui-btn.big{min-height:54px;padding:15px 24px;font-size:17px}.ui-btn.quiet{border-color:transparent;background:transparent;box-shadow:none;color:var(--muted);font-size:12px;padding:7px;min-height:34px}.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:square;stroke-linejoin:miter;flex:none}.icon-btn{width:46px;height:46px;flex:none;padding:0;font:24px/1 var(--copy)}
.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:auto;touch-action:pan-y;background:rgba(14,36,34,.35);z-index:10;text-align:center;font-family:var(--menu)}#home{background:rgba(14,36,34,.23)}
.menu-card{position:relative;width:min(410px,100%);flex:none;margin:auto;padding:28px 30px 22px;background:#fff;border:2px solid var(--edge);box-shadow:8px 8px 0 rgba(18,60,57,.65);display:flex;flex-direction:column;align-items:center;gap:17px}.menu-card:before{content:'';position:absolute;left:0;right:0;top:0;height:6px;background:repeating-linear-gradient(90deg,var(--accent) 0 6px,var(--tint) 6px 12px)}.eyebrow{font:700 11px/1.4 var(--menu);letter-spacing:1px;text-transform:uppercase;color:var(--green)}.logo{font:400 clamp(24px,5.7vmin,36px)/1.5 var(--display);text-transform:uppercase;text-shadow:4px 4px 0 #a5e7de}.logo span{color:var(--green)}.logo.small{font-size:clamp(17px,4vmin,24px)}.sub{font:13px/1.65 var(--copy);color:var(--muted)}.hint{font:11px/1.5 var(--copy);color:var(--muted)}.menu-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}.menu-nav .ui-btn{padding-left:10px;padding-right:10px}.wide{grid-column:1/-1;width:100%}#play{justify-content:space-between;padding-left:22px;padding-right:22px;font-size:19px}.btn-col{display:flex;flex-direction:column;gap:10px;width:100%}.home-stats{display:flex;justify-content:space-between;gap:14px;width:100%;border-top:1px solid var(--line);padding-top:12px;color:var(--green);font-size:11px}
dialog{margin:auto;width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 48px);border:2px solid var(--edge);padding:0;background:var(--paper);color:var(--ink);box-shadow:8px 8px 0 rgba(18,60,57,.65);overflow:hidden}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:rgba(14,36,34,.65)}.panel-head{position:relative;background:#fff;border-bottom:2px solid var(--edge);display:flex;justify-content:space-between;gap:16px;padding:24px 26px 20px;flex:none}.panel-head:after{content:'';position:absolute;bottom:-6px;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,var(--accent) 0 4px,var(--tint) 4px 8px)}.panel-head h2{font:400 21px/1.5 var(--display);margin:7px 0}.panel-body{padding:24px 26px;overflow-y:auto;min-height:0;touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a9c6c2 transparent}.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 26px;border-top:2px solid var(--edge);background:#fff;flex:none}.panel-foot .sub{font-size:11px}.chapter{margin-bottom:24px}.chapter:last-child{margin-bottom:0}.chapter-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:12px}.chapter h3{font:700 14px/1.4 var(--menu)}.chapter-head span{font-size:11px;color:var(--muted)}.level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.level-tile{padding:0;flex-direction:column;gap:0;overflow:hidden;background:#fff}.level-tile canvas{width:100%;height:65px;display:block}.level-tile .tile-number{padding-top:9px;font:400 14px var(--display)}.level-tile .tile-stars{font-size:20px;letter-spacing:1px;color:#a87610;margin:4px 0}.level-tile .tile-score{font:10px var(--copy);padding-bottom:9px;color:var(--muted)}.level-tile.current{border-color:var(--green);box-shadow:3px 3px 0 var(--accent)}
.setting-group{border:2px solid var(--line);background:#fff}.setting{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px}.setting+.setting{border-top:1px solid var(--line)}.setting strong{font:700 14px/1.5 var(--menu)}.setting .sub{font-size:12px}.setting button{min-width:70px}.setting button[aria-checked=true]{background:var(--accent)}.save-note{margin-top:20px;background:#e8f2f0;border:2px solid var(--line);padding:16px;font:12px/1.7 var(--copy)}.save-note a{color:var(--green)}.flock-guide{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.bird-card{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid var(--line);padding:12px}.bird-card canvas{width:64px;height:64px;flex:none}.bird-card h3{font:700 14px var(--menu);margin-bottom:5px}.bird-card p{font:11px/1.5 var(--copy);color:var(--muted)}.how-to{font:13px/1.8 var(--copy);padding-left:24px}.how-to li{padding-left:5px;margin:8px 0}kbd{border:1px solid var(--line);background:#fff;padding:2px 4px;font:12px var(--copy)}.board-select{display:flex;align-items:center;gap:12px;margin-bottom:18px;font:700 12px var(--menu)}select{border:2px solid var(--edge);border-radius:0;padding:10px;background:#fff;color:var(--ink);min-width:0;max-width:100%;font:13px var(--menu);flex:1}.board-table{width:100%;border-collapse:collapse;background:#fff;font:13px var(--copy)}.board-table th{text-align:left;font:700 12px var(--menu);color:var(--green);padding:12px;border-bottom:2px solid var(--edge)}.board-table td{padding:13px 12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.board-table td:last-child,.board-table th:last-child{text-align:right}.board-table tr.you{background:var(--tint)}.empty{padding:28px 12px;background:#fff;border:2px solid var(--line);font:13px/1.8 var(--copy);text-align:center}.your-rank{margin-top:14px;padding:12px;border:2px solid var(--edge);background:var(--tint);font:13px/1.6 var(--copy)}.daily-preview{display:block;width:100%;aspect-ratio:16/6;border:2px solid var(--edge);margin-bottom:18px}.daily-stats{display:flex;justify-content:space-between;gap:12px;padding:16px 0;font:12px/1.8 var(--copy)}.daily-prizes{background:#fff2cc;border:2px solid #c9a452;padding:14px;margin-bottom:18px;font:13px/1.7 var(--copy)}.daily-actions{display:flex;gap:12px}.daily-actions button{flex:1}
#hud{position:fixed;inset:0;z-index:5;pointer-events:none}.hud-left{position:absolute;left:max(20px,env(safe-area-inset-left));top:max(20px,env(safe-area-inset-top));display:flex;gap:12px}.hud-left button,.hud-bottom button{pointer-events:auto;box-shadow:3px 3px 0 rgba(18,60,57,.35)}.level-label{position:absolute;left:50%;top:max(24px,env(safe-area-inset-top));transform:translateX(-50%);text-align:center;color:#fff9e9;text-shadow:0 2px 3px #365c53;font:700 12px/1.5 var(--menu)}.level-label strong{display:block;font:700 17px/1.7 var(--menu)}.score-box{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(22px,env(safe-area-inset-top));text-align:right;color:#fff9e9;text-shadow:0 2px 3px #365c53}.score-box span{font:700 12px var(--menu);letter-spacing:1px}.score-box strong{display:block;margin:8px 0;font:400 clamp(20px,3vw,34px) var(--display);-webkit-text-stroke:4px #3e5743;paint-order:stroke fill;text-shadow:0 4px 0 #3e5743}.score-box small{font:700 11px var(--menu)}.hud-bottom{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;gap:12px}.flock-label{display:flex;flex-direction:column;gap:6px;color:#fff3d0;text-shadow:0 2px 2px #614525;font:700 12px var(--menu)}/* The hint rides in the bottom bar, over the soil: centred in the playfield it
   sat exactly on the pigs it was telling you to aim at. */
#instruction{flex:0 1 auto;min-width:0;max-width:min(560px,54%);padding:10px 16px;background:#fff9e9e8;border:2px solid #566a47;box-shadow:3px 3px 0 #566a4740;font:12px/1.6 var(--copy);text-align:center;transition:opacity .3s}#instruction:empty{display:none}.result-stars{display:flex;gap:12px;color:#d9a122;font:58px/1.1 Georgia,serif;filter:drop-shadow(0 3px 0 #9c6b18)}.result-stars .unearned{color:#dbe4e1;filter:none}#result-score{font:400 clamp(28px,7vw,42px)/1.3 var(--display);color:var(--green)}.save-status{font:11px/1.6 var(--copy);color:var(--green);min-height:18px}.save-status button{display:block;margin:7px auto;font-size:11px}#notices{position:fixed;left:20px;bottom:20px;z-index:40;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100% - 40px));pointer-events:none}.notice{pointer-events:auto;background:#fff;border:2px solid var(--edge);box-shadow:4px 4px 0 #123c3970;padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font:12px/1.7 var(--copy)}.notice button{border:0;background:none;font-size:20px;cursor:pointer;color:var(--ink);padding:0 4px}.no-script{position:fixed;inset:0;background:white;display:grid;place-content:center;padding:30px;z-index:50}
@media(max-width:600px){.menu-card{padding:25px 22px 18px;gap:14px;max-width:360px}.panel-head{padding:20px 18px 16px}.panel-head h2{font-size:16px}.panel-body{padding:22px 16px}.panel-foot{padding:12px 16px}.level-grid{gap:6px}.level-tile canvas{height:48px}.level-tile .tile-number{font-size:12px}.level-tile .tile-stars{font-size:17px}.level-tile .tile-score{font-size:8px}.chapter h3{font-size:12px}.chapter-head span{font-size:9px}.flock-guide{grid-template-columns:1fr}.hud-left{left:12px;top:16px;gap:8px}.hud-left .icon-btn{width:40px;height:40px;min-height:40px}.level-label{top:78px;width:90%}.level-label strong{font-size:15px}.score-box{right:16px;top:16px}.score-box strong{font-size:22px}.hud-bottom{left:14px;right:14px;bottom:20px}.hud-bottom .ui-btn{font-size:11px;padding:10px}.flock-label{font-size:10px}.hud-bottom{flex-wrap:wrap}#instruction{font-size:11px;order:-1;width:100%;max-width:100%}.daily-actions{flex-direction:column}.board-table td,.board-table th{padding:10px 7px}.setting{padding:13px;gap:12px}}
@media(max-height:650px) and (min-width:650px){.menu-card{padding:20px 26px 16px;gap:10px;width:380px}.logo{font-size:25px;line-height:1.35}.menu-nav{gap:7px}.menu-nav .ui-btn{min-height:36px;padding:8px;font-size:12px}.menu-nav .big{min-height:44px}.home-stats{padding-top:8px}.result-stars{font-size:42px}#result-score{font-size:32px}.result-card .sub{font-size:12px}.level-label{top:18px}.overlay{padding:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
