/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--ink:#18211d;--paper:#f2efe6;--paper-2:#e9e4d7;--orange:#ff5f3b;--mint:#55c4a8;--line:#18211d2e}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;color:var(--ink);margin:0}body{font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}button{color:inherit}.landing-shell,.lobby-shell{background:radial-gradient(circle at 65% 20%, #55c4a829, transparent 30%), var(--paper);flex-direction:column;min-height:100vh;display:flex}.brandbar{border-bottom:1px solid var(--line);height:78px;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;align-items:center;gap:14px;padding:0 clamp(22px,5vw,72px);font-size:13px;font-weight:800;display:flex}.brand-mark{background:var(--ink);width:38px;height:38px;color:var(--paper);font:900 14px var(--font-geist-mono), monospace;letter-spacing:-.04em;box-shadow:4px 4px 0 var(--orange);border-radius:10px 2px;place-items:center;display:grid}.signal{color:#5f6c65;align-items:center;gap:8px;margin-left:auto;font-size:11px;display:flex}.signal i,.live-dot{color:var(--mint)}.signal i{background:var(--mint);border-radius:50%;width:7px;height:7px;display:block;box-shadow:0 0 0 4px #55c4a829}.hero{flex:1;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);align-items:center;gap:8vw;width:min(1280px,90vw);margin:auto;padding:70px 0;display:grid}.eyebrow{font:800 12px var(--font-geist-mono), monospace;letter-spacing:.16em;color:#67736c}h1{letter-spacing:-.075em;margin:20px 0 24px;font-size:clamp(54px,7vw,108px);font-weight:900;line-height:.86}h1 em{color:var(--orange);font-family:Georgia,serif;font-weight:400}.lede{color:#526058;max-width:620px;font-size:clamp(18px,2vw,24px);line-height:1.45}.feature-row{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.feature-row span{border:1px solid var(--line);font:700 11px var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.08em;background:#ffffff5c;border-radius:999px;padding:10px 14px}.entry-card,.roster-card,.orders-card,.battle-log{background:#ffffff94;border:1px solid #18211d3d;box-shadow:12px 12px #18211d14}.entry-card{padding:28px;transform:rotate(.6deg)}.card-top{border-bottom:1px solid var(--line);font:800 10px var(--font-geist-mono), monospace;letter-spacing:.13em;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}label{font:800 10px var(--font-geist-mono), monospace;letter-spacing:.12em;margin-bottom:8px;display:block}input{border:1px solid var(--ink);background:var(--paper);width:100%;color:var(--ink);border-radius:0;outline:none;padding:17px 16px;font-weight:700}input:focus{box-shadow:0 0 0 3px #55c4a859}.primary{background:var(--ink);color:#fff;cursor:pointer;border:0;justify-content:space-between;align-items:center;width:100%;margin-top:12px;padding:17px;font-weight:800;display:flex}.primary:hover:not(:disabled){background:var(--orange)}.primary:disabled{opacity:.5;cursor:not-allowed}.or{color:#7c857f;font:700 9px var(--font-geist-mono), monospace;letter-spacing:.12em;align-items:center;gap:12px;margin:23px 0;display:flex}.or span{background:var(--line);flex:1;height:1px}.join-form{grid-template-columns:1fr auto;display:grid}.join-form input{font-family:var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.2em}.join-form button{border:1px solid var(--ink);background:var(--mint);cursor:pointer;border-left:0;padding:0 22px;font-weight:900}.error{color:#bd3b26;font-size:13px;font-weight:700;line-height:1.4}.privacy-note{color:#778079;margin:20px 0 0;font-size:11px;line-height:1.5}footer{border-top:1px solid var(--line);min-height:50px;font:700 9px var(--font-geist-mono), monospace;letter-spacing:.1em;color:#717a74;justify-content:space-between;align-items:center;padding:0 clamp(22px,5vw,72px);display:flex}.loading-screen{min-height:100vh;font-family:var(--font-geist-mono), monospace;place-content:center;justify-items:center;gap:16px;display:grid}.text-button{font:700 11px var(--font-geist-mono), monospace;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin-left:auto}.lobby-grid{grid-template-columns:1.25fr .75fr;align-items:center;gap:70px;width:min(1180px,90vw);margin:auto;padding:70px 0;display:grid}.lobby-main h1{font-size:clamp(54px,8vw,100px)}.copy-code{background:var(--ink);color:#fff;cursor:pointer;border:0;align-items:center;gap:24px;padding:10px 20px 10px 10px;display:flex}.copy-code b{background:var(--orange);color:var(--ink);font:900 30px var(--font-geist-mono), monospace;letter-spacing:.18em;padding:18px 24px}.copy-code span{font:800 10px var(--font-geist-mono), monospace;letter-spacing:.1em}.rules-strip{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:45px;display:grid}.rules-strip span{border-right:1px solid var(--line);font:700 10px var(--font-geist-mono), monospace;text-transform:uppercase;padding:18px 12px}.rules-strip span:last-child{border:0}.rules-strip b{color:var(--orange);margin-right:5px}.roster-card{padding:26px}.roster{gap:9px;display:grid}.roster-player{background:var(--paper);border:1px solid #0000;grid-template-columns:13px 1fr auto;align-items:center;gap:11px;padding:14px;display:grid}.roster-player i,.player-chip>i{border-radius:50%;width:10px;height:10px}.roster-player span{font-size:13px;font-weight:800}.roster-player b{font:700 9px var(--font-geist-mono), monospace;color:#548c78}.roster-player.empty{opacity:.42;background:0 0;border:1px dashed #89918c}.roster-player.empty i{border:1px solid #758078}.waiting-copy{text-align:center;color:#6f7a73;margin:25px 0 5px;font-size:13px}.game-shell{background:#e8e4d9;min-height:100vh;overflow:hidden}.game-topbar{border-bottom:1px solid var(--line);background:#f2efe6eb;align-items:center;height:72px;padding:0 22px;display:flex}.game-brand{align-items:center;gap:12px;min-width:245px;display:flex}.game-brand div:last-child{gap:3px;display:grid}.game-brand b{font:900 13px var(--font-geist-mono), monospace;letter-spacing:.12em}.game-brand span{font:700 9px var(--font-geist-mono), monospace;color:#79817c;letter-spacing:.15em}.round-marker{font:800 10px var(--font-geist-mono), monospace;letter-spacing:.12em;align-items:center;gap:10px;margin:auto;display:flex}.round-marker b{color:var(--orange);font-size:25px}.play-layout{grid-template-columns:245px minmax(560px,1fr) 300px;height:calc(100vh - 72px);min-height:650px;display:grid}.player-rail,.action-rail{background:#f2efe6c2;padding:20px}.player-rail{border-right:1px solid var(--line)}.action-rail{border-left:1px solid var(--line);overflow-y:auto}.rail-title{font:800 9px var(--font-geist-mono), monospace;letter-spacing:.13em;color:#727b75;margin:4px 0 14px}.player-chip{border-top:1px solid var(--line);grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:14px 8px;display:grid;position:relative}.player-chip div{gap:3px;display:grid}.player-chip b{font-size:12px}.player-chip span{color:#748079;font-size:9px}.player-chip em{font:800 8px var(--font-geist-mono), monospace;color:var(--orange);font-style:normal}.player-chip.active{background:#ffffff80}.player-chip.defeated{opacity:.38;text-decoration:line-through}.turn-card{background:var(--ink);color:#fff;margin-top:20px;padding:18px}.turn-card span{color:var(--mint);font:800 9px var(--font-geist-mono), monospace;letter-spacing:.12em}.turn-card p{font:700 12px/1.45 var(--font-geist-mono), monospace;margin:12px 0 0}.map-panel{background:radial-gradient(circle at 26% 33%,#55c4a833,#0000 23%),radial-gradient(circle at 76% 56%,#ff5f3b1f,#0000 28%),#d9d6c9;position:relative;overflow:hidden}.map-grid{opacity:.32;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 82%);mask-image:radial-gradient(circle,#000,#0000 82%)}.map-panel:before,.map-panel:after{content:"";border:1px dashed #18211d40;border-radius:50%;width:550px;height:550px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-panel:after{width:780px;height:780px}.continent-label{font:900 9px var(--font-geist-mono), monospace;letter-spacing:.28em;color:#18211d52;position:absolute;transform:rotate(-8deg)}.continent-label.north{top:3%;left:17%}.continent-label.center{top:34%;left:42%}.continent-label.east{top:46%;right:4%;transform:rotate(80deg)}.territory{--owner:#777;background:var(--owner);border:1px solid #18211d7a;width:82px;height:61px;position:absolute;transform:translate(-50%,-50%)rotate(-2deg)}@supports (color:color-mix(in lab, red, red)){.territory{background:color-mix(in srgb, var(--owner) 65%, #efe9d8)}}.territory{clip-path:polygon(13% 7%,82% 0,100% 34%,87% 91%,29% 100%,0 67%);cursor:pointer;z-index:2;place-content:center;justify-items:center;transition:transform .14s,filter .14s;display:grid;box-shadow:3px 4px #18211d2e}.territory:nth-of-type(3n){clip-path:polygon(24% 0,88% 12%,100% 68%,70% 100%,5% 84%,0 27%);transform:translate(-50%,-50%)rotate(3deg)}.territory:hover{filter:brightness(1.05);z-index:5;transform:translate(-50%,-50%)scale(1.08)}.territory.selected{outline:4px solid var(--ink);outline-offset:4px;z-index:4}.territory.target{animation:1.2s infinite pulse}.territory.target:after{content:"";border:2px dashed #fff;position:absolute;inset:4px}.army-count{background:var(--ink);color:#fff;width:28px;height:28px;font:900 13px var(--font-geist-mono), monospace;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 2px #ffffff40}.territory-name{white-space:nowrap;text-overflow:ellipsis;max-width:75px;font:900 7px var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;margin-top:3px;overflow:hidden}@keyframes pulse{50%{opacity:.5}}.map-key{font:700 8px var(--font-geist-mono), monospace;text-transform:uppercase;background:#f2efe6bf;gap:14px;padding:9px 12px;display:flex;position:absolute;bottom:16px;left:18px}.map-key span{align-items:center;gap:5px;display:flex}.map-key i{width:9px;height:9px;display:block}.select-key{background:var(--ink)}.target-key{border:2px dashed var(--orange)}.phase-track{gap:5px;margin-bottom:14px;display:flex}.phase-track span{text-align:center;border:1px solid var(--line);font:700 7px var(--font-geist-mono), monospace;text-transform:uppercase;opacity:.45;flex:1;padding:8px 4px}.phase-track span.active{background:var(--orange);border-color:var(--orange);opacity:1;color:var(--ink)}.orders-card,.battle-log{box-shadow:none;margin-bottom:14px;padding:17px}.orders-card>p{min-height:48px;font:700 12px/1.45 var(--font-geist-mono), monospace}.selection-readout{background:var(--paper-2);grid-template-columns:1fr auto;gap:5px;padding:12px;display:grid}.selection-readout span{font:800 8px var(--font-geist-mono), monospace;color:#707a74;grid-column:1/-1}.selection-readout b{font-size:12px}.selection-readout em{font:700 10px var(--font-geist-mono), monospace;font-style:normal}.battle-log .card-top{margin-bottom:9px}.battle-log p{border-bottom:1px solid var(--line);margin:0;padding:9px 0 9px 14px;font-size:10px;line-height:1.4;position:relative}.battle-log p i{background:var(--mint);width:5px;height:5px;position:absolute;top:14px;left:0;transform:rotate(45deg)}.last-roll{justify-content:space-between;padding:4px 0 10px;display:flex}.dice-row{gap:4px;display:flex}.die{color:#fff;width:24px;height:24px;font:900 10px var(--font-geist-mono), monospace;border-radius:4px;place-items:center;display:grid}.die.warm{background:var(--orange)}.die.cool{background:#436e77}.victory-overlay{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#18211dcc;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.victory-card{background:var(--paper);width:min(520px,90vw);box-shadow:12px 12px 0 var(--orange);padding:48px}.victory-card h2{color:var(--orange);margin:14px 0;font:900 clamp(42px,7vw,72px)/.95 Georgia,serif}@media (width<=1050px){.play-layout{grid-template-columns:190px minmax(500px,1fr) 260px}.player-rail,.action-rail{padding:13px}.territory{width:72px;height:54px}}@media (width<=820px){.hero,.lobby-grid{grid-template-columns:1fr;gap:48px;padding:45px 0}.hero h1{font-size:clamp(54px,14vw,90px)}.entry-card{transform:none}.lobby-grid{align-items:start}.game-shell{overflow:auto}.game-topbar{z-index:10;position:sticky;top:0}.game-brand{min-width:0}.round-marker{margin-left:auto;margin-right:15px}.play-layout{flex-direction:column;height:auto;min-height:0;display:flex}.player-rail{border:0;order:2;grid-template-columns:repeat(2,1fr);gap:4px;display:grid}.rail-title,.turn-card{grid-column:1/-1}.map-panel{order:1;height:66vh;min-height:560px;overflow:auto}.action-rail{border:0;order:3;grid-template-columns:1fr 1fr;gap:12px;display:grid}.phase-track,.action-rail>.error{grid-column:1/-1}.territory{width:68px;height:52px}.territory-name{max-width:62px;font-size:6px}}@media (width<=560px){.brandbar{height:64px;padding:0 18px}.signal{display:none}.hero{width:92vw}.hero h1{font-size:15vw}.feature-row{gap:7px}.entry-card{padding:20px}footer{gap:8px;padding:12px 18px}.lobby-grid{width:92vw}.rules-strip{grid-template-columns:repeat(2,1fr)}.rules-strip span:nth-child(2){border-right:0}.copy-code{flex-direction:column;align-items:stretch;width:100%}.copy-code b,.copy-code span{text-align:center}.game-brand div:last-child{display:none}.map-panel{min-height:520px}.player-rail,.action-rail{grid-template-columns:1fr}.phase-track,.turn-card,.action-rail>.error{grid-column:auto}.victory-card{padding:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
