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

:root { color-scheme: dark; --ink:#121311; --ink-soft:#1b1d19; --ink-light:#232620; --paper:#f2f0e9; --paper-dim:#c2c4b7; --lime:#d9f36d; --lime-soft:#e7f5b4; --line:rgba(242,240,233,.14); --line-dark:rgba(18,19,17,.13); --muted:#858a7c; --mono:'DM Mono', monospace; --display:'Space Grotesk', sans-serif; --body:'Manrope', sans-serif; --ease:cubic-bezier(.23,1,.32,1); --ease-soft:cubic-bezier(.77,0,.175,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:var(--paper); font-family:var(--body); font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body::before { content:''; position:fixed; inset:0; z-index:100; pointer-events:none; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { border:0; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid var(--lime); outline-offset:4px; }
::selection { background:var(--lime); color:var(--ink); }
.site-loader { position:fixed; inset:0; z-index:50; display:grid; place-items:center; background:var(--ink); transition:opacity .65s var(--ease), visibility .65s; }
.site-loader.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-inner { width:min(280px,72vw); text-align:center; }
.loader-mark { display:block; color:var(--lime); font:700 52px/1 var(--display); letter-spacing:-.11em; margin-bottom:28px; }
.loader-line { height:1px; width:100%; background:rgba(242,240,233,.15); overflow:hidden; }
.loader-line span { display:block; width:30%; height:100%; background:var(--lime); animation:loadline 1.2s var(--ease) forwards; }
.loader-inner p { color:var(--muted); font:10px var(--mono); letter-spacing:.12em; margin:16px 0 0; }
@keyframes loadline { to { transform:translateX(235%); } }
.cursor-dot,.cursor-ring { position:fixed; z-index:60; pointer-events:none; border-radius:999px; opacity:0; transform:translate(-50%,-50%); transition:opacity .2s ease, width .25s var(--ease), height .25s var(--ease), background .25s ease, border-color .25s ease; }
.cursor-dot { width:6px; height:6px; background:var(--lime); }
.cursor-ring { width:34px; height:34px; border:1px solid rgba(217,243,109,.65); }
.cursor-dot.is-visible,.cursor-ring.is-visible { opacity:1; }
.cursor-ring.is-hover { width:64px; height:64px; background:rgba(217,243,109,.12); border-color:var(--lime); }
.site-header { position:fixed; z-index:30; top:0; left:0; width:100%; padding:23px clamp(22px,5vw,72px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid transparent; transition:background .3s ease, border-color .3s ease, padding .3s ease; }
.site-header.scrolled { padding-top:15px; padding-bottom:15px; background:rgba(18,19,17,.82); border-color:var(--line); backdrop-filter:blur(18px); }
.brand { display:flex; align-items:center; gap:10px; font:700 18px var(--display); letter-spacing:-.04em; }
.brand-mark { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--lime); color:var(--lime); font:500 13px var(--mono); letter-spacing:-.12em; }
.brand-name { color:var(--paper); }
.desktop-nav { display:flex; gap:34px; margin-left:7%; }
.desktop-nav a { position:relative; color:var(--paper-dim); font:11px var(--mono); letter-spacing:.05em; text-transform:uppercase; transition:color .2s ease; }
.desktop-nav a::after { content:''; position:absolute; bottom:-8px; left:0; width:0; height:1px; background:var(--lime); transition:width .25s var(--ease); }
.desktop-nav a:hover,.desktop-nav a.is-active { color:var(--paper); }
.desktop-nav a.is-active::after,.desktop-nav a:hover::after { width:100%; }
.header-cta { display:flex; align-items:center; gap:10px; color:var(--lime); font:11px var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.header-cta span { font-size:15px; transition:transform .25s var(--ease); }
.header-cta:hover span { transform:translate(3px,-3px); }
.menu-toggle { display:none; background:none; color:var(--paper); width:36px; height:36px; position:relative; }
.menu-toggle span { position:absolute; left:7px; width:22px; height:1px; background:var(--paper); transition:transform .25s ease; }
.menu-toggle span:first-child { top:13px; }.menu-toggle span:last-child { top:21px; }
.menu-toggle.is-open span:first-child { transform:translateY(4px) rotate(45deg); }.menu-toggle.is-open span:last-child { transform:translateY(-4px) rotate(-45deg); }
.mobile-menu { position:fixed; z-index:25; inset:0; display:flex; flex-direction:column; justify-content:center; padding:110px 26px 40px; background:rgba(18,19,17,.98); transform:translateY(-100%); transition:transform .5s var(--ease); }
.mobile-menu.is-open { transform:translateY(0); }.mobile-menu nav { display:flex; flex-direction:column; gap:23px; }.mobile-menu a { color:var(--muted); font:11px var(--mono); }.mobile-menu a span { margin-left:20px; color:var(--paper); font:600 clamp(30px,11vw,58px) var(--display); letter-spacing:-.07em; }.mobile-menu p { margin-top:auto; color:var(--muted); font:11px/1.8 var(--mono); }
.section-shell { position:relative; padding-left:clamp(22px,9vw,145px); padding-right:clamp(22px,9vw,145px); }
.hero { min-height:100vh; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(380px,.96fr); gap:5vw; align-items:center; padding-top:128px; padding-bottom:56px; overflow:hidden; }
.hero-atmosphere { position:absolute; z-index:-2; inset:0; background:radial-gradient(circle at 79% 36%, rgba(170,194,72,.13), transparent 31%), radial-gradient(circle at 19% 42%, rgba(100,118,89,.08), transparent 29%), var(--ink); }
.hero-grid-lines { position:absolute; z-index:-1; inset:0; opacity:.3; background-image:linear-gradient(rgba(242,240,233,.06) 1px, transparent 1px),linear-gradient(90deg, rgba(242,240,233,.06) 1px, transparent 1px); background-size:96px 96px; mask-image:linear-gradient(to right, transparent, black 30%, black 80%, transparent); }
.hero-content { padding-bottom:6vh; }.eyebrow,.section-kicker,.form-heading,.project-label,.timeline-date { font:10px var(--mono); letter-spacing:.11em; text-transform:uppercase; }.eyebrow { display:flex; gap:10px; align-items:center; color:var(--lime); margin-bottom:28px; }.status-dot { width:6px; height:6px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 5px rgba(217,243,109,.12); }
.hero-title,.section-title,.contact-title { margin:0; font:600 clamp(58px,8.5vw,132px)/.89 var(--display); letter-spacing:-.095em; }.hero-title em,.section-title span,.contact-title em { color:var(--lime-soft); font-style:normal; font-weight:400; }.hero-lede { max-width:480px; color:var(--paper-dim); font-size:clamp(16px,1.5vw,20px); line-height:1.55; margin:38px 0 32px; }.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:51px; padding:0 20px; cursor:pointer; font:11px var(--mono); letter-spacing:.04em; text-transform:uppercase; transition:transform .2s var(--ease), background .25s ease, color .25s ease; }.button:active { transform:scale(.97); }.button span { font-size:16px; transition:transform .25s var(--ease); }.button:hover span { transform:translate(4px,-4px); }.button-primary { color:var(--ink); background:var(--lime); }.button-primary:hover { background:#edfca7; transform:translateY(-3px); }.button-dark { color:var(--paper); background:var(--ink); }.button-dark:hover { background:var(--ink-soft); transform:translateY(-3px); }.text-link { color:var(--paper-dim); font:11px var(--mono); }.text-link span { color:var(--lime); }.text-link b { color:var(--lime); font-size:15px; font-weight:400; margin-left:5px; transition:transform .2s ease; display:inline-block; }.text-link:hover b { transform:translate(3px,-3px); }.hero-meta { display:flex; justify-content:space-between; align-items:center; max-width:650px; margin-top:92px; color:var(--muted); font:10px var(--mono); text-transform:uppercase; letter-spacing:.06em; }.scroll-cue { display:flex; gap:12px; align-items:center; }.scroll-cue i { color:var(--lime); font-size:17px; font-style:normal; animation:scrollcue 1.8s ease-in-out infinite; }.hero-visual { min-height:550px; height:min(67vh,700px); position:relative; display:flex; align-items:center; justify-content:center; }.visual-image-wrap { position:relative; width:min(68%,390px); height:92%; overflow:hidden; border-radius:30px 30px 12px 12px; transform:rotate(2deg); background:#d8d8d4; box-shadow:0 30px 100px rgba(0,0,0,.55); }.visual-image-wrap img { width:100%; height:100%; object-fit:contain; object-position:center; filter:grayscale(1) contrast(1.04) brightness(.84); transition:transform 1.2s var(--ease); }.hero-visual:hover .visual-image-wrap img { transform:scale(1.06); }.visual-shade { position:absolute; inset:0; background:linear-gradient(125deg, rgba(18,19,17,.35), transparent 50%, rgba(217,243,109,.13)); mix-blend-mode:multiply; }.visual-orbit { position:absolute; border:1px solid rgba(217,243,109,.36); border-radius:50%; transform:rotate(-22deg); }.orbit-one { width:101%; height:55%; }.orbit-two { width:75%; height:96%; transform:rotate(37deg); opacity:.4; }.glass-panel { border:1px solid rgba(242,240,233,.22); background:rgba(23,26,20,.52); backdrop-filter:blur(14px); }.visual-caption { position:absolute; left:-5%; bottom:9%; width:210px; padding:17px; transform:rotate(-4deg); }.visual-caption span,.visual-caption small,.visual-coordinate small { display:block; color:var(--muted); font:9px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.08em; }.visual-caption strong { display:block; color:var(--paper); font:600 15px/1.15 var(--display); margin:9px 0; }.visual-caption small { font-size:8px; text-transform:none; letter-spacing:0; }.visual-caption code,.project-note code { color:var(--lime); font:9px var(--mono); }.visual-coordinate { position:absolute; right:0; top:11%; padding:12px 14px; text-align:right; transform:rotate(6deg); }.visual-coordinate span { color:var(--lime); font:17px var(--mono); }.visual-signal { position:absolute; right:8%; bottom:0; display:flex; align-items:center; gap:10px; color:var(--muted); font:9px var(--mono); text-transform:uppercase; }.visual-signal i { display:block; width:8px; height:8px; background:var(--lime); box-shadow:0 0 0 5px rgba(217,243,109,.12); border-radius:50%; }
@keyframes scrollcue { 50% { transform:translateY(5px); } }
.intro,.skills,.work,.experience { padding-top:clamp(105px,13vw,190px); padding-bottom:clamp(105px,13vw,190px); }.intro { background:var(--paper); color:var(--ink); }.section-kicker { display:flex; gap:22px; color:var(--muted); margin-bottom:65px; }.section-kicker span:first-child { color:var(--lime); }.intro .section-kicker { color:#777a6d; }.intro .section-kicker span:first-child { color:#5f7330; }.intro-layout,.skills-heading,.work-heading,.experience-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.82fr); gap:7vw; }.section-title { font-size:clamp(52px,7.4vw,106px); }.intro .section-title span,.skills .section-title span,.experience .section-title span { color:#4f6322; }.intro-copy { max-width:480px; padding-top:12px; }.intro-copy p { color:#61645b; max-width:430px; }.intro-copy .large-copy { color:var(--ink); font:500 clamp(21px,2.1vw,30px)/1.22 var(--display); letter-spacing:-.055em; margin:0 0 28px; }.intro .text-link { display:inline-block; color:#4a4e42; margin-top:18px; }.intro .text-link span,.intro .text-link b { color:#56652d; }.statement-strip { display:grid; grid-template-columns:1fr 2.5fr 1fr; align-items:center; gap:20px; padding:50px 0; margin:120px 0 68px; border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }.statement-index { color:#777a6d; font:10px var(--mono); }.statement-strip p { margin:0; font:500 clamp(27px,3.5vw,52px)/.98 var(--display); letter-spacing:-.07em; }.statement-strip em { color:#4f6322; font-style:normal; }.statement-mark { color:#748746; font-size:40px; justify-self:end; }.principles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.principles-grid article { border-top:1px solid var(--line-dark); padding-top:17px; }.principles-grid span { color:#79806e; font:10px var(--mono); }.principles-grid h3 { font:600 18px var(--display); letter-spacing:-.04em; margin:26px 0 8px; }.principles-grid p { max-width:230px; color:#696d63; font-size:13px; margin:0; }
.skills { background:#e5e3da; color:var(--ink); }.skills .section-kicker,.work .section-kicker,.experience .section-kicker { color:#71756b; }.skills .section-kicker span:first-child,.work .section-kicker span:first-child,.experience .section-kicker span:first-child { color:#6b7f35; }.section-intro { max-width:370px; color:#64685d; font-size:14px; margin:0; }.skills-stage { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:115px; }.skill-cluster { position:relative; min-height:230px; padding:24px; border:1px solid rgba(18,19,17,.18); background:rgba(255,255,255,.24); overflow:hidden; }.skill-cluster::after { content:''; position:absolute; width:130px; height:130px; right:-40px; bottom:-45px; border-radius:50%; background:var(--lime); opacity:.33; filter:blur(18px); transition:transform .6s var(--ease); }.skill-cluster:hover::after { transform:scale(1.7); }.featured-skill { background:var(--ink); color:var(--paper); border-color:var(--ink); transform:translateY(-26px); }.featured-skill .skill-cluster-head small { color:#9ea395; }.featured-skill .skill-chips span { border-color:rgba(242,240,233,.22); color:var(--paper); }.skill-cluster-head { display:grid; grid-template-columns:40px 1fr; position:relative; z-index:1; }.skill-cluster-head span { color:#79806e; font:10px var(--mono); }.featured-skill .skill-cluster-head span { color:var(--lime); }.skill-cluster h3 { margin:0; font:600 26px var(--display); letter-spacing:-.07em; }.skill-cluster-head small { grid-column:2; color:#777a6e; font:10px var(--mono); margin-top:3px; }.skill-chips { position:relative; z-index:1; display:flex; flex-wrap:wrap; align-content:flex-end; gap:7px; margin-top:74px; }.skill-chips span { padding:7px 10px; border:1px solid rgba(18,19,17,.19); color:#454a40; font:10px var(--mono); transition:background .2s ease, color .2s ease, transform .2s var(--ease); }.skill-chips span:hover { background:var(--lime); color:var(--ink); transform:translateY(-3px); }.featured-skill .skill-chips span:hover { color:var(--ink); }.skill-constellation { pointer-events:none; position:absolute; inset:-80px -30px; opacity:.35; }.constellation-line { position:absolute; display:block; height:1px; background:#9cae66; transform-origin:left center; }.line-a { width:42%; top:26%; left:7%; transform:rotate(14deg); }.line-b { width:33%; top:61%; left:43%; transform:rotate(-25deg); }.line-c { width:30%; top:24%; left:69%; transform:rotate(41deg); }.constellation-node { position:absolute; width:8px; height:8px; border:1px solid #7c8f40; border-radius:50%; }.node-a { top:25%; left:43%; }.node-b { top:60%; left:75%; }.node-c { top:51%; left:33%; }
.work { background:var(--ink); }.work-heading { align-items:end; margin-bottom:80px; }.work .section-title { color:var(--paper); }.work .section-intro { color:var(--paper-dim); }.project-switcher { border-top:1px solid var(--line); margin-bottom:36px; }.project-tab { width:100%; display:grid; grid-template-columns:50px 1fr 30px; align-items:center; gap:12px; padding:18px 0; cursor:pointer; color:var(--muted); background:none; border-bottom:1px solid var(--line); text-align:left; transition:color .2s ease, padding .25s var(--ease); }.project-tab span,.project-tab i { font:10px var(--mono); }.project-tab strong { font:500 19px var(--display); letter-spacing:-.05em; }.project-tab i { font-style:normal; justify-self:end; color:var(--muted); transition:transform .25s var(--ease); }.project-tab:hover,.project-tab.is-active { color:var(--paper); padding-left:12px; }.project-tab.is-active strong { color:var(--lime-soft); }.project-tab.is-active span,.project-tab.is-active i { color:var(--lime); }.project-tab:hover i,.project-tab.is-active i { transform:translate(3px,-3px); }.project-feature { display:grid; grid-template-columns:1.1fr .9fr; min-height:500px; border:1px solid var(--line); }.project-art { min-height:500px; overflow:hidden; position:relative; }.project-art img { width:100%; height:100%; object-fit:cover; filter:saturate(.7); transition:transform .9s var(--ease); }.project-feature:hover .project-art img { transform:scale(1.055); }.art-overlay { position:absolute; inset:0; background:linear-gradient(145deg,rgba(18,19,17,.1),rgba(18,19,17,.65)); }.art-index,.art-corner { position:absolute; color:var(--paper); font:10px var(--mono); text-transform:uppercase; }.art-index { top:22px; left:22px; color:var(--lime); }.art-corner { bottom:21px; left:22px; line-height:1.6; }.art-corner span { color:var(--lime); }.project-details { display:flex; flex-direction:column; padding:44px clamp(24px,4vw,62px); background:#e5e3da; color:var(--ink); }.project-label { display:flex; justify-content:space-between; gap:15px; color:#71756b; }.project-label span:last-child { color:#73853e; text-align:right; }.project-details h3 { font:600 clamp(40px,5vw,68px)/.93 var(--display); letter-spacing:-.09em; margin:60px 0 25px; }.project-details h3 em { color:#6b7f35; font-style:normal; font-weight:400; }.project-details p { max-width:390px; color:#61645b; margin:0; }.project-meta { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:auto; padding-top:45px; border-top:1px solid var(--line-dark); }.project-meta span { display:block; color:#777a6d; font:9px var(--mono); text-transform:uppercase; margin-bottom:8px; }.project-meta strong { font:500 13px var(--display); }.project-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; padding-top:24px; }.project-note { color:#777a6d; font:9px/1.5 var(--mono); max-width:180px; }
.experience { background:#e5e3da; color:var(--ink); }.experience-layout { align-items:start; }.experience .section-intro { margin-top:38px; }.timeline { position:relative; padding-left:54px; }.timeline::before { content:''; position:absolute; left:14px; top:7px; bottom:10px; width:1px; background:rgba(18,19,17,.16); }.timeline-item { position:relative; display:grid; grid-template-columns:1fr; padding:0 0 54px; }.timeline-marker { position:absolute; left:-54px; top:0; display:grid; place-items:center; width:29px; height:29px; border:1px solid #778840; border-radius:50%; background:#e5e3da; color:#66752f; font:10px var(--mono); }.timeline-item:not(.is-placeholder) .timeline-marker { background:#718238; color:var(--paper); }.timeline-date { color:#7a7f70; }.timeline h3 { font:600 22px var(--display); letter-spacing:-.06em; margin:16px 0 8px; }.timeline p { max-width:490px; color:#666a60; font-size:13px; margin:0; }.timeline-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }.timeline-tags span { padding:6px 9px; color:#73786a; border:1px solid rgba(18,19,17,.16); font:9px var(--mono); }.is-placeholder { opacity:.62; }.philosophy { display:grid; grid-template-columns:100px 1fr 100px; align-items:center; gap:24px; padding:50px 0 0; margin-top:70px; border-top:1px solid var(--line-dark); }.philosophy-mark { color:#718238; font:80px/.7 Georgia,serif; }.philosophy p { max-width:760px; margin:0; font:500 clamp(24px,3.3vw,48px)/1.04 var(--display); letter-spacing:-.07em; }.philosophy-sign { justify-self:end; color:#7a7f70; font:10px var(--mono); }
.contact { min-height:100vh; display:flex; flex-direction:column; justify-content:center; overflow:hidden; padding-top:140px; padding-bottom:30px; }.contact-orb { position:absolute; width:min(70vw,750px); aspect-ratio:1; right:-22%; top:18%; border-radius:50%; background:radial-gradient(circle at 30% 32%,rgba(217,243,109,.17),transparent 16%),radial-gradient(circle,rgba(217,243,109,.07),transparent 59%); filter:blur(2px); pointer-events:none; }.contact-layout { position:relative; z-index:1; display:grid; grid-template-columns:1fr minmax(340px,.75fr); gap:9vw; align-items:center; }.contact-title { font-size:clamp(60px,8.8vw,126px); }.contact-copy > p { max-width:400px; color:var(--paper-dim); margin:36px 0 45px; font-size:16px; }.contact-links { display:flex; flex-direction:column; width:min(430px,100%); }.contact-link { display:grid; grid-template-columns:90px 1fr 20px; align-items:center; gap:18px; padding:17px 0; border-top:1px solid var(--line); transition:padding .25s var(--ease); }.contact-link:last-child { border-bottom:1px solid var(--line); }.contact-link:hover { padding-left:10px; }.contact-link span,.form-heading span,.form-heading small { color:var(--muted); font:9px var(--mono); text-transform:uppercase; letter-spacing:.07em; }.contact-link strong { font:500 16px var(--display); letter-spacing:-.03em; }.contact-link b { color:var(--lime); font:16px var(--body); font-weight:400; }.contact-form { padding:28px; }.form-heading { display:flex; justify-content:space-between; align-items:center; color:var(--lime); margin-bottom:35px; }.form-heading small { color:#858a7c; text-transform:none; letter-spacing:0; }.contact-form label { display:block; margin-bottom:21px; }.contact-form label span { display:block; color:#9b9f92; font:10px var(--mono); margin-bottom:8px; }.contact-form input,.contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(242,240,233,.2); background:transparent; color:var(--paper); border-radius:0; padding:9px 0; outline:0; resize:vertical; transition:border-color .2s ease; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--lime); }.contact-form input::placeholder,.contact-form textarea::placeholder { color:#686d62; }.contact-form .button { width:100%; margin-top:6px; }.form-note { color:#777d70; font:9px/1.55 var(--mono); margin:18px 0 0; }.form-note.is-success { color:var(--lime); }.site-footer { position:relative; z-index:1; display:flex; justify-content:space-between; gap:15px; margin-top:auto; padding-top:60px; color:#73786e; font:9px var(--mono); text-transform:uppercase; }.site-footer a { color:var(--lime); }.toast { position:fixed; z-index:40; right:25px; bottom:25px; max-width:300px; padding:13px 17px; border:1px solid var(--lime); background:var(--ink); color:var(--paper); font:10px var(--mono); transform:translateY(140%); transition:transform .35s var(--ease); }.toast.is-visible { transform:translateY(0); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }.reveal.is-visible { opacity:1; transform:translateY(0); }.reveal-delay-1 { transition-delay:.08s; }.reveal-delay-2 { transition-delay:.16s; }.reveal-delay-3 { transition-delay:.24s; }.reveal-delay-4 { transition-delay:.32s; }
@media (max-width:900px) { .desktop-nav,.header-cta { display:none; }.menu-toggle { display:block; }.hero { grid-template-columns:1fr; padding-top:145px; }.hero-content { padding-bottom:0; }.hero-visual { min-height:440px; height:65vh; max-height:620px; width:min(100%,600px); justify-self:center; margin-top:20px; }.visual-caption { left:1%; }.intro-layout,.skills-heading,.work-heading,.experience-layout,.contact-layout { grid-template-columns:1fr; gap:40px; }.statement-strip { margin-top:80px; }.skills-stage { grid-template-columns:1fr; margin-top:65px; }.featured-skill { transform:none; }.project-feature { grid-template-columns:1fr; }.project-art { min-height:380px; }.project-details { min-height:480px; }.experience .section-intro { margin-top:0; }.contact-layout { gap:70px; }.contact-form { max-width:560px; }.contact-orb { right:-50%; top:23%; }.philosophy { grid-template-columns:60px 1fr; }.philosophy-sign { grid-column:2; justify-self:start; }.site-footer { flex-wrap:wrap; padding-top:80px; } }
@media (max-width:600px) { .site-header { padding:18px 22px; }.section-shell { padding-left:22px; padding-right:22px; }.hero { min-height:auto; padding-top:125px; padding-bottom:60px; }.hero-title { font-size:clamp(57px,17vw,96px); }.hero-lede { margin-top:28px; }.hero-meta { gap:14px; flex-wrap:wrap; margin-top:62px; }.hero-meta > span:nth-child(2) { order:3; width:100%; }.hero-visual { min-height:370px; height:58vh; }.visual-image-wrap { width:min(78%,320px); height:91%; }.visual-caption { width:190px; bottom:4%; }.visual-coordinate { top:6%; }.section-kicker { margin-bottom:42px; }.intro,.skills,.work,.experience { padding-top:95px; padding-bottom:95px; }.section-title { font-size:clamp(49px,14vw,76px); }.intro-copy { padding-top:0; }.statement-strip { grid-template-columns:1fr 36px; gap:20px; padding:35px 0; }.statement-strip p { grid-row:2; grid-column:1 / -1; }.statement-mark { grid-column:2; grid-row:1; }.principles-grid { grid-template-columns:1fr; gap:30px; }.principles-grid article { display:grid; grid-template-columns:35px 1fr; }.principles-grid article h3,.principles-grid article p { grid-column:2; }.principles-grid article h3 { margin-top:8px; }.principles-grid article p { max-width:none; }.work-heading { margin-bottom:55px; }.project-tab { grid-template-columns:34px 1fr 20px; }.project-tab strong { font-size:16px; }.project-art { min-height:300px; }.project-details { padding:30px 22px; min-height:505px; }.project-details h3 { margin-top:47px; font-size:48px; }.project-meta { margin-top:42px; }.project-actions { align-items:flex-start; flex-direction:column; }.timeline { padding-left:45px; }.timeline-marker { left:-45px; }.philosophy { grid-template-columns:35px 1fr; gap:12px; }.philosophy-mark { font-size:60px; }.philosophy p { font-size:29px; }.contact { padding-top:105px; }.contact-title { font-size:clamp(56px,16vw,88px); }.contact-copy > p { margin:28px 0 35px; }.contact-link { grid-template-columns:75px 1fr 20px; gap:10px; }.contact-link strong { font-size:13px; }.contact-form { padding:20px; }.site-footer { display:grid; grid-template-columns:1fr 1fr; }.site-footer span:nth-child(2) { text-align:right; }.site-footer a { grid-column:1 / -1; margin-top:8px; } }
@media (pointer:coarse) { .cursor-dot,.cursor-ring { display:none; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } .reveal { opacity:1; transform:none; } }
