@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#14251e;--accent:#e0f3a0;--paper:#f3f4ee;--scale:1;font-family:'DM Sans','Noto Sans KR',sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:hover{color:var(--accent)}a{color:inherit;text-decoration:none}#explorer{height:100svh;min-height:620px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}#viewport.dragging{cursor:grabbing}#scene{position:absolute;left:50%;top:50%;width:100%;transform-origin:center;will-change:transform}#sceneImage{display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,20,14,.55),transparent 30%,transparent 55%,rgba(8,20,14,.64)),linear-gradient(90deg,rgba(8,20,14,.60),transparent 57%)}header{position:absolute;left:40px;right:40px;top:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:16px;align-items:center;font-size:14px;font-weight:600;letter-spacing:.12em}.brand-mark{font-family:'Manrope',sans-serif;font-size:30px;font-weight:600;letter-spacing:-.08em}.brand small{display:block;font-size:10px;letter-spacing:.16em;margin-top:7px;font-weight:400;opacity:.7}nav{display:flex;align-items:center;gap:30px}nav button{font-size:14px;padding:12px 0}.menu-button{display:flex;gap:22px;align-items:center}.menu-button span{font-size:19px}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:500}.project-index{position:absolute;top:146px;left:42px;display:flex;flex-direction:column;gap:13px}.project-index>.eyebrow{color:rgba(255,255,255,.6);font-size:10px;margin-bottom:7px}.project-index button{text-align:left;padding:0;font-size:13px;color:#efefe9}.project-index button:hover{color:var(--accent)}.project-index b{display:inline-block;width:30px;font-size:11px;font-weight:400;color:rgba(255,255,255,.5)}.hero-caption{position:absolute;left:40px;bottom:112px;pointer-events:none}.hero-caption button{pointer-events:auto}.hero-caption .eyebrow{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:11px}.line{width:27px;height:1px;background:currentColor}h1{font-family:'Manrope',sans-serif;font-size:clamp(46px,5.8vw,92px);font-weight:500;line-height:1.04;letter-spacing:-.06em;margin:22px 0 20px}h1 em,h2 em{font-style:normal;color:var(--accent)}.hero-description{font-size:15px;font-weight:400;letter-spacing:-.03em;margin:0 0 18px}.project-tags{display:flex;gap:9px}.project-tags span{font-size:11px;padding:5px 9px;border:1px solid #ffffff40;border-radius:3px}.project-open{display:flex;align-items:center;justify-content:space-between;gap:48px;font-size:14px;border-bottom:1px solid #ffffff85;padding:15px 0 12px;margin-top:17px}.project-open span{font-size:24px}.pin{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%) scale(calc(1 / var(--scale)));display:flex;align-items:center;gap:8px;white-space:nowrap;z-index:2;padding:8px;filter:drop-shadow(0 2px 8px #0005)}.pin-dot{width:34px;height:34px;background:var(--paper);color:var(--ink);border-radius:50%;display:grid;place-items:center;font-size:11px;box-shadow:0 0 0 6px #f3f4ee25;transition:background .2s,box-shadow .2s}.pin-label{font-size:12px;padding:7px 11px;background:#15221dda;border:1px solid #ffffff30;border-radius:30px}.pin:hover .pin-dot,.pin:focus-visible .pin-dot{background:var(--accent);box-shadow:0 0 0 9px #e0f3a030}.pin:hover .pin-label{color:var(--accent)}.pins-hidden .pin{display:none}.view-controls{position:absolute;right:40px;bottom:107px;display:flex;align-items:center;gap:12px}.day-switch,.zoom-controls{display:flex;border:1px solid #ffffff45;background:#11201980;backdrop-filter:blur(12px);border-radius:5px;padding:4px}.day-switch button{padding:10px 14px;font-size:11px;letter-spacing:.07em;border-radius:2px}.day-switch button[aria-pressed=true]{background:var(--paper);color:var(--ink)}.zoom-controls button{height:34px;min-width:34px;font-size:20px}.zoom-controls #resetView{font-size:11px;width:47px}footer{position:absolute;bottom:0;left:40px;right:40px;min-height:70px;border-top:1px solid #ffffff35;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.08em}.muted{opacity:.5}.gesture-hint{letter-spacing:0;color:#ffffffae;font-size:12px}.gesture-hint i{font-style:normal;margin:0 10px;opacity:.5}footer button{font-size:12px;display:flex;align-items:center;gap:10px;padding:10px 0}footer button span{font-size:20px}dialog{color:var(--ink);background:var(--paper);border:0;padding:0;max-height:100svh;overscroll-behavior:contain}dialog::backdrop{background:#07150bb0;backdrop-filter:blur(8px)}#detailDialog{margin:0 0 0 auto;width:min(680px,100%);max-width:100%;height:100svh;overflow-y:auto}.detail-content{padding:28px 36px 20px}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.close-button{display:grid;place-items:center;border:1px solid #14251e30;border-radius:50%;width:42px;height:42px;font-size:18px;flex-shrink:0}.close-button:hover{background:var(--ink);color:var(--paper)}.detail-heading{margin:40px 0 28px}.detail-heading>.eyebrow{font-size:11px;color:#56664b}h2{font-family:'Manrope','Noto Sans KR',sans-serif;font-weight:500;font-size:42px;letter-spacing:-.055em;line-height:1.16;margin:14px 0 22px}.detail-heading>p:last-child{font-size:16px;line-height:1.9;color:#526057;word-break:keep-all}#detailImage{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:2px}#detailBody{font-size:16px;line-height:1.85}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:24px 0 32px}.facts div{padding:18px 0;border-bottom:1px solid #14251e25}.facts dt{font-size:12px;color:#647065;margin-bottom:5px}.facts dd{font-family:'Manrope','Noto Sans KR',sans-serif;margin:0;font-size:23px;letter-spacing:-.04em}.body-copy{color:#526057;font-size:15px;word-break:keep-all}.body-heading{font-size:20px;font-weight:500;margin:30px 0 10px;letter-spacing:-.03em}.chapter-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.chapter-buttons button{border:1px solid #14251e40;padding:8px 12px;border-radius:3px;font-size:13px}.chapter-buttons button:hover{background:var(--ink);color:var(--paper)}.detail-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #14251e30;margin-top:36px;padding-top:20px;gap:15px;font-size:10px;letter-spacing:.05em}.detail-bottom button{font-size:13px;padding:8px 0}.detail-bottom button:hover{color:#446728}.process{list-style:none;padding:0;margin:26px 0}.process li{padding:16px 0;border-bottom:1px solid #14251e20;display:grid;grid-template-columns:30px 1fr;gap:10px}.process li>span{font-size:12px;color:#728069}.process strong{display:block;font-weight:500}.process p{margin:4px 0 0;font-size:14px;color:#647065}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#worksDialog{width:100%;height:100svh;max-width:100%;margin:0;color:var(--paper);background:#14251e}.archive{padding:28px 40px;max-width:1600px;margin:auto}.archive .close-button{border-color:#ffffff40}.archive .close-button:hover{background:var(--accent);color:var(--ink)}.archive-heading{float:left;width:43%;padding-top:60px}.archive-heading>.eyebrow{font-size:11px;color:#bac6b5}.archive-heading h2{font-size:clamp(64px,7.7vw,112px);line-height:1.02;letter-spacing:-.065em;margin:26px 0}.archive-heading>p:last-child{font-size:16px;line-height:1.9;color:#c6d0c4;margin-top:35px}.archive-list{margin-left:46%;padding-top:54px}.work-card{display:block;text-align:left;width:100%;padding:0}.work-image{position:relative;overflow:hidden;border-radius:3px}.work-image img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .5s}.work-card:hover img{transform:scale(1.04)}.work-image>span{position:absolute;left:18px;top:18px;font-size:10px;letter-spacing:.1em;background:#14251e;padding:8px 11px;border-radius:2px;color:var(--accent)}.work-meta{display:flex;align-items:center;justify-content:space-between;padding:20px 0 26px}.work-meta p{font-size:11px;color:#b7c4b0;margin:0 0 8px}.work-meta h3{font-family:'Manrope',sans-serif;font-weight:500;letter-spacing:-.04em;font-size:28px;margin:0 0 7px}.work-meta div>span{font-size:12px;opacity:.6}.work-plus{font-size:28px}.future-work{display:flex;gap:22px;align-items:center;border-top:1px solid #ffffff25;padding:24px 0;color:#c4cec0}.future-work>span:first-child{font-size:11px;color:#a3b09b}.future-work h3{font-size:21px;font-weight:400;margin:0}.future-work h3 small{display:block;font-size:12px;margin-top:7px;opacity:.55}.future-status{font-size:11px;margin-left:auto;color:#a3b09b}.archive-footer{clear:both;border-top:1px solid #ffffff25;margin-top:40px;padding:24px 0 5px;font-size:10px;letter-spacing:.14em;color:#a3b09b}
@media(min-height:900px){.hero-caption{bottom:140px}.project-index{top:160px}}@media(max-height:760px) and (min-width:761px){.project-index{top:120px;gap:10px}.project-index>.eyebrow{display:none}.hero-caption{bottom:95px}h1{font-size:54px;margin:15px 0}.hero-caption .project-tags{display:none}.hero-description{margin-bottom:0}.project-open{margin-top:8px}.view-controls{bottom:97px}}
@media(max-width:1000px){header{left:25px;right:25px}.hero-caption{left:25px}.project-index{left:27px}.view-controls{right:25px}footer{left:25px;right:25px}.gesture-hint{font-size:10px}.gesture-hint i{margin:0 4px}.pin-label{display:none}.archive-heading{width:40%}.archive-list{margin-left:45%}.archive{padding:25px}.work-meta h3{font-size:24px}}
@media(max-width:760px){#explorer{min-height:600px}header{left:22px;right:22px;top:18px}.brand{gap:10px;font-size:11px}.brand small{display:none}.brand-mark{font-size:27px}nav{gap:0}nav button{font-size:12px}#aboutButton{display:none}.menu-button{gap:14px}.project-index{display:none}.hero-caption{left:22px;bottom:148px}.hero-caption .eyebrow{font-size:10px}h1{font-size:clamp(40px,11vw,66px);margin:15px 0}.hero-description{font-size:14px;margin-bottom:13px}.project-tags{gap:6px}.project-tags span{font-size:10px}.project-open{font-size:13px;padding:8px 0;margin-top:12px;gap:30px}.view-controls{left:22px;right:22px;bottom:83px;justify-content:space-between}footer{left:22px;right:22px;min-height:62px}footer>span:first-child{display:none}.gesture-hint{font-size:10px;max-width:240px;line-height:1.8}footer button{font-size:11px;flex-shrink:0}.vignette{background:linear-gradient(180deg,#08140e70,transparent 25%,#08140e15 40%,#08140ecc 75%,#08140eee)}.pin-dot{width:32px;height:32px}.detail-content{padding:20px 23px}.detail-heading{margin-top:30px}h2{font-size:34px}.facts dd{font-size:21px}.archive{padding:20px 23px}.archive-heading{float:none;width:auto;padding-top:25px}.archive-heading h2{font-size:64px;margin:18px 0}.archive-heading>p:last-child{margin-top:20px;font-size:14px}.archive-list{margin-left:0;padding-top:30px}.archive-heading .eyebrow{font-size:10px}.archive .dialog-top>.eyebrow{font-size:9px}.work-meta h3{font-size:25px}.future-work{gap:16px}.future-work h3{font-size:20px}.archive-footer{line-height:1.7}.pin-label{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* Keep primary controls and map labels readable across viewports. */
.project-index button,.pin-label,footer button,.chapter-buttons button,.detail-bottom button{font-size:14px}.eyebrow,.project-index>.eyebrow,.hero-caption .eyebrow,.project-tags span,.day-switch button,.zoom-controls #resetView,.gesture-hint,.pin-dot{font-size:12px}.brand small{font-size:12px}.project-index b{font-size:12px}.project-open{font-size:14px}
@media(max-width:760px){nav button{font-size:14px}.hero-caption .eyebrow,.project-tags span,.archive-heading .eyebrow{font-size:12px}.gesture-hint{font-size:12px;max-width:250px}footer button{font-size:12px}.brand small{display:none}.hero-caption{bottom:154px}}

.night-sky{display:none;position:absolute;inset:0 0 auto;height:clamp(160px,25vh,260px);z-index:2;pointer-events:none;overflow:hidden}.night-view .night-sky{display:block}.night-star{position:absolute;border-radius:50%;background:#eaf0f1;box-shadow:0 0 3px #dae6ea55}.night-moon{position:absolute;left:81%;top:40%;width:46px;height:46px;filter:drop-shadow(0 0 10px #ecebd536)}.night-moon svg{display:block;width:100%;height:100%}@media(max-width:760px){.night-sky{height:190px}.night-moon{left:77%;top:38%;width:38px;height:38px}}
