:root{--paper:#f5f6f3;--ink:#141513;--muted:#666963;--line:rgba(20,21,19,.18);--lime:#d4fa35;--orange:#ff6738;--sans:"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--mono:"Consolas","SFMono-Regular",monospace;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button,a{-webkit-tap-highlight-color:transparent}img,video{display:block;max-width:100%}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:600;line-height:1.4;text-wrap:pretty;overflow-wrap:anywhere}p{overflow-wrap:anywhere;text-wrap:pretty}h2{font-size:2.75rem;line-height:1.35}h3{font-size:1.5rem}h4{font-size:1.0625rem}em{font-style:normal}a:focus-visible,button:focus-visible{outline:3px solid #657b00;outline-offset:6px}
.page-width{width:calc(100% - 112px);max-width:1440px;margin-inline:auto}.section{padding:34px 0 104px}.section-label{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:.8125rem;line-height:1.6}.meta,.eyebrow{font-family:var(--mono);font-size:.8125rem;line-height:1.7}.eyebrow{display:block;margin-bottom:20px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:48px;margin:74px 0 54px}.section-heading>p{max-width:480px;color:var(--muted)}
.skip-link{position:fixed;top:-100px;left:24px;z-index:100;background:white;color:black;padding:10px 20px}.skip-link:focus{top:12px}.site-header{position:fixed;inset:0 0 auto;z-index:20;height:76px;padding:0 40px;display:flex;justify-content:space-between;align-items:center;background:rgba(245,246,243,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.logo{font-size:1.25rem;font-weight:700;line-height:1}.logo span{color:#729000;margin-inline:4px}.nav-links{display:flex;gap:32px;font-size:.875rem}.nav-links a{position:relative;padding-block:8px}.nav-links a::after{content:"";position:absolute;bottom:3px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav-links a:hover::after{transform:scaleX(1)}.icon-button{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid currentColor;border-radius:50%;line-height:1}.menu-toggle{display:none}.menu-lines{width:18px;height:8px;border-block:1px solid currentColor}
.hero{position:relative;isolation:isolate;min-height:0;height:180vh;margin-top:76px;color:white;background:#111211;overflow:clip;--story-progress:0}.hero-stage{position:sticky;top:76px;height:calc(100svh - 76px);min-height:520px;overflow:hidden;background:#111211}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.hero-shade{position:absolute;inset:0;background:rgba(0,0,0,.56);z-index:1}.hero-content{position:relative;z-index:2;height:100%;min-height:inherit;display:flex;flex-direction:column;padding:30px 0 48px}.hero-meta{display:flex;justify-content:space-between;gap:24px;color:#fff}.hero-heading{margin-block:auto;padding-block:72px;max-width:720px;text-shadow:0 2px 22px rgba(0,0,0,.4)}.hero-heading .eyebrow{color:white}.hero-heading h1{font-size:6rem;line-height:1.2}.hero-tagline{font-size:2rem;margin-top:24px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:28px}.hero-bottom>p{max-width:520px;font-size:1.125rem}.round-link{border:1px solid rgba(255,255,255,.8);border-radius:50%;width:72px;height:72px;flex:none;display:grid;place-items:center;font-size:1.75rem;transition:background .3s,color .3s}.round-link:hover{background:#fff;color:#111}.video-toggle{position:absolute;bottom:140px;right:56px;color:#fff;background:rgba(0,0,0,.4);z-index:3}.hero-transition{position:absolute;inset:auto 0 0;min-height:66vh;padding:100px 0 70px;background:linear-gradient(180deg,rgba(20,21,19,0) 0%,rgba(20,21,19,.9) 38%,#141513 100%);opacity:var(--story-progress);transform:translateY(calc((1 - var(--story-progress))*80px));transition:opacity .15s linear,transform .15s linear;pointer-events:none}.hero-transition-inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:52px;align-items:end}.hero-transition h2{font-size:clamp(2rem,4vw,4rem);max-width:620px}.transition-image{grid-column:2;max-width:620px;overflow:hidden;border:1px solid rgba(245,246,243,.3);box-shadow:0 20px 80px rgba(0,0,0,.3)}.transition-image img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:saturate(.8)}
.about-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.5fr);gap:100px;padding-top:76px}.identity-mark{display:flex;flex-direction:column;justify-content:center;align-items:center;aspect-ratio:4/3;border:1px solid var(--line);font-size:5rem;font-weight:600;background:#e4e8df;color:#293723;margin-bottom:24px}.identity-mark>span{font-family:var(--mono);font-size:.875rem;font-weight:400}.identity-panel>p{font-size:.875rem}.profile-facts{margin:24px 0 0;border-top:1px solid var(--line);font-size:.875rem}.profile-facts>div{display:grid;grid-template-columns:75px minmax(0,1fr);gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.about-copy h2{margin-bottom:24px}.about-copy>.lead{font-size:1.5rem;line-height:1.65;color:var(--ink)}.about-copy>p{margin-top:18px;max-width:780px;color:var(--muted)}.directory{margin-top:34px;border-top:1px solid var(--line)}.directory a{display:grid;grid-template-columns:40px 1fr 28px;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0;font-size:1.0625rem;transition:padding .25s}.directory a:hover{padding-left:12px}.directory span{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.directory b{font-weight:400;font-size:1.4rem}
.dark{background:#141513;color:#f5f6f3;--muted:#b8bcb3;--line:rgba(245,246,243,.2)}.experience-entry{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;padding:40px 0;border-top:1px solid var(--line)}.entry-meta>p+p{margin-top:8px;color:var(--muted);font-size:.875rem}.entry-body h3{font-size:1.625rem}.role{margin:10px 0 22px;color:var(--muted);font-size:.9375rem}.entry-body>p:not(.role){margin-top:16px;max-width:930px;color:var(--muted)}.entry-body>.result{padding-left:18px;border-left:2px solid var(--lime);margin-top:26px!important}.result>span{display:block;color:var(--lime);font-size:.8125rem;margin-bottom:6px}.duration{display:inline-block;margin-top:20px;font-size:.8125rem;color:var(--lime)}.campaign-steps{list-style:none;padding:0;margin:30px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;counter-reset:steps}.campaign-steps li{counter-increment:steps;border-top:1px solid var(--line);padding-top:16px}.campaign-steps h4::before{content:"0" counter(steps) " / ";font-family:var(--mono);color:var(--lime);font-size:.8125rem}.campaign-steps p{margin-top:10px;font-size:.9375rem;color:var(--muted)}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px}.project-card{min-width:0}.project-image{display:block;position:relative;overflow:hidden;aspect-ratio:1672/941;background:#e6e7e1}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.project-image:hover img{transform:scale(1.035)}.image-arrow{position:absolute;right:18px;bottom:18px;width:42px;height:42px;background:var(--paper);color:var(--ink);display:grid;place-items:center;border-radius:50%;font-size:1.3rem}.project-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;color:var(--muted);margin:20px 0 14px}.project-card h3{font-size:1.875rem;line-height:1.45}.project-subtitle{font-size:1.0625rem;margin-top:6px}.project-card>p:not(.project-subtitle){margin-top:18px;color:var(--muted);max-width:640px}.project-tags{font-size:.8125rem}.project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-top:22px}.demo-link{display:inline-flex;align-items:center;gap:22px;padding:11px 16px;background:var(--ink);color:var(--paper);font-size:.875rem;font-weight:600}.demo-link span,.text-link span{transition:transform .2s}.demo-link:hover span,.text-link:hover span{transform:translate(3px,-3px)}.text-link{display:inline-flex;align-items:center;gap:26px;font-size:.875rem;border-bottom:1px solid currentColor;padding:8px 0;margin-top:18px}.project-actions .text-link{margin-top:0}
.lime{background:var(--lime);--muted:#485021}.skill-list{border-top:1px solid var(--line)}.skill-row{display:grid;grid-template-columns:42px 260px minmax(0,1fr);gap:30px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}.skill-row h3{font-size:1.375rem}.tool-list{margin-top:14px;font-size:.875rem;color:var(--muted)}.skill-note{margin-top:30px;font-size:.875rem;color:var(--muted)}.award-row{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(220px,.75fr);gap:30px;align-items:center;border-top:1px solid var(--line);padding:23px 0}.award-row h3{font-size:1.25rem}.award-row>p{text-align:right;color:var(--muted);font-size:.9375rem}.award-row:last-child{border-bottom:1px solid var(--line)}
.awards-section{background:#f0f0eb}.board-carousel{position:relative;min-height:620px;margin:0 auto 90px;outline:none}.board-track{position:relative;height:560px;max-width:1180px;margin:0 auto}.board-card{position:absolute;top:42px;left:50%;width:min(33vw,390px);min-width:260px;transform:translateX(-50%) scale(.72);opacity:0;pointer-events:none;transition:transform .65s var(--ease),opacity .65s var(--ease),filter .65s var(--ease);filter:grayscale(.35)}.board-card>a{display:block}.board-card.is-left,.board-card.is-right,.board-card.is-center{opacity:1;pointer-events:auto}.board-card.is-left{transform:translateX(calc(-50% - min(31vw,370px))) scale(.72)}.board-card.is-right{transform:translateX(calc(-50% + min(31vw,370px))) scale(.72)}.board-card.is-center{top:0;transform:translateX(-50%) scale(1);z-index:3;filter:none}.board-card.is-center .board-copy{opacity:1;transform:none}.board-card:not(.is-center) .board-copy{opacity:0;max-height:0;overflow:hidden}.board-card img,.board-poster{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--ink);background:#e5e4dc}.board-number{display:block;margin-bottom:12px;color:var(--muted)}.board-copy{padding-top:16px;transition:opacity .35s,transform .35s}.board-copy h3{font-size:1.35rem}.board-copy p{margin-top:8px;color:var(--muted);font-size:.9375rem;line-height:1.6}.board-copy ul{padding:0;margin:15px 0 0;list-style:none;color:var(--muted);font-size:.875rem}.board-copy li+li{margin-top:4px}.board-copy li::before{content:'•';margin-right:8px;color:var(--orange)}.board-poster{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:22px;line-height:1.15}.board-poster span{font-size:clamp(1.5rem,3vw,2.7rem);font-weight:700}.board-poster small{margin-top:18px;font-size:.875rem;letter-spacing:.08em}.poster-lime{background:var(--lime)}.poster-orange{background:var(--orange)}.poster-dark{background:#242721;color:#f5f6f3}.poster-paper{background:#e4e8df}.board-nav,.award-nav{position:absolute;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;transition:background .2s,color .2s}.board-nav{top:205px;width:54px;height:54px;font-size:1.4rem}.board-nav:hover,.award-nav:hover{background:var(--ink);color:var(--paper)}.board-prev{left:0}.board-next{right:0}.board-dots{position:absolute;bottom:4px;left:50%;display:flex;gap:8px;transform:translateX(-50%)}.board-dots button{width:8px;height:8px;padding:0;border:1px solid var(--ink);border-radius:50%}.board-dots button.is-active{background:var(--ink)}.awards-pager{position:relative;padding:26px 76px 18px;border-top:1px solid var(--line)}.awards-pages{overflow:hidden}.award-page{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;min-width:100%;transition:transform .5s var(--ease)}.award-card{min-height:150px;padding:22px 18px;border:1px solid var(--line);background:rgba(255,255,255,.44);scroll-margin-top:100px}.award-card h3{margin-top:20px;font-size:1.1rem}.award-card p{margin-top:8px;color:var(--muted);font-size:.875rem;line-height:1.6}.award-card-note{background:transparent;border-style:dashed}.award-nav{top:80px;width:44px;height:44px;font-size:1.15rem}.award-prev{left:0}.award-next{right:0}.award-page-status{margin-top:22px;text-align:center;color:var(--muted)}
.campus-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;border-top:1px solid var(--line);padding:36px 0}.campus-row>p{color:var(--muted)}.campus-row h3{font-size:1.375rem}.campus-row div>p{margin-top:14px;color:var(--muted);max-width:900px}.outlook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px}.outlook-grid h3{margin-bottom:18px}.outlook-grid p{color:var(--muted);max-width:620px}.plan-title{margin-top:64px;font-size:1.375rem}.plan-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding:0;margin:30px 0 0}.plan-grid li{border-top:2px solid var(--ink);padding-top:20px}.plan-grid .meta{color:var(--muted)}.plan-grid h4{font-size:1.25rem;margin-top:16px}.plan-grid p{margin-top:14px;color:var(--muted);font-size:.9375rem}
.contact{background:var(--orange);padding-bottom:0}.contact-title{font-size:4.5rem;line-height:1.45;font-weight:500;padding:116px 0 100px;max-width:1400px}.contact-title>span{display:inline-block;white-space:nowrap}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:70px}.contact-bottom p{max-width:520px}.contact-mail{font-size:1.25rem;line-height:1.7;border-bottom:1px solid var(--ink);overflow-wrap:anywhere}.site-footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:22px 0;font-size:.8125rem}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(20px);transition:opacity .65s var(--ease),transform .65s var(--ease)}.js-motion .reveal.visible{opacity:1;transform:none}
.case-main{padding-top:76px}.case-header{padding:58px 0 48px}.case-header h1{font-size:3.25rem;line-height:1.3;margin:24px 0 16px}.case-header .lead{font-size:1.25rem;max-width:960px}.case-actions{margin-top:28px}.case-cover{width:100%;aspect-ratio:1672/941;object-fit:contain}.case-caption{font-size:.8125rem;color:var(--muted);margin-top:10px}.case-section{padding:52px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:250px minmax(0,1fr);gap:60px}.case-section h2{font-size:1.5rem}.case-section p+p{margin-top:18px}.case-section ul{padding-left:22px;margin:0}.case-section li+li{margin-top:14px}.case-section .notice{color:var(--muted)}.case-bottom{padding:48px 0 80px;display:flex;justify-content:space-between;align-items:center;gap:24px}
@media(min-width:1700px){.page-width{max-width:1580px}.hero-heading h1{font-size:7rem}.hero-tagline{font-size:2.25rem}.contact-title{font-size:5rem}}
@media(max-width:1100px){.page-width{width:calc(100% - 72px)}.about-grid{gap:52px;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}.section-heading{align-items:start;flex-direction:column;gap:18px}.experience-entry,.campus-row{grid-template-columns:190px minmax(0,1fr);gap:40px}.skill-row{grid-template-columns:32px 200px minmax(0,1fr);gap:20px}.contact-title{font-size:3.5rem}.hero-heading h1{font-size:5rem}.case-section{grid-template-columns:180px minmax(0,1fr);gap:36px}.outlook-grid{gap:48px}.award-row{grid-template-columns:32px minmax(0,1fr) minmax(180px,.7fr);gap:20px}}
@media(max-width:760px){html{scroll-padding-top:82px}.page-width{width:calc(100% - 40px)}.section{padding:26px 0 68px}h2{font-size:2rem}.section-label{font-size:.75rem;gap:12px}.section-label>span:last-child{display:none}.site-header{height:66px;padding:0 20px}.menu-toggle{display:grid}.nav-links{display:none;position:fixed;top:66px;left:0;right:0;height:calc(100dvh - 66px);background:var(--paper);padding:40px 24px;flex-direction:column;gap:20px;font-size:1.25rem}.nav-links.open{display:flex}.hero{margin-top:66px;height:calc(100svh - 118px);min-height:0}.hero-content{padding:24px 0 28px}.hero-meta{font-size:.75rem}.hero-heading{padding:48px 0}.hero-heading h1{font-size:4rem}.hero-tagline{font-size:1.5rem;margin-top:18px}.hero-heading .eyebrow{font-size:.75rem}.hero-bottom>p{font-size:1rem;max-width:300px}.round-link{width:52px;height:52px}.video-toggle{right:20px;bottom:120px}.hero-video{object-position:55% center}.about-grid{grid-template-columns:1fr;gap:40px;padding-top:44px}.identity-mark{aspect-ratio:16/7;font-size:4rem}.about-copy>.lead{font-size:1.25rem}.section-heading{margin:48px 0 34px}.experience-entry,.campus-row{grid-template-columns:1fr;gap:20px;padding:30px 0}.entry-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px}.entry-meta>p+p,.duration{margin:0}.entry-body h3{font-size:1.375rem}.campaign-steps{gap:24px;grid-template-columns:1fr}.projects-grid{grid-template-columns:1fr;gap:54px}.project-card h3{font-size:1.625rem}.skill-row{grid-template-columns:28px minmax(0,1fr);gap:12px 18px;padding:25px 0}.skill-row>div{grid-column:2}.skill-row h3{font-size:1.25rem}.award-row{grid-template-columns:28px minmax(0,1fr);gap:8px 16px}.award-row h3{font-size:1.125rem}.award-row>p{grid-column:2;text-align:left}.outlook-grid,.plan-grid{grid-template-columns:1fr;gap:34px}.plan-title{margin-top:44px}.contact{padding-bottom:0}.contact-title{font-size:2rem;line-height:1.6;padding:72px 0 56px}.contact-title>span{white-space:normal}.contact-bottom{flex-direction:column;align-items:start;gap:24px;margin-bottom:44px}.contact-mail{font-size:1.0625rem}.site-footer{font-size:.75rem;flex-wrap:wrap;gap:8px}.case-main{padding-top:66px}.case-header{padding:38px 0 30px}.case-header h1{font-size:2.25rem}.case-header .lead{font-size:1.125rem}.case-section{grid-template-columns:1fr;gap:22px;padding:34px 0}.case-section h2{font-size:1.375rem}.case-bottom{flex-wrap:wrap}}
@media(max-width:380px){.hero-heading h1{font-size:3.5rem}.hero-meta{flex-direction:column;gap:6px}.contact-title{font-size:1.75rem}.profile-facts>div{grid-template-columns:66px minmax(0,1fr)}}
@media(max-height:660px){.hero-content{padding-block:18px 24px}.hero-heading{padding-block:16px}.hero-heading h1{font-size:3rem}.hero-heading .eyebrow{margin-bottom:12px}.hero-tagline{font-size:1.25rem;margin-top:12px}.hero-bottom>p{font-size:.875rem;max-width:520px}.hero-meta{flex-direction:row}.round-link{width:44px;height:44px}.video-toggle{bottom:92px}}
@media(max-height:450px){.hero-heading .eyebrow{display:none}.hero-heading{padding-block:6px}.hero-heading h1{font-size:2.5rem}.hero-tagline{font-size:1rem;margin-top:4px}.hero-bottom>p{font-size:.8125rem;max-width:460px}.hero-content{padding-block:10px 12px}.hero-meta{font-size:.75rem}.video-toggle{bottom:72px}}
@media(max-width:760px){.hero{height:auto;margin-top:66px}.hero-stage{position:relative;top:auto;height:calc(100svh - 66px);min-height:470px}.hero-transition{display:none!important}.hero-transition-inner{display:none}.transition-image{display:none}.board-carousel{min-height:560px;margin-bottom:58px}.board-track{height:500px}.board-card{width:min(68vw,300px);min-width:0}.board-card.is-left{transform:translateX(calc(-50% - 45vw)) scale(.58)}.board-card.is-right{transform:translateX(calc(-50% + 45vw)) scale(.58)}.board-nav{top:175px;width:44px;height:44px}.board-prev{left:-4px}.board-next{right:-4px}.board-dots{bottom:0}.awards-pager{padding:22px 0 16px}.award-page{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.award-card{min-height:135px;padding:16px 14px}.award-card h3{font-size:1rem;margin-top:14px}.award-nav{top:auto;bottom:10px;width:38px;height:38px}.award-prev{left:0}.award-next{right:0}.award-page-status{margin:12px 0 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}
/* The hero now ends after the video; the former scroll-transition panel is intentionally removed. */
.hero{min-height:calc(100svh - 76px);height:auto;--story-progress:0}
.hero-transition{display:none}
.hero-stage{position:relative;top:auto}
@media(max-width:760px){.hero{min-height:calc(100svh - 66px);height:auto;margin-top:66px}.hero-stage{height:calc(100svh - 66px);min-height:470px}}

/* Material integration: profile photos, real project galleries, and certificate pages. */
.identity-photo-card{margin:0 0 18px;position:relative;overflow:hidden;border:1px solid var(--line);background:#e4e8df}
.identity-photo-card img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top}
.identity-photo-card figcaption{position:absolute;left:14px;bottom:12px;padding:6px 10px;background:rgba(248,247,236,.82);font-size:.8125rem;color:var(--ink)}
.identity-photo-strip{display:grid;grid-template-columns:82px minmax(0,1fr);gap:14px;align-items:center;margin:0 0 22px;padding:12px;border:1px solid var(--line);background:rgba(255,255,255,.28)}
.identity-photo-strip img{width:82px;height:82px;object-fit:cover}
.identity-photo-strip p{font-size:.875rem;color:var(--muted);line-height:1.7}
.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.case-cover{height:auto;max-height:72svh;aspect-ratio:auto;object-fit:contain;background:#f0f0eb}
.case-video-wrap{margin-bottom:22px}
.case-video-wrap video{display:block;width:100%;max-height:72svh;background:#111;border:1px solid var(--line)}
.case-gallery,.case-certificate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:6px}
.case-gallery figure,.case-certificate-grid figure{margin:0;padding:10px;border:1px solid var(--line);background:rgba(255,255,255,.42)}
.case-gallery a,.case-certificate-grid a{display:block;color:inherit}
.case-gallery img,.case-certificate-grid img{display:block;width:100%;height:100%;max-height:460px;object-fit:contain;background:#f5f2e7}
.case-certificate-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.case-certificate-grid img{max-height:620px}
.case-gallery figcaption,.case-certificate-grid figcaption{margin-top:9px;font-size:.8125rem;line-height:1.5;color:var(--muted)}
.case-section p+ul,.case-section ul+p{margin-top:16px}
.award-card{color:inherit}
@media(max-width:760px){.identity-photo-strip{grid-template-columns:64px minmax(0,1fr)}.identity-photo-strip img{width:64px;height:64px}.case-gallery,.case-certificate-grid{grid-template-columns:1fr}.case-gallery img,.case-certificate-grid img{max-height:none}.projects-grid{grid-template-columns:1fr}}

/* The about page uses the life photo inside the reserved image frame. */
.identity-photo-card.identity-photo-life{
  display:grid;
  place-items:center;
  aspect-ratio:4/3;
  min-height:260px;
  padding:24px;
  background:#e4e8df;
}
.identity-photo-card.identity-photo-life img{
  width:auto;
  height:auto;
  max-width:72%;
  max-height:88%;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
}
.identity-photo-card.identity-photo-life figcaption{
  left:14px;
  bottom:12px;
  font-size:.75rem;
}

/* Project detail pages: board strip first, text structure second. */
.project-board-strip{
  display:flex;
  align-items:flex-start;
  gap:18px;
  overflow-x:auto;
  margin:58px 0 42px;
  padding:0 0 16px;
  scroll-snap-type:x proximity;
}
.project-board-strip img{
  display:block;
  height:300px;
  width:auto;
  max-width:none;
  object-fit:contain;
  background:#f0f0eb;
  scroll-snap-align:start;
  cursor:zoom-in;
}
.case-header.after-board-strip{
  padding-top:0;
}
.case-structured-list{
  display:grid;
  gap:20px;
}
.case-structured-list ol,
.case-structured-list ul{
  margin:0;
  padding-left:22px;
}
.case-structured-list ol + ul{
  margin-top:4px;
}
.case-main img{
  cursor:zoom-in;
}

/* Award-only pages. */
.award-proof{
  min-height:calc(100svh - 76px);
  padding:120px 20px 80px;
  text-align:center;
}
.award-proof-gallery{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:22px;
}
.award-proof-image{
  display:block;
  max-width:min(100%, 780px);
  max-height:62svh;
  width:auto;
  height:auto;
  object-fit:contain;
  cursor:zoom-in;
}
.award-proof-caption{
  margin-top:28px;
  font-size:1.125rem;
  color:var(--ink);
}
.award-proof .text-link{
  margin-top:28px;
}

/* Scroll-pinned next-chapter page: all text stays on the left, right side is reserved blank space. */
.outlook-scroll{
  height:260vh;
  min-height:1800px;
  padding:0;
}
.outlook-sticky{
  position:sticky;
  top:76px;
  height:calc(100svh - 76px);
  min-height:620px;
  overflow:hidden;
  padding:28px 0 34px;
}
.outlook-scroll .page-width{
  height:100%;
  display:flex;
  flex-direction:column;
}
.outlook-scroll-layout{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(320px, 48%) minmax(0, 1fr);
  gap:72px;
  align-items:stretch;
}
.outlook-scroll-window{
  min-height:0;
  overflow:hidden;
}
.outlook-scroll-content{
  will-change:transform;
  transition:transform .08s linear;
}
.js-motion .outlook-scroll .reveal{
  opacity:1;
  transform:none;
}
.outlook-panel{
  max-width:760px;
  margin-top:58px;
  text-align:left;
}
.outlook-panel h3{
  font-size:1.5rem;
  margin:18px 0;
}
.outlook-panel p{
  color:var(--muted);
  max-width:640px;
}
.outlook-scroll .plan-title{
  margin-top:0;
}
.outlook-scroll .plan-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  margin-top:28px;
}
.outlook-scroll .plan-grid li{
  max-width:640px;
}
.outlook-empty{
  min-height:100%;
}

.image-lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:34px;
  background:rgba(12,13,11,.86);
}
.image-lightbox img{
  max-width:96vw;
  max-height:92vh;
  object-fit:contain;
  background:#f5f2e7;
}
.image-lightbox button{
  position:fixed;
  top:18px;
  right:22px;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.7);
  color:#fff;
  border-radius:50%;
  font-size:1.5rem;
}
body.lightbox-open{
  overflow:hidden;
}

@media(max-width:760px){
  .project-board-strip{
    margin-top:36px;
    gap:12px;
  }
  .project-board-strip img{
    height:220px;
  }
  .award-proof{
    padding-top:92px;
  }
  .award-proof-image{
    max-height:58svh;
  }
  .outlook-scroll{
    height:auto;
    min-height:0;
    padding:26px 0 68px;
  }
  .outlook-sticky{
    position:relative;
    top:auto;
    height:auto;
    min-height:0;
    overflow:visible;
    padding:0;
  }
  .outlook-scroll .page-width{
    height:auto;
  }
  .outlook-scroll-layout{
    display:block;
  }
  .outlook-scroll-window{
    overflow:visible;
  }
  .outlook-scroll-content{
    transform:none!important;
  }
  .outlook-empty{
    display:none;
  }
}

/* Keep the hero as one continuous video viewport with no interstitial frame. */
.hero{
  height:auto!important;
  min-height:calc(100svh - 76px)!important;
}
.hero-stage{
  position:relative!important;
  top:auto!important;
  height:calc(100svh - 76px)!important;
}
.hero-transition,
.transition-image{
  display:none!important;
}
@media(max-width:760px){
  .hero{
    height:auto!important;
    min-height:calc(100svh - 66px)!important;
  }
  .hero-stage{
    position:relative!important;
    top:auto!important;
    height:calc(100svh - 66px)!important;
    min-height:470px!important;
  }
}
