@import "https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@500;600;700&display=swap";
:root{--ink:#f1eadc;--muted:#9d988d;--dim:#6f6b63;--night:#0c0e0f;--surface:#141718;--surface-2:#1b1e1f;--line:#303333;--gold:#c9a96a;--gold-soft:#8e764d;--history:#7c9aa7;--family:#c6a26a;--danger:#b77665}*{box-sizing:border-box}html,body{background:var(--night);min-height:100%;color:var(--ink);margin:0}body{font-family:Noto Sans KR,system-ui,sans-serif}button,input{font:inherit}button{min-height:44px}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app-shell{background:radial-gradient(circle at 68% 12%, #c9a96a12, transparent 28%), var(--night);min-height:100vh}.topbar{border-bottom:1px solid var(--line);z-index:30;background:#0c0e0ff0;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:12px;display:flex}.brand strong{letter-spacing:-.02em;font-family:Noto Serif KR,serif;font-size:20px}.brand span,.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700}.top-actions{gap:8px;display:flex}.ghost,.primary,.speed-button,.tab-button,.choice{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;transition:background .16s,border-color .16s,transform .16s}.ghost{padding:0 14px}.ghost:hover,.tab-button:hover,.speed-button:hover{border-color:var(--gold-soft);background:#c9a96a12}.primary{background:var(--gold);color:#15120d;border-color:var(--gold);padding:0 20px;font-weight:700}.primary:hover{background:#ddbd7c}.beginning{grid-template-columns:1.08fr .92fr;min-height:100vh;display:grid}.beginning-visual{background:linear-gradient(140deg,#0809092e,#080909e6),radial-gradient(circle at 75% 26%,#5b4b34 0 1px,#0000 2px),linear-gradient(125deg,#31302c,#111516 56%,#080909);flex-direction:column;justify-content:flex-end;min-height:640px;padding:72px clamp(30px,7vw,110px);display:flex;position:relative;overflow:hidden}.beginning-visual:before{content:"";background:var(--gold-soft);height:1px;position:absolute;inset:11% -12% auto 20%;transform:rotate(-18deg);box-shadow:0 90px #c9a96a40,0 180px #c9a96a1f}.beginning-visual:after{content:"1726";color:#f1eadc09;font:700 clamp(130px,20vw,310px)/1 Noto Serif KR,serif;position:absolute;top:58px;right:-20px}.beginning-copy{z-index:1;max-width:680px;position:relative}.beginning h1{letter-spacing:-.06em;margin:10px 0 24px;font-family:Noto Serif KR,serif;font-size:clamp(48px,7vw,104px);line-height:.98}.beginning h1 span{color:var(--gold);display:block}.beginning-copy p{color:#c1bdb4;max-width:560px;font-size:16px;line-height:1.8}.beginning-panel{border-left:1px solid var(--line);background:#101213;align-items:center;padding:clamp(28px,6vw,90px);display:flex}.start-card{width:min(480px,100%)}.start-card h2{margin:8px 0 12px;font:600 30px/1.25 Noto Serif KR,serif}.start-card>p{color:var(--muted);line-height:1.7}.seed-label{color:var(--muted);margin:34px 0 10px;font-size:12px;display:block}.seed-row{grid-template-columns:1fr auto;gap:8px;display:grid}.seed-row input{background:var(--surface);min-width:0;color:var(--ink);border:1px solid var(--line);height:48px;padding:0 14px}.start-note{border-top:1px solid var(--line);color:var(--dim);margin-top:30px;padding-top:20px;font-size:12px;line-height:1.7}.restore-button{width:100%;margin-top:12px}.game-grid{grid-template-columns:minmax(0,1fr) 360px;min-height:calc(100vh - 64px);display:grid}.main-stage{min-width:0;padding:28px}.side-archive{border-left:1px solid var(--line);background:#101213;max-height:calc(100vh - 64px);padding:24px;overflow:auto}.timeline-head{grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:24px;padding-bottom:20px;display:grid}.date-block strong{font:600 28px/1 Noto Serif KR,serif;display:block}.date-block span{color:var(--muted);font-size:11px}.progress-wrap{position:relative}.progress-track{background:var(--line);height:2px}.progress-fill{background:var(--gold);height:100%}.progress-labels{color:var(--dim);justify-content:space-between;margin-top:7px;font-size:10px;display:flex}.transport{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.speed-button{min-width:44px;padding:0 8px;font-size:12px}.speed-button.active{color:#17130d;background:var(--gold);border-color:var(--gold)}.pause{min-width:92px}.skip{padding:0 12px}.hero-status{border:1px solid var(--line);background:linear-gradient(115deg,#191d1e,#111313);grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);min-height:330px;display:grid}.map-panel{border-right:1px solid var(--line);min-height:330px;position:relative;overflow:hidden}.map-panel svg{opacity:.75;width:100%;height:100%;min-height:330px}.map-grid line{stroke:#2b3031;stroke-width:.5px}.map-route{fill:none;stroke:var(--gold);stroke-width:2px;stroke-dasharray:5 6}.map-dot{fill:var(--gold)}.map-label{fill:var(--ink);font-size:11px}.map-overlay{position:absolute;bottom:20px;left:22px}.map-overlay strong{font:600 23px/1.2 Noto Serif KR,serif;display:block}.map-overlay span{color:var(--muted);font-size:12px}.leader-panel{flex-direction:column;justify-content:space-between;padding:28px;display:flex}.portrait{width:72px;height:88px;color:var(--gold);border:1px solid var(--gold-soft);background:linear-gradient(145deg,#28231a,#131515);place-items:center;font:600 28px Noto Serif KR,serif;display:grid}.leader-panel h2{margin:14px 0 3px;font:600 30px Noto Serif KR,serif}.leader-meta{color:var(--muted);font-size:12px;line-height:1.7}.meters{gap:12px;margin-top:24px;display:grid}.meter-head{color:var(--muted);justify-content:space-between;margin-bottom:5px;font-size:11px;display:flex}.meter{background:var(--line);height:3px}.meter span{background:var(--gold);height:100%;display:block}.tabs{border-bottom:1px solid var(--line);gap:0;margin-top:22px;display:flex;overflow-x:auto}.tab-button{color:var(--muted);white-space:nowrap;border:0;border-bottom:2px solid #0000;padding:0 18px}.tab-button.active{color:var(--ink);border-bottom-color:var(--gold)}.view{padding-top:22px}.section-title{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.section-title h2{margin:0;font:600 22px Noto Serif KR,serif}.section-title span{color:var(--muted);font-size:11px}.event-list{background:var(--line);border:1px solid var(--line);gap:1px;display:grid}.event-row{background:var(--surface);grid-template-columns:88px 88px 1fr;align-items:start;gap:16px;padding:15px 16px;display:grid}.event-date{color:var(--muted);font:11px ui-monospace,monospace}.event-kind{color:var(--family);letter-spacing:.08em;font-size:10px}.event-kind.history{color:var(--history)}.event-copy strong{margin-bottom:3px;font-size:13px;display:block}.event-copy p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.family-line{gap:14px;padding:22px 4px 32px;display:flex;overflow-x:auto}.person-node{border:1px solid var(--line);background:var(--surface);min-width:150px;padding:16px;position:relative}.person-node:not(:last-child):after{content:"";background:var(--gold-soft);width:15px;height:1px;position:absolute;top:50%;right:-15px}.person-node.current{border-color:var(--gold)}.person-node strong{font-family:Noto Serif KR,serif;display:block}.person-node span{color:var(--muted);font-size:11px}.legacy-grid{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.legacy-stat{border-right:1px solid var(--line);padding:20px}.legacy-stat:last-child{border:0}.legacy-stat strong{color:var(--gold);font:600 30px Noto Serif KR,serif;display:block}.legacy-stat span{color:var(--muted);font-size:11px}.archive-head{margin-bottom:20px}.archive-head h2{margin:6px 0;font:600 22px Noto Serif KR,serif}.archive-head p{color:var(--muted);font-size:12px;line-height:1.6}.archive-stream{display:grid}.archive-item{border-left:1px solid var(--line);padding:0 0 20px 21px;position:relative}.archive-item:before{content:"";background:var(--surface-2);border:1px solid var(--gold-soft);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:-5px}.archive-item.history:before{border-color:var(--history)}.archive-item time{color:var(--dim);font:10px ui-monospace,monospace}.archive-item strong{margin:4px 0;font-size:12px;display:block}.archive-item p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.archive-empty{color:var(--dim);font-size:12px}.decision-backdrop{z-index:80;background:#040505d1;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.decision-sheet{border:1px solid var(--gold-soft);background:#121414;width:min(700px,100%);padding:clamp(24px,5vw,48px);box-shadow:0 24px 90px #000}.decision-sheet h2{margin:9px 0 12px;font:600 clamp(27px,4vw,40px)/1.25 Noto Serif KR,serif}.decision-sheet>p{color:var(--muted);line-height:1.7}.choices{gap:10px;margin-top:28px;display:grid}.choice{text-align:left;padding:18px}.choice:hover{border-color:var(--gold);transform:translateY(-1px)}.choice strong{color:var(--ink);margin-bottom:5px;display:block}.choice span{color:var(--muted);font-size:12px;line-height:1.5}.prototype-banner{color:#cbbb9b;text-align:center;background:#242016;border-bottom:1px solid #473b26;padding:8px 28px;font-size:11px}.error{color:#e2a392;border:1px solid #70453a;padding:12px}@media (max-width:980px){.beginning{grid-template-columns:1fr}.beginning-visual{min-height:56vh}.beginning-panel{border-left:0;border-top:1px solid var(--line)}.game-grid{grid-template-columns:1fr}.side-archive{border-left:0;border-top:1px solid var(--line);max-height:none}.timeline-head{grid-template-columns:1fr;gap:16px}.transport{justify-content:flex-start}}@media (max-width:680px){.topbar{height:56px;padding:0 14px}.brand span{display:none}.prototype-banner{padding-inline:12px}.main-stage{padding:14px}.hero-status{grid-template-columns:1fr}.map-panel{border-right:0;border-bottom:1px solid var(--line);min-height:240px}.map-panel svg{min-height:240px}.leader-panel{padding:20px}.event-row{grid-template-columns:70px 1fr;gap:8px}.event-copy{grid-column:1/-1}.legacy-grid{grid-template-columns:repeat(2,1fr)}.legacy-stat:nth-child(2){border-right:0}.legacy-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.beginning-visual{padding:40px 24px}.beginning-panel{padding:32px 24px 52px}.seed-row{grid-template-columns:1fr}.seed-row .primary{width:100%}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
