
:root{--bg:#070a0d;--panel:#0d1318;--panel2:#111a20;--line:#27343d;--text:#f5f7f8;--muted:#a8b3ba;--accent:#f2aa3c;--accent2:#79dcff;--danger:#ffcf70;--max:1260px;--radius:18px;--shadow:0 24px 70px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.05;letter-spacing:-.035em}main{max-width:var(--max);margin:auto;padding:0 28px}.site-header{max-width:var(--max);margin:auto;min-height:78px;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:11px;font-weight:800}.brand-mark{width:37px;height:37px;border:1px solid var(--accent);display:grid;place-items:center;border-radius:10px;color:var(--accent);font-size:.82rem}.site-nav{display:flex;align-items:center;gap:24px;color:#d5dde1}.site-nav a:hover{color:white}.nav-cta{border:1px solid var(--line);padding:9px 14px;border-radius:10px}.menu-button{display:none;background:transparent;border:1px solid var(--line);color:white;padding:8px 11px;border-radius:9px}.hero{display:grid;grid-template-columns:1.02fr .98fr;gap:64px;align-items:center;min-height:730px;padding:90px 0}.kicker,.section-label,.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800}.hero h1,.page-hero h1{font-size:clamp(4rem,8vw,7.5rem);max-width:960px;margin:.12em 0}.hero-lede,.page-hero p,.case-hero>div>p{font-size:1.18rem;color:var(--muted);max-width:760px}.hero-actions,.download-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:11px;border:1px solid var(--line);font-weight:800}.button.primary{background:var(--accent);border-color:var(--accent);color:#181006}.button.secondary{background:var(--panel);color:#edf2f4}.hero-proof{display:flex;gap:22px;margin-top:34px;color:var(--muted);font-size:.88rem}.hero-proof span{display:grid}.hero-proof strong{color:white;font-size:1.75rem;line-height:1}.hero-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;min-height:590px}.hero-collage img{width:100%;height:100%;object-fit:cover;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.hero-collage .hero-main{grid-row:1/3}.section{padding:90px 0}.intro-grid,.section-heading,.capability-section,.archive-download,.case-next{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.intro-grid h2,.section-heading h2,.capability-section h2,.archive-download h2,.case-next h2{font-size:clamp(2.2rem,4vw,4.2rem)}.intro-grid>p{font-size:1.2rem;color:var(--muted)}.section-heading{grid-template-columns:1fr auto;align-items:end;margin-bottom:28px}.text-link{color:var(--accent);font-weight:800}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}.project-card-link{display:block;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.project-card-link:hover{transform:translateY(-4px);border-color:#56646d;box-shadow:var(--shadow)}.project-image{aspect-ratio:16/10;background:#111920;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.project-card-link:hover .project-image img{transform:scale(1.025)}.project-card-body{padding:22px}.eyebrow-row{display:flex;justify-content:space-between;gap:14px;align-items:start}.status{color:var(--muted);font-size:.72rem;text-align:right}.project-card h3{font-size:1.55rem;margin:.65em 0 .45em}.project-card p{color:var(--muted);font-size:.94rem}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}.tag-list span{font-size:.69rem;color:#cbd4d9;border:1px solid var(--line);background:#0a1014;border-radius:999px;padding:5px 8px}.method-grid,.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.method-grid article{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:25px}.method-grid article>span{color:var(--accent);font-size:.75rem}.method-grid h3{margin:.8em 0 .4em}.method-grid p{color:var(--muted);font-size:.92rem}.capability-list{display:grid;border-top:1px solid var(--line)}.capability-list div{display:grid;grid-template-columns:170px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:16px 0}.capability-list span{color:var(--muted)}.cta-panel{background:linear-gradient(145deg,#121a20,#0b1014);border:1px solid var(--line);border-radius:24px;padding:55px}.cta-panel h2{font-size:clamp(2.5rem,5vw,5rem)}.cta-panel p{color:var(--muted);max-width:780px}.page-hero{padding:110px 0 55px}.page-hero h1{font-size:clamp(3.5rem,7vw,7rem)}.browser-tools{border-bottom:1px solid var(--line);padding:0 0 24px;margin-bottom:22px}.search-box{display:grid;gap:7px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}.search-box input{width:100%;background:var(--panel);border:1px solid var(--line);color:white;border-radius:12px;padding:15px 16px;font-size:1rem}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.filters button{background:#10171c;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 11px;cursor:pointer}.filters button.active{background:var(--accent);border-color:var(--accent);color:#151008}.inventory-list{display:grid;gap:12px}.inventory-row{display:grid;grid-template-columns:1fr 260px;gap:30px;padding:25px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.inventory-link{transition:transform .18s ease,border-color .18s ease}.inventory-link:hover{transform:translateX(4px);border-color:#56646d}.inventory-row h3{font-size:1.45rem;margin:.5em 0 .25em}.inventory-row p{color:var(--muted);margin-top:0}.inventory-row dl{margin:0;display:grid;align-content:center;gap:13px}.inventory-row dl div{display:grid}.inventory-row dt{font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.inventory-row dd{margin:0;color:#d4dce1;font-size:.9rem}.archive-download{align-items:end}.about-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}.about-photo img{border-radius:var(--radius);border:1px solid var(--line);aspect-ratio:4/5;object-fit:cover}.about-photo span{display:block;color:var(--muted);font-size:.82rem;margin-top:9px}.about-copy p{font-size:1.13rem;color:var(--muted)}blockquote{margin:35px 0 0;border-left:3px solid var(--accent);padding:5px 0 5px 24px;font-size:1.5rem;line-height:1.25}.experience{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.timeline{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.timeline article{background:var(--panel);padding:24px}.timeline article span{color:var(--accent);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.timeline h3{margin:.35em 0}.timeline p{color:var(--muted);margin:0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.contact-card,.contact-notes{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:34px}.contact-email{display:block;font-size:clamp(1.4rem,3vw,2.3rem);font-weight:800;margin:20px 0 30px;color:var(--accent)}.contact-notes li{margin:10px 0;color:#d3dbe0}.contact-notes p,.contact-card p{color:var(--muted)}.case-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;padding:80px 0}.case-hero h1{font-size:clamp(3.2rem,6vw,6.2rem);margin:.12em 0}.case-hero>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);background:#111820}.back-link{color:var(--muted);font-size:.9rem}.tag-list.large span{font-size:.8rem}.case-layout{display:grid;grid-template-columns:260px 1fr;gap:70px}.case-layout aside{display:grid;align-content:start;gap:16px;position:sticky;top:20px;height:max-content}.case-layout aside>div{border-bottom:1px solid var(--line);padding-bottom:13px;display:grid}.case-layout aside span{font-size:.67rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.aside-link{color:var(--accent);font-weight:800}.case-content{max-width:900px}.case-content>section{padding:0 0 72px}.case-content h2{font-size:clamp(1.9rem,3vw,3.15rem);line-height:1.15}.case-lede{font-size:1.14rem;color:#c7d0d5}.highlight-list{display:grid;gap:12px;padding-left:22px;color:#d5dde1;font-size:1.08rem}.highlight-list li::marker{color:var(--accent)}.iteration-list{list-style:none;padding:0;margin:25px 0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.iteration-list li{display:grid;grid-template-columns:60px 1fr;background:var(--panel);padding:20px;gap:15px;align-items:start}.iteration-list span{color:var(--accent);font-weight:900;font-size:.8rem}.iteration-list p{margin:0;color:#d5dde1}.case-note,.confidentiality-note,.empty-gallery{background:var(--panel);border:1px solid var(--line);padding:28px!important;border-radius:var(--radius)}.case-note p,.confidentiality-note p,.empty-gallery p{color:var(--muted);margin-bottom:0}.confidentiality-note{border-color:#715b32}.case-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.gallery-item{margin:0}.gallery-open{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);cursor:zoom-in;position:relative}.gallery-open img{width:100%;height:330px;object-fit:cover}.gallery-item figcaption{color:var(--muted);font-size:.82rem;margin-top:7px}.review-badge{position:absolute;right:8px;top:8px;background:#302814;color:var(--danger);border:1px solid #8a6f32;border-radius:999px;padding:5px 8px;font-size:.67rem;font-weight:800}.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.93);display:none;place-items:center;padding:30px}.lightbox.open{display:grid}.lightbox img{max-width:min(1500px,92vw);max-height:82vh;object-fit:contain}.lightbox p{color:#d7dfe3;max-width:900px;text-align:center;margin:10px 0 0}.lightbox-close{position:fixed;top:18px;right:22px;color:white;background:#111;border:1px solid #555;border-radius:50%;width:44px;height:44px;font-size:26px;cursor:pointer}.site-footer{max-width:var(--max);margin:60px auto 0;padding:45px 28px;display:grid;grid-template-columns:1fr auto;gap:25px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}.site-footer strong{color:white}.footer-links{display:flex;gap:18px}.footer-note{grid-column:1/-1;font-size:.76rem}.hidden{display:none!important}
/* Resume page */.resume-body{background:#0a0d10}.resume-shell{max-width:980px;margin:42px auto;padding:48px;background:#10161b;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.resume-header{display:flex;justify-content:space-between;gap:40px;padding-bottom:30px;border-bottom:1px solid var(--line)}.resume-header h1{font-size:clamp(2.8rem,6vw,4.9rem);line-height:.95;letter-spacing:-.055em;margin:.15em 0}.resume-title{font-size:1.1rem;color:var(--muted);margin:0}.resume-contact{display:grid;align-content:start;justify-items:end;gap:5px;color:var(--muted);padding-top:26px}.resume-contact a{color:var(--accent);font-weight:750}.resume-summary,.resume-section{padding:32px 0;border-bottom:1px solid var(--line)}.resume-summary h2,.resume-section h2{font-size:1.25rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 15px}.resume-summary p{font-size:1.08rem;color:#d7dfe3;margin:0}.resume-role+.resume-role{margin-top:30px}.resume-role-heading{display:flex;justify-content:space-between;gap:25px;align-items:start}.resume-role-heading h3{font-size:1.5rem;margin:0}.resume-role-heading p{color:var(--muted);margin:2px 0 0}.resume-role-heading strong{white-space:nowrap;color:#d9e0e4}.resume-role ul{margin:14px 0 0;padding-left:22px}.resume-role li{margin:8px 0;color:#d4dce0}.resume-role li::marker{color:var(--accent)}.resume-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.resume-project-grid article{background:#0c1115;border:1px solid var(--line);border-radius:12px;padding:18px}.resume-project-grid h3{margin:0 0 7px}.resume-project-grid p{color:var(--muted);margin:0;font-size:.93rem}.resume-two-column{display:grid;grid-template-columns:1.35fr .65fr;gap:45px}.resume-two-column p{color:#d4dce0}.resume-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-top:26px;color:var(--muted);font-size:.82rem}.resume-footer button{border:1px solid var(--line);background:var(--accent);color:#181007;padding:10px 15px;border-radius:9px;font-weight:800;cursor:pointer}
@media(max-width:980px){.site-header{height:auto;min-height:70px;flex-wrap:wrap;padding:14px 20px}.menu-button{display:block}.site-nav{display:none;flex-basis:100%;padding:18px 0 6px;flex-direction:column;align-items:flex-start;gap:14px}.site-nav.open{display:flex}main{padding:0 20px}.hero,.case-hero{grid-template-columns:1fr;min-height:auto;padding:70px 0}.hero-collage{min-height:480px}.hero-proof{flex-wrap:wrap}.intro-grid,.section-heading,.capability-section,.archive-download,.case-next,.about-layout,.experience,.contact-grid{grid-template-columns:1fr;gap:28px}.section-heading>a{justify-self:start}.project-grid{grid-template-columns:1fr 1fr}.method-grid{grid-template-columns:1fr 1fr}.inventory-row{grid-template-columns:1fr}.case-layout{grid-template-columns:1fr}.case-layout aside{position:static;grid-template-columns:repeat(3,1fr)}.case-gallery{grid-template-columns:1fr 1fr}.site-footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.footer-note{grid-column:auto}}
@media(max-width:620px){.hero{padding-top:52px}.hero h1,.page-hero h1{font-size:3.25rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-proof{display:grid;grid-template-columns:1fr 1fr}.hero-collage{min-height:420px;grid-template-columns:1fr 1fr}.hero-collage .hero-main{grid-column:1/3;grid-row:auto}.project-grid,.method-grid,.case-gallery{grid-template-columns:1fr}.capability-list div{grid-template-columns:1fr;gap:2px}.section{padding:65px 0}.cta-panel{padding:30px}.case-layout aside{grid-template-columns:1fr}.filters{flex-wrap:nowrap;overflow:auto;padding-bottom:4px}.filters button{white-space:nowrap}.gallery-open img{height:260px}.site-footer{padding-left:20px;padding-right:20px}.resume-shell{margin:0;padding:28px 20px;border:0;border-radius:0}.resume-header,.resume-role-heading,.resume-footer{display:grid}.resume-contact{justify-items:start;padding-top:0}.resume-project-grid,.resume-two-column{grid-template-columns:1fr}.resume-role-heading strong{margin-top:5px}}
@media print{body.resume-body{background:white;color:#111}.resume-shell{max-width:none;margin:0;padding:0;border:0;box-shadow:none;background:white}.resume-shell,.resume-shell h1,.resume-shell h2,.resume-shell h3,.resume-shell p,.resume-shell li,.resume-shell strong{color:#111}.resume-shell .kicker,.resume-shell .resume-section h2,.resume-shell .resume-summary h2,.resume-shell .resume-contact a{color:#7a4c00}.resume-shell .resume-title,.resume-shell .resume-contact,.resume-shell .resume-role-heading p,.resume-shell .resume-project-grid p,.resume-shell .resume-footer{color:#444}.resume-project-grid article{background:white;border-color:#bbb}.resume-header,.resume-summary,.resume-section{border-color:#bbb}.resume-footer button{display:none}.resume-shell a{text-decoration:none}}

/* V4 additions */
.case-live-link{margin-top:24px}.web-property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.web-property{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .18s ease,border-color .18s ease}.web-property:hover{transform:translateY(-4px);border-color:#56646d}.web-property>span{color:var(--accent);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.web-property h3{font-size:1.8rem;margin:.45em 0}.web-property p{color:var(--muted)}.web-property strong{color:var(--accent)}.muted-property{border-style:dashed}@media(max-width:980px){.web-property-grid{grid-template-columns:1fr}}
