@font-face{font-family:LocalUI;src:local('Malgun Gothic')} :root{--bg:#0b100d;--panel:#101813;--green:#96f37d;--fg:#f1f6ef;--muted:#a1ada3;--line:#2b362d;--yellow:#e7bf66;color-scheme:dark;font-family:Arial,LocalUI,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:4px}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}.app{max-width:1500px;margin:auto;padding:0 44px}.header{height:89px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px}.brand{font-size:26px;font-weight:900;letter-spacing:-1.6px;color:var(--fg);text-decoration:none}.brand span{color:var(--green)}.header-service{font-size:12px;color:var(--muted)}.preview-tag{margin-left:auto;font-size:11px;border:1px solid #485448;padding:6px 10px;border-radius:30px;color:#c8d4c8}.intro{display:flex;align-items:end;justify-content:space-between;padding:35px 0 29px;gap:20px}.eyebrow{font-size:10px;color:var(--green);letter-spacing:1.5px}.eyebrow span{color:var(--muted);letter-spacing:0;margin-left:14px}h1{font-size:43px;line-height:1.2;letter-spacing:-2px;margin:13px 0 8px;font-weight:800}h1 span{font-weight:400;color:#cfdbcb}.intro p{font-size:12px;color:var(--muted);margin:0}.intro-meta{font-size:11px;color:#c0cdc0;line-height:1.8}.intro-meta small{display:block;font-size:10px;color:#859386;margin-left:14px}.dot{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;vertical-align:middle;margin-right:7px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 318px;min-height:580px;border:1px solid var(--line)}.scene{height:580px;position:relative;overflow:hidden;background:#131d17;isolation:isolate}.scene canvas{display:block;width:100%;height:100%}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#070e0bb8,transparent 38%,transparent 75%,#070e0bc9);pointer-events:none}.scene-top{position:absolute;top:22px;left:25px;right:22px;display:flex;justify-content:space-between;gap:20px;align-items:start}.scene-coordinate{font:10px/1.7 'Courier New',monospace;letter-spacing:.5px;color:#c0d0be}.layer-switch{display:flex;border:1px solid #55604a80;background:#0a120dbf;padding:3px;backdrop-filter:blur(8px)}.layer-switch button{background:none;border:0;color:#b6c5b3;padding:7px 10px;font-size:10px}.layer-switch button[aria-pressed=true]{background:#96f37d;color:#0f2414}.scene-title{position:absolute;left:25px;top:90px;pointer-events:none}.scene-title>span{font:10px 'Courier New',monospace;color:var(--green);letter-spacing:1px}.scene-title h2{font-size:22px;line-height:1.3;letter-spacing:-.9px;margin:9px 0;color:#f3f8ef;text-shadow:0 2px 20px #000}.scene-title.changed{animation:enter .55s both}.scene-bottom{position:absolute;bottom:17px;left:24px;right:22px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#d0dfca;pointer-events:none}.scene-bottom>span:last-child{font-size:9px;color:#b0bcaa}.site-label{position:absolute;left:50%;top:52%;background:#09150eea;border:1px solid #83bc69;padding:9px 13px;font-size:12px;pointer-events:none;white-space:nowrap;box-shadow:0 7px 24px #0005;transition:opacity .4s}.site-label small{font-size:10px;color:#b7c7ae;margin-left:10px}.record{background:#0f1711;padding:26px 25px 23px;border-left:1px solid var(--line);display:flex;flex-direction:column}.record-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px}.record-heading h2{font-size:14px;margin:0;letter-spacing:-.3px}.record-heading>span{font-size:10px;color:var(--muted)}.chapters{display:flex;flex-direction:column}.chapter{display:grid;grid-template-columns:24px minmax(0,1fr) 12px;gap:9px;width:100%;background:none;border:0;border-bottom:1px solid #26312a;padding:17px 0;text-align:left;color:#829381;align-items:start;transition:color .3s}.chapter .num{font:11px 'Courier New',monospace;padding-top:2px}.chapter strong{font-size:12px;font-weight:500;display:block}.chapter small{font-size:10px;display:block;margin-top:7px;line-height:1.6;color:#849782}.chapter .state{height:5px;width:5px;border:1px solid #536750;border-radius:50%;margin-top:5px}.chapter.active{color:var(--green)}.chapter.active small,.chapter.done small{color:#b8c8b3}.chapter.active .state{border-color:var(--green);background:var(--green);box-shadow:0 0 9px #96f37d60}.chapter.done{color:#d7e1d2}.chapter.done .state{background:#b2cca4;border-color:#b2cca4}.chapter[data-i='2'].done .state,.chapter[data-i='3'].done .state{background:var(--yellow);border-color:var(--yellow)}.next-action{margin-top:auto;padding-top:27px}.mini-label{font-size:9px;letter-spacing:1.8px;color:#b1c3a7}.next-action h3{font-size:20px;line-height:1.4;letter-spacing:-.7px;margin:10px 0}.next-action p{color:var(--muted);font-size:10px;line-height:1.7;margin:0 0 20px}.primary,.secondary{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:var(--green);color:#13210f;padding:14px 16px;font-size:12px;font-weight:700;min-height:46px}.primary span{font-size:20px;line-height:1}.secondary{background:none;color:#cbdcc4;border:1px solid #354731;margin-top:8px;font-weight:400;min-height:38px;padding:10px 16px}.transport{display:flex;align-items:center;gap:26px;padding:16px 0;border-bottom:1px solid var(--line)}.play-controls{display:flex;align-items:center;gap:13px;font:10px 'Courier New',monospace;color:#9fb297;white-space:nowrap}.play-controls button{background:transparent;color:#e0ecda;border:0;font-size:15px;min-width:26px;height:30px;padding:0}.transport-divider{opacity:.5}.transport input{accent-color:var(--green);flex:1;min-width:30px;height:14px;cursor:pointer}.transport-label{font-size:10px;color:#a7b99e;min-width:120px;text-align:right}.footer{display:flex;justify-content:space-between;gap:15px;padding:22px 0 26px;color:#7f9575;font-size:10px}.footer button{background:none;border:0;color:#c1d8b3;font-size:10px;margin-left:8px}.footer>span:last-child{font-size:9px;letter-spacing:1px}.footer b{font-size:20px;vertical-align:middle;margin-left:14px;color:var(--green)}.building-card{position:absolute;right:25px;top:185px;width:220px;background:#101b13eb;border:1px solid #69865a;border-top:3px solid var(--green);padding:18px;box-shadow:0 18px 60px #0005;backdrop-filter:blur(14px);animation:enter .65s both}.building-card>strong{display:block;font-size:20px;margin:12px 0 19px;letter-spacing:-.6px}.building-stats{display:flex;gap:23px}.building-stats span{font-size:9px;color:#a9c19c}.building-stats b{display:block;font-size:21px;color:#e6f2dc;margin-bottom:5px;font-weight:400}.building-sub{font-size:9px;color:#a7bb9b;margin:17px 0;line-height:1.6}.warning-line{display:flex;align-items:center;gap:7px;border-top:1px solid #385030;padding-top:13px;color:var(--yellow);font-size:11px}.warning-line i{background:var(--yellow);width:5px;height:5px;border-radius:50%}.plan-card{position:absolute;right:26px;top:80px;width:270px;background:#eaece4;color:#253529;box-shadow:0 22px 65px #0009;transform:rotate(-2deg);animation:plan-enter .9s both}.plan-header{padding:12px 14px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.5px;border-bottom:1px solid #d5dbcc}.plan-image{position:relative;width:100%;height:338px;overflow:hidden;background:white}.plan-image img{width:100%;height:100%;object-fit:contain}.plan-caption{padding:12px 14px;font-size:10px}.plan-mark{position:absolute;border:1px solid #459c31;background:#8df65d22;animation:mark-in .8s .8s both}.plan-mark span{position:absolute;left:100%;top:50%;margin-left:5px;transform:translateY(-50%);background:#233c1c;color:#e0f4d7;padding:4px 6px;font-size:9px;white-space:nowrap}.mark-road{left:20%;top:4%;width:8%;height:11%}.mark-side{left:12%;top:55%;width:13%;height:10%}.result-overlay{position:absolute;inset:0;background:#09150cc7;backdrop-filter:blur(4px);padding:172px 36px 42px;animation:enter .7s both}.result-kicker{font-size:10px;letter-spacing:1.5px;color:#b9d1ad}.result-count{font-size:102px;line-height:1.2;font-weight:300;letter-spacing:-7px;color:var(--green)}.result-count span{font-size:14px;color:#b7caaa;letter-spacing:0;margin-left:16px}.result-overlay h2{font-size:33px;line-height:1.28;letter-spacing:-1.3px;margin:15px 0}.result-overlay p{font-size:11px;color:#a8bf9b;line-height:1.7}.load-error{position:absolute;inset:0;background:#152217;display:grid;place-content:center;padding:30px;gap:20px;font-size:14px}.load-error button{padding:12px;border:1px solid var(--green);background:none;color:var(--green)}dialog{background:#111c14;color:var(--fg);border:1px solid #41583a;padding:25px;width:min(510px,calc(100vw - 32px));max-height:85vh;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#030805c9;backdrop-filter:blur(7px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top button{border:0;background:none;color:#dce8d5;font-size:26px;padding:0 3px}dialog h2{font-size:25px;letter-spacing:-.8px;margin:20px 0}dialog p,dialog li{font-size:12px;line-height:1.8;color:#b7c8ae}dialog li{margin:8px 0}.dialog-property{border-left:2px solid var(--green);padding:12px 15px;background:#1c2d1b;font-size:12px;line-height:1.8;margin:15px 0 20px}dialog label{display:block;font-size:12px;margin:17px 0 8px}dialog select,dialog textarea{width:100%;background:#0c140e;border:1px solid #41563a;color:#d8e8cf;padding:12px;font:inherit;font-size:16px}dialog textarea{min-height:88px;resize:vertical}dialog .primary{margin-top:20px}dialog .check{display:flex;gap:10px;line-height:1.7;align-items:start}.check input{accent-color:var(--green);width:17px;height:17px;flex-shrink:0}.dialog-feedback{color:var(--green)!important}.source-item{padding:12px 0;border-bottom:1px solid #2f4429}.source-item b{font-size:12px;font-weight:400}.source-item p{font-size:11px;margin:5px 0}.source-note{font-size:10px!important}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes plan-enter{from{opacity:0;transform:translateX(90px) rotate(8deg)}to{opacity:1;transform:translateX(0) rotate(-2deg)}}@keyframes mark-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
.scene-top,.scene-bottom{z-index:4}.scene-title{z-index:3}.result-overlay{z-index:2}.plan-card,.building-card{z-index:2}.load-error{z-index:6}
@media(min-width:1300px){.scene{height:650px}.workspace{grid-template-columns:minmax(0,1fr) 348px}.record{padding:29px}.chapter{padding:20px 0}.scene-title h2{font-size:27px}.plan-card{width:315px;top:100px}.plan-image{height:390px}.result-overlay{padding-top:190px}}
@media(max-width:900px){.app{padding:0 22px}.workspace{grid-template-columns:minmax(0,1fr) 270px}.record{padding:23px 20px}.scene-title h2{font-size:20px}.scene-top{left:18px;right:16px}.scene-title{left:18px}.building-card{right:17px;top:202px;width:195px}.plan-card{right:18px;top:166px;width:215px}.plan-image{height:270px}.intro-meta{display:none}.transport-label{display:none}.scene-bottom{left:17px;right:16px;flex-wrap:wrap;gap:6px}.result-overlay{padding-left:23px}.result-overlay h2{font-size:28px}.result-count{font-size:86px}}
@media(max-width:660px){.app{padding:0 16px}.header{height:72px;gap:12px}.brand{font-size:23px}.header-service{font-size:10px;max-width:90px;line-height:1.5}.preview-tag{font-size:9px}.intro{padding:25px 0 22px}h1{font-size:34px}.workspace{display:block}.scene{height:460px}.scene-top{top:18px}.scene-title{top:80px}.scene-title h2{font-size:22px}.record{border-left:0;border-top:1px solid var(--line);padding:22px}.record-heading{padding-bottom:12px}.chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.chapter{padding:13px 0;grid-template-columns:18px minmax(0,1fr);gap:6px}.chapter .state{display:none}.chapter small{font-size:10px}.chapter:last-child{grid-column:1/-1}.next-action{padding-top:22px}.next-action h3 br{display:none}.next-action h3{font-size:21px}.next-action p{font-size:11px}.transport{gap:17px}.footer{gap:10px;line-height:1.8}.footer>span:last-child{display:none}.site-label{font-size:11px;padding:8px 10px}.site-label small{display:none}.building-card{top:164px;width:178px;padding:14px}.building-card>strong{font-size:18px;margin-bottom:15px}.building-stats{gap:18px}.building-stats b{font-size:19px}.building-sub{margin:12px 0}.plan-card{width:185px;top:140px}.plan-image{height:229px}.plan-header{font-size:8px;padding:9px}.plan-caption{font-size:9px;padding:9px}.result-overlay{padding:145px 24px 20px}.result-count{font-size:78px}.result-overlay h2{font-size:28px}.result-overlay p{font-size:10px}.scene-bottom{font-size:9px}.scene-bottom>span:last-child{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:490px}.score-grid>div{border:1px solid #52734a;background:#0a190fce;padding:16px 20px}.score-grid span{font-size:13px;color:#c3d9bb}.score-grid strong{display:block;font:54px Arial;color:#a5fa88;margin-top:8px}.score-grid small{font-size:13px;margin-left:8px;color:#bdd1b6}.score-grid>div:nth-child(2) strong{color:#edd293}.score-grid>div:nth-child(3) strong{color:#f0ad7c}.score-grid>div:last-child strong{color:#d0dbcd}.next-action{word-break:keep-all}.next-action .primary{margin-top:8px}@media(max-width:660px){.score-grid{gap:8px}.score-grid>div{padding:10px 14px}.score-grid strong{font-size:38px}.score-grid span{font-size:12px}}@media print{body>*{display:none!important}body>dialog[open]{display:block!important;position:static;width:100%;max-height:none;overflow:visible;border:0;background:white;color:black;box-shadow:none}dialog p,dialog h3,dialog .dialog-property{color:black;background:white}dialog button,.dialog-top{display:none!important}dialog::backdrop{display:none}}

.score-grid>button{border:1px solid #52734a;background:#0a190fce;padding:16px 20px;text-align:left;color:inherit;animation:score-in .65s both}.score-grid>button:nth-child(2){animation-delay:.12s}.score-grid>button:nth-child(3){animation-delay:.24s}.score-grid>button:nth-child(4){animation-delay:.36s}.score-grid>button:hover{background:#1e3826;border-color:#a5ed88}.score-grid strong b{font-weight:400}.score-grid>button:nth-child(2) strong{color:#edd293}.score-grid>button:nth-child(3) strong{color:#f0ad7c}@keyframes score-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:660px){.score-grid>button{padding:10px 14px}}@media(prefers-reduced-motion:reduce){.score-grid>button{animation:none}}
