:root{--bg:#141411;--text:#f5f5f3;--muted:#969692;--line:#343431;--lime:#b5ff16}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,.turntable:focus-visible{outline:2px solid var(--lime);outline-offset:6px}nav{position:fixed;top:32px;left:50%;transform:translateX(-50%);z-index:20;display:flex;gap:6px;padding:7px;background:#242422e8;backdrop-filter:blur(20px);border-radius:50px;width:480px;border:1px solid #ffffff05}nav a{flex:1;text-align:center;padding:12px 5px;color:#777773;border-radius:40px;transition:.3s;font-size:16px;white-space:nowrap}nav a.active{background:#393937;color:white}nav a:hover{color:white}nav span{font-size:12px}.hero{height:100svh;min-height:680px;max-height:1200px;position:relative;overflow:hidden;display:grid;place-items:center}.hero h1{position:absolute;width:100%;text-align:center;font-family:Impact,"Arial Narrow",Arial,sans-serif;font-weight:900;font-stretch:condensed;letter-spacing:-.045em;font-size:clamp(100px,21vw,410px);line-height:1;margin:0;transform:scaleY(1.3);background:linear-gradient(#fff 2%,#aaa 45%,#191916 95%);color:transparent;background-clip:text;user-select:none}.turntable{position:relative;width:min(51vw,760px);height:min(47vw,690px);margin-top:30px;touch-action:pan-y;cursor:grab;user-select:none;animation:enter 1.2s both}.turntable:active{cursor:grabbing}.view{position:absolute;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .65s,transform .9s;transform:translateX(9px) scale(.985);pointer-events:none}.view.active{opacity:1;transform:translateX(0) scale(1)}.hero-bottom{position:absolute;bottom:35px;left:7.3%;right:7.3%;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.4px;color:#777772}.turn-controls{display:flex;align-items:center;gap:12px}.turn-controls button{border:1px solid #555;background:none;color:#bbb;border-radius:50%;width:30px;height:30px}#dots{display:flex;gap:6px}#dots button{width:5px;height:5px;border:0;padding:0;background:#51514b}#dots button.active{background:var(--lime)}.section{width:85.4%;max-width:1640px;margin:auto;padding:115px 0}.about{min-height:90vh}.about-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:10%;align-items:center}.eyebrow{font-size:24px;margin:0 0 25px}.about h2{font-size:clamp(28px,2.8vw,54px);font-weight:400;line-height:1.55;margin:0 0 48px}.bio{color:var(--muted);font-size:clamp(16px,1.35vw,25px);line-height:1.9}.bio p{margin:0 0 22px}.portrait{width:100%;max-height:500px;object-fit:contain}.stats{display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid #71716a;margin-top:95px;padding:35px 0;text-align:center}.stats strong{font-weight:400;font-size:28px}.stats small{display:block;margin-top:18px;color:var(--muted);font-size:17px}.section-head{display:flex;align-items:center;gap:25px;margin-bottom:70px;font-size:19px}.section-head em{font-style:normal;color:var(--muted);margin-left:16px;font-size:16px}.section-head i{height:1px;background:#5c5c55;flex:1}.project-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:start}.featured{position:sticky;top:130px;display:block;overflow:hidden;background:#1e1e19;aspect-ratio:1.33}.featured>img{width:100%;height:100%;object-fit:cover;transition:opacity .22s,transform .7s}.featured:hover>img{transform:scale(1.035)}.featured-copy{position:absolute;inset:auto 0 0;padding:100px 6.5% 5%;background:linear-gradient(transparent,#000c);pointer-events:none}.feature-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.feature-title h2{font-size:clamp(25px,2.65vw,49px);font-weight:400;margin:0 0 22px}.arrow{background:var(--lime);color:#152000;display:grid;place-items:center;border-radius:50%;width:60px;height:60px;flex-shrink:0;font-size:27px;transition:transform .3s}.featured:hover .arrow{transform:rotate(-45deg)}.featured-copy p{font-size:20px;margin:8px 0;line-height:1.55}.featured-copy p:last-child{font-size:16px;color:#b5b5af}.project-list{display:flex;flex-direction:column;gap:20px}.project-row{display:grid;grid-template-columns:40px 38% 1fr;gap:20px;align-items:center;padding:18px 16px 18px 22px;border-block:1px solid var(--line);min-height:125px;color:#666662;transition:color .35s,background .35s}.project-row.selected,.project-row:hover{color:white}.project-row:hover{background:#ffffff03}.project-row .num{font-size:24px}.project-row img{width:100%;aspect-ratio:1340/755;object-fit:cover}.project-row small{display:block;font-size:14px;margin-bottom:12px}.project-row strong{font-size:19px}.experience{display:grid;grid-template-columns:29% 1fr;gap:7%;align-items:start;padding-top:150px}.profile{position:sticky;top:135px}.profile>img{width:78%;max-height:320px;object-fit:contain;margin-bottom:35px}.profile h2{font-size:35px;margin:10px 0 15px}.profile p{font-size:15px;line-height:1.65}address{font-style:normal;margin:40px 0;color:var(--muted);line-height:1.8;font-size:17px}address a{display:block}address a:hover{color:white}.profile .profile-desc{color:var(--muted);max-width:340px;font-size:15px}.job{margin-bottom:85px}.job header{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:22px}.job h3{font-weight:400;font-size:25px;margin:0}.job header span{font-size:14px;white-space:nowrap}.job ul{padding-left:19px;margin:0}.job li{color:var(--muted);font-size:16px;line-height:1.95;padding-left:2px;margin-bottom:12px}.job li::marker{color:#406bff}.job b{font-weight:400;color:#efefec}footer{margin:0 7.3%;padding:35px 0;display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.reveal{opacity:0;transform:translateY(26px);transition:opacity .85s,transform .85s}.reveal.visible{opacity:1;transform:none}#subpage{min-height:100vh;padding:150px 8% 70px}.back{color:var(--muted);display:inline-block;margin-bottom:50px}.sub-head{font-size:clamp(36px,6vw,85px);font-weight:400;margin:15px 0 25px}.sub-desc{font-size:19px;color:var(--muted);line-height:1.8}.sub-cover{width:100%;max-height:60vh;object-fit:contain;margin:35px 0}.placeholder{border:1px solid var(--line);padding:45px;margin-top:30px;color:var(--muted);line-height:1.8}.pill{display:inline-block;border-radius:30px;background:var(--lime);color:#172000;padding:15px 25px;margin-top:20px}.resume-paper{max-width:820px;background:#eeeee9;color:#20201c;padding:50px;margin:40px auto}.resume-paper h2{font-size:32px}.resume-paper p{line-height:1.8}.resume-label{border:1px dashed #aaa;padding:25px;text-align:center;color:#777;margin:35px 0}.resume-actions{text-align:center} @keyframes enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@media(min-width:1800px){.project-row{min-height:172px}.project-row strong{font-size:25px}.project-row small{font-size:19px}.featured-copy p:last-child{font-size:23px}.featured-copy p{font-size:28px}.job li{font-size:20px}.job h3{font-size:31px}.job header span{font-size:20px}}
@media(max-width:900px){nav{width:390px;top:20px}.section{width:88%;padding:80px 0}.hero{min-height:620px}.turntable{width:70vw;height:65vw}.about-grid{gap:5%;grid-template-columns:1.3fr .8fr}.about h2{font-size:29px;margin-bottom:25px}.bio{font-size:16px}.stats{margin-top:50px}.stats strong{font-size:22px}.stats small{font-size:13px}.project-grid{gap:20px;grid-template-columns:1fr 1fr}.project-row{grid-template-columns:25px 35% 1fr;gap:10px;padding:12px 4px;min-height:110px}.project-row strong{font-size:15px}.project-row small{font-size:11px}.project-row .num{font-size:19px}.featured{aspect-ratio:.85}.featured-copy{padding:75px 6% 6%}.featured-copy p{font-size:16px}.featured-copy p:last-child{font-size:14px}.arrow{width:42px;height:42px}.experience{gap:5%;grid-template-columns:29% 1fr}.job header{display:block}.job header span{display:block;margin-top:12px}.job h3{font-size:23px}.job li{font-size:15px}.profile h2{font-size:28px}address{font-size:13px}.profile p,.profile .profile-desc{font-size:13px}.hero-bottom>span{display:none}}
@media(max-width:600px){html{scroll-padding-top:95px}nav{width:calc(100% - 40px);max-width:380px;top:18px;padding:5px}nav a{font-size:14px;padding:11px 3px}.hero{min-height:600px;height:92svh}.hero h1{font-size:22vw;transform:scaleY(1.75);top:36%}.turntable{width:97vw;height:90vw;margin-top:20px;max-height:510px}.hero-bottom{bottom:28px;left:6%;right:6%;font-size:9px;letter-spacing:.5px}.turn-controls{gap:8px}.turn-controls span{font-size:8px}.hero-bottom>a{font-size:11px}.section{padding:65px 0;width:88%}.about-grid{display:flex;flex-direction:column-reverse;align-items:stretch;gap:30px}.portrait{width:62%;align-self:center;max-height:300px}.eyebrow{font-size:19px;margin-bottom:18px}.about h2{font-size:27px;line-height:1.55}.desktop{display:none}.bio{font-size:15px;line-height:1.9}.stats{grid-template-columns:repeat(6,1fr);gap:28px 0;padding:25px 0;margin-top:30px}.stats>div{grid-column:span 2}.stats>div:nth-child(4){grid-column:2/span 2}.stats>div:nth-child(5){grid-column:4/span 2}.stats strong{font-size:21px}.stats small{font-size:12px;margin-top:8px}.section-head{font-size:17px;gap:10px;margin-bottom:30px}.section-head em{display:block;margin:7px 0 0;font-size:12px}.section-head>span:last-child{font-size:12px}.project-grid{display:flex;flex-direction:column;gap:25px}.featured{width:100%;aspect-ratio:1.1;position:relative;top:auto}.feature-title h2{font-size:28px;margin-bottom:16px}.featured-copy p{font-size:16px}.featured-copy p:last-child{font-size:13px}.project-list{width:100%;gap:10px}.project-row{grid-template-columns:28px 33% 1fr;gap:15px;padding:14px 6px;min-height:98px}.project-row small{font-size:12px;margin-bottom:8px}.project-row strong{font-size:17px}.experience{display:block}.profile{position:relative;top:auto;display:grid;grid-template-columns:100px 1fr;gap:0 20px;margin-bottom:55px}.profile>img{width:100px;grid-row:span 2;margin:0}.profile h2{font-size:28px;align-self:end;margin:0 0 8px}.profile p{margin:0}.profile address,.profile .profile-desc{grid-column:1/-1}.profile address{margin:25px 0 18px;font-size:15px}.job{margin-bottom:50px}.job h3{font-size:23px}.job header span{font-size:13px;color:var(--muted)}.job li{font-size:14px;line-height:1.9}.job header{margin-bottom:18px}footer{margin:0 6%;flex-wrap:wrap;gap:20px;font-size:11px}footer a:nth-child(2){order:3;width:100%}#subpage{padding:125px 6% 45px}.resume-paper{padding:25px}.placeholder{padding:25px}.sub-desc{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
/* Keep the complete background word within the viewport on all font platforms. */
.hero h1{font-family:Arial,"Helvetica Neue",sans-serif;font-size:17vw;letter-spacing:-.065em;transform:scaleY(1.75)}
@media(max-width:600px){.hero h1{font-size:17vw;transform:scaleY(2)}}
/* Continuous video turntable and revised project composition. */
.turntable{width:min(66vw,1000px);height:min(49.5vw,750px)}
#hero-video{display:none}#hero-canvas,#hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}#hero-canvas{opacity:0}#hero-poster{transition:opacity .2s}
.project-grid{grid-template-columns:1.3fr 1fr;gap:3.1%;align-items:start}.featured{aspect-ratio:1340/755;position:relative;top:auto;margin-top:54px}.featured-copy{padding:100px 3.5% 2.5%}.feature-title h2{font-size:clamp(25px,2.45vw,46px);margin-bottom:12px}.featured-copy p{margin:5px 0}.featured-copy p:last-child{line-height:1.5}.project-row{grid-template-columns:40px 36% 1fr;gap:20px}
@media(min-width:1800px){.project-row{min-height:172px}.project-list{gap:30px}.featured-copy p{font-size:28px}.featured-copy p:last-child{font-size:23px}}
@media(max-width:900px){.turntable{width:85vw;height:64vw}.featured{margin-top:35px}.project-row{grid-template-columns:25px 35% 1fr;gap:10px}.featured-copy{padding-top:65px}.feature-title h2{font-size:25px}.featured-copy p:last-child{font-size:13px}}
@media(max-width:600px){.turntable{width:120vw;height:90vw}.featured{margin-top:0;aspect-ratio:1.25}.project-row{grid-template-columns:28px 33% 1fr;gap:15px}.featured-copy{padding:70px 5% 5%}.feature-title h2{font-size:26px}}
/* Preserve the supplied case study as a continuous, uncropped document. */
.case-open #subpage{padding:115px 0 0}.case-toolbar{width:min(1440px,92%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;color:var(--muted);font-size:14px}.case-toolbar span{color:var(--text)}.case-toolbar button{border:1px solid #55554d;border-radius:30px;color:var(--text);background:#24241e;padding:10px 18px;white-space:nowrap}.case-toolbar a:hover,.case-end a:hover{color:white}.case-reader{width:min(1440px,100%);margin:auto;overflow-x:auto;overscroll-behavior-x:contain;background:#111;scrollbar-color:#777 #242420}.case-stack{width:100%}.case-stack img{display:block;width:100%;height:auto;margin:0;border:0}.case-reader.is-zoomed .case-stack{width:1920px;max-width:none}.case-end{display:flex;justify-content:space-between;gap:20px;width:min(1440px,88%);margin:auto;padding:45px 0 65px;color:var(--muted);font-size:16px}
@media(max-width:600px){.case-open #subpage{padding-top:90px}.case-toolbar{font-size:12px;gap:10px;padding:16px 0}.case-toolbar span{display:none}.case-toolbar button{font-size:12px;padding:10px 14px}.case-end{font-size:13px;flex-wrap:wrap;padding:30px 0 45px}.case-reader.is-zoomed .case-stack{width:1200px}}

/* Project reading hides the site navigation and its reserved space. */
.project-open>nav{display:none}.project-open #subpage{padding-top:45px}.project-open.case-open #subpage{padding-top:0}
@media(max-width:600px){.project-open #subpage{padding-top:25px}.project-open.case-open #subpage{padding-top:0}}
.resume-heading{max-width:1100px;margin:auto}.resume-image{width:min(893px,100%);margin:40px auto 0;background:white}.resume-image img{display:block;width:100%;height:auto}.resume-original{display:inline-block;margin:20px 0 0 25px;color:var(--muted);font-size:14px}.resume-original:hover{color:white}.resume-actions .pill{margin-top:20px}
@media(max-width:600px){.resume-image{margin-top:28px}.resume-original{margin-left:18px;font-size:13px}}
.resume-actions .resume-original{margin:25px 0 0;font-size:18px;color:var(--text);text-decoration:underline;text-underline-offset:7px}
/* Native supplied alpha video, with alpha-preserving playback fallback. */
#hero-video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;background:transparent}#hero-poster{object-fit:cover}
