@font-face{font-family:Space Grotesk;src:url('public/fonts/space-grotesk.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:IBM Plex Mono;src:url('public/fonts/ibm-plex-mono.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--bg:#141612;--panel:#1d201a;--paper:#eeeee5;--muted:#a2a69a;--line:#373b32;--accent:#2d4c73;--accent-text:#93abc6;--yellow:#d1bb71;--accent-hover:#3b608b;--accent-muted:#c5ced9;--accent-line:#6b7f98;--copy:#c6c9bf;--panel-overlay:#1d201aeb;--media-shade:#14161266;--font:'Space Grotesk',Arial,sans-serif;--mono:'IBM Plex Mono',Consolas,monospace;color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:100px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}button,a{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img,video{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h2{font-size:clamp(2.25rem,4.8vw,4.25rem);letter-spacing:-.055em;line-height:1.08}h3{letter-spacing:-.035em}p{color:var(--muted)}.wrap{width:min(1380px,90%);margin-inline:auto}.mono,.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.025em}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:26px}.muted{color:var(--muted)}.skip-link{position:fixed;top:-100px;left:20px;z-index:20;background:var(--accent);color:var(--paper);padding:12px 18px}.skip-link:focus{top:12px}.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--accent);transform-origin:left;transform:scaleX(0);z-index:30;pointer-events:none}
.site-header{border-bottom:1px solid var(--line);position:relative;z-index:5}.site-nav{height:91px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:46px;letter-spacing:-.11em;line-height:1;font-weight:700}.wordmark-dot{color:var(--accent)}.nav-links{display:flex;gap:38px;font-size:.875rem}.nav-links a{transition:color .2s}.nav-links a:hover,.text-link:hover{color:var(--accent)}.nav-links a span{font-family:var(--mono);color:var(--muted);font-size:.75rem;vertical-align:super;margin-left:3px}.nav-contact{font-size:.875rem;border-bottom:1px solid var(--accent);padding:8px 0}.nav-contact span{display:inline-block;color:var(--accent);margin-left:25px;transition:transform .2s}.nav-contact:hover span{transform:translate(3px,-3px)}
.hero{padding-top:30px}.hero-topline{display:flex;justify-content:space-between;color:var(--muted);gap:24px;text-transform:uppercase}.hero-topline>span:first-child{display:flex;align-items:center;gap:9px}.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #2d4c7311;flex-shrink:0}.hero-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:5%;align-items:center;padding:64px 0 62px}.hero h1{font-size:clamp(6rem,14.6vw,13.6rem);line-height:.79;letter-spacing:-.09em;font-weight:600;margin-left:-.065em}.hero h1>span{display:block}.hero h1>span+span{margin-top:12px}.name-dot{color:var(--accent)}.hero-copy{font-size:1.125rem;line-height:1.65;max-width:400px;margin:32px 0 25px;color:var(--copy)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:16px 23px;border-radius:3px;font-size:.875rem;font-weight:600;transition:background .2s,transform .2s}.primary{background:var(--accent);color:var(--paper);border:1px solid var(--accent-text)}.primary:hover{background:var(--accent-hover);transform:translateY(-3px)}.button span{font-size:22px;line-height:1}.hero-object{perspective:1200px;padding:35px 0 0 10px}.object-frame{display:block;background:var(--panel);border:1px solid var(--line);transform:rotate(-4deg);box-shadow:16px 23px 0 #090b0855;will-change:transform;transition:transform .3s ease-out;position:relative}.object-meta{padding:16px 19px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);color:var(--muted);text-transform:uppercase}.object-image{position:relative;overflow:hidden;background:var(--panel)}.object-image img{width:100%;height:auto;aspect-ratio:1.4;object-fit:contain;transition:scale .5s}.object-frame:hover .object-image img{scale:1.025}.object-target{position:absolute;top:12px;right:15px;font-size:24px;font-family:var(--mono);color:var(--accent)}.object-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 23px;font-size:1rem;line-height:1.4;color:var(--muted)}.object-bottom strong{color:var(--paper);font-weight:500}.circle-arrow{display:grid;place-items:center;height:43px;width:43px;border:1px solid var(--line);border-radius:50%;color:var(--accent);font-size:24px}.object-note{color:var(--muted);display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:38px}.note-line{width:33px;height:1px;background:var(--accent);flex-shrink:0}.hero-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:21px 0;color:var(--muted);gap:20px}.hero-bottom a span{margin-left:35px;color:var(--accent);font-size:18px}
.work-section{padding-top:115px;padding-bottom:100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:65px}.section-heading>p{font-size:1rem;line-height:1.7;padding-bottom:5px}.project{padding-top:20px;margin-bottom:110px;scroll-margin-top:30px}.project:last-child{margin-bottom:0}.project-heading{display:flex;align-items:center;gap:22px;border-top:1px solid var(--line);padding:24px 0 27px}.project-number{font-family:var(--mono);color:var(--accent);font-size:.875rem}.project-heading h3{font-size:clamp(1.625rem,3vw,2.625rem);line-height:1.2}.project-heading>.mono{margin-left:auto;color:var(--muted)}.project-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:50px;align-items:start}.gallery{min-width:0}.gallery-stage{background:var(--panel);aspect-ratio:1.52;position:relative;border:1px solid var(--line);overflow:hidden;touch-action:pan-y pinch-zoom}.gallery-stage>.image-open{width:100%;height:100%;background:transparent;display:grid;place-items:center;padding:0}.gallery-stage img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.gallery-stage video{width:100%;height:100%;object-fit:contain}.comparison-stage{display:grid;grid-template-columns:1fr 1fr;height:100%;width:100%;gap:1px;background:var(--line)}.comparison-stage>.image-open{min-width:0;min-height:0;padding:0;background:var(--panel);overflow:hidden}.comparison-stage img{object-fit:contain}.image-open{position:relative;cursor:zoom-in}.image-open::after{content:'↗';position:absolute;bottom:12px;right:12px;background:var(--panel-overlay);border:1px solid var(--line);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;color:var(--paper);font-size:18px;transition:background .2s}.image-open:hover::after{background:var(--accent);color:var(--paper)}.gallery-stage:focus-visible{outline-offset:3px}.gallery-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:16px 0}.gallery-caption strong{font-size:.875rem;font-weight:500;display:block}.gallery-caption>.mono{display:block;color:var(--muted);margin-top:2px}.gallery-arrows{display:flex;gap:6px}.icon-button{width:44px;height:44px;background:transparent;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:20px;transition:background .2s,border-color .2s;flex-shrink:0}.icon-button:hover:not(:disabled){background:var(--accent);color:var(--paper);border-color:var(--accent-text)}.icon-button:disabled{opacity:.25}.media-nav{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;padding:4px 2px 7px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.media-nav button{position:relative;width:72px;height:51px;flex-shrink:0;padding:0;border:1px solid var(--line);background:var(--panel);opacity:.6;transition:opacity .2s,border-color .2s;overflow:hidden}.media-nav button[aria-pressed=true]{opacity:1;border:2px solid var(--accent)}.media-nav button:hover{opacity:1}.media-nav img{width:100%;height:100%;object-fit:cover}.thumb-play{display:grid;place-items:center;position:absolute;inset:0;background:var(--media-shade);color:#fff;font-size:17px}.thumb-count{position:absolute;bottom:2px;right:4px;font-size:.75rem;background:#0009;color:white;padding:0 4px;font-family:var(--mono)}.gallery-context{font-size:.875rem;line-height:1.6;max-width:600px}.project-copy{padding-top:4px}.project-kicker{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:18px}.project-copy h4{font-size:1.875rem;line-height:1.2;letter-spacing:-.04em;font-weight:500;margin:0 0 20px}.project-copy>p{font-size:1rem;line-height:1.75}.project-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:26px}.project-stat{padding:20px 12px 20px 0}.project-stat+div{padding-left:22px;border-left:1px solid var(--line)}.project-stat strong{font-size:1.95rem;line-height:1;letter-spacing:-.05em;display:block;font-weight:500}.project-stat span{font-family:var(--mono);font-size:.75rem;color:var(--muted);display:block;margin-top:9px;line-height:1.55}.project-notes{padding:0;margin:23px 0 0;list-style:none;color:var(--muted)}.project-notes li{padding-left:17px;position:relative;font-size:.875rem;line-height:1.65;margin:10px 0}.project-notes li::before{content:'+';position:absolute;left:0;color:var(--accent)}.project-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}.project-tags span,.tags span{border:1px solid var(--line);padding:5px 9px;font-size:.75rem;font-family:var(--mono);color:var(--muted)}.media-error{position:absolute;inset:0;background:var(--panel);padding:35px;display:grid;place-content:center;text-align:center;gap:10px}.media-error a{color:var(--accent);text-decoration:underline}.media-error p{font-size:.875rem}
.process-strip{overflow:hidden;padding:20px 0;background:var(--accent);color:var(--paper);border-block:1px solid var(--accent)}.process-track{display:flex;width:max-content;animation:marquee 34s linear infinite}.process-track>span{white-space:nowrap;font-size:clamp(2rem,4vw,3.625rem);font-weight:500;letter-spacing:-.045em;padding-right:44px}.process-track b{font-weight:400;margin:0 30px;color:var(--accent-muted)}@keyframes marquee{to{transform:translateX(-50%)}}
.about-section{padding-block:135px;display:grid;grid-template-columns:1fr 1.4fr;gap:11%}.education-card{background:var(--panel);border:1px solid var(--line);margin-top:60px;padding:32px 27px;position:relative;max-width:370px}.education-mark{display:block;font-size:49px;font-weight:600;letter-spacing:-.075em;color:var(--accent);margin-bottom:45px}.education-card .mono{color:var(--muted)}.education-card strong{display:block;font-weight:500;font-size:1.5625rem;line-height:1.2;letter-spacing:-.04em;margin:16px 0 25px}.education-details{display:block;color:var(--muted);font-size:.875rem;line-height:1.8;border-top:1px solid var(--line);padding-top:22px}.education-cross{position:absolute;top:28px;right:25px;font-family:var(--mono);color:var(--accent)}.about-copy h2{margin-bottom:30px}.about-copy>p{margin-top:20px;font-size:1.0625rem;line-height:1.8}.text-link{display:inline-block;border-bottom:1px solid var(--accent);font-size:.875rem;padding:8px 0;margin-top:22px}.text-link span{color:var(--accent);margin-left:40px}.personal-note{display:grid;grid-template-columns:105px 1fr;gap:25px;border-top:1px solid var(--line);margin-top:42px;padding-top:24px}.personal-note .mono{color:var(--accent);line-height:1.7}.personal-note p{font-size:.875rem;line-height:1.8}.experience-section{padding-bottom:115px}.experience-row{border-top:1px solid var(--line);padding:35px 0;display:grid;grid-template-columns:.62fr 1.1fr 1.3fr;gap:35px}.experience-date{color:var(--muted)}.experience-date>span{display:block;color:var(--accent);margin-top:24px}.experience-company h3{font-size:1.5625rem;line-height:1.25}.experience-company p{font-size:.875rem;line-height:1.7;margin-top:12px}.experience-copy>p{font-size:1rem;line-height:1.8}.experience-copy>p+p{margin-top:14px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.tools-section{padding-bottom:125px}.tools-heading h2{font-size:2.625rem}.tools-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:36px;border-block:1px solid var(--line)}.tools-grid>div{padding:30px 20px;min-width:0}.tools-grid>div:first-child{padding-left:0}.tools-grid>div+div{border-left:1px solid var(--line)}.tools-grid .mono{color:var(--accent)}.tools-grid p{color:var(--paper);margin-top:26px;font-size:1rem;line-height:1.85}
.contact-section{background:var(--accent);color:var(--paper);padding:34px 0 55px}.contact-top{display:flex;justify-content:space-between;gap:25px;color:var(--accent-muted);text-transform:uppercase}.contact-top .status-dot{background:var(--bg);margin-right:9px;box-shadow:0 0 0 4px #1416120a}.contact-section h2{font-size:clamp(4rem,11.4vw,10.3rem);font-weight:500;line-height:.99;letter-spacing:-.075em;padding:60px 0 50px}.contact-section h2 a{display:flex;justify-content:space-between;align-items:center;gap:15px}.contact-section h2 a>span{font-size:.95em;transition:transform .25s}.contact-section h2 a:hover>span{transform:translate(9px,-9px)}.contact-bottom{display:flex;justify-content:space-between;gap:35px;padding-top:28px;border-top:1px solid var(--accent-line)}.contact-bottom>p{color:var(--accent-muted);font-size:1rem;line-height:1.7}.email-link{font-size:1.375rem;letter-spacing:-.03em;overflow-wrap:anywhere}.email-link span{margin-left:25px}.contact-links{display:flex;gap:30px;font-size:.875rem;margin-top:14px}.contact-links a{border-bottom:1px solid var(--accent-text);padding-bottom:3px}.contact-section a:focus-visible{outline-color:var(--bg)}.site-footer{display:flex;align-items:center;gap:35px;padding-block:30px;color:var(--muted);font-size:.75rem}.site-footer .wordmark{color:var(--paper);margin-right:5px;font-size:36px}.site-footer>a:last-child{margin-left:auto;font-size:.875rem}.motion-toggle{background:none;padding:8px 0;display:flex;align-items:center;gap:8px;margin-left:auto;font-size:.875rem;min-height:44px}.motion-icon{font-size:18px;color:var(--accent)}
.lightbox{width:min(1400px,96vw);max-height:96dvh;padding:20px;border:1px solid var(--line);background:var(--panel);color:var(--paper);overflow:auto}.lightbox::backdrop{background:#090d08ee;backdrop-filter:blur(10px)}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:14px;font-size:.875rem}.lightbox>img{width:100%;height:auto;max-height:76dvh;object-fit:contain;background:var(--panel)}.lightbox>p{display:flex;justify-content:space-between;padding-top:12px}.view-cursor{position:fixed;left:0;top:0;z-index:10;pointer-events:none;display:grid;place-items:center;width:76px;height:76px;background:var(--accent);color:var(--paper);border-radius:50%;font-size:.75rem;opacity:0;transition:opacity .15s;will-change:transform}.view-cursor.visible{opacity:1}.reduced-motion{scroll-behavior:auto}.reduced-motion *,.reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced-motion .object-frame{transform:none!important}.reduced-motion .view-cursor{display:none}
@media(min-width:1700px){.hero-layout{gap:8%;padding-block:80px}.hero{padding-top:40px}}
@media(max-width:1100px){.hero h1{font-size:15.5vw}.hero-layout{gap:3%;grid-template-columns:1fr 1fr}.hero-copy{font-size:1rem;max-width:330px}.object-bottom{padding:18px}.object-meta{padding:13px}.project-layout{gap:30px;grid-template-columns:1.2fr 1fr}.project-copy h4{font-size:1.625rem}.project-stat strong{font-size:1.75rem}.experience-row{grid-template-columns:.6fr 1fr 1.25fr;gap:22px}.experience-company h3{font-size:1.375rem}.about-section{gap:7%}.contact-section h2{font-size:11.4vw}}
@media(max-width:800px){.site-nav{height:78px}.nav-links{gap:22px}.nav-links a:last-child{display:none}.hero-topline>span:last-child{text-align:right;max-width:210px}.hero-layout{grid-template-columns:1fr 1fr;gap:24px;padding-top:55px}.hero h1{font-size:17vw}.hero-object{padding:0}.object-note{line-height:1.8}.object-bottom{font-size:.875rem}.circle-arrow{height:36px;width:36px;font-size:20px}.section-heading{gap:25px;margin-bottom:42px}.work-section{padding-top:80px}.project-layout{grid-template-columns:1fr}.gallery-stage{aspect-ratio:1.6}.project-copy{margin-top:15px;max-width:650px}.project-copy h4{font-size:1.75rem}.project{margin-bottom:75px}.about-section{padding-block:90px;grid-template-columns:.8fr 1.2fr;gap:35px}.education-card{padding:24px 20px}.education-card strong{font-size:1.375rem}.personal-note{grid-template-columns:1fr;gap:12px}.experience-row{grid-template-columns:.65fr 1.5fr;gap:20px}.experience-copy{grid-column:2}.experience-date{grid-row:1/3}.tools-grid{grid-template-columns:1fr 1fr}.tools-grid>div{padding:26px 22px!important}.tools-grid>div:nth-child(3){border-left:0}.tools-grid>div:nth-child(n+3){border-top:1px solid var(--line)}.contact-bottom{flex-direction:column}.contact-bottom>p br{display:none}.contact-bottom>div{display:flex;justify-content:space-between;align-items:center;gap:25px}.contact-links{margin:0}.site-footer{gap:20px}.view-cursor{display:none}}
@media(max-width:580px){:root{scroll-padding-top:20px}.site-nav{height:72px}.wordmark{font-size:39px}.nav-links{gap:20px}.nav-contact span{margin-left:10px}.hero-topline{gap:15px;align-items:flex-start}.hero-topline>span:last-child{max-width:170px}.hero-topline>span:first-child{max-width:130px}.hero-layout{grid-template-columns:1fr;gap:42px;padding-top:50px;padding-bottom:36px}.hero h1{font-size:29vw;line-height:.79}.hero-intro{position:relative}.hero-copy{max-width:340px;font-size:1rem;line-height:1.7;margin-top:27px}.button{padding:15px 19px}.hero-object{padding:0 14px 0 5px}.object-frame{transform:rotate(-2deg)}.object-image img{aspect-ratio:1.65}.object-bottom{font-size:1rem;padding:17px 20px}.object-note{margin-top:23px}.hero-bottom{gap:15px}.hero-bottom>a{flex-shrink:0}.hero-bottom a span{margin-left:8px}.work-section{padding-top:75px;padding-bottom:70px}.section-heading{display:block;margin-bottom:36px}.section-heading>p{margin-top:22px}.eyebrow{margin-bottom:20px}h2{font-size:2.5rem}.project-heading{gap:15px;flex-wrap:wrap;padding:20px 0}.project-heading h3{font-size:1.625rem}.project-heading>.mono{margin:0 0 0 auto}.project-layout{gap:22px}.gallery-stage{aspect-ratio:1.25}.comparison-stage{grid-template-columns:1fr 1fr}.media-nav button{width:64px;height:47px}.project-copy{display:block;margin-top:4px}.project-copy h4{font-size:1.8125rem}.project-kicker{margin-bottom:12px}.project-stats{margin-top:22px}.project-stat{padding-block:22px}.project-stat strong{font-size:2.0625rem}.project-notes{margin-top:22px}.project-tags{margin-top:23px}.project{margin-bottom:66px}.process-strip{padding:14px 0}.process-track>span{font-size:2.0625rem}.process-track b{margin:0 20px}.about-section{padding-block:75px;display:flex;flex-direction:column;gap:38px}.education-card{margin-top:30px;max-width:none;display:flex;gap:25px;align-items:flex-start;padding:24px}.education-mark{font-size:38px;margin-bottom:0}.education-card strong{font-size:1.375rem;margin:11px 0 16px}.education-details{padding-top:14px}.education-cross{top:20px;right:18px}.education-card .mono{padding-right:10px}.about-copy>p{font-size:1rem}.about-copy h2{font-size:2.5rem}.personal-note{grid-template-columns:80px 1fr;gap:22px}.experience-section{padding-bottom:75px}.experience-row{display:block;padding:28px 0}.experience-date{display:flex;justify-content:space-between;margin-bottom:18px}.experience-date>span{margin:0}.experience-company h3{font-size:1.5625rem}.experience-company p{margin-top:6px}.experience-copy{margin-top:18px}.tools-section{padding-bottom:75px}.tools-heading h2{font-size:2.125rem}.tools-grid>div{padding:22px 12px!important}.tools-grid>div:nth-child(odd){padding-left:0!important}.tools-grid p{font-size:.875rem;line-height:1.9;margin-top:18px}.contact-top{line-height:1.8}.contact-top>span:last-child{text-align:right;max-width:135px}.contact-section{padding-bottom:35px}.contact-section h2{font-size:12.7vw;padding:45px 0 35px}.contact-bottom{gap:24px}.contact-bottom>div{display:block}.email-link{font-size:1.3125rem}.contact-links{margin-top:15px}.site-footer{gap:15px;flex-wrap:wrap;padding-block:25px}.site-footer .wordmark{font-size:29px}.site-footer>a:last-child{display:none}.lightbox{padding:12px;width:98vw}.lightbox-toolbar{gap:15px}.lightbox>p span{display:none}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.object-frame{transform:none!important}.view-cursor{display:none}}
@media(pointer:coarse){.view-cursor{display:none}.nav-links a,.nav-contact{padding-block:12px}}
@media(max-width:360px){.nav-links a:nth-child(2){display:none}.object-meta{flex-wrap:wrap}.contact-section h2{font-size:12vw}.hero-bottom{flex-wrap:wrap}}

.eyebrow,.nav-links a:hover,.text-link:hover,.nav-contact span,.object-target,.circle-arrow,.hero-bottom a span,.project-number,.project-kicker,.project-notes li::before,.media-error a,.education-mark,.education-cross,.text-link span,.personal-note .mono,.experience-date>span,.tools-grid .mono,.motion-icon{color:var(--accent-text)}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,.contact-section a:focus-visible{outline-color:var(--accent-text)}
.media-nav button[aria-pressed=true]{border-color:var(--accent-text)}
.wordmark-dot{color:var(--yellow)}
.status-dot,.contact-top .status-dot{background:var(--yellow);box-shadow:none}

/* Full-image galleries: the frame controls size, and every image fits inside it. */
.gallery-stage>.image-open,.gallery-stage>.comparison-stage,.gallery-stage>video{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0}
.gallery-stage .image-open{min-width:0;min-height:0;overflow:hidden}
.gallery-stage .image-open img{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;object-position:50% 50%}
#bracket .gallery-stage{aspect-ratio:4/3}
#bracket .gallery-stage .image-open img{padding:clamp(16px,2.2vw,30px)}
#bracket .media-nav img{object-fit:contain;object-position:center;padding:3px}

/* Project-photo orbit, kept on the original gray canvas. */
.site-header .wordmark-dot{color:var(--accent)}
.project-heading>.software-label,.project-notes li::before{color:var(--yellow)}
.hero-orbit{min-width:0;align-self:center;position:relative;margin-top:18px}
.orbit-stage{position:relative;isolation:isolate;height:clamp(320px,34vw,490px);touch-action:pan-y pinch-zoom}
.orbit-matrix{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.orbit-center{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:var(--accent-text);letter-spacing:.12em;opacity:.65;pointer-events:none;transform:translateY(-2px)}
.orbit-center>span:last-child{font-size:23px;line-height:1}
.orbit-photos{position:absolute;inset:0}
.orbit-photo{position:absolute;left:50%;top:50%;width:126px;height:174px;perspective:850px;will-change:transform;transition:width .28s cubic-bezier(.2,.7,.2,1);outline:none}
.orbit-sheet{display:block;position:relative;width:100%;height:100%;background:var(--panel);border:1px solid var(--accent-line);box-shadow:5px 7px 0 #0a0c0999,10px 18px 28px #080a0755;transform:rotateY(var(--sheet-turn)) rotateZ(var(--sheet-lean));transform-style:preserve-3d;transition:transform .32s cubic-bezier(.2,.7,.2,1),filter .25s,border-color .2s;filter:brightness(var(--sheet-light));overflow:hidden}
.orbit-sheet::after{content:'';position:absolute;inset:0;pointer-events:none;border-right:3px solid #93abc633;background:linear-gradient(100deg,#14161200 55%,#14161255)}
.orbit-sheet img{width:100%;height:100%;object-fit:cover;object-position:center;user-select:none;-webkit-user-drag:none;opacity:.86;transition:opacity .25s}
.orbit-photo-label{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:12px;background:var(--panel-overlay);border-top:1px solid var(--line);padding:10px 12px;font-size:.8125rem;line-height:1.3;color:var(--paper);opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}
.orbit-photo-label>span:last-child{color:var(--accent-text)}
.orbit-photo.is-open{width:224px}
.orbit-photo.is-open .orbit-sheet{border-color:var(--accent-text);box-shadow:0 12px 40px #060806aa}
.orbit-photo.is-open img{object-fit:contain;padding:8px 8px 39px;opacity:1}
.orbit-photo.is-open .orbit-sheet::after{opacity:0}
.orbit-photo.is-open .orbit-photo-label{opacity:1;transform:translateY(0)}
.orbit-photo:focus-visible .orbit-sheet{outline:2px solid var(--accent-text);outline-offset:5px}
.orbit-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);min-height:57px}
.orbit-bottom p{font-size:.875rem;line-height:1.5}
.orbit-pause{background:transparent;border:1px solid var(--line);color:var(--accent-text);width:40px;height:40px;min-width:40px;border-radius:50%;font-size:16px;line-height:1;transition:border-color .2s}
.orbit-pause:hover{border-color:var(--accent-text)}
.orbit-pause:disabled{opacity:.4}
.image-arrival{box-shadow:inset 0 0 0 2px var(--accent-text)}
.image-arrival::before{content:'';position:absolute;inset:3px;border:1px solid var(--accent-text);z-index:1;pointer-events:none}
.gallery-stage .image-arrival:focus-visible{outline-offset:-4px}
@media(max-width:1100px){.orbit-photo{width:108px;height:156px}.orbit-photo.is-open{width:196px}.orbit-stage{height:365px}}
@media(max-width:800px) and (min-width:581px){.orbit-photo{width:92px;height:140px}.orbit-photo.is-open{width:172px}.orbit-stage{height:330px}.orbit-bottom p{font-size:.8125rem}}
/* Hide the entire ring at the same breakpoint that stacks the hero. */
@media(max-width:580px){.hero-orbit{display:none}}

/* Short introductions keep the project galleries prominent. */
.work-section{padding-top:40px;padding-bottom:60px}
.work-section>.section-heading,.experience-section>.section-heading{margin-bottom:30px}
.about-section{padding-block:70px;border-top:1px solid var(--line)}
.education-card{margin-top:24px}
.about-copy h2{margin-bottom:22px}
.experience-section,.tools-section{padding-bottom:75px}
.contact-section{padding-block:32px 38px}
.contact-section h2{font-size:clamp(2.25rem,4.8vw,4.25rem);padding:0 0 24px;letter-spacing:-.055em}
@media(max-width:580px){.work-section{padding-top:24px;padding-bottom:40px}.about-section{padding-block:48px}.experience-section,.tools-section{padding-bottom:50px}.contact-section h2{font-size:2.5rem}}
