:root{--navy:#1b2631eb;--navy2:#24313ef2;--fg:#eef1f4;--dim:#9eabb8;--line:#ffffff1a;--gold:#e9c46f;--goldbg:#f3dc9e;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);-webkit-tap-highlight-color:transparent;background:#eef2f5;margin:0;overflow:hidden}#view{position:fixed;inset:0}#view canvas{display:block}.labels{pointer-events:auto;inset:0;position:absolute!important}.labels.nolabels>div{visibility:hidden!important}#loading{color:#5b6772;z-index:50;background:#eef2f5;place-items:center;font-size:15px;display:grid;position:fixed;inset:0}button,select{font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}#top{pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;top:14px;left:14px;right:14px}#top .grp{pointer-events:auto;align-items:center;gap:6px;display:flex}.pill{background:var(--navy);height:36px;color:var(--fg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex;box-shadow:0 2px 10px #141e282e}.pill:hover{background:var(--navy2)}.pill.icon{justify-content:center;width:36px;padding:0;font-weight:700}.pill[aria-pressed=true],.pill[aria-expanded=true]{color:var(--gold);box-shadow:inset 0 0 0 1px #e9c46f8c,0 2px 10px #141e282e}.seg{gap:2px;padding:3px}.seg button{height:30px;color:var(--dim);border-radius:7px;padding:0 10px;font-size:12.5px}.seg button.on{color:var(--gold);background:#e9c46f29;font-weight:600}#ddName{text-overflow:ellipsis;max-width:260px;font-weight:600;overflow:hidden}.car{opacity:.8;width:14px;height:14px}.dd{position:relative}.ddlist{background:var(--navy2);border-radius:12px;min-width:300px;max-height:min(70vh,560px);margin:0;padding:6px;list-style:none;display:none;position:absolute;top:42px;left:0;overflow:auto;box-shadow:0 8px 28px #141e2847}.dd.open .ddlist{display:block}.ddlist li{cursor:pointer;border-radius:8px;grid-template-columns:8px 1fr auto;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:grid}.ddlist li:hover{background:#ffffff12}.ddlist li.on{background:#e9c46f24}.ddlist .dot{background:var(--pc);border-radius:50%;width:8px;height:8px}.ddlist small{color:var(--dim);margin-top:1px;font-size:11px;display:block}.ddlist .ph{color:var(--dim);white-space:nowrap;font-size:10.5px}.ph[data-phase=frame],.ph[data-phase=finishing],.chip.ph-frame,.chip.ph-finishing{color:#ffd27a!important}.ph[data-phase=excavation],.ph[data-phase=basement],.chip.ph-excavation,.chip.ph-basement{color:#d9a77a!important}.ph[data-phase=done],.ph[data-phase=occupied],.ph[data-phase=final],.chip.ph-done,.chip.ph-occupied,.chip.ph-final{color:#9fe3b0!important}.ph[data-phase=cleared],.chip.ph-cleared{color:#e3b98f!important}.ph[data-phase=unknown],.ph[data-phase=pending],.chip.ph-unknown,.chip.ph-pending{color:#a8c4ff!important}.pop{background:var(--navy2);z-index:12;border-radius:12px;width:300px;padding:10px 14px 12px;font-size:12.5px;display:none;position:fixed;top:58px;box-shadow:0 8px 28px #141e2847}.pop.right{right:14px}.pop.open{display:block}.pop h3{color:var(--dim);letter-spacing:.06em;margin:2px 0 8px;font-size:11px;font-weight:600}#layers label{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.wide{background:#ffffff12;border-radius:8px;width:100%;margin-top:8px;padding:7px}.wide:hover{background:#ffffff1f}.legend-list{color:#d3dae1;margin:0;padding:0;list-style:none}.legend-list li{align-items:flex-start;gap:9px;padding:3px 0;line-height:1.4;display:flex}.lg{border-radius:3px;flex:none;width:16px;height:11px;margin-top:3px;display:inline-block}.lg.wire{background:0 0;border:1.5px solid #e9edf1;box-shadow:inset 0 -2px #7f8c9a}.lg.dirt{background:#c2b196;box-shadow:inset 0 0 0 2px #f1f3f5}.lg.pit{background:linear-gradient(#8f8b84 0 35%,#4e4134 35%)}.lg.crane{background:#e7b416}.lg.dash{border:2px dashed #cfd5de}.lg.gold{background:#d9b25a;height:4px;margin-top:7px}.lg.lawn{background:#cfe2b8}.lg.est{background:#8db2ee}.lg.road{background:linear-gradient(90deg,#0000 46%,#e6cf8e 46% 54%,#0000 54%),repeating-linear-gradient(#f4f5f3 0 3px,#0000 3px 6px) 25% 0/2px 100% no-repeat,#d8dbdf}.lg.forest{background:radial-gradient(circle at 35% 40%,#6f8f63 0 32%,#0000 34%),radial-gradient(circle at 70% 62%,#5f7f55 0 30%,#0000 32%),#cbdeb8}.foot{color:var(--dim);margin:10px 0 0;font-size:11px;line-height:1.5}#panel{background:var(--navy2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:11;visibility:hidden;border-radius:12px;width:370px;max-height:calc(100% - 130px);padding:14px 16px;font-size:12.5px;line-height:1.5;transition:transform .25s,visibility 0s linear .25s;position:fixed;top:58px;right:14px;overflow:auto;transform:translate(110%);box-shadow:0 8px 28px #141e2847}#panel.open{visibility:visible;transition:transform .25s,visibility;transform:none}#pclose{float:right;color:var(--dim);padding:0 6px;font-size:20px;line-height:1;position:sticky;top:0}.pp-head{border-left:3px solid var(--pc);margin-bottom:8px;padding-left:10px}.pp-title{letter-spacing:-.02em;font-size:16px;font-weight:700}.pp-name{color:#cfd5de}.pp-meta{color:var(--dim)}.pp-note{color:var(--dim);font-size:11.5px}.pp-rec{margin-top:4px;font-size:12px;font-weight:600}.pp-state{margin:8px 0}.chip{background:#ffffff14;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.when{color:var(--dim);font-size:11.5px}.bar{background:#ffffff1a;border-radius:3px;height:5px;margin:6px 0 2px;overflow:hidden}.bar i{background:var(--gold);height:100%;display:block}#panel section{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}#panel h4{justify-content:space-between;align-items:center;margin:0 0 6px;font-size:13px;display:flex}#panel h5{color:var(--dim);margin:8px 0 4px;font-size:12px}table{border-collapse:collapse;width:100%}td,th{text-align:left;vertical-align:top;border-bottom:1px solid #ffffff0d;padding:3px 4px}th{color:var(--dim);font-size:11px;font-weight:500}.nw{white-space:nowrap}.dim{color:var(--dim);font-size:11px}table.sched tr.on td:first-child{color:#ffd27a;font-weight:600}#panel{--row:26px}.steps-vp{height:calc(var(--row) * 2);contain:layout paint;overflow:hidden}.steps-reel{transform:translateY(calc(var(--row) * var(--s,0) * -1));will-change:transform;margin:0;padding:0;list-style:none;transition:transform .2s}.steps-reel li{height:var(--row);white-space:nowrap;border-bottom:1px solid #ffffff0d;grid-template-columns:minmax(0,1fr) 96px 52px;align-items:center;padding:0 4px;transition:color .2s;display:grid}.steps-reel li .st{text-overflow:ellipsis;overflow:hidden}.steps-reel li.on .st{color:#ffd27a;font-weight:600}.steps-reel li[aria-hidden=true]{visibility:hidden;transition:visibility 0s linear .2s}#panel .steps h4 .legend i{padding:0 5px;font-size:10px}@media (prefers-reduced-motion:reduce){.steps-reel,.steps-reel li,.steps-reel li[aria-hidden=true]{transition:none}}tr.basis td{color:var(--dim);padding-top:0;padding-left:10px;font-size:11px}.kchip,.legend i{border-radius:5px;padding:1px 6px;font-size:10.5px;font-style:normal}.legend{gap:3px;display:flex}.k-real{color:#a7f0bd;background:#50c87838}.k-plan{color:#b9cdff;background:#6e96e638}.k-est{color:#ffd58c;background:#ffb43c38}.k-unk{color:#b9bec7;background:#ffffff1a}b.est{color:#ffd58c}.flags{background:#ffb43c12;border-radius:8px;margin-top:8px;padding:6px 8px}.flags ul,.cav,.src{margin:4px 0 0;padding-left:16px}.flags li,.cav li,.src li{margin-bottom:4px}.warn{color:#ffcf8a;margin-bottom:4px;font-size:11.5px}dl.fac{margin:0}dl.fac dt{color:var(--dim);margin-top:4px;font-size:11px}dl.fac dt.hit{color:var(--gold)}dl.fac dd{margin:0 0 2px}.sw{background:var(--c);vertical-align:-1px;border:1px solid #ffffff4d;border-radius:2px;width:10px;height:10px;margin:0 2px 0 3px;display:inline-block}code{color:#cfd5de;font-size:10.5px}a{color:#8fc1ff}#timeline{background:var(--navy);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;border-radius:12px;align-items:center;gap:4px;width:min(760px,100% - 28px);height:46px;padding:0 10px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #141e2833}.tbtn{min-width:30px;height:30px;color:var(--fg);border-radius:8px;font-size:13px}.tbtn:hover{background:#ffffff14}.tbtn.sm{min-width:22px;color:var(--dim);font-size:16px}#play{color:var(--gold)}.tl-label{text-align:center;letter-spacing:-.02em;min-width:84px;color:var(--fg);font-size:13.5px;font-weight:700}.track{flex:1;height:46px;margin:0 8px;position:relative}#tslider{width:100%;accent-color:var(--gold);background:0 0;height:16px;margin:0;position:absolute;top:9px;left:0;right:0}#marks{pointer-events:none;height:22px;position:absolute;top:6px;left:8px;right:8px}#marks .mk{border-radius:1px;width:2px;height:14px;margin-left:-1px;position:absolute;top:4px}.mk.k-실적{background:#59d68a}.mk.k-계획{background:#7ea3ff}.mk.k-추정{background:#ffb547}.mk.k-미확인{background:#888}#nowmark{pointer-events:none;background:#fff6;width:2px;height:22px;margin-left:7px;position:absolute;top:6px}.years{justify-content:space-between;display:flex;position:absolute;bottom:1px;left:0;right:0}.years button{color:#7f8d9b;flex:1;padding:0;font-size:9.5px;line-height:14px}.years button:hover{color:var(--fg)}#speed{height:28px;color:var(--dim);background:#ffffff0d;border-radius:7px;padding:0 4px;font-size:11.5px}#speed option{color:#111}#arBtn{color:var(--dim);border:1px solid #ffffff1f;flex:none;place-items:center;margin-left:4px;display:grid}#arBtn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}#arBtn.on{color:var(--gold);background:#e9c46f2e;border-color:#e9c46f8c}#arBtn.on svg{animation:4s linear infinite arspin}@keyframes arspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){#arBtn.on svg{animation:none}}.plabel,.ilabel,.tlabel,.olabel{pointer-events:auto;white-space:nowrap;transition:opacity .2s}.hid{opacity:0!important;pointer-events:none!important}.plabel{color:#eef1f4;cursor:pointer;letter-spacing:-.01em;background:#202c38db;border-radius:7px;align-items:center;gap:6px;padding:4px 9px;font-size:11.5px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #141e2833}.plabel .pd{background:#a8c4ff;border-radius:50%;flex:none;width:6px;height:6px}.plabel[data-phase=frame] .pd,.plabel[data-phase=finishing] .pd{background:#ffd27a}.plabel[data-phase=excavation] .pd,.plabel[data-phase=basement] .pd{background:#b07a4f}.plabel[data-phase=done] .pd,.plabel[data-phase=occupied] .pd,.plabel[data-phase=final] .pd{background:#8fdca7}.plabel[data-phase=cleared] .pd{background:#e3b98f}.plabel[data-phase=existing] .pd{background:#cfd5de}.plabel.sel{background:var(--goldbg);color:#3a2c10;padding:5px 11px;font-size:13px;box-shadow:0 0 0 1.5px #a0782880,0 3px 10px #141e2840}.tlabel{color:#fff;background:#202c38e0;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:600;box-shadow:0 2px 6px #141e2833}.ilabel{color:#2a3542;background:#fffffff0;border-radius:6px;align-items:center;gap:5px;padding:2px 7px 2px 3px;font-size:10.5px;display:inline-flex;box-shadow:0 1px 4px #141e282e}.ilabel .ic{background:var(--kc);color:#fff;border-radius:4px;place-items:center;width:15px;height:15px;font-size:9.5px;font-weight:700;display:inline-grid}.ilabel .sd{background:var(--kc);border-radius:50%;width:5px;height:5px;margin-left:4px}.ilabel.k-city_hall{font-size:11px;font-weight:600}.olabel{color:#4f5a66;background:#ffffffd9;border-radius:6px;padding:2px 7px;font-size:10.5px}.olabel i{color:#8b96a1;font-size:10px;font-style:normal}body[data-preset=night] .ilabel,body[data-preset=night] .olabel{color:#e8ecf2;background:#202c38e0}#pad{z-index:10;background:var(--navy);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:12px;grid-template-rows:repeat(2,30px);grid-template-columns:repeat(3,30px);gap:3px;padding:4px;display:grid;position:fixed;bottom:14px;left:14px;box-shadow:0 2px 12px #141e2833}#pad button{color:var(--dim);border-radius:8px;place-items:center;display:grid}#pad button:hover{color:var(--fg);background:#ffffff14}#pad button.on{color:var(--gold);background:#e9c46f29}#pad .up{grid-area:1/2}#pad .left{grid-area:2/1}#pad .down{grid-area:2/2}#pad .right{grid-area:2/3}@media (max-width:1000px){#pad{bottom:70px}}#credit{z-index:9;color:#6b7783;white-space:nowrap;pointer-events:auto;text-shadow:0 0 3px #eef2f5e6;font-size:9.5px;line-height:12px;position:fixed;bottom:1px;right:10px}#credit a{color:inherit;text-decoration:none}#credit a:hover{text-decoration:underline}body[data-preset=night] #credit{color:#b3bfcb;text-shadow:0 0 3px #0a1018e6}body.noui #top,body.noui #panel,body.noui #timeline,body.noui .pop,body.noui #pad,body.noui #credit{display:none!important}@media (max-width:760px){#top{flex-wrap:wrap;row-gap:6px;top:8px;left:8px;right:8px}#top .grp:last-child{margin-left:auto}.pill{height:34px;padding:0 9px;font-size:12px}#ddName{max-width:120px}.ddlist{width:calc(100vw - 16px);min-width:0;left:-52px}.seg button{padding:0 7px}.pop{width:auto;top:90px;left:8px;right:8px!important}#panel{width:auto;max-height:50%;inset:auto 8px 66px;transform:translateY(calc(100% + 80px))}#panel.open{visibility:visible;transform:none}#timeline{width:calc(100% - 16px);padding:0 6px;bottom:8px}#speed,.tbtn.sm{display:none}.tl-label{min-width:72px;font-size:12px}.years button:nth-child(2n){visibility:hidden}#pad{display:none}#credit{font-size:9px;line-height:11px;bottom:55px;right:10px}}
