/* Editorial refinement: shared visual rhythm and a compact project showcase. */
:root{--gold:#e9c38e;--muted:#b9c5c7;--section-space:96px}
body{background:radial-gradient(ellipse at 85% 23%,#13303955,transparent 30%),#071a24}
.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;transform:scaleX(var(--read-progress,0));transform-origin:left;background:var(--gold);z-index:30;pointer-events:none}
.header{padding:19px 5%;background:linear-gradient(#061720ad,transparent);gap:20px}
.header.scrolled{background:#071a24ed;backdrop-filter:blur(16px)}
.brand{font-size:21px}.brand-note{font-size:8px;letter-spacing:1.4px}nav{gap:26px}nav a{font-size:12px}.resume{background:#edc58b0a;padding:11px 20px;transition:color .25s,background .25s}.resume:hover{background:var(--gold);color:var(--ink)}
.hero{height:100svh;min-height:760px;max-height:1080px}.hero-art{inset:0;background-position:60% center;overflow:hidden}.hero-copy{padding-top:80px;padding-bottom:100px}.hero h1{font-size:clamp(52px,5.3vw,82px);line-height:1.08;letter-spacing:-2.8px;max-width:850px}.hero-description{font-size:16px;max-width:390px}.hero-shade{background:linear-gradient(90deg,#041824b0,transparent 77%),linear-gradient(0deg,var(--ink),#071a2430 23%,transparent 45%,#05182230)}
#ocean{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transition:opacity 1s}
.sea-haze{position:absolute;inset:50% -10% 27%;pointer-events:none;background:radial-gradient(ellipse at 74% 50%,#f4ce9b13,transparent 58%);filter:blur(18px);animation:haze-drift 22s ease-in-out infinite alternate}
@keyframes haze-drift{from{transform:translateX(-2%);opacity:.5}to{transform:translateX(3%);opacity:1}}
.hero-bottom{bottom:32px;border-top:1px solid #d3c8a324;padding-top:22px}.image-note{opacity:.65;font-size:8px}
.section{padding-top:var(--section-space);padding-bottom:var(--section-space)}.section-index{display:flex;align-items:center;gap:18px;font-size:9px;letter-spacing:2px;margin-bottom:30px}.section-index:before{content:'';width:32px;height:1px;background:var(--gold);opacity:.65}h2{font-size:clamp(42px,4vw,62px);letter-spacing:-1.8px}p{line-height:1.75}
.about{padding-top:90px;padding-bottom:100px}.about-grid{grid-template-columns:1.1fr .9fr;gap:11%;align-items:center}.about-copy h2{font-size:clamp(40px,4.1vw,64px)}.about-copy .lead{font-size:19px}.about-copy p:not(.lead){font-size:14px;max-width:465px}.portrait{padding:0;width:100%;max-width:405px;justify-self:end;margin:0}.portrait-frame{position:relative;background:none;padding:0;transform:none;box-shadow:none;isolation:isolate}.portrait-frame:before{content:'';position:absolute;inset:12px -14px -12px 14px;border:1px solid var(--line);z-index:-1}.portrait-frame img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;filter:none;object-position:center;border-radius:160px 160px 0 0;mask-image:linear-gradient(#000 85%,#0009)}.portrait-label{position:absolute;top:18px;left:18px;writing-mode:vertical-rl;z-index:1;color:#ead7b9;font:8px monospace;letter-spacing:2px}.portrait figcaption{position:absolute;bottom:0;left:0;right:0;padding:45px 22px 22px;background:linear-gradient(transparent,#071a24e8);color:var(--paper)}.portrait strong{font-size:27px}.portrait figcaption span{color:#c1cfd0;font:10px Arial;letter-spacing:.3px}.portrait-source{display:block;text-align:right;font-size:9px;letter-spacing:.4px;color:var(--muted);margin-top:25px}.portrait-source:hover{color:var(--gold)}
.work{padding-top:80px;background:radial-gradient(ellipse at 20% 25%,#173d4240,transparent 70%)}.section-heading{margin-bottom:35px;align-items:center}.work .section-heading h2{font-size:clamp(48px,5.3vw,78px)}.section-heading p{font-size:13px;max-width:340px}.work-directory{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0;margin:0 0 16px;font:9px monospace;letter-spacing:1.3px;color:var(--muted)}.work-directory a{color:var(--gold);font:11px Arial;letter-spacing:0}
#projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 30px}.project,.project:nth-child(even){display:flex;flex-direction:column;gap:0;align-items:stretch;min-width:0;margin:0;border:1px solid #c5b49129;background:linear-gradient(135deg,#17313a8a,#091e27);border-radius:8px;overflow:hidden;transition:border-color .3s,box-shadow .3s}.project:hover{border-color:#c5b49170;box-shadow:0 12px 35px #0002}.project:first-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:0;align-items:center}.project:nth-child(even) .project-image{order:0}.project-image{padding:20px 20px 0;border:0;border-radius:0;background:transparent;position:relative;text-align:left;overflow:hidden;flex:none}.project-image:hover{background:transparent}.project-image:after{display:none}.project-image img{width:100%;height:auto;aspect-ratio:1.9;object-fit:cover;object-position:top;border-radius:0 0 3px 3px;box-shadow:0 12px 25px #0003;transform:none;transition:filter .4s}.project-image:hover img{transform:none;filter:brightness(.85)}.project:first-child .project-image{padding:24px}.project:first-child .project-image img{aspect-ratio:1.5;object-fit:cover;object-position:top}.preview-bar{height:25px;background:#203940;display:flex;align-items:center;justify-content:space-between;color:#bbcdce;padding:0 10px;border-radius:4px 4px 0 0;font:8px monospace;letter-spacing:.4px}.preview-bar>span:first-child{font-size:6px;letter-spacing:2px;color:#9bb0b0}.preview-action{position:absolute;bottom:18px;right:35px;padding:12px 15px;border-radius:30px;background:var(--gold);color:var(--ink);font-size:10px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}.project-image:hover .preview-action,.project-image:focus-visible .preview-action{opacity:1;transform:none}.project-copy{padding:25px 27px 28px;flex:1}.project:first-child .project-copy{padding:28px 34px 28px 12px}.project-meta{font-size:8px;letter-spacing:1.1px;display:flex;justify-content:space-between;gap:10px;margin-bottom:13px}.featured-label{font-size:7px;border:1px solid var(--line);border-radius:3px;padding:3px 5px;line-height:1}.project h3{font-size:32px;letter-spacing:-.6px;margin:0 0 12px}.project:first-child h3{font-size:50px}.project p{font-size:13px;line-height:1.7;max-width:440px;min-height:44px;margin-bottom:15px}.tags{gap:5px;margin:15px 0 14px}.tags span{font-size:9px;padding:5px 8px;border-color:#b7c9c91d;color:#b6c6c9;background:#93b3b205}.project .text-link{font-size:11px;padding:9px 0;gap:35px}.project .text-link:hover{color:var(--gold)}.project:first-child p{font-size:14px}.project:first-child .text-link{margin-top:10px}
.toolkit{padding-top:80px;padding-bottom:85px;gap:11%;border-top:0}.toolkit>div>p{font-size:14px;max-width:380px}.tool-groups{padding-top:10px}.tool-groups details{padding:22px 0}.tool-groups summary{font-size:22px}.tool-groups p{font-size:13px;line-height:1.9}
.interlude{min-height:470px;background:linear-gradient(var(--ink),#071a2455 45%,var(--ink)),url('assets/cinematic-coast.webp') 70% 55%/cover}.interlude>div{padding:80px 25px}.interlude>div>p:not(.eyebrow){font-size:clamp(38px,4.4vw,64px)}.journey{padding-top:80px}.journey-heading h2{font-size:55px}.timeline h3{font-size:24px}.timeline p{font-size:13px}.timeline li{padding-bottom:33px}.archive{padding-top:80px}.archive .section-heading h2{font-size:50px}.publication{padding:28px 0}.publication h3{font-size:24px}.certificates{gap:22px}.certificates a{border-bottom:1px solid var(--line);padding-bottom:15px}.certificates img{height:150px;opacity:.9}.certificates h3{font-size:16px}.contact{padding-top:95px;padding-bottom:95px}.contact h2{font-size:65px}.contact .socials{font-size:11px}.contact form{padding-top:7px}footer{padding:26px 5%}
.reduced .reveal.pending{opacity:1;transform:none}.reduced #ocean{opacity:0!important}.reduced .sea-haze{animation:none;opacity:.5}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){@supports(animation-timeline:view()){.portrait-frame{animation:portrait-arrival linear both;animation-timeline:view();animation-range:entry 0% cover 50%}@keyframes portrait-arrival{from{transform:translateY(35px)}to{transform:translateY(0)}}}}
@media(max-width:1050px){nav{gap:18px}.brand-note{display:none}.project:first-child{grid-template-columns:1.35fr 1fr}.project:first-child h3{font-size:40px}.project:first-child .project-copy{padding-right:22px}.featured-label{display:none}.about-grid{gap:8%}.portrait{max-width:360px}}
@media(max-width:700px){:root{--section-space:64px}.header{padding:14px 5%;background:#071a24e8}.header nav{gap:21px;justify-content:start}.brand{font-size:17px}.hero{min-height:720px;height:94svh;max-height:950px}.hero-copy{padding:150px 6% 90px}.hero h1{font-size:clamp(36px,9.4vw,58px);line-height:1.12;letter-spacing:-1.5px}.hero-description{font-size:14px;max-width:285px}.hero-art{background-position:60% center}.hero-bottom{font-size:7px;bottom:24px;padding-top:18px}.hero-bottom>span{max-width:145px}.hero-shade{background:linear-gradient(90deg,#041824a8,#071a2410),linear-gradient(0deg,var(--ink),#071a2410 36%,#05182235)}.about{padding-top:65px;padding-bottom:65px}.about-grid{grid-template-columns:1fr;gap:34px}.about-copy h2{font-size:43px}.about-copy .lead{font-size:18px}.portrait{max-width:330px;width:90%;justify-self:center;margin:0}.portrait-frame img{aspect-ratio:3/4;height:auto}.portrait-source{margin-top:20px}.section-heading{margin-bottom:26px}.section-heading p{font-size:13px;margin-top:16px}.work .section-heading h2{font-size:49px}.work-directory{font-size:8px;letter-spacing:.8px}#projects{grid-template-columns:1fr;gap:22px}.project:first-child{display:flex;grid-column:auto}.project-image,.project:first-child .project-image{padding:15px 15px 0}.project-image img,.project:first-child .project-image img{aspect-ratio:1.7}.project-copy,.project:first-child .project-copy{padding:22px}.project h3,.project:first-child h3{font-size:33px}.project p,.project:first-child p{font-size:13px;min-height:0}.project-meta{font-size:8px}.project:first-child .text-link{margin-top:0}.project .tags{margin-bottom:8px}.preview-action{display:none}.featured-label{display:block}.toolkit{padding-top:65px;padding-bottom:45px;gap:24px}.toolkit h2{font-size:43px}.tool-groups summary{font-size:21px}.tool-groups details{padding:20px 0}.interlude{min-height:350px}.interlude>div{padding:70px 20px}.interlude>div>p:not(.eyebrow){font-size:36px}.journey{gap:30px;padding-top:50px}.journey-heading h2{font-size:43px}.journey-heading h2 br:first-of-type{display:none}.journey-heading>p{font-size:14px}.timeline h3{font-size:22px}.archive .section-heading h2{font-size:39px}.publication h3{font-size:19px}.certificates{gap:22px 16px}.certificates img{height:110px}.certificates h3{font-size:15px}.contact{gap:35px}.contact h2{font-size:49px}.contact p{font-size:14px}.contact .section-index{margin-bottom:25px}.section-index{font-size:8px;letter-spacing:1.5px}.section-index:before{width:22px}.section-heading p br{display:none}}
@media(prefers-reduced-motion:reduce){#ocean{display:none}.sea-haze{animation:none}.portrait-frame{animation:none!important}}
.project-image img{border-radius:4px}.work-directory{position:sticky;top:76px;z-index:3;background:#0a2029ed;backdrop-filter:blur(12px);padding:16px 0}.work-directory a{padding:6px 0}.project:first-child .project-image img{aspect-ratio:1.67}.section:target{scroll-margin-top:0}
@media(max-width:700px){.work-directory{top:67px}.project:first-child .project-image img{aspect-ratio:1.7}}
.project-title-preview{min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:23px;padding:40px;background:radial-gradient(ellipse at top right,#97734d40,transparent 65%),#10252c;border:1px solid #e9c38e30;border-radius:5px;color:#ecddc4}.project-title-preview strong{font:clamp(30px,3.5vw,56px)/1.05 Georgia;letter-spacing:-1.5px}.project-title-preview small{font:9px monospace;letter-spacing:2px;color:#c7af89}.project-title-preview>span{font:12px monospace;color:#a6bec1}.project-upb-lost-found .project-title-preview{background:radial-gradient(ellipse at top right,#457b6940,transparent),#10252c}.project-circlemedia .project-title-preview{background:radial-gradient(ellipse at top right,#4f5b9440,transparent),#10252c}.portrait{max-width:435px}.portrait-frame img{border-radius:8px;mask-image:linear-gradient(#000 88%,#000a)}.portrait-frame:before{inset:14px -12px -10px 14px;border-color:#e9c38e30}.portrait-label{writing-mode:horizontal-tb;top:20px;left:20px;background:#071a2499;padding:8px}.project-copy{padding:28px 30px}.project{border-radius:5px}.project h3{letter-spacing:-1px}.work-directory{font-size:10px}@media(max-width:700px){.project-title-preview{min-height:220px;padding:28px}.portrait{width:94%}.project-copy{padding:23px}}
.all-work{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:35px;padding:30px 0;border-top:1px solid var(--line)}.all-work>span{font:23px Georgia;color:#cbd4d1}.project-archive{padding-top:155px}.project-archive h1{font:clamp(45px,5vw,76px)/1.1 Georgia;letter-spacing:-2px;margin:0}.project-archive #projects{margin-top:35px}.portrait-frame img{height:500px;aspect-ratio:auto;object-fit:cover;object-position:50% 43%;border-radius:120px 120px 8px 8px;filter:saturate(.75)}.portrait-frame{overflow:hidden;border-radius:120px 120px 8px 8px}.portrait-label{display:none}.skill-atlas{display:grid;gap:17px}.skill-family{padding:24px;border:1px solid #c9b18430;background:linear-gradient(120deg,#18333b99,#0a1e27);border-radius:8px}.skill-family header{display:flex;gap:18px;align-items:center;margin-bottom:22px}.skill-family header small{font:11px monospace;color:var(--gold)}.skill-family h3{font-size:24px;margin:0}.skill-chips{display:flex;gap:10px;flex-wrap:wrap}.skill-chips>span{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#acc9cc08;border:1px solid #b2c7c61c;border-radius:5px;font-size:12px;transition:transform .25s,border-color .25s}.skill-chips b{font:10px monospace;color:var(--gold);background:#e9c38e12;padding:6px;border-radius:3px}.skill-chips>span:hover{transform:translateY(-3px);border-color:var(--gold)}.certificates a{background:linear-gradient(#25404944,#0a2027);padding:16px;border:1px solid var(--line);border-radius:6px;transition:transform .35s,border-color .35s}.certificates a:hover,.certificates a:focus-visible{transform:translateY(-7px);border-color:var(--gold)}.certificates img{height:155px;object-fit:contain;background:#dfdfd5;filter:none;opacity:1;border-radius:3px}.publication{padding:30px;border:1px solid var(--line);border-radius:8px;background:radial-gradient(ellipse at 0 0,#92714633,transparent 65%);transition:border-color .3s,transform .3s}.publication:hover{border-color:var(--gold);transform:translateY(-3px)}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.skill-family,.certificates a{animation:archive-enter linear both;animation-timeline:view();animation-range:entry 0% entry 85%}@keyframes archive-enter{from{opacity:.35;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}}}
@media(max-width:700px){.all-work{align-items:start;flex-direction:column}.all-work>span{font-size:21px}.project-archive{padding-top:120px}.portrait-frame img{height:410px;object-position:50% 43%}.skill-family{padding:20px}.skill-chips>span{font-size:11px;padding:7px 9px}.publication{padding:20px 15px}.certificates a{padding:10px}.certificates img{height:110px}}
.portrait-frame{height:500px}.portrait-frame img{transform:scale(1.65);transform-origin:50% 47%;mask-image:none}.portrait figcaption{z-index:2}.portrait-frame:before{display:none}@media(max-width:700px){.portrait-frame{height:410px}}
