/* REVIEW 02 — GLASS / PLATINUM / FIRE. Structural styles remain in style.css. */
:root{--bg:#101114;--panel:#191c22;--ink:#f2f5fa;--muted:#adb4c1;--bronze:#dce2ed;--line:#343943;--serif:'Segoe UI Variable Display','Segoe UI',Arial,sans-serif;--sans:'Segoe UI Variable Text','Segoe UI',Arial,sans-serif;--fire:#ff6554}
body{background:var(--bg);font-family:var(--sans)}h1,h2,h3{font-family:var(--sans);font-weight:600;letter-spacing:-.055em}h2{font-size:clamp(38px,4.6vw,67px);line-height:1.04}em{font-style:normal;color:var(--ink)}.bronze{color:var(--ink)}.fire{color:var(--fire)}.eyebrow{color:#aeb7c6;letter-spacing:.14em;font-size:10px}.wrap{width:min(1400px,calc(100% - 104px))}.section{padding-block:96px}.section-note{color:#aeb7c6}.text-link{border-color:#657080}.text-link:hover,nav a:hover{color:#fff}.text-link span,.archive-button span{transition:transform .2s}.text-link:hover span,.archive-button:hover span{transform:translate(3px,-3px)}
.site-header{position:absolute;inset:22px 40px auto;z-index:30;padding:12px 19px;border:1px solid #ffffff30;border-top-color:#ffffff60;border-radius:13px;background:linear-gradient(120deg,#b5c4e01c,#13171eb8 48%,#b9c8e01a);backdrop-filter:blur(16px);box-shadow:0 6px 36px #0005,inset 0 1px 0 #fff2;min-height:60px;gap:20px}.site-header .identity{font-size:10px;letter-spacing:.1em;gap:13px}.monogram{font-family:var(--sans);font-size:25px;font-weight:600;letter-spacing:-2px}.monogram span{color:var(--fire)}nav{gap:26px;font-size:11px}nav a{color:#cbd2de;min-height:36px;padding:7px 0;transition:color .2s}.nav-contact{border-color:#858e9d}.menu-toggle{background:none;padding:8px 0 8px 16px;font-size:12px;min-height:44px}.menu-toggle span{display:inline-block;font-size:19px;vertical-align:middle;margin-left:12px;transition:transform .2s}.menu-toggle[aria-expanded=true] span{transform:rotate(45deg)}.skip{z-index:100}.dot{background:var(--fire);box-shadow:0 0 13px #ff655480}
.hero-v2{display:block;width:100%;margin:0;min-height:740px;height:100svh;max-height:1100px;padding:0;position:relative;isolation:isolate;overflow:hidden;background:#000}.hero-v2::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 65%,#6a1a171a,transparent 38%),linear-gradient(90deg,#13161c 0%,#060709 27%,#000 46%)}.hero-ident{position:absolute;left:52px;top:36%;z-index:3;max-width:440px;animation:reveal-up .7s both}.hero-ident .eyebrow{font-size:10px}.hero-v2 h1{font-size:clamp(40px,4.6vw,72px);font-weight:600;line-height:1.02;letter-spacing:-.065em;margin:23px 0 19px;white-space:nowrap}.hero-descriptor{font-size:15px;line-height:1.7;color:#c6cedc;letter-spacing:.015em}.hero-v2 .hero-art{position:absolute;inset:85px 0 50px 34%;margin:0;background:transparent;display:flex;align-items:center;justify-content:center;min-width:0;animation:object-reveal .95s cubic-bezier(.2,.6,.2,1) both}.hero-v2 .hero-art img{position:relative;z-index:1;width:100%;height:100%;max-height:none;object-fit:contain;padding:0;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 96%,transparent)}.hero-v2 .hero-art figcaption{position:absolute;bottom:-19px;left:7%;right:5%;padding:0;display:flex;justify-content:space-between;background:none;font-size:8px;letter-spacing:.12em;color:#a0a8b6;z-index:2}.hero-intro{position:absolute;left:52px;bottom:100px;z-index:3;animation:reveal-up .7s .12s both}.hero-intro>p{font-size:15px;color:#b3becd;letter-spacing:-.015em}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:20px;font-size:11px}.hero-actions a{min-height:44px;display:flex;align-items:center;gap:20px}.glass-action{padding:12px 18px;border:1px solid #cbd6e94d;border-top-color:#dfeaff90;border-radius:5px;background:linear-gradient(130deg,#eef4ff22,#a4b8d107);box-shadow:inset 0 1px 0 #fff1;transition:background .25s,transform .25s}.glass-action:hover{background:#dce8ff22;transform:translateY(-2px)}.hero-actions>a:last-child{color:#b5becb}.stage-note{position:absolute;bottom:30px;left:52px;font-size:8px;letter-spacing:.2em;color:#8994a4}.hero-v2::after{content:'';position:absolute;bottom:0;left:0;right:0;height:25px;background:linear-gradient(transparent,#101114);pointer-events:none}
.section-heading{margin-bottom:33px}.filters{padding:20px 0 32px;gap:10px}.filters button{color:#aab4c5;padding:9px 17px;font-size:11px;border-radius:4px;position:relative;transition:color .2s,background .2s}.filters button.active{background:#d9e3f312;border-color:#8e9caf;color:#fff}.filters button.active::before{content:'';position:absolute;top:-1px;left:16px;right:16px;height:2px;background:var(--fire);box-shadow:0 0 12px #ff655460}.filters button:hover{background:#b5c6df16;color:#fff}.project-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:60px 34px;align-items:start}.project-card:nth-child(2){padding-top:90px}.project-card:nth-child(3){width:83%;margin-top:-70px}.project-card:nth-child(4){margin-top:25px}.project-card:nth-child(5){grid-column:1 / -1}.project-card:nth-child(6){grid-column:1 / -1;width:62%;justify-self:end}.card-media{height:490px;background:#12151b;border-radius:2px}.project-card:nth-child(2) .card-media{height:620px}.project-card:nth-child(3) .card-media{height:420px}.project-card:nth-child(4) .card-media{height:480px}.project-card:nth-child(5) .card-media{height:420px}.project-card:nth-child(6) .card-media{height:350px}.project-grid.filtered{grid-template-columns:1fr 1fr;align-items:start}.project-grid.filtered .project-card{margin:0;padding:0;width:100%;grid-column:auto}.project-grid.filtered .card-media{height:440px}.card-media img{padding:28px;transition:transform .45s cubic-bezier(.2,.7,.3,1)}.black{background:#000}.light{background:#fff}.card-caption{padding-top:19px}.card-caption h3{font-size:clamp(23px,2.3vw,34px);font-family:var(--sans);font-weight:500;letter-spacing:-.045em}.card-caption .eyebrow{color:#929dac;font-size:9px}.card-caption>span{font-family:var(--sans);color:#8290a1;font-size:11px}.badge{background:#12171ee8;border-color:#64708280;color:#e0e8f4;font-size:8px;letter-spacing:.05em;padding:6px 9px;border-radius:3px}.card-media>.badge{left:18px;top:18px}.open-arrow{background:#141a24b8;border-color:#becbe54a;color:#eef4ff;border-radius:4px;box-shadow:inset 0 1px 0 #fff2;transition:transform .25s,background .25s}.project-open:hover .open-arrow,.collection-image:hover .open-arrow{transform:translate(2px,-2px);background:#293242}.capture-art{background:radial-gradient(ellipse at 50% 30%,#2b3443,#12171e 70%)}.art-label{color:#d6dfec}.art-label small{color:#91a2b7}.film-art{background:#020305}.film-art img{padding:0;object-fit:contain}.film-line.bottom{font-size:8px;color:#d3dce9;background:#05070aab;padding:7px;bottom:16px}.play-symbol{position:absolute;right:18px;bottom:18px;border:1px solid #dbe7ff66;background:#19202bc9;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;color:#fff;font-size:13px;padding-left:2px}.museum-art{background:radial-gradient(ellipse at 50% 90%,#284559,#141b25 53%,#0b1017)}.portal{width:250px;height:300px;border-color:#c1d1e1;box-shadow:0 0 55px #bbdcff15;transform:perspective(700px) rotateY(-18deg)}.portal i{border-color:#b4c9e34d}.portal span{font-family:var(--sans);font-weight:300;letter-spacing:-3px;color:#dfebff}.viewer-art{background:radial-gradient(ellipse at 50% 50%,#343949,#141820 70%)}.orbital,.orbital:before,.orbital:after{border-color:#b9c9e066}.orbital span{font-family:var(--sans);font-weight:300;color:#e5edfa}
.model-archive{padding-top:85px;border-color:#343b46}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.archive-destination,.archive-destination:nth-child(2),.archive-destination:nth-child(3){padding:0;background:none;border:0;display:block}.collection-image{display:block;position:relative;height:420px;overflow:hidden;background:#080a0e;border:1px solid #ffffff17}.collection-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.collection-image:hover img{transform:scale(1.025)}.collection-image>.badge{position:absolute;left:13px;top:13px;max-width:calc(100% - 26px)}.collection-personal{background:#fff}.collection-personal img{object-fit:contain;padding:42px 20px 20px}.collection-laser{background:#151a23}.collection-spectral img{object-fit:cover;object-position:center 40%}.collection-copy{padding-top:22px}.archive-destination h3{font-size:33px;margin:11px 0;letter-spacing:-.05em;font-weight:500}.archive-destination p{font-size:12px;line-height:1.7;color:#b0bac9;margin:0;min-height:42px}.archive-button{border:0;border-bottom:1px solid #718095;display:flex;justify-content:space-between;align-items:center;background:transparent;color:#edf4ff;padding:13px 0;margin:16px 0 0;width:100%;font-size:12px;transition:border-color .2s}.archive-button:hover{background:transparent;border-color:var(--fire)}.collection-credit{font-size:10px;color:#8896aa;max-width:100%;margin-top:26px;line-height:1.7}
.signature{background:#0a0c10;border-color:#2d3441}.signature h2{max-width:650px}.switcher{gap:30px;border-color:#3b4451}.switcher button{color:#acb7c7}.switcher button[aria-selected=true]{border-color:var(--fire);color:#f3f6fc}.signature-stage{background:#020304}.media-panel{min-height:480px}.stage-copy h3{font-family:var(--sans);font-size:38px;letter-spacing:-.05em}.stage-copy p{color:#afb9c9}.outline{border-color:#7a8ba5;background:linear-gradient(120deg,#cad9f220,#a5b9da06);border-radius:4px;color:#f4f7fb;transition:background .2s}.outline:hover{background:#cad9f22a}.cinema-panel{border:0;background:#020304}.film-preview img{height:410px;width:100%;object-fit:contain}.stage-copy .small{margin-top:14px;font-size:10px;color:#8997ac}.case-heading h3{font-family:var(--sans);font-weight:500}.case-grid span{color:#d2dbe9}.case-grid p{color:#9facbf}.case-grid>div{border-color:#384151}.process-slots>div{background:none;border-color:#455064}.process-slots span{color:#cfdaed}.experience,.experience:nth-child(2){background:none;border:0;border-top:1px solid #535e70;padding:30px 0 0}.experience h3{font-family:var(--sans);font-size:40px;font-weight:500}.experience>p{color:#aab6c9}.experience-grid{gap:70px}.experience summary{border-color:#66748a}.experience details p{color:#c0cddd}.status-note{color:#95a2b7}.lab-section{background:#e4eaf3;color:#141c2b}.lab-section .eyebrow,.lab-section .section-note{color:#435369}.lab-list{border-color:#b0bccd}.lab-list article{border-color:#b0bccd}.lab-list h3{font-family:var(--sans);font-size:26px;font-weight:500}.lab-list article>span,.lab-list p{color:#435369}.about h2{font-size:58px}.large-copy{font-family:var(--sans);font-size:24px;font-weight:400;letter-spacing:-.03em}.about-copy>p:not(.eyebrow):not(.large-copy):not(.philosophy):not(.small){color:#a9b5c7}.philosophy{font-family:var(--sans);font-weight:300;font-size:23px;border-color:var(--fire)}.capabilities span{border-color:#435068;color:#b4c4da}.experience-timeline article{border-color:#343d4c}.experience-timeline article.pending{border-color:#606f85;background:#b3c7e208}.experience-timeline h3{letter-spacing:-.03em}.experience-timeline article>span,.experience-timeline p{color:#a5b2c6}.contact h2{font-size:clamp(50px,7.4vw,110px);font-weight:500}.contact-action{font-family:var(--sans);color:#fff}.online-links{color:#c6d5eb}.contact,footer{border-color:#3d4758}footer .identity{font-size:10px}.dialog-inner h2{font-weight:500}.dialog-inner .lead{color:#bdc9dc}dialog{background:#121822;border-color:#66748a;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#000d;backdrop-filter:none}.dialog-close{background:#263143;color:#fff}.dialog-note{border-color:#4f617b;color:#adbed4}.film-dialog{max-width:960px}.film-player{display:block;width:100%;height:min(68svh,740px);object-fit:contain;background:#000}.film-transcript{margin-top:22px;font-size:12px;color:#b2c0d4}.film-transcript p{padding-top:10px}.play-film{display:inline-flex;gap:30px;align-items:center}.film-load-error{color:#ffd0c7;font-size:13px}.film-download{display:inline-block;border-bottom:1px solid #889bb8;margin-top:12px;font-size:12px}.media-panel:not([hidden]){animation:panel-reveal .3s ease-out}.project-card:not([hidden]){animation:panel-reveal .3s ease-out}
@keyframes reveal-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes object-reveal{from{opacity:.35;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes panel-reveal{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(min-width:1700px){.hero-ident,.hero-intro{left:max(70px,calc((100vw - 1500px)/2))}.hero-v2 h1{font-size:76px}.hero-v2 .hero-art{left:32%}}
@media(max-width:1100px) and (min-width:761px){.site-header{inset:18px 25px auto;padding-inline:15px}nav{gap:16px;font-size:10px}.site-header .identity{font-size:9px}.hero-ident,.hero-intro,.stage-note{left:32px}.hero-v2 h1{font-size:45px}.hero-descriptor{font-size:12px}.hero-v2 .hero-art{left:32%;right:-3%}.hero-intro{bottom:90px}.hero-actions{gap:15px;font-size:10px}.wrap{width:calc(100% - 64px)}.archive-destination h3{font-size:27px}.collection-image{height:330px}.archive-destination p{font-size:11px}.project-card:nth-child(2) .card-media{height:520px}.card-media{height:420px}.project-card:nth-child(3){margin-top:-30px}.project-card:nth-child(3) .card-media{height:350px}}
@media(max-width:760px){html{scroll-padding-top:24px}.wrap{width:calc(100% - 36px)}.section{padding-block:60px}.site-header{position:absolute;inset:12px 14px auto;padding:5px 13px;min-height:52px;display:flex;flex-wrap:wrap;gap:0;align-items:center;justify-content:space-between;border-radius:10px}.site-header>.identity{font-size:9px;gap:10px}.monogram{font-size:23px}.menu-toggle:not([hidden]){display:block}.site-header nav{flex-basis:100%;display:grid;grid-template-columns:1fr 1fr;gap:3px 20px;margin:6px 0 9px;padding-top:10px;border-top:1px solid #94a2b044;overflow:visible}.site-header.menu-ready nav{display:none}.site-header.menu-open nav{display:grid}.site-header nav a{font-size:12px;min-height:44px;width:100%;color:#e0e8f5}.nav-contact{margin:0;border:0}.site-header.menu-open{background:linear-gradient(120deg,#424d60e6,#141a24f5);backdrop-filter:blur(16px)}.hero-v2{height:auto;max-height:none;min-height:0;display:flex;flex-direction:column;padding:92px 0 38px;background:#000;overflow:hidden}.hero-v2::before{background:linear-gradient(#11151e 0%,#000 23%,#000 90%,#101114)}.hero-ident{position:relative;inset:auto;margin:0 22px;max-width:none;order:0;animation:reveal-up .5s both}.hero-ident .eyebrow{display:none}.hero-v2 h1{font-size:30px;line-height:1.05;margin:0 0 9px;letter-spacing:-.05em}.hero-descriptor{font-size:10px;line-height:1.6;letter-spacing:.01em}.desktop-break{display:none}.hero-v2 .hero-art{position:relative;inset:auto;order:1;width:100%;height:auto;display:block;margin:7px 0 0;min-height:0}.hero-v2 .hero-art img{width:100%;height:auto;max-height:none;aspect-ratio:1280/1153;object-fit:contain;mask-image:none}.hero-v2 .hero-art figcaption{position:relative;inset:auto;margin:0 22px;gap:15px;font-size:7px;line-height:1.6;letter-spacing:.07em;text-align:left;min-height:24px}.hero-v2 .hero-art figcaption span:last-child{font-size:7px;text-align:right}.hero-intro{position:relative;inset:auto;order:2;margin:22px 22px 0;animation:none}.hero-intro>p{font-size:14px;color:#b9c6d9}.hero-actions{margin-top:16px;gap:22px;font-size:10px}.glass-action{padding:9px 13px}.hero-actions a{gap:13px}.stage-note{display:none}.hero-v2::after{height:25px}.hero-ident,.hero-art,.hero-intro{flex-shrink:0}.section-heading{margin-bottom:25px}.section-note{font-size:12px;margin-top:18px}.filters{gap:5px;padding:16px 0 25px}.filters button{font-size:10px;padding:7px 11px}.project-grid,.project-grid.filtered{grid-template-columns:1fr;gap:38px}.project-card:nth-child(n),.project-grid.filtered .project-card{margin:0;padding:0;width:100%;grid-column:auto}.card-media,.project-grid.filtered .card-media{height:360px}.project-card:nth-child(2) .card-media{height:490px}.project-card:nth-child(3) .card-media{height:330px}.project-card:nth-child(4) .card-media{height:380px}.project-card:nth-child(5) .card-media{height:330px}.project-card:nth-child(6) .card-media{height:290px}.card-caption h3{font-size:26px}.card-caption .eyebrow{font-size:8px}.archive-grid{grid-template-columns:1fr;gap:42px}.collection-image{height:390px}.collection-personal img{padding:30px 30px 15px}.collection-spectral img{object-fit:contain}.collection-copy{padding-top:19px}.archive-destination h3{font-size:32px;margin-block:9px}.archive-destination p{font-size:12px;min-height:0}.archive-button{margin-top:12px}.collection-credit{font-size:9px;margin-top:24px}.switcher{gap:12px}.switcher button{font-size:10px}.media-panel{min-height:0;padding:24px 18px}.stage-copy h3{font-size:32px}.stage-copy p{font-size:12px}.film-preview img{height:350px}.case-heading h3{font-size:30px}.experience-grid{gap:40px}.experience h3{font-size:34px}.experience>p{font-size:13px}.lab-list h3{font-size:25px}.about h2{font-size:46px}.about{gap:45px}.contact h2{font-size:51px}.dialog-inner{padding:12px 20px 30px}.dialog-inner h2{font-size:34px}.film-player{height:62svh}.dialog-close{padding:13px 19px}.portal{width:200px;height:250px}footer{gap:16px}}
@media(max-width:380px){.hero-v2 h1{font-size:28px}.hero-descriptor{font-size:9px}.hero-actions{gap:15px;font-size:9px}.hero-v2{padding-top:88px}.hero-ident,.hero-intro{margin-inline:18px}.hero-intro{margin-top:18px}.card-media{height:320px}.collection-image{height:350px}.contact h2{font-size:46px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-ident,.hero-v2 .hero-art,.hero-intro,.media-panel,.project-card{opacity:1;transform:none}}
.menu-toggle{display:none}.site-header{position:fixed;left:50%;right:auto;width:min(1080px,calc(100% - 80px));transform:translateX(-50%)}.hero-v2 .hero-art img{mask-image:none}@media(max-width:760px){.site-header{left:14px;right:14px;width:auto;transform:none}.menu-toggle:not([hidden]){display:block}html{scroll-padding-top:85px}}
#motion-toggle{background:none;border:1px solid #58677e;color:#c7d5e8;font-size:10px;padding:8px 12px;min-height:40px}.reduce-motion{scroll-behavior:auto}.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{animation:none!important;transition:none!important}.reduce-motion .hero-ident,.reduce-motion .hero-v2 .hero-art,.reduce-motion .hero-intro,.reduce-motion .media-panel,.reduce-motion .project-card{opacity:1;transform:none}@media(max-width:760px){.hero-v2{gap:0}.hero-ident,.hero-intro{align-self:stretch}.hero-v2 .hero-art figcaption{margin-top:6px}}
#models{scroll-margin-top:-75px}@media(max-width:760px){#models{scroll-margin-top:-25px}}
@media(min-width:761px){.hero-v2::before{background:linear-gradient(90deg,#13161c 0%,#060709 15%,#000 30%)}}

/* Personal Sketchfab collection: David’s Mission District environment scan. */
.collection-image.collection-street{background:#11151b}.collection-image.collection-street img{object-fit:cover;object-position:58% center;padding:0}
