@font-face{font-family:SnowbellDisplay;src:url('./display.woff2') format('woff2');font-display:swap;font-weight:400}
@font-face{font-family:SnowbellBody;src:url('./body.woff2') format('woff2');font-display:swap;font-weight:200 800}
:root{font-family:SnowbellBody,system-ui,sans-serif;color:#2c4035;background:#f7f6ed;font-synthesis:none;--paper:#f7f6ed;--ink:#2c4035;--muted:#667366;--edge:#d4d9c8}
*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #746788;outline-offset:3px}button{border:1px solid var(--edge);background:var(--paper);border-radius:30px;min-height:44px;padding:10px 15px;font-size:12px;font-weight:650}button:disabled{cursor:default}button:hover:not(:disabled){background:#e8ecd8}[hidden]{display:none!important}
.game{height:100svh;height:100dvh;display:flex;flex-direction:column;max-width:1600px;margin:auto;overflow:hidden}
.header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding:max(14px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 14px max(20px,env(safe-area-inset-left));background:var(--paper);z-index:1;border-bottom:1px solid var(--edge)}
.header h1{font:400 35px/1 SnowbellDisplay,sans-serif;margin:0;letter-spacing:-.02em}.brand{display:flex;gap:5px;align-items:center;font-size:12px;font-weight:800}.brand span{font-size:18px;color:#83729a}.header>button{font-size:11px;min-height:38px;background:#e4ebd1;border-color:#c6d3b7;padding:9px 13px}
.viewport{position:relative;flex:1;min-height:200px;background:#83969f;overflow:hidden}#world{position:absolute;inset:0}#world canvas{width:100%;height:100%;display:block;touch-action:none!important}.loading{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;background:#e3e8dc;text-align:center;padding:30px}.loading p{font-size:13px}.loading-star{font-size:48px;color:#89729a}.camera-controls{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:16px;display:flex;gap:7px}.camera-controls button{width:42px;min-height:42px;padding:0;background:#f7f6ed;box-shadow:0 2px 0 #364d4325;font-size:22px}
.controls{flex-shrink:0;border-top:1px solid #d3d9c8;padding:20px max(24px,env(safe-area-inset-right)) max(13px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--paper);position:relative;z-index:1}.objective{display:flex;gap:15px;align-items:center;justify-content:space-between;max-width:720px;margin:auto}.objective h2{font:400 29px/1.2 SnowbellDisplay,sans-serif;margin:0}.objective output{font-size:12px;font-weight:650;border:1px solid #d7dccb;background:#ecefdd;border-radius:30px;padding:7px 12px;white-space:nowrap}.lanterns{display:flex;gap:9px;max-width:720px;margin:15px auto 0}.lanterns button{display:flex;justify-content:center;align-items:center;gap:8px;flex:1;min-width:0;font-size:12px;white-space:nowrap;padding:11px 10px;background:#eceee3}.lanterns span{display:block;width:11px;height:14px;flex-shrink:0;background:#b9c9c2;border:1px solid #879d90;border-radius:4px;transition:background .4s,box-shadow .4s}.lanterns .lit{background:#fff0c6;border-color:#ddce96}.lanterns .lit span{background:#edbd62;border-color:#ca913d;box-shadow:0 0 12px #e7b95590}.controls>p{min-height:19px;margin:12px auto 7px;text-align:center;color:var(--muted);font-size:11px;line-height:1.7}.quiet-controls{display:flex;align-items:center;justify-content:center;gap:23px;min-height:36px;flex-wrap:wrap}.quiet-controls button,.quiet-controls a{border:0;background:transparent;padding:6px 0;min-height:36px;font-size:10px;font-weight:550;color:#5b6b5a}.complete .objective h2{color:#85703c}
dialog{width:min(430px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:34px 30px 30px;background:#f7f6ed;border:1px solid #a9baa3;border-radius:28px;color:var(--ink);text-align:center;box-shadow:0 20px 90px #16292040}dialog::backdrop{background:#233b36a6;backdrop-filter:blur(4px)}dialog .close{position:absolute;right:13px;top:13px;width:36px;min-height:36px;padding:0;border:0;background:transparent;font-size:26px}.save-star{display:block;color:#8d769e;font-size:31px}dialog h2{font:400 44px/1.03 SnowbellDisplay,sans-serif;margin:14px 0 20px}dialog p{font-size:13px;line-height:1.75;color:var(--muted)}dialog .primary{display:block;width:100%;margin-top:23px;background:#d4e7ad;border:1px solid #a8c78c;box-shadow:0 3px 0 #abc78e}dialog .primary:disabled{box-shadow:none;background:#e9eedf;color:#5b6b55}.install{width:100%;margin-top:15px}.home-screen{border-top:1px solid var(--edge);margin-top:25px;padding-top:8px}.home-screen h3{font-size:13px;margin:17px 0 8px}.home-screen p{font-size:12px;margin:0}.home-screen strong{color:var(--ink)}progress{width:100%;height:7px;accent-color:#8aa264;border:0;margin:8px 0}progress::-webkit-progress-bar{background:#e1e6d6;border-radius:7px}progress::-webkit-progress-value{background:#99b978;border-radius:7px}
body.embedded .header,body.embedded .camera-controls{display:none}body.embedded .viewport{min-height:0;flex:1}body.embedded .game{max-width:none}
@media(max-width:520px){.header{padding-right:16px;padding-left:16px;gap:8px}.header h1{font-size:31px}.brand{font-size:11px}.header>button{font-size:9px;padding:9px 10px}.controls{padding-top:17px;padding-right:17px;padding-left:17px}.objective h2{font-size:27px}.lanterns{gap:6px}.lanterns button{font-size:10px;padding:11px 5px;gap:6px}.quiet-controls{gap:20px}.controls>p{font-size:10px}}
@media(max-height:550px) and (min-width:600px){.header{min-height:53px;padding-top:9px;padding-bottom:9px}.header h1{font-size:28px}.controls{position:absolute;right:16px;bottom:18px;width:300px;border:1px solid #d3d9c8;border-radius:22px;padding:14px 16px 8px;box-shadow:0 8px 25px #172d3920}.objective h2{font-size:24px}.objective output{font-size:10px}.lanterns{gap:5px;margin-top:11px}.lanterns button{font-size:9px;gap:5px;padding:8px 4px;min-height:38px}.controls>p{font-size:10px}.quiet-controls{gap:18px}.quiet-controls a{display:none}.camera-controls{left:16px;right:auto}.viewport{min-height:0}}

body.embedded .controls{padding:10px 14px 8px}.embedded .objective h2{font-size:23px}.embedded .objective output{font-size:10px;padding:5px 8px}.embedded .quiet-controls{gap:16px}.embedded .controls>p{font-size:10px;margin:5px 0;min-height:28px}.quiet-controls button{min-width:32px;min-height:44px}
