@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{color-scheme:dark;--bg:#0d1113;--panel:#171d1e;--panel2:#202828;--text:#f2f2ec;--muted:#a5b0aa;--line:#34403e;--mint:#c7e9d4;--orange:#e7a37e;font-family:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
button{font:inherit}
a:focus-visible{outline:2px solid var(--mint);outline-offset:5px}
.skip-link{position:absolute;top:-60px;left:10px;padding:10px;background:var(--mint);color:#111;z-index:20}
.skip-link:focus{top:10px}
.site-shell{max-width:1800px;margin:auto;overflow:hidden}
.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 clamp(24px,5.5vw,100px);border-bottom:1px solid var(--line)}
.brand{display:inline-flex;gap:13px;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:700;letter-spacing:-.05em;white-space:nowrap}
.brand-symbol{display:grid;place-items:center;position:relative;width:30px;height:30px;border:1px solid #87aa96;transform:rotate(-12deg);font-size:14px;line-height:1}
.brand-symbol>span{position:absolute;right:-6px;bottom:-6px;background:var(--orange);color:#111;padding:2px;font-size:9px}
.brand-dot{color:var(--orange)}
.main-nav{display:flex;gap:clamp(20px,3vw,54px);font-size:13px;color:#c4cbc6}
.main-nav a:hover,.site-footer a:hover{color:var(--mint)}
.header-cta{padding:11px 16px;border:1px solid #66766f;border-radius:3px;font-size:12px;font-weight:700;white-space:nowrap}
.header-cta span{margin-left:14px;color:var(--mint)}
.header-cta:hover{border-color:var(--mint);background:#1b2923}
.hero{padding:80px clamp(24px,5.5vw,100px) 30px;display:grid;grid-template-columns:1fr .9fr;gap:clamp(35px,4.5vw,86px);min-height:660px;position:relative}
.hero-copy{align-self:center;padding-bottom:28px}
.eyebrow,.section-index,.project-number,.visual-top,.visual-bottom,.hero-bottom,.art-caption,.contact-label,.projects-note,.site-footer{font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:.13em}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--mint);margin:0}
.pulse-dot{width:8px;height:8px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 5px #c7e9d421}
.hero h1,.section-heading h2,.about h2,.workbench h2,.contact h2{font-family:'Space Grotesk',sans-serif;font-weight:500;letter-spacing:-.08em;line-height:.97}
.hero h1{font-size:clamp(72px,8.4vw,143px);margin:30px 0 28px}
.hero h1 em,.section-heading h2 em,.about h2 em,.workbench h2 em,.contact h2 em{font-style:normal;color:var(--mint)}
.hero-lead{max-width:590px;font-family:'Space Grotesk',sans-serif;font-size:clamp(21px,2.25vw,31px);letter-spacing:-.04em;line-height:1.25;margin:0 0 18px}
.hero-support{max-width:480px;color:#aeb9b0;font-size:15px;line-height:1.7;margin:0}
.hero-actions{display:flex;align-items:center;gap:30px;margin-top:36px}
.button{display:inline-flex;gap:32px;align-items:center;justify-content:space-between;padding:15px 19px;font-size:13px;font-weight:700;border-radius:3px;white-space:nowrap}
.button-primary{background:var(--mint);color:#152019}
.button-primary:hover{background:#e4fae9}
.button-outline{border:1px solid #9ec5aa;color:#e5f1e6}
.button-outline:hover{background:#21352a}
.text-link{display:inline-block;font-size:13px;font-weight:700;border-bottom:1px solid #717874;padding-bottom:5px;white-space:nowrap}
.text-link span{margin-left:12px;color:var(--mint)}
.text-link:hover{border-color:var(--mint)}
.hero-visual{height:500px;align-self:center;border:1px solid #526b60;background:radial-gradient(circle at 52% 40%,#415951 0,#20332e 37%,#15221f 65%,#14201d 100%);position:relative;overflow:hidden;box-shadow:16px 16px 0 #222b27}
.hero-visual:before{content:'';position:absolute;inset:0;background:linear-gradient(125deg,#f5ffee0a,transparent 45%);pointer-events:none}
.visual-top,.visual-bottom{position:absolute;left:28px;right:28px;display:flex;justify-content:space-between;z-index:1;color:#d7e8da}
.visual-top{top:25px}.visual-bottom{bottom:23px}
.orbit-art{width:100%;height:100%;transform:scale(1.05)}
.hero-bottom{grid-column:1/-1;display:flex;align-items:center;gap:12px;color:#84958c;margin-top:18px}
.hero-bottom span:last-child{margin-left:auto}.scroll-line{height:1px;width:60px;background:#738078}
.section-pad{padding:110px clamp(24px,5.5vw,100px)}
.projects{border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:47px}
.section-index{color:var(--orange)}
.section-heading h2,.about h2,.workbench h2,.contact h2{font-size:clamp(50px,6.3vw,94px);margin:22px 0 0}
.section-heading>p{max-width:365px;color:var(--muted);line-height:1.7;font-size:14px;margin:0 0 4px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.project-card{min-width:0;background:var(--panel);border:1px solid var(--line);transition:transform .2s,border-color .2s}
.project-card:hover{transform:translateY(-4px);border-color:#859a8e}
.project-art{height:270px;overflow:hidden;position:relative}
.project-art:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff10 1px,transparent 1px),linear-gradient(90deg,#ffffff10 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(transparent,#000)}
.project-art:after{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-12deg);font-family:'Space Grotesk',sans-serif;font-size:140px;font-weight:700;letter-spacing:-.14em}
.project-art-server{background:radial-gradient(circle at 50% 49%,#375f54,#1b3430 55%,#142622)}
.project-art-server:after{content:'▰';color:#c2e9cf;text-shadow:18px 22px 0 #638e7b,36px 44px 0 #345e50}
.project-art-press{background:radial-gradient(circle at 40% 25%,#6a4d3c,#302522 66%,#201e1d)}
.project-art-press:after{content:'⌗';color:#e6bc91;font-size:210px;text-shadow:12px 17px 0 #593e30}
.project-art-site{background:radial-gradient(circle at 70% 30%,#514b62,#252631 60%,#1a1e25)}
.project-art-site:after{content:'W.';color:#d1e7d5;text-shadow:12px 14px 0 #778d88}
.art-caption{position:absolute;left:22px;bottom:20px;color:#e3efe5;z-index:1}
.project-info{padding:25px 24px 27px}
.project-number{color:var(--orange)}
.project-info h3{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:500;letter-spacing:-.055em;margin:16px 0 10px}
.project-info p{font-size:13px;color:#aebbb1;line-height:1.65;min-height:64px;margin:0}
.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}
.project-tags span{font-size:10px;border:1px solid #4c5b51;color:#cbd9ce;padding:7px 9px;border-radius:2px}
.project-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #4c5b51;margin-top:24px;padding-top:16px;font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:700}
.project-link span{color:var(--mint);font-size:17px}.project-link:hover{color:var(--mint)}
.projects-note{display:flex;align-items:center;gap:12px;color:#92a399;margin:30px 0 0;letter-spacing:.07em}
.note-star{font-size:25px;color:var(--mint);font-weight:400}
.about{display:grid;grid-template-columns:1fr .8fr;gap:60px;border-top:1px solid var(--line)}
.about-copy{align-self:end;padding-bottom:8px}
.about-copy p{font-size:17px;line-height:1.7;color:#c4cec5;max-width:550px;margin:0 0 18px}
.about-copy p+p{color:#9eaca2}.about-copy .text-link{margin-top:12px}
.workbench{display:grid;grid-template-columns:110px 1fr auto;gap:38px;align-items:center;background:#18221d;border-top:1px solid #496153;border-bottom:1px solid #496153}
.workbench-mark{display:grid;place-items:center;width:100px;height:100px;border:1px solid #789b82;transform:rotate(-9deg);font-family:'Space Grotesk',sans-serif;font-size:55px;font-weight:700;letter-spacing:-.11em}
.workbench-mark span{color:var(--orange)}
.workbench h2{font-size:clamp(45px,4.4vw,68px);margin:16px 0 17px}
.workbench p{max-width:550px;color:#aebeb0;font-size:14px;line-height:1.65;margin:0}
.workbench-action{text-align:right;align-self:end;padding-bottom:7px}
.workbench-action .button{min-width:192px}
.workbench-action p{font-size:11px;max-width:210px;margin:14px 0 0 auto}
.contact{background:#121819}
.contact-layout{display:grid;grid-template-columns:1fr .68fr;gap:70px;align-items:end}
.contact h2{font-size:clamp(56px,6.6vw,98px);margin:22px 0 25px}
.contact-layout>div:first-child>p{max-width:500px;color:#adbab1;font-size:16px;line-height:1.7}
.contact-card{background:#1a2421;border:1px solid #4b6555;padding:32px;min-height:255px;display:flex;flex-direction:column;align-items:flex-start}
.contact-label{color:var(--orange);margin-bottom:16px}
.contact-card strong{font-family:'Space Grotesk',sans-serif;font-size:30px;letter-spacing:-.05em;font-weight:500;margin-bottom:12px}
.contact-email{color:var(--mint);font-size:15px;border-bottom:1px solid #799986;padding-bottom:5px;word-break:break-word}
.contact-email:hover{color:#fff}.contact-email span{margin-left:8px}
.contact-divider{height:1px;background:#4b6253;width:100%;margin:25px 0 21px}
.resume-pending{font-size:13px;color:#91a69a}
.resume-link{color:var(--mint);font-size:14px;border-bottom:1px solid #799986;padding-bottom:5px}
.resume-link:hover{color:#fff}.resume-link span{margin-left:8px}
.site-footer{min-height:105px;padding:28px clamp(24px,5.5vw,100px);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;color:#8fa198}
.site-footer .brand{color:var(--text);letter-spacing:-.05em}.site-footer>a:last-child{font-size:10px;color:var(--mint)}
@media(max-width:1150px){.hero{grid-template-columns:1fr 1fr;gap:30px}.hero h1{font-size:clamp(68px,8vw,110px)}.hero-visual{height:420px}.workbench{grid-template-columns:90px 1fr}.workbench-mark{width:82px;height:82px;font-size:45px}.workbench-action{grid-column:2;text-align:left;align-self:start}.workbench-action p{margin-left:0;max-width:none}}
@media(max-width:850px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-layout{grid-template-columns:1fr}.contact-card{max-width:520px}.about{grid-template-columns:1fr}.about-copy{align-self:start}.main-nav{gap:18px}}
@media(max-width:700px){.site-header{height:74px}.main-nav{display:none}.hero{padding-top:55px;grid-template-columns:1fr;min-height:0}.hero-copy{padding-bottom:0}.hero h1{font-size:clamp(67px,17vw,105px);margin:21px 0}.hero-visual{height:360px;margin-right:16px}.hero-bottom{margin-top:20px}.section-pad{padding-top:78px;padding-bottom:78px}.section-heading{display:block}.section-heading>p{margin-top:25px}.project-grid{grid-template-columns:1fr}.project-art{height:260px}.project-info p{min-height:0}.about{gap:24px}.workbench{grid-template-columns:1fr;gap:24px}.workbench-action{grid-column:auto}.site-footer{flex-wrap:wrap}.site-footer>span{order:3;width:100%}}
@media(max-width:440px){.brand{font-size:15px}.brand-symbol{width:26px;height:26px}.header-cta{padding:9px;font-size:11px}.header-cta span{margin-left:4px}.hero-actions{flex-wrap:wrap;gap:24px}.visual-top,.visual-bottom{left:16px;right:16px;font-size:8px}.hero-visual{height:300px}.contact-card{padding:24px}.contact-card strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card{transition:none}}

/* Portfolio hero: the supplied F-14 photograph sits behind the introduction. */
.hero{display:flex;flex-direction:column;justify-content:center;min-height:700px;border-bottom:1px solid var(--line);background-image:linear-gradient(90deg,#0d1113f7 0%,#0d1113e8 28%,#0d1113a8 50%,#0d111342 78%,#0d111328 100%),linear-gradient(0deg,#0d1113d9,transparent 30%),url('hero-f14.png');background-size:cover;background-position:center,center,center 45%}
.hero-copy{width:min(100%,680px);align-self:flex-start;margin:auto 0 18px;padding:0}
.hero h1{font-size:clamp(74px,8.7vw,145px);text-shadow:0 3px 30px #07101199}
.hero-lead,.hero-support{text-shadow:0 2px 16px #071011}
.hero-bottom{width:100%;margin-top:auto;color:#c7d9ce}
@media(max-width:700px){.hero{min-height:680px;background-image:linear-gradient(90deg,#0d1113e8,#0d1113b3 65%,#0d11137a),linear-gradient(0deg,#0d1113e8,transparent 45%),url('hero-f14.png');background-position:center,center,57% center}.hero-copy{margin:auto 0 14px}.hero-bottom{margin-top:auto}}
@media(max-width:440px){.hero{min-height:660px}.hero h1{font-size:clamp(66px,17vw,94px)}}
