@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800&display=swap');
:root{font-family:'Golos Text',sans-serif;color:#192b25;background:#e8ece3}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:14px;padding:14px 19px;font-weight:600;background:#fff;color:#192b25}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}#map{position:fixed;inset:0;background:radial-gradient(ellipse at 40% 30%,#f7f3df,#ccdace)}header{position:fixed;top:22px;left:24px;right:24px;display:flex;align-items:center;gap:12px;pointer-events:none}header>*{pointer-events:auto}header #profile{margin-left:auto;box-shadow:0 5px 20px #192b2515}.crest{width:48px;height:48px;border-radius:16px;background:#192b25;color:#e5cb8c;display:grid;place-items:center;font-size:32px}h1{font-size:21px;margin:0;letter-spacing:-.7px}header span{font-size:11px}aside{position:fixed;top:110px;left:24px;width:235px;padding:24px;background:#fafbf7ed;border:1px solid #fff;border-radius:24px;box-shadow:0 15px 50px #172d2612;backdrop-filter:blur(15px)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}aside strong{display:block;font-size:62px;letter-spacing:-4px;line-height:1.2;margin:12px 0 0}aside>span:not(.eyebrow){font-size:12px;color:#6b796e}.rule{border-top:1px solid #dde4d9;padding-top:17px;margin-top:22px;font-size:12px;line-height:1.7}.leader{display:flex;gap:8px;font-size:12px;margin-top:16px;align-items:center}.leader i{width:9px;height:9px;border-radius:50%}.leader b{margin-left:auto}footer{position:fixed;bottom:36px;left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 32px));padding:18px;background:#fafbf7f5;border:1px solid #fff;border-radius:24px;box-shadow:0 15px 50px #172d2622}.status{display:flex;gap:8px;align-items:center;font-size:12px;margin:0 2px 15px}.status b{margin-left:auto}i#dot{width:7px;height:7px;border-radius:50%;background:#9ba99c}.primary{background:#d5ee75;color:#192b25;width:100%;font-size:16px}#demo{width:100%;background:transparent;padding:12px;font-size:12px}small{display:block;font-size:9px;text-align:center;color:#718074}a{color:inherit}#notice{position:fixed;bottom:246px;left:50%;transform:translateX(-50%);max-width:90%;background:#192b25e8;color:#fff;padding:10px 16px;border-radius:12px;font-size:12px;text-align:center}dialog{border:0;border-radius:28px;padding:30px;width:min(400px,calc(100% - 32px));color:#192b25;background:#fafbf7}dialog::backdrop{background:#10281d60;backdrop-filter:blur(5px)}dialog h2{font-size:29px;letter-spacing:-1px}dialog p{font-size:13px;line-height:1.6;color:#67766b}.close{float:right;padding:0;background:none;font-size:28px}.social{width:100%;background:#0077ff;color:#fff;margin:5px 0}.dark{background:#252e4b}details{margin-top:20px;font-size:11px}input{display:block;width:100%;margin:12px 0;padding:12px;border:1px solid #d7e0d2;border-radius:10px}.avatar{width:34px;height:34px;border:3px solid white;border-radius:50%;display:grid;place-items:center;color:white;font-size:14px;box-shadow:0 3px 12px #0003}@media(max-width:600px){header{top:14px;left:16px;right:16px}h1{font-size:18px}aside{top:88px;left:16px;width:160px;padding:16px;border-radius:18px}aside strong{font-size:40px}aside .rule,#leaders{display:none}.eyebrow{font-size:8px;letter-spacing:1px}aside>span:not(.eyebrow){font-size:10px}footer{bottom:34px}#notice{bottom:244px}header #profile{padding:11px;font-size:11px}}
/* Clear first steps and accessible controls */
button{min-height:46px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #7350dc;outline-offset:4px}button:disabled{opacity:1;background:#e3e8df;color:#687566;cursor:not-allowed}header #help{margin-left:auto;width:46px;padding:0;border:1px solid #d9e2d5;font-size:20px}header #profile{margin-left:0}header .brand span{font-size:12px}aside strong{font-variant-numeric:tabular-nums}#notice{bottom:270px;max-width:430px;width:max-content;font-size:13px;line-height:1.5}#notice:empty{display:none}footer small{font-size:11px;line-height:1.5;margin-top:7px}.secondary{width:100%;background:#edf1e7;margin-top:10px;font-size:14px}footer #demo{background:#edf1e7;margin-top:10px;padding:12px;font-size:14px}footer .status{font-size:13px}dialog{max-height:calc(100dvh - 32px);overflow:auto}dialog h2{line-height:1.15}dialog p{font-size:15px}dialog .close{min-width:44px;min-height:44px}dialog details{margin-top:24px}dialog summary{padding:12px 0;min-height:44px;cursor:pointer}dialog label{display:block;margin-top:12px;font-size:13px}dialog input{font-size:16px}#platformStatus{padding:10px;background:#edf1e7;border-radius:10px;font-size:12px}#authError:empty{display:none}.welcome{position:fixed;left:50%;top:43%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 32px));padding:28px;border-radius:26px;background:#fafbf7f5;box-shadow:0 12px 60px #192b2515}.welcome h2{font-size:32px;letter-spacing:-1.3px;line-height:1.12;margin:16px 0}.welcome p{font-size:15px;line-height:1.6;color:#52634f;margin-bottom:22px}.tag{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#5d7049}.hint{display:block;font-size:12px;color:#62715a;line-height:1.5;text-align:center;margin:12px 0 0}#mapStatus{font-size:12px;text-align:center;margin-top:18px;color:#63745e}.text-button{width:100%;padding:6px;background:none;font-size:13px;text-decoration:underline}#welcome[hidden],button[hidden]{display:none!important}body:has(.welcome:not([hidden])) #notice{display:none}.legend{display:flex;gap:14px;justify-content:center;font-size:12px}.legend span{display:flex;gap:5px;align-items:center}.legend i{width:11px;height:11px;border-radius:3px;background:#d9e2d0}.legend .mine{background:#7357db}.legend .rival{background:#ed865b}#practice{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px auto;max-width:280px}.hex{aspect-ratio:1;min-height:64px;padding:0;background:#e0e8d7;clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);font-size:23px}.hex[data-owner=mine]{background:#7357db;color:white}.hex[data-owner=rival]{background:#ed865b;color:#192b25}.hex:focus-visible{clip-path:none;outline-offset:0}.lesson-result{padding:12px;border-radius:12px;background:#edf1e7;font-weight:500;min-height:64px}#training h2{margin:14px 0}#training .tag{display:block;margin-top:15px}body:has(.welcome:not([hidden])) #score{display:none}@media(max-width:600px){header{gap:8px}.crest{width:40px;height:40px;font-size:27px;flex-shrink:0}header h1{font-size:16px;letter-spacing:-.6px}header .brand span{font-size:10px}header #help{width:42px;min-width:42px}header #profile{padding:10px;font-size:12px}footer{padding:16px;bottom:calc(28px + env(safe-area-inset-bottom));border-radius:22px}#notice{bottom:285px;max-width:calc(100% - 32px)}aside{top:84px;width:145px;padding:13px}aside strong{font-size:34px;margin-top:5px}.welcome{top:100px;transform:translateX(-50%);padding:22px;max-height:calc(100dvh - 370px);overflow:auto}.welcome h2{font-size:27px;margin:12px 0}.welcome p{font-size:14px;margin:12px 0 18px}.welcome .hint{font-size:11px}#mapStatus{margin-top:12px;font-size:11px}.welcome .primary{font-size:15px}.tag{font-size:9px}.rule{font-size:13px}dialog{padding:24px}}@media(max-height:720px){.welcome{top:84px;max-height:calc(100dvh - 340px);padding:18px}.welcome h2{font-size:24px}.welcome p{font-size:13px;margin:10px 0}.welcome .hint{margin-top:7px}footer small{font-size:10px}footer{padding:12px}#notice{bottom:260px}}
body:has(.welcome:not([hidden])) footer{display:none}@media(max-width:600px){.welcome{max-height:calc(100dvh - 132px);padding:24px}.welcome h2{font-size:30px;line-height:1.15}.welcome p{font-size:16px}.welcome .hint,#mapStatus{font-size:13px;line-height:1.5}.welcome .primary{min-height:52px}.welcome .text-button{font-size:14px}.brand{min-width:0}header .brand span{display:none}header h1{line-height:1.1;max-width:130px}#practice{gap:10px}.hex{min-height:64px}}
@media(max-width:360px){.welcome{top:88px;padding:20px;max-height:calc(100dvh - 110px)}.welcome h2{font-size:24px;letter-spacing:-.8px}.welcome p{font-size:14px;line-height:1.5}.welcome .primary{font-size:14px;padding:12px 8px}.welcome .hint,#mapStatus{font-size:12px}dialog h2{font-size:25px}dialog p{font-size:14px}dialog{padding:20px}.legend{gap:8px;font-size:11px}}
#gridToggle{font-size:12px;padding:9px 10px;margin-top:16px;background:#e4eddb;width:100%;min-height:44px}#gridToggle[aria-pressed=false]{background:#eee}#gridHint{display:block;font-size:10px!important;line-height:1.4;margin-top:8px;color:#536348}#mapTools{position:fixed;right:18px;top:100px;display:grid;gap:5px}#mapTools[hidden]{display:none}#mapTools button{font-size:26px;width:46px;padding:3px;box-shadow:0 3px 16px #192b251a}@media(max-width:600px){#mapTools{top:90px}#gridToggle{font-size:11px;margin-top:10px}}
[hidden]{display:none!important}#accountForm label{font-size:14px}#accountForm input{min-height:48px}#accountForm .primary{margin-top:14px}dialog hr{border:0;border-top:1px solid #dce4d5;margin:24px 0}#adminOpen,#logout{width:100%;font-size:12px;padding:10px;margin-top:10px;background:#e7eddf}#adminOpen{background:#d5ee75}#adminPanel{width:min(620px,calc(100% - 24px))}#adminPanel h3{font-size:16px;margin:24px 0 10px}.admin-row{display:flex;gap:9px;border-bottom:1px solid #e0e6d8;padding:10px 0;margin:0;font-size:14px!important}.admin-row i{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:5px}
.app-tabs{display:flex;gap:6px;margin-bottom:14px;background:#e9eee2;padding:4px;border-radius:14px}.app-tabs button{flex:1;background:none;font-size:14px;padding:10px;min-height:44px}.app-tabs button[aria-current=page]{background:#192b25;color:#f5f9ed}body:has(.welcome:not([hidden])) footer{display:block}body:has(.welcome:not([hidden])) .game-controls{display:none}body:has(.welcome:not([hidden])) .app-tabs{margin-bottom:0}#rankingPanel{position:fixed;inset:92px 24px 148px;max-width:720px;margin:0 auto;padding:28px;background:#fafbf7f5;border:1px solid white;border-radius:24px;overflow:auto;box-shadow:0 10px 50px #192b2515}#rankingTitle{font-size:30px;letter-spacing:-1px;margin:8px 0}.rank-heading p,.rank-rules p{font-size:14px;line-height:1.6;color:#54634f}.rank-list h3{font-size:17px;margin:26px 0 10px}.my-rank{padding:20px;border-radius:18px;background:#e4edcc;margin:20px 0}.my-rank h3{font-size:24px;margin:6px 0 10px}.my-rank p{font-size:14px;line-height:1.5;margin:8px 0}.my-rank progress{width:100%;height:12px;accent-color:#597d31}.rank-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e2e8da}.rank-place{width:35px;font-size:18px;font-weight:700;flex-shrink:0}.rank-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;color:white;flex-shrink:0}.rank-name{min-width:0;flex:1;overflow-wrap:anywhere}.rank-name strong{font-size:14px;display:block}.rank-name small{font-size:12px;text-align:left;margin-top:4px}.rank-amount{font-size:14px;font-weight:600;text-align:right;flex-shrink:0}.rank-amount small{font-size:11px;text-align:right;font-weight:400}.rank-row.is-me{background:#f0f5df}.rank-rules{margin-top:24px;font-size:14px}.rank-rules summary{padding:14px 0;cursor:pointer;font-weight:600}.rank-tier{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #e3e8dc;font-size:13px}#rankStatus{font-size:12px;color:#58684f;line-height:1.5}body[data-view=ranking] #score,body[data-view=ranking] #mapTools,body[data-view=ranking] #welcome,body[data-view=ranking] #notice,body[data-view=ranking] .game-controls{display:none!important}body[data-view=ranking] .app-tabs{margin-bottom:0}body[data-view=ranking] #map{opacity:.25}body[data-view=ranking] footer{display:block!important}#notice{bottom:335px}@media(max-width:600px){#rankingPanel{inset:82px 12px 132px;padding:18px}#rankingTitle{font-size:26px}.rank-row{gap:8px}.rank-avatar{display:none}.rank-place{width:28px;font-size:16px}.rank-amount{font-size:12px}.rank-heading p{font-size:13px}.my-rank{padding:16px}.my-rank h3{font-size:22px}.welcome{max-height:calc(100dvh - 230px)}#notice{bottom:345px}}@media(max-width:360px){.welcome{max-height:calc(100dvh - 220px)}.rank-row{gap:6px}.rank-name strong{font-size:13px}.rank-amount small{font-size:10px}}
.walk-help{font-size:13px;line-height:1.5;margin:0 0 14px;padding:10px 12px;background:#edf2df;border-radius:12px;color:#30452b}footer{z-index:5}header,#score,#mapTools{z-index:4}#notice{z-index:4;pointer-events:none}#rankingPanel{z-index:4}
.territory-legend{border-top:1px solid #dbe4d3;padding-top:12px;margin-top:12px;display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;font-weight:600}.territory-legend span{display:flex;align-items:center;gap:6px}.territory-legend i{display:inline-block;width:13px;height:13px;border-radius:4px}.territory-own{background:#2563eb}.territory-other{background:#dc2626}.territory-legend small{font-size:10px!important;font-weight:400;line-height:1.4;text-align:left;margin:0;color:#596650}@media(max-width:600px){.territory-legend{gap:8px;font-size:11px;padding-top:9px;margin-top:9px}.territory-legend small{font-size:9px!important}}
