:root{--navy:#020a1b;--navy2:#061a31;--ocean:#007fac;--cyan:#00a5d8;--ink:#071426;--muted:#5d6877;--line:#dbe1e7;--paper:#f3f6f8;--white:#fff;--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Pretendard,"Apple SD Gothic Neo","Noto Sans KR",Arial,sans-serif;word-break:keep-all}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}
.skip-link{position:fixed;top:-80px;left:20px;z-index:1000;padding:12px 16px;background:white;color:var(--navy)}.skip-link:focus{top:20px}
.site-header{position:fixed;inset:0 0 auto;z-index:60;height:88px;display:flex;align-items:center;gap:42px;padding:0 max(28px,calc((100vw - var(--max))/2));color:white;border-bottom:1px solid rgba(255,255,255,.22);transition:.25s}
.site-header.scrolled,body.menu-open .site-header{height:72px;background:rgba(2,10,27,.96);border-color:rgba(255,255,255,.1);box-shadow:0 10px 40px rgba(0,0,0,.18);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);font-size:13px;font-weight:900}.brand-copy{display:grid;gap:3px;font-size:11px;line-height:1;font-weight:800;letter-spacing:.08em}.brand-copy small{color:#88cde4;font-size:7px;letter-spacing:.18em}
.desktop-nav{display:flex;gap:34px;margin-left:auto}.desktop-nav a{position:relative;padding:34px 0;color:rgba(255,255,255,.78);font-size:11px;letter-spacing:.08em}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:26px;height:2px;background:var(--cyan);transition:right .2s}.desktop-nav a:hover{color:#fff}.desktop-nav a:hover:after{right:0}
.header-cta{display:flex;gap:22px;align-items:center;padding:11px 15px;border:1px solid rgba(255,255,255,.45);font-size:9px;letter-spacing:.12em}.header-cta:hover{background:white;color:var(--navy)}
.menu-toggle{display:none;width:42px;height:42px;margin-left:auto;padding:0;border:0;background:transparent}.menu-toggle span{display:block;width:22px;height:1px;margin:7px auto;background:white;transition:transform .2s}
.hero{position:relative;min-height:920px;height:100svh;overflow:hidden;color:white;background:var(--navy)}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.015);animation:hero-in 1.4s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,8,24,.92),rgba(1,10,25,.72) 48%,rgba(1,12,26,.24)),linear-gradient(0deg,rgba(1,8,20,.9),transparent 40%)}
.hero-inner{position:relative;z-index:2;max-width:var(--max);height:100%;display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:100px;align-items:end;margin:0 auto;padding:160px 0 205px}.hero-copy{max-width:890px}.eyebrow{margin:0 0 22px;color:var(--cyan);font-size:10px;font-weight:800;letter-spacing:.18em}.hero h1{margin:0;font-size:clamp(48px,5.3vw,80px);line-height:1.12;letter-spacing:-.052em;font-weight:760}.hero-description{max-width:720px;margin:28px 0 0;color:rgba(255,255,255,.72);font-size:14px;line-height:1.9}
.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:35px}.button{display:inline-flex;align-items:center;justify-content:space-between;min-width:190px;gap:24px;padding:15px 18px;border-radius:3px;font-size:11px;font-weight:700;transition:.2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ocean);color:white}.button-primary:hover{background:var(--cyan)}.button-ghost{border:1px solid rgba(255,255,255,.44);color:white}.button-ghost:hover{background:white;color:var(--navy)}
.focus-panel{align-self:end;margin-bottom:2px;border-top:2px solid var(--cyan);background:rgba(2,10,27,.68);backdrop-filter:blur(10px)}.focus-panel>p{margin:0;padding:14px 18px 11px;color:#79bfd7;font-size:8px;font-weight:800;letter-spacing:.18em}.focus-link{display:grid;grid-template-columns:34px 1fr;align-items:center;min-height:49px;padding:0 17px;border-top:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.62);font-size:11px}.focus-link span{font-size:8px;color:#6b8fa1}.focus-link:hover,.focus-link.active{color:white;background:rgba(0,165,216,.18)}.focus-link.active span{color:var(--cyan)}
.hero-proof{position:absolute;z-index:3;left:max(28px,calc((100vw - var(--max))/2));right:max(28px,calc((100vw - var(--max))/2));bottom:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.26)}.hero-proof article{min-height:128px;display:flex;align-items:center;gap:22px;padding:22px 30px;border-right:1px solid rgba(255,255,255,.22)}.hero-proof article:first-child{padding-left:0}.hero-proof article:last-child{border:0}.hero-proof b{min-width:74px;font-size:34px;letter-spacing:-.04em}.hero-proof b small{font-size:16px;color:var(--cyan)}.hero-proof span{color:rgba(255,255,255,.6);font-size:10px;line-height:1.65}.scroll-cue{position:absolute;z-index:4;right:25px;bottom:33px;display:grid;gap:10px;justify-items:center;color:rgba(255,255,255,.55);font-size:7px;letter-spacing:.18em}.scroll-cue i{width:1px;height:38px;background:linear-gradient(white 45%,transparent 45%);background-size:1px 9px}
.section{max-width:var(--max);margin:0 auto;padding:138px 0}.section-index{display:flex;align-items:center;gap:15px;margin-bottom:74px}.section-index span{width:32px;height:32px;display:grid;place-items:center;background:var(--navy);color:white;font-size:9px}.section-index p{margin:0;color:#7a8592;font-size:9px;font-weight:800;letter-spacing:.18em}
.section-heading{display:grid;grid-template-columns:1.35fr .65fr;gap:100px;align-items:end}.section-heading h2{margin:0;font-size:clamp(42px,5vw,70px);line-height:1.12;letter-spacing:-.055em}.section-heading h2 em,.contact h2 em{color:var(--ocean);font-style:normal}.section-heading>p{max-width:410px;margin:0 0 5px;color:var(--muted);font-size:13px;line-height:1.9}
.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:74px}.capability-grid article{min-height:330px;padding:30px;border:1px solid var(--line);border-radius:8px;background:white;transition:.25s}.capability-grid article:hover{transform:translateY(-5px);border-color:#9bc1d0;box-shadow:0 22px 55px rgba(10,35,60,.09)}.capability-grid article>span,.project-story article>span{color:var(--ocean);font-size:8px;font-weight:800;letter-spacing:.16em}.capability-grid h3{margin:76px 0 18px;font-size:25px}.capability-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.capability-grid ul,.role-tags{display:flex;flex-wrap:wrap;gap:7px;margin:27px 0 0;padding:0;list-style:none}.capability-grid li,.role-tags span,.tool-row span{padding:7px 10px;border:1px solid var(--line);border-radius:3px;color:#64717d;font-size:8px}
.work{background:var(--paper)}.work-intro{padding-bottom:86px}.project-list{display:grid}.project{padding:0 max(28px,calc((100vw - var(--max))/2)) 130px}.project-shell{overflow:hidden;border-radius:10px;background:white;box-shadow:0 30px 80px rgba(3,20,40,.1)}.project-meta{min-height:60px;display:flex;align-items:center;gap:26px;padding:0 30px;border-bottom:1px solid var(--line);color:#73808e;font-size:8px;letter-spacing:.12em}.project-meta .project-number{margin-right:auto;color:var(--ocean);font-weight:900}
.project-lead{display:grid;grid-template-columns:.82fr 1.18fr;min-height:610px}.project-copy{align-self:center;padding:70px 62px}.status{display:inline-flex;padding:8px 10px;border:1px solid #9fcfbd;border-radius:3px;color:#087856;font-size:8px;font-weight:800}.status-blue{border-color:#4595ae;color:#80def3}.project-copy h3{margin:24px 0;font-size:clamp(40px,4vw,60px);line-height:1.09;letter-spacing:-.055em}.project-copy>p{margin:0;color:var(--muted);font-size:12px;line-height:1.85}
.entity-visual{display:grid;grid-template-rows:1fr 78px 1fr;align-content:center;padding:54px;background:#e9eef2}.structure-row{align-self:center}.structure-row small{display:block;margin-bottom:14px;color:var(--ocean);font-size:8px;font-weight:800;letter-spacing:.16em}.structure-row>div{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.structure-row span{display:grid;gap:8px;padding:19px;border:1px solid #74a9bc;background:white;color:var(--navy);font-size:11px;font-weight:800}.structure-row span em{color:#6e7984;font-size:9px;font-style:normal;font-weight:500}.muted-row small{color:#8a6f6f}.muted-row span{border-color:#cebebe;color:#725757}.structure-arrow{position:relative;display:grid;place-items:center}.structure-arrow i{position:absolute;width:1px;height:100%;background:#adb7c0}.structure-arrow b{position:relative;padding:7px 10px;background:var(--ocean);color:white;font-size:7px;letter-spacing:.12em}.entity-flow{grid-template-columns:1fr auto 1fr auto 1.6fr!important;align-items:center}.entity-flow b{color:#77909b;font-size:13px;text-align:center}
.project-story{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.project-story article{min-height:285px;padding:30px;border-right:1px solid var(--line)}.project-story article:last-child{border-right:0}.project-story h4{margin:47px 0 14px;font-size:18px;line-height:1.45}.project-story p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.metric{background:var(--ocean);color:white}.metric>span{color:#a9edff!important}.metric strong{display:block;margin-top:35px;font-size:48px;letter-spacing:-.05em}.metric strong small{font-size:18px}.metric h4{margin:5px 0 14px}.metric p{color:rgba(255,255,255,.72)}
.project-detail{border-top:1px solid var(--line)}.project-detail summary{display:flex;justify-content:space-between;padding:23px 30px;cursor:pointer;list-style:none;font-size:10px}.project-detail summary::-webkit-details-marker{display:none}.project-detail summary b{color:var(--ocean);font-size:8px;letter-spacing:.1em}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;padding:35px 30px;border-top:1px solid var(--line);background:#f6f8f9}.detail-grid h4{margin:0 0 12px;font-size:14px}.detail-grid p{margin:0;color:var(--muted);font-size:10px;line-height:1.75}
.project-indoor{padding-top:0;padding-bottom:0;background:var(--navy)}.project-indoor .project-shell{border-radius:0;background:var(--navy);box-shadow:none;color:white}.project-indoor .project-meta{border-color:rgba(255,255,255,.14);color:#8297a7}.project-lead-dark{grid-template-columns:.72fr 1.28fr;min-height:680px}.project-lead-dark .project-copy>p{color:#aebbc5}.dark-tags span{border-color:#27455c;color:#9eb7c8}.project-image{min-width:0;align-self:center;margin:0;padding:42px 0 42px 55px}.project-image img{width:100%;min-height:430px;object-fit:cover;object-position:center;border:1px solid rgba(255,255,255,.12)}.project-image figcaption{margin-top:13px;color:#718998;font-size:8px;letter-spacing:.12em}
.dark-story{border-color:rgba(255,255,255,.14)}.dark-story article{border-color:rgba(255,255,255,.14)}.dark-story h4{color:white}.dark-story p{color:#9eafbb}.report-card{position:relative;overflow:hidden;padding:0!important;background:#051327}.report-card img{width:100%;height:285px;object-fit:cover;opacity:.78}.report-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,10,27,.85),transparent 55%)}.report-card span{position:absolute;z-index:2;left:24px;bottom:22px;color:#9bdced!important}.metric-cyan{background:#006d93}.dark-detail{border-color:rgba(255,255,255,.14)}.dark-detail .detail-grid{border-color:rgba(255,255,255,.14);background:#06152a}.dark-detail .detail-grid p{color:#97a9b6}
.process-track{display:grid;grid-template-columns:repeat(4,1fr);margin-top:74px;border-block:1px solid var(--line)}.process-track article{min-height:275px;padding:30px;border-right:1px solid var(--line)}.process-track article:last-child{border:0}.process-track span{color:var(--ocean);font-size:9px;font-weight:800}.process-track h3{margin:64px 0 15px;font-size:19px}.process-track p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.process blockquote{max-width:850px;margin:90px auto 0;color:var(--navy);font-size:clamp(24px,3vw,38px);font-weight:800;line-height:1.45;text-align:center;letter-spacing:-.04em}.process blockquote:before{content:"“";display:block;margin-bottom:8px;color:var(--cyan);font-size:54px;line-height:.5}.process blockquote cite{display:block;margin-top:20px;color:#77838e;font-size:9px;font-style:normal;font-weight:500;letter-spacing:.06em}
.experience{background:var(--navy2);color:white}.section-index.light span{background:white;color:var(--navy)}.section-index.light p,.section-heading.light>p{color:#9cabb7}.section-heading.light h2 em{color:var(--cyan)}.timeline{margin-top:70px;border-top:1px solid rgba(255,255,255,.17)}.timeline article{display:grid;grid-template-columns:240px 1fr;gap:55px;padding:34px 0;border-bottom:1px solid rgba(255,255,255,.17)}.timeline time{color:#8ca0b0;font-size:9px;letter-spacing:.1em}.timeline article div>span{color:#69bed8;font-size:8px;letter-spacing:.16em}.timeline h3{margin:8px 0;font-size:21px}.timeline p{margin:0;color:#9eafbb;font-size:10px;line-height:1.7}.tool-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:40px}.tool-row span{border-color:#284157;color:#9fb1be}
.contact{position:relative;min-height:760px;display:grid;place-items:center;overflow:hidden;color:white;text-align:center;background:var(--navy)}.contact>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.contact-shade{position:absolute;inset:0;background:rgba(1,9,22,.82)}.contact-inner{position:relative;z-index:2;max-width:1000px;padding:100px 30px}.contact h2{margin:0;font-size:clamp(52px,6.4vw,92px);line-height:1.07;letter-spacing:-.06em}.contact>.contact-inner>p:not(.eyebrow){margin:28px 0 0;color:rgba(255,255,255,.65);font-size:13px}.contact-actions{justify-content:center}.footer{min-height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - var(--max))/2));background:var(--navy);border-top:1px solid rgba(255,255,255,.12);color:#718493;font-size:8px;letter-spacing:.13em}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}body[data-focus="tech"] .project-indoor{order:-1;padding-top:130px}body[data-focus="tech"] .project-fastfive{padding-top:130px}
@keyframes hero-in{from{transform:scale(1.06);opacity:.6}to{transform:scale(1.015);opacity:1}}
@media(max-width:1380px){.hero-inner,.section{margin-left:28px;margin-right:28px}}
@media(max-width:1000px){.hero-inner{grid-template-columns:1fr;gap:32px;padding-bottom:225px}.focus-panel{width:min(100%,580px);display:grid;grid-template-columns:repeat(3,1fr)}.focus-panel>p{grid-column:1/-1}.focus-link{grid-template-columns:26px 1fr;border-right:1px solid rgba(255,255,255,.13)}.section-heading{grid-template-columns:1fr;gap:30px}.project-lead,.project-lead-dark{grid-template-columns:1fr}.entity-visual{min-height:500px}.project-image{padding:0 0 60px 55px}.project-story{grid-template-columns:repeat(2,1fr)}.project-story article:nth-child(2){border-right:0}.project-story article:nth-child(-n+2){border-bottom:1px solid var(--line)}.dark-story article:nth-child(-n+2){border-bottom-color:rgba(255,255,255,.14)}}
@media(max-width:760px){.site-header{height:70px;padding:0 20px}.brand-copy,.header-cta{display:none}.menu-toggle{display:block}body.menu-open .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}body.menu-open .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.desktop-nav{position:fixed;inset:70px 0 auto;display:grid;gap:0;padding:25px 20px 35px;background:rgba(2,10,27,.98);transform:translateY(-130%);opacity:0;transition:.25s}.menu-open .desktop-nav{transform:none;opacity:1}.desktop-nav a{padding:18px 5px;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px}.desktop-nav a:after{display:none}.hero{min-height:1020px;height:auto}.hero-media{object-position:61% center}.hero-shade{background:linear-gradient(90deg,rgba(1,8,24,.94),rgba(1,10,25,.62)),linear-gradient(0deg,rgba(1,8,20,.95),transparent 50%)}.hero-inner{min-height:1020px;margin:0;padding:145px 20px 310px;align-content:end}.hero h1{font-size:42px}.hero-description{font-size:12px;line-height:1.75}.hero-actions .button{width:100%}.focus-panel{grid-template-columns:1fr;width:100%}.focus-link{border-right:0}.hero-proof{left:20px;right:20px;grid-template-columns:1fr}.hero-proof article{min-height:66px;padding:10px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.hero-proof article:last-child{border:0}.hero-proof b{min-width:62px;font-size:24px}.hero-proof span{font-size:9px}.scroll-cue{display:none}.section{margin:0;padding:95px 20px}.section-index{margin-bottom:52px}.section-heading h2{font-size:40px}.capability-grid{grid-template-columns:1fr}.capability-grid article{min-height:270px}.capability-grid h3{margin-top:48px}.work-intro{padding-bottom:70px}.project{padding:0 20px 85px}.project-shell{border-radius:8px}.project-meta{padding:0 18px;gap:14px;overflow-x:auto}.project-meta span,.project-meta time{white-space:nowrap}.project-copy{padding:46px 22px}.project-copy h3{font-size:39px}.entity-visual{min-height:440px;padding:25px 20px}.entity-flow{grid-template-columns:1fr!important}.entity-flow b{transform:rotate(90deg)}.project-story{grid-template-columns:1fr}.project-story article{min-height:235px;border-right:0;border-bottom:1px solid var(--line)}.dark-story article{border-bottom-color:rgba(255,255,255,.14)}.project-image{padding:0 0 45px 20px}.project-image img{min-height:260px;object-position:left center}.detail-grid{grid-template-columns:1fr;gap:28px;padding:30px 22px}.process-track{grid-template-columns:1fr}.process-track article{min-height:205px;border-right:0;border-bottom:1px solid var(--line)}.process-track h3{margin-top:38px}.process blockquote{margin-top:70px;font-size:24px}.timeline article{grid-template-columns:1fr;gap:13px}.contact{min-height:650px}.contact h2{font-size:46px}.contact-actions .button{width:100%}.footer{min-height:125px;flex-wrap:wrap;gap:12px;padding:28px 20px}body[data-focus="tech"] .project-indoor,body[data-focus="tech"] .project-fastfive{padding-top:85px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
