@font-face{font-family:DosStory;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2304-2@1.0/DOSIyagiMedium.woff2) format("woff2");font-weight:400;font-display:swap}*{box-sizing:border-box}:root{--ink: #3d2413;--ink-soft: #6b4726;--wood-dark: #3a1f0e;--wood-mid: #6e3f1c;--paper: #f8e7bd;--paper-light: #fff3cd;--paper-deep: #e8c982;--leaf: #74b85a;--leaf-dark: #3f762f;--gold: #e3a92e;--gold-dark: #8a5618;--danger: #d46b45;--panel-shadow: 0 3px 0 rgba(47, 25, 11, .72), 0 9px 20px rgba(42, 22, 10, .16);--control-shadow: inset 0 1px 0 rgba(255, 248, 218, .82), inset 0 -2px 0 rgba(92, 51, 20, .18), 0 2px 0 rgba(55, 30, 13, .34);--paper-fill: linear-gradient(rgba(255, 242, 202, .82), rgba(248, 224, 168, .78)), url(/assets/ui/paper-tile.webp);--paper-frame: linear-gradient(rgba(255, 242, 202, .82), rgba(248, 224, 168, .78)), url(/assets/ui/paper-tile.webp), url(/assets/ui/wood-tile.webp);--button-fill: linear-gradient(180deg, rgba(255, 238, 178, .92), rgba(224, 176, 87, .9)), url(/assets/ui/paper-tile.webp);--green-fill: linear-gradient(180deg, rgba(171, 220, 116, .94), rgba(113, 178, 75, .92)), url(/assets/ui/paper-tile.webp)}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;font-family:DosStory,Malgun Gothic,Apple SD Gothic Neo,sans-serif;color:var(--ink)}button{font:inherit}.game-shell,.start-screen{width:100vw;height:100dvh;position:relative;overflow:hidden}.phaser-host{position:absolute;inset:0;image-rendering:pixelated}.route-mode .phaser-host{left:380px;width:calc(100vw - 380px)}.phaser-host canvas{display:block;image-rendering:pixelated}.start-screen{display:grid;place-items:center;padding:24px;background:linear-gradient(#56371924,#301f0f47),url(/assets/rural-region-v1.webp) center / cover}.start-panel,.modal,.hud,.building-panel,.notice-board,.action-bar,.visit-banner,.route-sidebar{border:8px solid transparent;border-radius:16px;background-color:var(--paper);background-image:var(--paper-frame);background-origin:padding-box,padding-box,border-box;background-clip:padding-box,padding-box,border-box;box-shadow:var(--panel-shadow);image-rendering:pixelated}.start-panel{width:min(900px,94vw);max-height:92dvh;overflow:auto;padding:28px;text-align:center}.eyebrow{display:inline-block;font-weight:900;color:#7c4b20;margin-bottom:8px}h1,h2,p{margin-top:0}h1{font-size:clamp(32px,5vw,54px);margin-bottom:12px;letter-spacing:0}.start-panel p{max-width:610px;margin:0 auto 22px;font-weight:700;color:var(--ink-soft);line-height:1.55}.region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.region-card{min-height:172px;border:4px solid var(--wood-dark);border-radius:8px;padding:16px 12px;background:linear-gradient(180deg,#fff7cd57,#e0ab4b33),var(--point);color:#28170c;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:8px;box-shadow:inset 0 -4px #41210c2e,0 3px #482711b8}.region-card:hover{transform:translateY(-2px);filter:brightness(1.05)}.region-card strong{font-size:22px;color:#fff8dd;text-shadow:0 2px 0 #442511}.region-card span,.region-card small{font-weight:900;color:#24150b}.hud{position:absolute;top:14px;left:14px;z-index:5;width:min(500px,calc(100vw - 28px));padding:12px}.hud strong{display:block;margin-bottom:8px;font-size:20px}.resource-row{display:flex;flex-wrap:wrap;gap:6px}.resource-badge,.mini-status span,.status,.choice,.stepper span,.route-notice,.point-list li,.zone-row,.result-grid span{border:2px solid #7c5128;border-radius:6px;background-color:var(--paper-light);background-image:var(--paper-fill);background-size:auto,128px 128px;color:var(--ink);font-weight:900;box-shadow:inset 0 1px #fff8dab8,inset 0 -1px #5c33141f;image-rendering:pixelated}.resource-badge{padding:5px 7px;font-size:14px}.mini-status{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mini-status span{padding:4px 7px;font-size:13px;background-color:var(--paper-deep)}.notice-board{position:absolute;z-index:6;left:50%;bottom:92px;transform:translate(-50%);width:min(620px,calc(100vw - 28px));min-height:46px;display:grid;place-items:center;padding:8px 14px;text-align:center;font-weight:900}.action-bar{position:absolute;z-index:6;left:50%;bottom:18px;transform:translate(-50%);display:flex;gap:10px;padding:10px}.visit-banner{position:absolute;z-index:8;top:16px;left:50%;transform:translate(-50%);width:min(640px,calc(100vw - 28px));padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center;font-weight:900}.visit-banner strong{font-size:19px}.visit-banner span{color:var(--ink-soft)}.scene-blocker{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#2a180c38;color:#fff7d8;font-size:24px;font-weight:900;text-shadow:0 3px 0 #2b170c;pointer-events:all}.game-button,.small-button,.round-button,.close-button,.choice,.stepper button{cursor:pointer;transition:transform .08s ease,filter .08s ease,background-color .12s ease}.game-button,.small-button,.round-button,.close-button,.stepper button{border:3px solid var(--wood-dark);border-radius:7px;background-color:var(--gold);background-image:var(--button-fill);background-size:auto,128px 128px;color:#33200e;font-weight:900;box-shadow:var(--control-shadow);image-rendering:pixelated}.game-button{min-height:48px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.game-button:hover,.small-button:hover,.round-button:hover,.close-button:hover,.stepper button:hover,.choice:hover{filter:brightness(1.06)}.game-button:active,.small-button:active,.round-button:active,.close-button:active,.choice:active,.stepper button:active{transform:translateY(2px);box-shadow:inset 0 2px #43240e3d}.game-button:disabled,.small-button:disabled,.choice:disabled{filter:grayscale(.35);opacity:.58;cursor:default}.game-button.full{width:100%}.round-button,.close-button{width:50px;height:50px;display:grid;place-items:center;background-color:#f0cf78}.close-button{width:40px;height:40px;border-width:2px}.building-panel{position:absolute;z-index:7;top:110px;right:16px;width:min(280px,calc(100vw - 32px));padding:14px;display:flex;flex-direction:column;gap:9px}.building-panel .close-button{position:absolute;right:8px;top:8px}.building-panel img{width:96px;height:96px;object-fit:contain;image-rendering:pixelated}.building-panel strong{font-size:21px}.building-panel span,.building-panel p{font-weight:800;color:var(--ink-soft)}.small-button{min-height:40px;padding:6px 12px;background-color:var(--leaf);background-image:var(--green-fill);display:inline-flex;align-items:center;justify-content:center;gap:6px}.modal-backdrop{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:18px;background:#23140a7a}.modal-backdrop.non-blocking{pointer-events:none;place-items:start end;background:transparent}.modal-backdrop.non-blocking .modal{pointer-events:auto;width:min(760px,calc(100vw - 28px));margin-top:92px;margin-right:14px}.modal{width:min(560px,96vw);max-height:90dvh;overflow:auto;padding:18px}.modal.wide{width:min(980px,96vw)}.modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal h2{margin:0;font-size:28px}.build-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.build-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px;border:3px solid #7c5128;border-radius:8px;background-color:var(--paper-light);background-image:var(--paper-fill);background-size:auto,128px 128px;box-shadow:inset 0 1px #fff8dab8,0 2px #3d210e24}.build-toolbar>div{display:grid;gap:8px;min-width:0}.build-toolbar strong{font-size:18px}.build-toolbar span{color:var(--ink-soft);font-weight:800}.build-cost-row{display:flex;flex-wrap:wrap;gap:6px}.build-cost{min-height:30px;display:inline-flex;align-items:center;gap:3px;padding:4px 8px;border:2px solid #7c5128;border-radius:6px;background-color:var(--paper-deep);background-image:var(--paper-fill);background-size:auto,128px 128px;color:var(--ink);font-weight:900;box-shadow:inset 0 1px #fff8dab8,inset 0 -1px #5c33141f}.build-cost.ready{border-color:var(--leaf-dark);background-color:#dff1b7}.build-cost.missing{border-color:#9c3f27;background-color:#f4b08d;color:#5b1f10}.build-cost em{font-style:normal;color:#8a2d18}.build-card,.route-card{border:3px solid #7c5128;border-radius:8px;background-color:var(--paper-light);background-image:var(--paper-fill);background-size:auto,128px 128px;box-shadow:inset 0 1px #fff8dab8,0 2px #3d210e29;image-rendering:pixelated}.build-card{padding:0;min-height:238px;display:grid;grid-template-rows:minmax(130px,1fr) auto;gap:0;width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;overflow:hidden;transition:transform .08s ease,filter .08s ease,border-color .08s ease,box-shadow .08s ease}.build-card:hover{transform:translateY(-2px);filter:brightness(1.04)}.build-card.selected{border-width:6px;border-color:var(--wood-dark);box-shadow:inset 0 1px #fff8dab8,0 0 0 2px #ffe68feb,0 4px #3d210e47}.build-card.locked{filter:grayscale(1) saturate(.25);opacity:.72}.build-card.locked:hover,.build-card.locked.selected{opacity:.9}.build-card.available{filter:saturate(1.08)}.build-card-image{min-height:130px;display:grid;place-items:center;background:radial-gradient(circle at 50% 36%,#fff7cdad,#79451c29 72%),url(/assets/ui/wood-tile.webp);border-bottom:3px solid #7c5128}.build-card-image img{width:min(128px,72%);height:min(128px,72%);object-fit:contain;image-rendering:pixelated}.build-card-body{display:grid;gap:7px;padding:10px}.build-card strong{display:block;font-size:17px}.build-card p{margin:0;font-weight:800;color:var(--ink-soft)}.status{display:inline-block;margin-top:5px;padding:3px 7px;font-size:12px;background-color:var(--paper-deep)}.choice.selected{background-color:var(--leaf);background-image:var(--green-fill);border-color:var(--leaf-dark);color:#172a12}.trade-section{margin-bottom:16px}.trade-section strong{display:block;margin-bottom:8px}.choice-row{display:flex;flex-wrap:wrap;gap:8px}.choice{min-height:42px;padding:7px 12px;border-width:2px}.empty-text{font-weight:900;color:#744b25}.stepper{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center}.stepper button{height:42px;font-weight:900}.stepper span{min-height:42px;display:grid;place-items:center;text-align:center;padding:4px}.route-editor{display:grid;grid-template-columns:1fr;gap:12px}.route-sidebar{position:absolute;z-index:25;inset:0 auto 0 0;width:380px;padding:16px;overflow:auto}.route-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.route-sidebar-header h2{margin:0 0 3px;font-size:28px}.route-sidebar-header span,.route-help,.route-notice{font-weight:900;color:var(--ink-soft)}.route-help{margin:0 0 10px;line-height:1.45}.route-notice{padding:8px;margin-bottom:12px}.route-save-button{margin-bottom:12px}.route-card{padding:10px;min-height:132px}.route-card header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.route-card strong{font-size:17px}.route-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.point-list{list-style:none;display:grid;gap:6px;padding:0;margin:0;max-height:150px;overflow:auto}.point-list li{display:grid;grid-template-columns:1fr 34px;align-items:center;gap:6px;padding:5px 5px 5px 8px}.point-list .close-button{width:30px;height:30px;border-width:2px}.zone-list{display:grid;gap:6px}.zone-row{display:grid;grid-template-columns:1fr 34px;align-items:center;gap:6px;padding:5px 5px 5px 8px;font-weight:900}.zone-row.draft{grid-template-columns:1fr;background-color:#dff1b7;border-color:var(--leaf-dark)}.zone-row small{color:var(--ink-soft);font-weight:900}.zone-row .close-button{width:30px;height:30px;border-width:2px}.success-backdrop{z-index:30}.success-modal{text-align:center}.success-modal p{font-weight:800;line-height:1.5}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.result-grid span{padding:8px}@media(max-width:760px){.region-grid,.build-grid,.result-grid{grid-template-columns:1fr}.route-mode .phaser-host{left:0;top:46dvh;width:100vw;height:54dvh}.route-sidebar{width:100vw;height:46dvh;right:0;bottom:auto}.start-panel{padding:18px}.region-card{min-height:118px}.hud{top:8px;left:8px;width:calc(100vw - 16px);padding:9px}.resource-badge,.mini-status span{font-size:12px}.building-panel{top:138px;right:8px}.notice-board{bottom:88px;font-size:14px}.action-bar{width:calc(100vw - 16px);justify-content:center}.game-button{padding:0 10px;font-size:14px}}
