@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0b1719;--gold:#d8b979;--muted:#9caeaa;--line:#53665c70;--panel:#122023f5;--text:#f0eadb}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}button,input,select{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}.topbar{height:74px;background:linear-gradient(100deg,#0b1719,#182625 48%,#0b1719);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 22px;border-bottom:1px solid #b9a06b55;position:relative;z-index:10;box-shadow:0 8px 25px #0006}.wordmark{display:flex;align-items:center;gap:10px;font-family:Cinzel,serif;font-size:25px;letter-spacing:4px;font-weight:800;white-space:nowrap}.wordmark small{display:block;font-family:Inter,sans-serif;font-size:8px;letter-spacing:3px;color:#c8b88b;margin-top:-3px}.rune{font-size:35px;color:var(--gold)}.top-resources{display:flex;gap:clamp(9px,2.3vw,32px);align-items:center}.top-resources>span{color:var(--gold);display:flex;align-items:center;gap:5px;font-size:21px}.top-resources b{color:#f1e7d2;font-size:15px;font-weight:700}.top-resources small{display:block;color:#90a29d;font-size:8px;letter-spacing:1px;margin-left:2px}.profile{display:flex;gap:16px;align-items:center;font-size:13px;font-weight:700}.profile small{display:block;font-size:9px;color:var(--gold);letter-spacing:1.5px;margin-top:3px}.logout{background:none;border:1px solid #56665d;border-radius:6px;padding:8px}.public-nav{display:flex;gap:20px;align-items:center;font-size:13px}.gold-button{display:inline-flex;justify-content:center;align-items:center;gap:20px;background:linear-gradient(135deg,#d7b879,#ab864b);color:#17211b;font-weight:800;letter-spacing:1px;padding:13px 18px;border:0;border-radius:3px;box-shadow:0 4px 20px #0004}.gold-button:hover{filter:brightness(1.12)}.gold-button.large{padding:17px 25px}.gold-button.full{width:100%;margin-top:15px}.hero-screen{min-height:calc(100dvh - 74px);position:relative}.hero-art{min-height:calc(100dvh - 74px);display:flex;align-items:center;background:radial-gradient(ellipse at 65% 48%,transparent 0%,#08171b7c 60%,#08171b 100%),linear-gradient(140deg,#1b3334,#45554b 48%,#142e35 60%,#111c1e);position:relative;overflow:hidden}.hero-art:after{content:'ᚹ';font-family:serif;position:absolute;right:13%;top:13%;font-size:38vw;color:#d5b77d0e;transform:rotate(-10deg)}.hero-text{position:relative;z-index:1;max-width:690px;margin:7vw}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2.3px;font-weight:800}.hero-text h1{font-family:Cinzel,serif;font-size:clamp(54px,7.5vw,112px);line-height:1.05;margin:24px 0}.hero-text h1 em{color:var(--gold);font-style:normal}.hero-text>p{font-size:17px;line-height:1.7;color:#d3ddd4;max-width:560px}.hero-text .disclaimer{font-size:11px;color:#91a49e;margin-top:28px}.auth-backdrop{position:absolute;inset:0;background:#071011cf;display:flex;align-items:center;justify-content:center;padding:24px;z-index:4}.auth-card{width:min(440px,100%);background:#172624;border:1px solid #ae99644d;padding:30px;border-radius:10px;box-shadow:0 22px 90px #000b}.auth-card h2{font-family:Cinzel,serif;font-size:28px}.back{display:block;margin-bottom:24px;color:#aebeb3;font-size:12px}.auth-card label,.action-form label{display:block;font-size:12px;color:#c4d0c7;margin:13px 0}.auth-card input,.auth-card select,.action-form input{display:block;width:100%;padding:12px;background:#091717;border:1px solid #6d7c6c;border-radius:4px;color:#fff;margin-top:6px}.auth-note{font-size:12px;color:var(--muted)}.game-shell{height:calc(100dvh - 74px);display:grid;grid-template-columns:64px minmax(0,1fr) 345px;overflow:hidden}.rail{background:#0d1c1e;display:flex;flex-direction:column;align-items:center;padding:20px 8px;gap:12px;border-right:1px solid var(--line);z-index:3}.rail button{width:46px;height:46px;border:1px solid #5e736b5c;border-radius:9px;background:#1c302e;color:var(--gold);font-size:24px;transition:.15s}.rail button:hover,.rail button:focus-visible{background:#355047;border-color:var(--gold)}.map-viewport{position:relative;overflow:hidden;background:#19343b;min-width:0}.map-viewport:after{content:'';pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 100px #07191d9a}.map-viewport svg{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.map-viewport svg:active{cursor:grabbing}.map-heading{position:absolute;top:24px;left:25px;z-index:2;pointer-events:none;text-shadow:0 2px 15px #071519}.map-heading strong{font:700 30px Cinzel,serif;display:block;letter-spacing:2px;margin-top:5px}.map-heading small{color:#d3ded4;font-size:12px}.map-controls{position:absolute;right:20px;bottom:80px;z-index:2;display:grid;gap:6px}.map-controls button{width:39px;height:39px;background:#132725ec;border:1px solid #9fae9677;border-radius:5px;font-size:22px}.map-controls button:hover{background:#35514a}.map-legend{position:absolute;left:20px;bottom:70px;display:flex;gap:14px;z-index:2;background:#0c1b20b8;padding:9px;border-radius:5px;font-size:10px;color:#e2e6db}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}.dot.ai{background:#b7a17b}.dot.player{background:#e8c573}.dot.free{background:#a2c9b1}.map-bottom{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;display:flex;justify-content:space-between;font-family:Cinzel,serif;color:#f0e4c7;font-size:12px;letter-spacing:2px}.map-bottom span{font:10px Inter,sans-serif;color:#c7d3cc;letter-spacing:1px}.inspector{background:linear-gradient(160deg,#172a29,#101e21);border-left:1px solid #9a956e6b;overflow:auto;z-index:3;box-shadow:-12px 0 36px #0005}.panel-head{height:57px;padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head button{background:none;border:none;font-size:25px;color:#b6c6bb}#panel-body{padding:20px}#panel-body h2{font:600 27px Cinzel,serif;margin:8px 0 15px}#panel-body h3{font:600 15px Cinzel,serif;letter-spacing:1px;color:var(--gold)}#panel-body p{color:#bdcbc2;line-height:1.6;font-size:13px}.panel-illustration{text-align:center;font-size:100px;color:#c4a5684d;padding:40px}.fine{font-size:11px!important;color:#95a9a2!important}.province-banner{background:linear-gradient(135deg,#495a4e,#263b37);margin:-20px -20px 18px;padding:28px 20px 24px;border-bottom:1px solid #b8a57877}.province-banner.mine{background:linear-gradient(135deg,#64543a,#283f38)}.province-banner.free{background:linear-gradient(135deg,#4c6a5a,#263b37)}.province-banner span{font-size:10px;color:#e0c68c;letter-spacing:2px}.province-banner h2{margin:8px 0!important}.province-banner small{font-size:10px;letter-spacing:1px;color:#dce6d8}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-grid>div{background:#2336339c;border:1px solid #526c604a;border-radius:5px;padding:13px}.stats-grid small{display:block;font-size:9px;letter-spacing:1px;color:#a8b9aa}.stats-grid b{font-size:18px;display:block;margin-top:7px}.divider{height:1px;background:var(--line);margin:23px 0}.action-form{margin:10px 0}.action-form button,.holding-link{width:100%;padding:13px;background:#304a3d;border:1px solid #b5a16b7a;color:#f2e2bc;border-radius:4px;font-size:12px;font-weight:700;text-align:left}.action-form button:hover,.holding-link:hover{background:#476249}.fleet-card,.dispatch{padding:14px 0;border-bottom:1px solid var(--line)}.fleet-card b,.dispatch b{display:block;font-size:13px}.fleet-card small,.dispatch small{display:block;color:#9caeaa;font-size:10px;margin-top:7px}.faction-row{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.faction-row i{width:10px;height:10px;border-radius:2px}.faction-row span{flex:1}.faction-row b{color:var(--gold)}.holding-link{margin:5px 0}.holding-link small{display:block;color:#a4b5ab;margin-top:4px}.toast{position:fixed;z-index:20;top:84px;left:50%;transform:translateX(-50%);background:#3e543d;border:1px solid var(--gold);padding:14px 20px;max-width:90vw;box-shadow:0 12px 30px #0008;font-size:13px}.mobile-dock{display:none}.sea-label{fill:#a8c5c3;opacity:.4;font-size:13px;letter-spacing:3px;font-family:Cinzel,serif;pointer-events:none}.province-marker{cursor:pointer;outline:none}.province-marker .marker-halo{fill:#0d2427;stroke:#e7d7b0;stroke-opacity:.75;stroke-width:1.5}.province-marker .marker-core{stroke:#1b2827;stroke-width:1}.province-marker .marker-flag{stroke:#edddb6;stroke-width:1.7;fill:none}.province-marker:hover .marker-halo,.province-marker.selected .marker-halo{stroke:#ffda80;stroke-width:3;fill:#4d5136}.province-marker:focus-visible .marker-halo{stroke:#fff;stroke-width:4}.province-marker.human .marker-halo{fill:#705a34}.province-marker.unclaimed .marker-halo{fill:#274c42}@media(max-width:1100px){.game-shell{grid-template-columns:55px minmax(0,1fr) 300px}.top-resources{gap:9px}.top-resources small{display:none}.topbar{padding:0 12px}.wordmark{font-size:20px;letter-spacing:2px}}@media(max-width:800px){.topbar{height:60px}.wordmark{font-size:16px}.wordmark small{font-size:6px}.rune{font-size:23px}.top-resources>span{font-size:14px}.top-resources b{font-size:11px}.top-resources>span:nth-child(4){display:none}.profile{font-size:10px}.profile small{font-size:8px}.game-shell{height:calc(100dvh - 60px);display:block;position:relative}.rail{display:none}.map-viewport{height:100%}.inspector{position:absolute;right:0;top:0;bottom:54px;width:min(355px,93vw);transform:translateX(101%);transition:transform .2s ease}.inspector.open{transform:translateX(0)}.mobile-dock{display:flex;position:absolute;bottom:0;left:0;right:0;height:54px;background:#0b1b1e;z-index:5;border-top:1px solid #b8a16a70;justify-content:space-around}.mobile-dock button{border:0;background:none;color:var(--gold);font-size:11px}.map-legend{bottom:110px}.map-bottom{bottom:70px}.map-controls{bottom:120px}.map-heading strong{font-size:23px}.hero-text{margin:25px}.hero-text h1{font-size:52px}.hero-text>p{font-size:14px}}@media(max-width:420px){.top-resources>span:nth-child(3){display:none}.wordmark{letter-spacing:1px}.profile{gap:5px}.top-resources{gap:6px}.map-legend{font-size:8px;gap:7px}.map-bottom span{display:none}}

/* VORATH v3 additional game panels */
.action-form textarea,.action-form input,.action-form select {max-width:100%;box-sizing:border-box;}
.action-form textarea {width:100%;min-height:85px;padding:12px;background:#132b2c;color:#f2ead9;border:1px solid #58706b;border-radius:7px;}
.dispatch p {white-space:pre-wrap;overflow-wrap:anywhere;}
.rail {overflow-y:auto;}

/* 3.1 player and chat interface */
.account-menu{position:relative}.account-menu summary{list-style:none;cursor:pointer;min-width:95px}.account-menu summary::-webkit-details-marker{display:none}.account-menu nav{position:absolute;right:0;top:calc(100% + 15px);width:205px;background:#162927;border:1px solid #ae9364;border-radius:7px;padding:8px;box-shadow:0 15px 35px #000b;z-index:40}.account-menu nav button{display:block;width:100%;text-align:left;background:none;border:0;padding:11px;color:#f3e8d1;border-radius:4px}.account-menu nav button:hover{background:#395149}
.chat-window{position:fixed;z-index:50;right:22px;bottom:22px;width:min(390px,calc(100vw - 24px));height:min(530px,calc(100dvh - 95px));background:#112323;border:1px solid #b59a67;border-radius:10px;box-shadow:0 18px 55px #000c;display:flex;flex-direction:column;overflow:hidden}.chat-window[hidden]{display:none}.chat-window header{height:52px;padding:13px 17px;background:#243c35;display:flex;align-items:center;justify-content:space-between}.chat-window header button{background:none;border:0;font-size:25px}.chat-lines{flex:1;overflow-y:auto;padding:14px}.chat-line{border-bottom:1px solid #ffffff16;padding:9px 0;display:grid;gap:5px;font-size:12px;overflow-wrap:anywhere}.chat-line b{color:#ddc68b}.chat-window form{display:flex;padding:9px;gap:6px}.chat-window form input{flex:1;min-width:0;background:#213632;color:#fff;border:1px solid #6a806e;border-radius:5px;padding:11px}.chat-window form button{background:#bd9f67;color:#17231c;border:0;border-radius:5px;padding:0 13px;font-weight:700}.chat-window .fine{padding:0 12px;margin:0 0 8px}
.player-card{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #ffffff20}.player-card>div:last-child{flex:1;min-width:0}.player-card b{font-size:14px}.player-card small{display:block;font-size:10px;color:#b4c0b7;margin-top:5px}.player-card p{font-size:12px!important;margin:7px 0}.player-card .online{color:#8ee5a1}.player-card .offline{color:#b5b9b5}.banner{width:55px;height:70px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#712f36;color:#f4dca4;border:2px solid #d5b16b;clip-path:polygon(0 0,100% 0,100% 83%,50% 100%,0 83%);font-size:27px}.banner.wolf{background:#384c62}.banner.lion{background:#775122}.banner.dragon{background:#346554}.banner.stag{background:#4b4a6b}.banner.sun{background:#89672a}.banner small{font-size:9px;text-transform:capitalize}.banner-choices{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.banner-choices button{cursor:pointer}.banner-choices button:hover{filter:brightness(1.3)}
.region-switch{position:absolute;top:115px;left:22px;z-index:3;display:flex;gap:5px;flex-wrap:wrap;max-width:calc(100% - 44px)}.region-switch button{background:#112723e8;color:#ddd0b5;border:1px solid #a58d5a66;border-radius:4px;padding:8px 10px;font-size:11px}.region-switch button.active{background:#b69a65;color:#10221d;font-weight:700}
@media(max-width:800px){.chat-window{right:0;bottom:0;width:100vw;height:calc(100dvh - 60px);border-radius:0}.region-switch{top:92px;left:10px}.region-switch button{padding:6px;font-size:10px}}

/* VORATH Map 3.2 — 2026 political atlas refinements */
.rail{width:76px;gap:8px;padding:14px 7px}.game-shell{grid-template-columns:76px minmax(0,1fr) 360px}.rail button{width:55px;height:52px;border-radius:12px;font-size:24px;background:linear-gradient(160deg,#233b36,#132725);box-shadow:inset 0 1px #ffffff0d}.rail button:hover{transform:translateX(2px);border-color:#d3b478}.inspector{background:linear-gradient(155deg,#1c302c,#101e21 68%)}.panel-head{background:#132724;position:sticky;top:0;z-index:5}.map-heading{background:#0b2020d9;border:1px solid #c0a56b66;border-radius:12px;padding:14px 18px;backdrop-filter:blur(10px)}.map-legend{border:1px solid #c4a87055;backdrop-filter:blur(8px)}.political-cell{cursor:pointer;stroke-linejoin:round;transition:fill-opacity .15s}.political-cell:hover,.political-cell:focus{fill-opacity:.68;stroke-width:3;outline:none}.territory-name{font:600 9px Inter,sans-serif;fill:#fff4d7;text-anchor:middle;paint-order:stroke;stroke:#102522;stroke-width:3;pointer-events:none}.realm-name{font:700 15px Cinzel,serif;fill:#ffe3a2;text-anchor:middle;letter-spacing:1.2px;paint-order:stroke;stroke:#102522;stroke-width:4;pointer-events:none}.world-zone rect{fill:#496b60;fill-opacity:.8;stroke:#d4b579;stroke-width:3;stroke-dasharray:8 5}.world-zone{cursor:pointer}.world-zone:hover rect,.world-zone:focus rect{fill:#6a8873;stroke:#ffdd8e}.world-zone-name{font:700 24px Cinzel,serif;fill:#fff1c9;text-anchor:middle;pointer-events:none}.world-zone-detail{font:12px Inter,sans-serif;fill:#d9e5d9;text-anchor:middle;pointer-events:none}@media(max-width:1100px){.game-shell{grid-template-columns:60px minmax(0,1fr) 300px}.rail{width:60px}.rail button{width:46px}}@media(max-width:800px){.game-shell{display:block}.map-heading{padding:9px 12px;top:10px;left:10px}.map-heading strong{font-size:18px}.region-switch{top:99px}.map-legend{max-width:80%;flex-wrap:wrap}}
