@font-face{font-family:Galmuri11;font-weight:400;font-display:swap;src:url(/assets/Galmuri11-DfQIlyDK.woff2)format("woff2")}@font-face{font-family:Galmuri11;font-weight:700;font-display:swap;src:url(/assets/Galmuri11-Bold-QdFGsJ3v.woff2)format("woff2")}@font-face{font-family:Galmuri14;font-display:swap;src:url(/assets/Galmuri14-BIHuh8Vm.woff2)format("woff2")}:root{--ink:#1e1b3a;--navy:#2b2766;--navy2:#3b3690;--cream:#f4ecd6;--paper:#fffaf0;--sand:#e6dabb;--coral:#e8574a;--gold:#f2b33d;--green:#4f9a3c;--muted:#7a7166;--px:3px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{background:var(--cream);height:100%;color:var(--ink);-webkit-font-smoothing:none;margin:0;font-family:Galmuri11,Malgun Gothic,monospace;font-size:13px}.pixel-box,.card,.row-card,.stats,.messages,.status,.errors,.winner,.toast,.log-list li{border:var(--px) solid var(--ink);box-shadow:0 var(--px) 0 0 #1e1b3a40;border-radius:0}button,input,select{font:inherit;color:var(--ink);background:var(--paper);border:var(--px) solid var(--ink);border-radius:0;padding:6px 10px}button{cursor:pointer;box-shadow:0 var(--px) 0 0 var(--ink);transition:transform 50ms;position:relative}button:active:not(:disabled){transform:translateY(var(--px));box-shadow:none}button:hover:not(:disabled){background:#fff3d1}button:disabled{opacity:.45;cursor:default}button.on,button.active{background:var(--gold)}button.primary{background:var(--navy);color:var(--paper);font-weight:700}button.primary:hover:not(:disabled){background:var(--navy2)}button.danger{color:#b8322a;background:#ffe1dc}button.link{box-shadow:none;color:var(--muted);background:0 0;border:none;padding:0 4px;text-decoration:underline}input[type=number]{width:90px}h1,h2,h3{font-family:Galmuri14,Galmuri11,monospace;font-weight:400}h3{color:var(--navy);align-items:center;gap:6px;margin:18px 0 8px;font-size:15px;display:flex}h3:before{content:"";background:var(--coral);width:8px;height:8px;box-shadow:0 0 0 2px var(--ink)}.muted{color:var(--muted)}.small,small{font-size:12px}.hint{color:var(--muted);line-height:1.7}.center-box{text-align:center;place-items:center;height:100%;display:grid}.portrait{border:2px solid var(--ink);flex:none;place-items:center;display:inline-grid;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 0;width:170%;height:170%;margin-top:45%}.portrait b{color:var(--paper)}.game{flex-direction:column;height:100%;display:flex}.topbar{background:var(--navy);color:var(--paper);border-bottom:var(--px) solid var(--ink);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 14px;display:flex}.brand{letter-spacing:2px;color:var(--gold);text-shadow:2px 2px 0 var(--ink);font-family:Galmuri14,monospace;font-size:20px}.turn b{color:var(--gold)}.badge{border:2px solid var(--ink);margin-left:6px;padding:2px 6px;font-size:12px}.badge.build{background:var(--gold);color:var(--ink)}.deadline.urgent{color:#ffb3a8;font-weight:700;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.4}}.event{display:none}.players{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.chip{background:var(--paper);color:var(--ink);border:2px solid;align-items:center;gap:5px;padding:2px 8px 2px 2px;font-size:12px;display:inline-flex}.chip.dead{opacity:.4;text-decoration:line-through}.event-bar{background:var(--sand);border-bottom:var(--px) solid var(--ink);padding:7px 14px;font-size:13px}.layout{flex:1;min-height:0;display:flex}.map-col{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.map-wrap{flex:1;min-height:0;position:relative}.map{touch-action:none;-webkit-user-select:none;user-select:none;background-color:#2f66a3;background-image:linear-gradient(#0000 50%,#ffffff0d 50%);background-size:100% 8px;width:100%;height:100%;display:block}.hex{cursor:pointer}.hex:hover polygon:nth-child(2){filter:brightness(1.12)}.map-controls{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:12px;right:12px}.map-controls button{width:40px;height:40px;padding:0;font-size:18px}.mode-hint{z-index:2;background:var(--paper);border:var(--px) solid var(--ink);box-shadow:0 var(--px) 0 var(--ink);white-space:nowrap;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.toggle{background:var(--sand);border-top:var(--px) solid var(--ink);padding:7px 12px;font-size:12px}.side{border-left:var(--px) solid var(--ink);background:var(--cream);flex-direction:column;width:410px;min-height:0;display:flex}.tabs{background:var(--navy);border-bottom:var(--px) solid var(--ink);display:flex}.tabs button{box-shadow:none;color:#c9c4f0;background:0 0;border:none;flex:1;padding:11px 2px;font-size:13px}.tabs button:hover:not(:disabled){background:var(--navy2)}.tabs button.active{background:var(--cream);color:var(--ink);font-weight:700}.panel{flex:1;padding:12px 14px 22px;overflow-y:auto}.footer{border-top:var(--px) solid var(--ink);background:var(--sand);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.me-btn{align-items:center;gap:8px;padding:2px 10px 2px 2px;display:inline-flex}.card,.row-card{background:var(--paper);margin:10px 0;padding:10px 12px}.card-title{align-items:center;gap:6px;margin-bottom:4px;font-weight:700;display:flex}.card-sprite{height:36px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px;display:flex}.status{padding:9px 10px;font-size:13px}.status.ok{background:#dff1d2}.status.warn{background:#fff0c4}.hero-line,.site-line{margin:6px 0;font-size:13px;line-height:1.5}.current-order{color:var(--coral);margin-top:8px;font-size:13px;font-weight:700}.unit-list,.action-list,.log-list{margin:0;padding:0;list-style:none}.unit-list li{cursor:pointer;border:2px solid #0000;align-items:center;gap:10px;padding:6px 8px;display:flex}.unit-list li:hover,.unit-list li.active{background:var(--paper);border-color:var(--ink)}.u-icon{object-fit:contain;width:34px;height:34px}.u-name{flex:1}.u-order{color:var(--coral);text-align:right;max-width:50%;font-size:12px}.action-list li{padding:4px 0;font-size:13px}.submit{width:100%;margin-top:16px;padding:13px;font-size:16px}.errors{color:#a02a22;background:#ffe1dc;margin-top:8px;padding:8px 10px;font-size:13px}.stats{background:var(--paper);grid-template-columns:1fr 1fr;gap:6px;padding:10px 12px;display:grid}select{max-width:100%}.rarity-rare{border-color:#3d7fc4!important}.rarity-legendary{background:#f6ecff;border-color:#8e44ad!important}.rarity-relic{background:#fff4d4;border-color:var(--gold)!important}.form-grid{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-grid .wide{grid-column:1/-1}.treaty-row{border-bottom:2px dashed var(--sand);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:7px 0;display:flex}.treaty-row .btn-row{margin:0}.treaty-row button{padding:3px 8px;font-size:12px}.proposal{background:#fff0c4}.channels{flex-wrap:wrap;gap:6px;display:flex}.channels button{padding:4px 8px;font-size:12px}.dot{background:var(--coral);color:#fff;border:2px solid var(--ink);margin-left:4px;padding:0 5px;font-size:11px}.messages{background:var(--paper);height:320px;margin-top:6px;padding:8px;overflow-y:auto}.msg{margin:7px 0;line-height:1.5}.msg .who{margin-right:6px;font-weight:700}.msg .when{color:var(--muted);margin-left:6px;font-size:11px}.msg.system{color:var(--navy2);font-size:12px}.composer{gap:6px;margin-top:8px;display:flex}.composer input{flex:1}.log-list li{background:var(--paper);border-left-width:8px;margin:6px 0;padding:8px 10px;line-height:1.55}.log-list li.private{border-left-color:var(--gold)}.log-battle{border-left-color:var(--coral)!important}.tag{color:var(--muted);margin-right:4px;font-size:11px}.help table{border-collapse:collapse;background:var(--paper);border:var(--px) solid var(--ink);width:100%}.help td{border-bottom:2px solid var(--sand);vertical-align:top;padding:5px 7px}.help li{margin:4px 0;line-height:1.6}.toast{background:var(--navy);color:var(--paper);z-index:30;padding:10px 18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.overlay{z-index:20;background:#1e1b3ab8;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.winner{background:var(--paper);text-align:center;padding:24px 40px}.winner .crown{font-size:64px}.winner table{margin:12px auto}.winner td{padding:3px 12px}.picker{background:var(--cream);width:min(760px,100%);max-height:100%;overflow-y:auto}.picker-head{background:var(--navy);color:var(--gold);border-bottom:var(--px) solid var(--ink);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.picker-head h2{text-shadow:2px 2px 0 var(--ink);margin:0;font-size:20px}.picker-head .close{padding:2px 8px}.picker-grid{grid-template-columns:repeat(4,1fr);gap:10px;padding:14px;display:grid}.picker-card{background:var(--paper);flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;display:flex}.picker-card img{object-fit:contain;width:100%;height:120px}.picker-card.on{outline:var(--px) solid var(--coral);outline-offset:2px;background:#fff0c4}.picker-card:disabled img{filter:grayscale()}.pc-name{font-size:15px;font-weight:700}.pc-title{color:var(--muted);font-size:11px}.picker-foot{text-align:center;padding:0 14px 16px}.quote{color:var(--navy2);min-height:1.5em;font-size:14px}button.big{width:100%;padding:14px;font-size:17px}.lobby{max-width:820px;margin:0 auto;padding:28px 16px 40px}.hero-banner{text-align:center}.title{color:var(--navy);letter-spacing:6px;text-shadow:4px 4px 0 var(--gold), 8px 8px 0 var(--ink);margin:0;font-family:Galmuri14,monospace;font-size:64px;line-height:1}.title-rule{background:var(--navy);max-width:560px;height:6px;margin:18px auto 10px}.tagline{color:var(--navy);letter-spacing:2px;font-size:16px}.lineup{background:linear-gradient(#0000 82%,#8cc152 82% 92%,#6fa23c 92%);justify-content:center;align-items:flex-end;margin:18px 0 6px;padding-bottom:10px;display:flex}.lineup img{height:120px;margin:0 -10px}.lobby summary{cursor:pointer;font-weight:700}.cta{background:var(--navy);color:var(--paper);border:var(--px) solid var(--ink);justify-content:space-between;padding:14px 16px;font-size:16px;display:flex}.invite{align-items:center;gap:8px;margin:6px 0;font-size:12px;display:flex}.invite span{width:70px}.invite code{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);flex:1;overflow:hidden}.invite a{color:var(--navy2)}@media (width<=900px){.layout{flex-direction:column}.map-col{flex:none;height:48vh}.side{border-left:none;border-top:var(--px) solid var(--ink);flex:1;width:100%}.players{margin-left:0}.mode-hint{white-space:normal;width:92%;font-size:12px}.picker-grid{grid-template-columns:repeat(2,1fr);padding:10px}.picker-card img{height:96px}.title{font-size:44px}.lineup img{height:70px;margin:0 -8px}}.mini{object-fit:contain;vertical-align:middle;width:22px;height:22px}.thumb{object-fit:contain;vertical-align:middle;flex:none;width:44px;height:48px}.thumb.item{width:40px;height:40px}.art-row,.hero-line{align-items:center;gap:10px;display:flex}.nowrap{white-space:nowrap}.event-bar{align-items:center;gap:10px;display:flex}.event-img{border:2px solid var(--ink);flex:none;width:40px;height:40px}.next-ev img{vertical-align:middle;width:18px;height:18px}.discovery{background:var(--cream);width:min(620px,100%);max-height:100%;overflow-y:auto}.finds{flex-wrap:wrap;justify-content:center;gap:12px;padding:16px;display:flex}.find-card{text-align:center;background:var(--paper);border:var(--px) solid var(--ink);width:170px;box-shadow:0 var(--px) 0 #1e1b3a40;flex-direction:column;align-items:center;gap:4px;padding:14px 10px 10px;animation:.35s steps(4,end) pop;display:flex;position:relative}.find-card img{object-fit:contain;max-width:100%;height:120px}.find-tag{background:var(--coral);color:#fff;border:2px solid var(--ink);padding:2px 8px;font-size:11px;position:absolute;top:-12px}.find-card.rarity-hero{background:#fff4d4}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}.sheet-handle{display:none}@media (width<=900px){.game{height:100dvh}.layout{flex-direction:column;position:relative}.map-col{flex:1;height:auto;padding-bottom:50px}.toggle{padding:5px 10px}.side{z-index:6;border-left:none;border-top:var(--px) solid var(--ink);width:100%;max-height:100%;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px #1e1b3a33}.side .tabs{border-bottom:none;border-top:var(--px) solid var(--ink);order:3}.side .tabs button{padding:13px 2px;font-size:13px}.side .footer{order:2}.sheet-handle{background:var(--sand);border-bottom:2px solid var(--ink);justify-content:space-between;gap:8px;padding:6px 10px;display:flex}.sheet-handle button{padding:4px 10px;font-size:12px}.sheet-closed .panel,.sheet-closed .footer,.sheet-closed .sheet-handle{display:none}.sheet-half .panel{flex:none;height:42dvh}.sheet-half .footer{display:none}.sheet-full{top:0}.sheet-full .panel{flex:1}.panel{font-size:14px}.topbar{gap:4px 10px;padding:6px 10px}.brand{font-size:16px}.players{flex-wrap:nowrap;gap:4px;width:100%;overflow-x:auto}.chip{flex:none;font-size:11px}.event-bar{padding:4px 10px;font-size:12px}.event-bar>div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event-img{width:28px;height:28px}.map-controls{bottom:58px}.map-controls button{width:36px;height:36px}}button.cta.enter{text-align:left;width:100%;margin-bottom:8px;font-weight:700}button.cta.enter:hover:not(:disabled){background:var(--navy2)}.bgm-btn{box-shadow:none;padding:2px 8px;font-size:14px}.topbar{padding-top:max(8px, env(safe-area-inset-top))}.side .tabs{padding-bottom:env(safe-area-inset-bottom)}@media (width<=900px){.topbar{padding-top:max(6px, env(safe-area-inset-top))}.map-col{padding-bottom:calc(50px + env(safe-area-inset-bottom))}}
