@font-face{font-family:HG;src:url('/fonts/Pretendard-Light.otf');font-weight:300;font-display:swap}@font-face{font-family:HG;src:url('/fonts/Pretendard-Regular.otf');font-weight:400 800;font-display:swap}
:root{font-family:HGPreview,HG,'Malgun Gothic',sans-serif;color:#f3f0e9;background:#101214;font-synthesis:none;--muted:#a3a4a2;--accent:#edada1}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:80px;overflow-anchor:none}body{margin:0;overflow-x:hidden;overflow-anchor:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #f5bbad;outline-offset:6px}button:disabled{opacity:.35;cursor:default}.skip{position:fixed;top:-100px;left:20px;z-index:100;padding:16px;background:#fff;color:#111}.skip:focus{top:8px}
.site-header{position:fixed;top:0;left:0;right:0;z-index:10;padding:27px 4vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#101214b8,transparent);pointer-events:none}.site-header a{pointer-events:auto}.name{font-size:25px;font-weight:300;letter-spacing:-.7px;display:flex;align-items:baseline;gap:24px}.name span{font-size:11px;color:#a2a3a0;letter-spacing:1px}.site-header nav{display:flex;align-items:center;gap:34px;font-size:13px}.edition{color:#8d9493;font-size:11px}
.journey{height:600vh;position:relative}.stage{position:sticky;top:0;height:100svh;min-height:590px;overflow:hidden;background:radial-gradient(ellipse at 67% 65%,#37333028,transparent 66%)}#webgl,#space,.atmosphere{position:absolute;inset:0;pointer-events:none}#webgl canvas{display:block}#space{z-index:2}.atmosphere{z-index:0;background:radial-gradient(ellipse at 62% 100%,#a9896816,transparent 65%)}.app-object{position:absolute;background:#fff7ed;border-radius:13px;box-shadow:0 50px 95px #0008,0 0 0 1px #ffffff35;overflow:hidden;backface-visibility:hidden}.app-object iframe{display:block;border:0;width:100%;height:100%;pointer-events:none;background:#fff7ed}
.project-copy{position:absolute;z-index:4;left:5.5vw;top:24%;width:26%;pointer-events:none}.project-copy button{pointer-events:auto}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#b6b3ad;font-weight:400}.project-copy h1{font-size:clamp(34px,3.4vw,57px);font-weight:300;letter-spacing:-2px;line-height:1.22;margin:24px 0 19px}.lead{font-size:16px;font-weight:300;line-height:1.75;color:#c1bfbb;margin:0}.scene-note{margin-top:38px;min-height:90px}.scene-note span{font-size:11px;letter-spacing:1.2px;color:#dfad9e}.scene-note p{font-size:14px;line-height:1.7;color:#a5a7a5;margin:12px 0}.practice{padding:14px 0;border:0;border-bottom:1px solid #ded9ce78;background:none;font-size:14px;text-align:left;min-width:164px;min-height:48px;display:inline-flex;justify-content:space-between;gap:25px}.practice span{font-size:18px}.practice:hover{color:#ffc6b5;border-color:#ffc6b5}.disclosure{font-size:10px;line-height:1.7;color:#858b88;margin-top:16px}
.stage-bottom{position:absolute;bottom:32px;left:5.5vw;right:5.5vw;z-index:4;display:flex;align-items:center;gap:40px}.scroll-hint{font-size:11px;color:#a2a6a2;letter-spacing:.6px;margin-right:auto}.scroll-hint span{margin-left:28px}.steps{display:flex;gap:28px}.steps button{min-height:44px;padding:0;border:0;background:none;font-size:12px;color:#7b8380}.steps button[aria-current=step]{color:#f3f0e9}.arrows{display:flex;gap:8px}.arrows button{width:44px;height:44px;border:1px solid #ffffff26;border-radius:50%;background:transparent;font-size:19px}.arrows button:hover{background:#ffffff12}.progress{position:absolute;bottom:0;left:0;width:100%;height:1px;background:#ffffff14;z-index:5}.progress i{display:block;width:0;height:1px;background:#d5b3a0}#load-state{position:absolute;right:20%;top:48%;font-size:12px;color:#ddd;z-index:6}#load-state:empty{display:none}
.reading{padding:130px 8vw 100px;display:grid;grid-template-columns:1fr 1.25fr;gap:12vw;background:#151817;border-top:1px solid #ffffff12}.reading h2{font-size:46px;font-weight:300;line-height:1.3;letter-spacing:-1.5px;margin:35px 0}.reading-intro{max-width:290px;line-height:1.8;color:#adb1aa;font-size:15px}.signature{font-size:24px;font-weight:300;margin-top:60px}.signature span{display:block;font-size:12px;color:#899389;margin-top:16px}.notes article{border-bottom:1px solid #ffffff18;padding:0 0 26px;margin-bottom:32px;position:relative}.notes article>span{font-size:10px;color:#baa291}.notes h3{font-size:20px;font-weight:300;margin:14px 0}.notes p{color:#aeb5ad;font-size:14px;line-height:1.9;word-break:keep-all}.notes p.muted{font-size:12px;color:#829084}.notes details{font-size:13px;color:#949c92}.notes summary{cursor:pointer;padding:15px 0;min-height:44px}.site-footer{display:flex;justify-content:space-between;align-items:center;padding:55px 8vw;color:#949e94;background:#151817;border-top:1px solid #ffffff12;font-size:13px}.site-footer>a:first-child{font-size:23px;font-weight:300;color:#eee}.site-footer p{line-height:1.7;font-size:12px}
dialog{padding:0;border:1px solid #555c55;width:min(1180px,94vw);max-width:none;height:94svh;max-height:none;background:#101514;border-radius:12px;color:#eee;overflow:hidden}dialog::backdrop{background:#000d;backdrop-filter:blur(12px)}.practice-bar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 24px}.practice-bar strong{font-weight:400;font-size:14px}.practice-bar span{display:block;color:#a5ada4;font-size:11px;margin-top:6px}.practice-bar button{background:none;border:1px solid #505b50;border-radius:6px;padding:12px;font-size:12px;min-height:44px}#manual-container{height:calc(100% - 72px)}#manual-container iframe{height:100%;width:100%;border:0;background:#fff8ef}#manual-status:not(:empty){position:absolute;top:100px;left:30px;color:#fff;background:#272b28;padding:20px}#manual-status a{text-decoration:underline}
#static-gallery{padding:100px 22px 40px}#static-gallery>h1{font-size:42px;font-weight:300;line-height:1.2;letter-spacing:-1px}#static-gallery>p{line-height:1.7;color:#b0b7af;font-size:14px}#static-gallery>button{margin-bottom:40px}#static-items{display:grid;gap:55px;max-width:1000px;margin:0 auto}#static-items article>span{font-size:11px;color:#daa897}#static-items h2{font-weight:300;font-size:24px}#static-items p{font-size:14px;color:#acb4aa;line-height:1.8}#static-items iframe{border:1px solid #ffffff20;border-radius:12px;background:#fff7ed;width:100%;height:730px;pointer-events:none}#fallback-reason{font-size:11px!important;color:#808a7f!important}
#capture-panel{position:fixed;top:75px;right:20px;z-index:30;padding:9px;background:#202723;border:1px solid #4c6052;border-radius:6px;font-size:11px}#capture-panel button{background:transparent;border:1px solid #667568;padding:8px;margin:3px}#capture-status{display:block;padding:4px}
@media(max-width:900px){.name span,.edition{display:none}.site-header{padding:22px}.site-header nav{font-size:12px}.reading{padding:65px 24px;display:block}.reading h2{font-size:36px}.reading .signature{margin:30px 0 60px}.site-footer{padding:28px 22px;gap:20px;flex-wrap:wrap}.site-footer p{order:3;width:100%}.practice-bar{padding:0 12px;height:85px}.practice-bar span{max-width:180px;line-height:1.5}.practice-bar button{white-space:nowrap}dialog{width:100vw;height:100svh;border:0;border-radius:0;margin:0}#manual-container{height:calc(100% - 85px)}#static-items iframe{height:760px}#static-items article:last-child iframe{height:1000px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:900px){.site-header{background:#101214f5;backdrop-filter:blur(8px);border-bottom:1px solid #ffffff0c}#static-gallery>button{position:sticky;top:78px;z-index:8;background:#141a17;border:1px solid #677166;padding:12px 16px;min-width:170px;border-radius:6px}#static-gallery>h1{margin:20px 0;font-size:38px}}

.app-object[data-loaded=false]{background:#1a2226}

.person-intro{position:absolute;z-index:4;left:5.5vw;top:92px;width:29%;max-width:430px;color:#b9c5c5;scroll-margin-top:100px}
.person-intro p{font-size:13px;line-height:1.7;margin:0}
.person-intro .intro-label{font-size:10px;letter-spacing:.12em;color:#889b9d;margin-bottom:7px}
body[data-mode="static"] .person-intro{position:relative;inset:auto;margin:104px max(22px,5.5vw) 24px;width:auto;max-width:600px}
body[data-mode="static"] #static-gallery{padding-top:24px}
.vision{position:relative;padding:100px 5.5vw 130px;display:grid;grid-template-columns:1fr 1.4fr;gap:9vw;background:#131d20;border-top:1px solid #a1b8bc22;scroll-margin-top:80px}
.vision h2{font-size:clamp(32px,3.2vw,49px);font-weight:300;letter-spacing:-.04em;line-height:1.3;max-width:380px;margin:25px 0}
.vision-status{font-size:12px;color:#a6b7b8}
.vision-lead{font-size:23px;font-weight:300;line-height:1.65;margin:0 0 24px;word-break:keep-all}
.vision-summary{font-size:16px;line-height:1.9;color:#bdc9c9;margin:0;word-break:keep-all}
.vision-flow{display:flex;flex-wrap:wrap;gap:10px 13px;align-items:center;margin:30px 0;font-size:12px;color:#afc2c3;line-height:1.7}
.vision-flow span:not([aria-hidden]){border-bottom:1px solid #91b7bb50;padding:8px 0}
.vision details{border-top:1px solid #9ab3b430;padding-top:12px}
.vision summary{font-size:14px;line-height:1.7;cursor:pointer;padding:12px 0;min-height:44px;display:list-item;box-sizing:border-box}
.vision-details{padding-top:12px;max-width:710px}
.vision-details h3{font-weight:400;font-size:17px;margin:24px 0 12px}
.vision-details p{font-size:15px;line-height:1.9;color:#bac7c8;word-break:keep-all}
.vision-details .vision-limit{font-size:12px;color:#9baeb0;margin-top:26px}
.service-journey{position:relative;height:450vh}
html{scroll-padding-top:0}
#reading{scroll-margin-top:80px}
.service-webgl,.service-space{position:absolute;inset:0;pointer-events:none}
.service-space{z-index:2}
.service-stage .project-copy h2{font-size:clamp(34px,3.4vw,57px);font-weight:300;letter-spacing:-2px;line-height:1.22;margin:24px 0 19px}
.service-static{display:none}
.service-journey[data-mode="static"]{height:auto;scroll-margin-top:80px}
.service-journey[data-mode="static"] .service-stage{display:none}
.service-journey[data-mode="static"] .service-static{display:grid;gap:40px;padding:70px max(22px,5.5vw);max-width:1100px;margin:auto}
.service-static h2{font-size:40px;font-weight:300}
.service-static p{font-size:15px;line-height:1.8;color:#b9c7c7}
.service-static iframe{width:100%;height:740px;border:1px solid #69848840;border-radius:12px;background:#f5f7f8;pointer-events:none}
.service-load{position:absolute;z-index:3;left:58%;top:49%;font-size:13px;color:#d0d8d5}
.service-manual{height:calc(100% - 72px)}
.service-manual iframe{width:100%;height:100%;border:0;background:#fff}
.service-manual-status:not(:empty){position:absolute;top:100px;left:30px;color:#fff;background:#272b28;padding:20px}
.site-header nav{gap:23px}
@media(max-width:900px),(max-height:700px){.service-journey{height:auto;scroll-margin-top:80px}.service-stage{display:none}.service-static{display:grid;gap:40px;padding:65px 24px}.service-manual{height:calc(100% - 85px)}}
@media(prefers-reduced-motion:reduce){.service-journey{height:auto;scroll-margin-top:80px}.service-stage{display:none}.service-static{display:grid;gap:40px;padding:65px 24px}}
@media(max-width:390px){.site-header .meta-link{display:none}.site-header nav{gap:14px}}
@media(max-width:900px){.site-header nav{gap:22px}.vision{display:block;padding:65px 24px 80px}.vision h2{font-size:34px;max-width:none;margin:18px 0}.vision-heading{margin-bottom:35px}.vision-lead{font-size:21px}.vision-flow{display:grid;grid-template-columns:1fr}.vision-flow span[aria-hidden]{display:none}.person-intro{margin-left:24px;margin-right:24px}}

/* Navigation remains legible on the lit floor; touch targets keep their size. */
.steps button{color:#b5bfbd}.site-header nav a{display:inline-flex;align-items:center;min-height:44px}.site-header .name{min-height:44px}@media(max-width:900px){#static-gallery>button{top:96px}}
/* Source-backed decisions stay readable without opening the evidence details. */
.story-scope{grid-column:1/-1;border-top:1px solid #44514b;padding-top:22px;color:#c0c8c2;line-height:1.9}
.story-scope summary{cursor:pointer;color:#e4e7df;padding:10px 0}
.story-scope p{max-width:72ch;font-size:14px}
.story-scope summary:focus-visible{outline:2px solid #b9cabc;outline-offset:5px}
.site-header{padding-top:18px;padding-bottom:18px;background:#101719f5}
/* v09: align all reading layouts to the same responsive gutter. */
#static-gallery{padding-left:max(22px,5.5vw);padding-right:max(22px,5.5vw)}
.person-intro a{display:inline-block;margin-top:10px;font-size:11px;color:#bac9ca;text-underline-offset:5px}.person-intro p:not(.intro-label){font-size:14px;line-height:1.7}
.case-notes{padding:90px 5.5vw;background:#131b1d;border-top:1px solid #b2cdcc22;scroll-margin-top:80px}.section-heading{display:grid;grid-template-columns:.6fr 1fr 1.2fr;gap:5vw;align-items:start}.section-heading h2{font-weight:300;font-size:36px;line-height:1.35;letter-spacing:-1px;margin:0}.section-heading>p:last-child{font-size:15px;color:#b0c0bf;line-height:1.9;margin-top:0}.case-notes details{border-top:1px solid #a7bdb826;margin-top:28px;font-size:14px;line-height:1.9;color:#b6c5c2}.case-notes summary{padding:20px 0;cursor:pointer;min-height:44px;color:#e3eae4}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin:60px 0 40px}.case-grid h3{font-size:23px;font-weight:300;line-height:1.6;margin:20px 0}.case-grid p{font-size:14px;line-height:1.9;color:#afbfbc}.case-grid a{font-size:12px;display:inline-block;margin-top:22px}.feature-line{border-top:1px solid #a7bdb822;padding-top:18px}.career>div{display:grid;grid-template-columns:100px 1fr;gap:20px;margin:20px 0}.career dd{margin:0}.api-table{overflow:auto}.api-table table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.7}.api-table td,.api-table th{padding:18px;text-align:left;border-bottom:1px solid #a7bdb822;vertical-align:top}.api-table td:nth-child(2){min-width:230px;font-family:monospace}.service-journey#lms{height:660vh}.service-stage .steps{gap:18px}
@media(max-width:900px),(prefers-reduced-motion:reduce){.case-notes{padding:60px 24px}.section-heading{display:block}.section-heading h2{font-size:32px;margin:20px 0}.case-grid{grid-template-columns:1fr;gap:38px}.service-journey#lms{height:auto}.person-intro{margin-top:110px}.career>div{grid-template-columns:1fr;gap:3px}}
/* Keep the reading stage quiet; the service UI and its current action carry the scene. */
body[data-stage="1"] #words .project-copy .lead,body[data-stage="2"] #words .project-copy .lead{display:none}body[data-stage="1"] #words .scroll-hint,body[data-stage="2"] #words .scroll-hint{visibility:hidden}.next-work{filter:saturate(.55);pointer-events:none}.next-work iframe{pointer-events:none}
.service-journey#student-db{height:600vh}@media(max-width:900px),(max-height:700px),(prefers-reduced-motion:reduce){.service-journey#student-db{height:auto}}
.person-intro .solo-line{font-size:10px!important;color:#d0b8a1;margin-top:8px!important;letter-spacing:.03em}
.person-intro .solo-line{font-size:12px!important;font-weight:500;color:#d6e5dc;letter-spacing:0}
.project-copy{pointer-events:auto}
