:root{font-family:system-ui,-apple-system,sans-serif;color:#f5f4e9;background:#a6c5ce;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,a{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid #ffffff30;background:#ffffff0a;border-radius:9px;padding:14px 18px}button:hover{background:#ffffff20}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e6c986;outline-offset:3px}[hidden]{display:none!important}#scene{display:block;width:100vw;height:100dvh;touch-action:none}.overlay{position:fixed;inset:0;display:flex;align-items:center;z-index:20;background:linear-gradient(90deg,#102c35ed,#102c3560 55%,#102c3505);overflow:auto;padding:36px 7vw}.menu-card{width:430px;max-width:100%}.back{display:inline-block;color:#dbe9df;text-decoration:none;margin-bottom:36px;font-size:13px}.eyebrow{font-size:11px;letter-spacing:3px;color:#c8d5b7}h1{font-family:'Noto Serif SC',serif;font-size:80px;font-weight:500;letter-spacing:10px;margin:20px 0}h1 span{display:block;font-family:system-ui;font-size:17px;letter-spacing:7px;margin-top:10px;color:#dbc99e}.intro{font-size:14px;line-height:1.9;color:#d3deda}.tags{display:flex;gap:16px;font-size:11px;color:#bdd0c8;margin:25px 0}.modes{display:grid;gap:10px}.modes button{text-align:left;display:flex;justify-content:space-between}.primary{background:#d9e6bc;color:#203b35;border-color:#d9e6bc}.primary:hover{background:#e7f3cf}form{display:flex;gap:8px;margin-top:10px}input{min-width:0;flex:1;background:#09263066;border:1px solid #ffffff30;border-radius:8px;color:white;padding:12px;text-transform:uppercase}#status{font-size:12px;line-height:1.7;color:#d7dbcc;min-height:24px}details{font-size:12px;line-height:1.8;color:#c6d5d3}summary{cursor:pointer}details p{margin:10px 0}.map-label{position:absolute;right:6vw;bottom:8vh;text-align:right}.map-label span{font-size:11px;letter-spacing:4px}.map-label strong{display:block;font-size:29px;font-weight:400;margin:12px 0}.map-label p{font-size:12px;color:#e5eee8}#hud{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 4px #0008}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 26px;font-size:12px}.topbar a,.topbar button{pointer-events:auto;color:white;background:#17374080;border:1px solid #ffffff30;border-radius:8px;padding:10px 15px;text-decoration:none}.enemy{position:absolute;top:80px;left:50%;transform:translateX(-50%);text-align:center;font-size:12px;width:180px}.bar{height:5px;background:#18303980;margin:8px 0;border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:#eea98d;transition:width .12s}.enemy b{font-size:11px;font-weight:400}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:26px;color:#fff9}#hitmarker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:35px;color:#f9e1a3;opacity:0}.bottom{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);text-align:center}#hearts{display:flex;justify-content:center;gap:3px;font-size:22px;color:#f3877c;filter:drop-shadow(0 2px 1px #39262d)}#hearts span{position:relative;color:#263d42}#hearts i{position:absolute;left:0;top:0;overflow:hidden;color:#f3877c;font-style:normal}#healthText{font-size:11px;margin:3px 0 10px}.hotbar{display:flex;gap:5px;pointer-events:auto}.hotbar button{position:relative;width:76px;height:70px;padding:6px;background:#15313cc9;border:1px solid #dbe0c650;border-radius:7px;overflow:hidden}.hotbar button.selected{border:2px solid #e6e9c6;background:#587163d9;box-shadow:0 0 0 2px #172e3680}.hotbar kbd{position:absolute;left:7px;top:5px;font-size:10px;opacity:.6}.hotbar span{font-size:24px;display:block;height:33px}.hotbar b{font-size:11px;font-weight:400}.hotbar i{position:absolute;bottom:0;left:0;height:3px;background:#e4cd99;width:0}#weaponHint{font-size:11px;color:#edf0dd;margin:10px 0 0;white-space:nowrap}#notice{position:absolute;top:29%;left:50%;transform:translateX(-50%);text-align:center;font-size:16px;color:#ffedbe;white-space:pre-line}#damage{position:absolute;inset:0;box-shadow:inset 0 0 130px #db574e;opacity:0}.small-card{margin:auto;background:#19333bea;padding:35px;border:1px solid #ffffff20;border-radius:16px;width:370px;text-align:center}.small-card h2{font-family:'Noto Serif SC',serif;font-size:30px}.small-card p{font-size:13px;line-height:1.8;color:#cedbd4}.small-card button{display:block;width:100%;margin-top:10px}.touch-controls{display:none}.touch #crosshair{display:none}.touch .touch-controls{display:block}.dpad{position:absolute;left:max(20px,env(safe-area-inset-left));bottom:30px;display:grid;grid-template-columns:48px 48px 48px;grid-template-rows:48px 48px 48px;gap:3px;pointer-events:auto}.dpad button{padding:0;background:#17313b80;border-color:#fff5;touch-action:none;font-size:18px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2}.dpad div{grid-row:2;grid-column:2;text-align:center;padding-top:10px;color:#ffffff70}.dpad button:nth-child(4){grid-row:2;grid-column:3}.dpad button:last-child{grid-row:3;grid-column:2}#jump{position:absolute;right:max(30px,env(safe-area-inset-right));bottom:60px;border-radius:50%;width:73px;height:73px;background:#17313b80;pointer-events:auto;touch-action:none;font-size:25px;padding:0}#jump small{display:block;font-size:10px}.touch-tip{position:absolute;right:22px;bottom:25px;font-size:10px;color:#ffffffb0}.touch .hotbar kbd{display:none}.touch .bottom{bottom:16px}.touch .hotbar button{width:58px;height:57px}.touch #hearts{font-size:18px}.touch .topbar{padding:12px}.touch .enemy{top:55px}@media(max-width:650px){.overlay{padding:22px;background:#102c35bb}.menu-card{margin:auto}.back{margin-bottom:18px}h1{font-size:57px;margin:12px 0}.map-label{display:none}.tags{margin:16px 0}.intro{font-size:12px}.dpad{transform:scale(.8);transform-origin:bottom left;left:10px;bottom:20px}#jump{right:15px;bottom:55px;width:60px;height:60px}.touch .hotbar button{width:48px}.touch #weaponHint{font-size:9px}.touch-tip{display:none}}@media(max-height:550px){.overlay{align-items:flex-start;padding:20px 5vw}.menu-card{width:420px}.back{margin-bottom:10px}h1{font-size:45px;margin:10px 0}h1 span{font-size:13px}.intro{margin:8px 0}.tags{margin:12px 0}.modes{grid-template-columns:1fr 1fr}.modes button{font-size:12px}.enemy{top:50px!important}.bottom{bottom:12px}.touch .bottom{bottom:8px}.topbar{padding:10px}.hotbar button{height:55px}#hearts{font-size:18px}}

#crosshair{text-shadow:0 1px 2px #17303e,1px 0 2px #17303e;color:#fff}
@media(max-width:450px){.dpad{transform:scale(.68)}}
.hotbar span svg{width:28px;height:28px;display:inline-block}
/* Native gestures belong to menus; the arena and controls own their touches. */
html,body{overscroll-behavior:none}
body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,#status{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
input{font-size:16px}
#scene,#hud,.dpad,.dpad *,#jump,.hotbar,.hotbar *{touch-action:none}
.dpad button.pressed,#jump.pressed{background:#d9e6bc88;border-color:#f5f4e9}
h1{font-size:clamp(32px,7vw,56px);letter-spacing:4px;margin:25px 0 35px}
@media(max-height:550px){h1{font-size:36px;margin:16px 0 24px}}
details label{display:flex;align-items:center;gap:8px;margin-top:10px}details input[type=checkbox]{flex:none;width:16px;min-width:16px;height:16px;padding:0}
