:root{font-family:'Avenir Next',system-ui,sans-serif;color:#fff9e7;background:#64c6cf;font-synthesis:none;--paper:#fff9e7;--ink:#164e58;--line:#ffffff40;--gold:#ffdf8d}*{box-sizing:border-box}body{margin:0}html,body,#game{width:100%;height:100%;overflow:hidden}#game{position:relative;height:100dvh}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{min-height:46px;padding:11px 19px;border:1px solid var(--line);border-radius:9px;color:var(--paper);background:#154d5cbf;backdrop-filter:blur(12px);cursor:pointer;font-weight:650}button:hover{background:#256c76}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.6;cursor:wait}header{position:absolute;top:max(24px,env(safe-area-inset-top));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;pointer-events:none}header button{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:3px;text-shadow:0 2px 9px #24576477}.seal{border:1px solid #fff6dc99;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;font:27px Georgia}.wordmark em{font-size:11px;font-style:normal;letter-spacing:1px;color:var(--gold)}.wordmark small{display:block;letter-spacing:2px;font-size:9px;margin-top:5px}.objective{position:absolute;right:max(30px,env(safe-area-inset-right));top:100px;width:260px;background:linear-gradient(110deg,#174e61e8,#1e6678ca);padding:18px 22px;border-left:2px solid var(--gold);border-radius:0 10px 10px 0;box-shadow:0 8px 28px #10526616}.objective small,.welcome>small,dialog>small{font-size:10px;letter-spacing:2.1px;font-weight:750;color:var(--gold)}.objective strong{display:block;margin:9px 0;font:22px/1.1 Georgia}.objective>span{font-size:12px;line-height:1.5;color:#daeeec}.welcome{position:absolute;left:max(48px,env(safe-area-inset-left));bottom:105px;max-width:380px;text-shadow:0 2px 22px #17475888}.welcome h1{font:clamp(52px,6vw,90px)/.95 Georgia;margin:18px 0 20px;letter-spacing:-3px}.welcome p{font-size:15px;line-height:1.65;color:#f4ffff}.welcome button,dialog>button:not(.quiet){background:var(--gold);color:var(--ink);border:0;min-width:230px;text-shadow:none}.fine{display:block;font-size:11px;line-height:1.5;max-width:300px;margin-top:12px;color:#e5f3ef}.bottom{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:12px}.keyboard{font-size:11px;text-shadow:0 1px 4px #143c44}.actions{display:flex;gap:8px}.actions kbd{font:9px system-ui;margin-left:8px;color:#bfe4df}#use{background:#fff7dc;color:#155360;min-width:115px}#use:disabled{opacity:.65;cursor:default}#toast{position:absolute;bottom:102px;left:50%;transform:translateX(-50%);max-width:min(480px,90%);padding:12px 20px;border-radius:30px;background:#fff8e9;color:var(--ink);font-size:13px;text-align:center;opacity:0;transition:opacity .25s;pointer-events:none}#toast.show{opacity:1}#marker{position:absolute;color:#fff3ab;text-shadow:0 2px 5px #215764;font-size:34px;pointer-events:none;transform:translate(-50%,-100%);text-align:center}#marker span{display:block;font-size:11px;font-weight:800;white-space:nowrap;background:#195662dd;padding:5px 9px;border-radius:6px}dialog{border:1px solid #d2ddd4;border-radius:18px;padding:32px;background:#fff9e9;color:var(--ink);width:min(430px,calc(100% - 30px));max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 80px #0d485355}dialog::backdrop{background:#154c6388;backdrop-filter:blur(8px)}dialog h2{font:38px Georgia;margin:15px 0}dialog p{font-size:14px;line-height:1.6}dialog>small{color:#967237}dialog>button{width:100%;margin:8px 0}dialog label{display:flex;justify-content:space-between;align-items:center;margin:16px 0;font-size:14px}select{font-size:16px;padding:10px;border:1px solid #a7bdb4;background:#f1f1dc;color:#164e58;border-radius:6px}.quiet{background:transparent;color:var(--ink);border-color:#b1c4b8}dialog a{display:block;margin-top:14px;color:var(--ink);font-size:13px}dialog .fine{color:#476e70}#offline{font-size:12px;color:#297862}.install{font-size:11px!important}.swim{display:none}#error{position:absolute;inset:0;background:#e6f3ea;color:var(--ink);padding:20vh 10vw;z-index:20}#error a{color:var(--ink);display:block;margin-top:20px}[hidden]{display:none!important}
@media(pointer:coarse){.swim{display:grid;position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,46px);gap:3px}.swim button{padding:0;font-size:22px;touch-action:none;user-select:none}.swim button:first-child{grid-column:2}.swim button:nth-child(2){grid-row:2;grid-column:1}.swim button:nth-child(3){grid-row:2;grid-column:2}.swim button:nth-child(4){grid-row:2;grid-column:3}.keyboard{display:none}.bottom{left:auto;bottom:max(25px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right))}.actions{width:150px;display:grid;grid-template-columns:1fr 1fr}.actions button{padding:9px;font-size:12px}.actions kbd{display:none}#view{grid-column:1/-1;min-height:35px}#use{min-width:0}#toast{bottom:140px}.welcome{bottom:145px}body:not(.playing) .swim,body:not(.playing) .bottom{visibility:hidden}}
@media(max-width:600px){header{top:max(18px,env(safe-area-inset-top));left:18px;right:18px}.objective{top:88px;right:18px;left:18px;width:auto;padding:10px 15px}.objective strong{font-size:18px;margin:5px 0}.objective small{font-size:9px}.objective span{font-size:11px}.welcome{left:25px;right:25px;max-width:310px;bottom:55px}.welcome h1{font-size:58px}.welcome p{font-size:13px}.welcome .fine{font-size:10px}.wordmark{font-size:15px}.wordmark small{font-size:8px}header button{padding:9px 12px}header button span{display:none}}
@media(max-height:520px){.welcome{bottom:20px;left:30px;max-width:350px}.welcome h1{font-size:42px;margin:9px 0}.welcome p{margin:8px 0;font-size:12px}.welcome .fine{font-size:9px;margin-top:5px}.welcome>small{display:none}.objective{top:85px;width:240px;left:auto;right:20px}.objective strong{font-size:17px}#toast{bottom:130px}.wordmark small{display:none}}
.actions button,.swim button{touch-action:none;user-select:none;-webkit-user-select:none;transition:background-color .08s,box-shadow .08s}
.actions button{height:54px;white-space:normal;line-height:1.15}
#view{width:110px}#dash{width:110px}#use{width:180px}
button.pressed,.swim button:active{background:var(--gold);color:var(--ink);box-shadow:inset 0 0 0 2px #ad7f39}
#use.ready{background:#ffdf8d;box-shadow:0 0 0 2px #fff4bd66}
.objective{pointer-events:none}
@media(pointer:coarse){.actions{width:156px;grid-template-columns:1fr 1fr}.actions #view,.actions #dash,.actions #use{width:100%;min-width:0}.actions #view{height:38px}.actions #dash,.actions #use{height:58px;padding:6px;font-size:12px}.swim button{min-width:46px;min-height:46px}}
