@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@600;700&display=swap');
:root{--bg:#03101a;--panel:#071b29;--line:#214153;--text:#eaf5f8;--muted:#8aa4b2;--cyan:#31d9f0;--amber:#f4b95f;--red:#ff6868;--green:#63e4aa}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;color:var(--text);background:radial-gradient(circle at 65% 0,#0d3452 0,transparent 36%),linear-gradient(#06131e,#020a11);font-family:'Noto Sans KR',sans-serif;word-break:keep-all}a{color:inherit;text-decoration:none}button,select,input{font:inherit}.site-head{height:76px;padding:0 clamp(18px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#04111deb;backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand img{width:38px}.brand b,.brand small{display:block}.brand b{font:600 13px 'IBM Plex Mono';letter-spacing:.16em}.brand small{font-size:10px;color:var(--muted);margin-top:3px}.site-head nav{display:flex;gap:22px;color:var(--muted);font:500 10px 'IBM Plex Mono'}.site-head nav a:hover,.site-head nav .active{color:var(--cyan)}#nav-toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--text);padding:8px 11px;font:600 10px 'IBM Plex Mono'}main{max-width:1800px;margin:auto}.intro{padding:64px clamp(20px,5vw,80px) 46px;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.eyebrow{font:600 10px 'IBM Plex Mono';letter-spacing:.17em;color:var(--cyan)}.intro h1{font:600 clamp(44px,6vw,90px)/1.08 'Noto Serif KR';margin:20px 0 0}.intro h1 em{font-style:normal;color:var(--cyan)}.intro-copy>p{font-size:clamp(15px,1.3vw,19px);line-height:1.9;color:#b9ccd5}.source-strip{display:flex;flex-wrap:wrap;gap:18px;margin-top:28px;font:500 10px 'IBM Plex Mono';color:var(--muted)}.source-strip span{display:flex;gap:7px;align-items:center}.source-strip i{width:7px;height:7px;border-radius:50%}.sim{background:var(--cyan)}.pending{background:var(--amber)}.human{background:var(--green)}.workspace{border-block:1px solid var(--line);background:#020b13;padding:0 clamp(14px,2vw,34px) 34px}.workspace-head{min-height:112px;display:flex;justify-content:space-between;align-items:center;padding:22px 4px}.workspace-head h2{font:600 clamp(25px,3vw,42px) 'Noto Serif KR';margin:8px 0}.live{display:flex;align-items:center;gap:10px;color:var(--muted)}.live>i{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 15px var(--cyan)}.live b,.live small{display:block}.live b{font:600 10px 'IBM Plex Mono';color:var(--cyan)}.live small{font-size:11px;margin-top:4px}.workspace-grid{display:grid;grid-template-columns:minmax(245px,300px) minmax(430px,1fr) minmax(270px,330px);min-height:720px;border:1px solid var(--line)}.panel{background:linear-gradient(#081c2a,#05141f);padding:24px;min-width:0}.controls{border-right:1px solid var(--line)}.results{border-left:1px solid var(--line)}.panel-title{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:22px}.panel-title span,.panel-title b{display:block}.panel-title span{font:600 9px 'IBM Plex Mono';color:var(--cyan)}.panel-title b{font-size:20px;margin-top:7px}.controls>label{display:block;margin:19px 0}.controls label>span,.controls legend{display:block;color:#adc1ca;font-size:13px;margin-bottom:8px}.controls select{width:100%;padding:13px;color:var(--text);border:1px solid var(--line);background:#081b29}.scenario-note{font-size:12px;line-height:1.7;color:var(--muted);border-left:2px solid var(--cyan);padding:11px 12px;background:#0a2130}.range span{display:flex!important;justify-content:space-between}.range output{color:var(--cyan);font:600 11px 'IBM Plex Mono'}.range input{width:100%;accent-color:var(--cyan)}fieldset{border:0;padding:0;margin:22px 0}fieldset label{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:8px 0;color:#c7d6dc;font-size:12px}fieldset input{accent-color:var(--cyan)}fieldset em{font-style:normal;color:var(--muted);font:500 8px 'IBM Plex Mono'}.actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:24px}.actions button,.view-actions button{border:1px solid var(--line);background:#0a1d2a;color:var(--text);padding:12px;cursor:pointer}.actions .primary{background:linear-gradient(135deg,#075ecf,#04a9c5);border-color:var(--cyan);font-weight:700}.viewer{position:relative;min-width:0;min-height:620px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#0a3143,#020810 72%)}#terrain-canvas{display:block;width:100%;height:100%;touch-action:none}.viewer-hud{position:absolute;left:17px;right:17px;display:flex;justify-content:space-between;gap:16px;pointer-events:none;color:#8db0bd;font:500 9px 'IBM Plex Mono'}.viewer-hud.top{top:16px}.viewer-hud.bottom{bottom:16px}.view-actions{position:absolute;right:16px;top:45px;display:flex;gap:5px}.view-actions button{font:500 10px 'IBM Plex Mono';padding:8px 10px;background:#03121dcf}.model-badge{position:absolute;left:17px;bottom:42px;border-left:2px solid var(--cyan);padding:8px 11px;background:#03121dcc}.model-badge b,.model-badge span{display:block}.model-badge b{font:600 9px 'IBM Plex Mono';color:var(--cyan)}.model-badge span{font-size:10px;color:var(--muted);margin-top:4px}.grade{border:1px solid var(--line);padding:17px;margin-bottom:20px}.grade span,.grade b,.grade small{display:block}.grade span{font:600 9px 'IBM Plex Mono';color:var(--muted)}.grade b{font-size:24px;margin:7px 0}.grade small{font-size:11px;color:var(--muted)}.grade.review{border-color:var(--amber);box-shadow:inset 3px 0 var(--amber)}.grade.review b{color:var(--amber)}.grade.hold{border-color:var(--red);box-shadow:inset 3px 0 var(--red)}.grade.hold b{color:var(--red)}.results dl{margin:0}.results dl div{padding:13px 0;border-bottom:1px solid #173243}.results dt{font-size:11px;color:var(--muted)}.results dt em{display:block;margin-top:4px;color:#5f8796;font:500 8px 'IBM Plex Mono';font-style:normal}.results dd{margin:5px 0 0;font:600 18px 'IBM Plex Mono'}.results section{margin-top:22px}.results h3{font-size:12px;color:var(--cyan)}.results ul{padding-left:18px;color:#b9cbd3;font-size:12px;line-height:1.7}.basis{padding:12px;border:1px solid var(--line);background:#061722}.basis p{font-size:11px;line-height:1.7;color:var(--muted)}.legend{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}.legend span{font:600 8px 'IBM Plex Mono';padding:5px 7px;border:1px solid}.official{color:var(--green)}.simulated{color:var(--cyan)}.unverified{color:var(--amber)}.data-roadmap{padding:90px clamp(20px,5vw,80px)}.data-roadmap>header{display:grid;grid-template-columns:1fr 1.3fr;gap:6vw;align-items:end}.data-roadmap h2{font:600 clamp(30px,4vw,57px)/1.25 'Noto Serif KR';margin:13px 0}.data-roadmap header>p:last-child{color:var(--muted);line-height:1.8}.roadmap-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:45px}.roadmap-grid article{min-height:250px;padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#06131c}.roadmap-grid span{font:600 9px 'IBM Plex Mono';color:var(--cyan)}.roadmap-grid h3{font:600 24px 'Noto Serif KR';margin:28px 0 14px}.roadmap-grid p{font-size:13px;line-height:1.8;color:var(--muted)}.roadmap-grid b{display:block;margin-top:25px;font-size:11px;color:var(--amber)}.boundary{margin:0 clamp(20px,5vw,80px) 90px;padding:42px;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1.4fr;gap:6vw;background:linear-gradient(130deg,#071e2c,#06121c)}.boundary span{font:600 9px 'IBM Plex Mono';color:var(--amber)}.boundary h2{font:600 clamp(25px,3vw,40px)/1.35 'Noto Serif KR'}.boundary>p{color:#afc1ca;line-height:1.9;font-size:14px}.boundary-actions{grid-column:2;display:flex;gap:20px;color:var(--cyan);font-size:12px}footer{min-height:120px;border-top:1px solid var(--line);padding:30px clamp(20px,5vw,80px);display:flex;align-items:center;gap:22px;color:var(--muted);font:500 11px 'IBM Plex Mono'}footer b{color:var(--text)}footer a{margin-left:auto;color:var(--cyan)}
@media(max-width:1150px){.workspace-grid{grid-template-columns:250px minmax(400px,1fr)}.results{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:20px}.results .panel-title,.results .legend{grid-column:1/-1}.results section{margin-top:0}.roadmap-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.site-head{height:64px}.site-head nav{display:none;position:absolute;top:64px;left:0;right:0;padding:18px;background:#04111df5;flex-direction:column;border-bottom:1px solid var(--line)}.site-head nav.open{display:flex}#nav-toggle{display:block}.intro{grid-template-columns:1fr;padding-top:42px}.intro-copy{margin-top:-20px}.workspace{padding-inline:10px}.workspace-head{align-items:flex-start;gap:12px}.live small{display:none}.workspace-grid{display:flex;flex-direction:column}.viewer{order:1;min-height:440px}.controls{order:2;border-right:0;border-top:1px solid var(--line)}.results{order:3;display:block;border-top:1px solid var(--line)}.viewer-hud{font-size:7px}.viewer-hud.top span:last-child{display:none}.view-actions{top:42px;right:10px}.data-roadmap{padding-block:65px}.data-roadmap>header,.boundary{grid-template-columns:1fr}.roadmap-grid{grid-template-columns:1fr}.roadmap-grid article{min-height:210px}.boundary{padding:26px}.boundary-actions{grid-column:1;flex-direction:column;gap:10px}footer{align-items:flex-start;flex-direction:column}footer a{margin-left:0}}
