:root{--ink:#f4efe1;--ink-dim:#c3cde3;--gold:#f2c94c;--gold-soft:#f7e3a1;--night:#0a1640;--card:#081132d6;--edge:#f7e3a12e;--gutter:17vw}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--night);color:var(--ink);margin:0}body{-webkit-font-smoothing:antialiased;font:400 17px/1.6 Inter,system-ui,sans-serif}#sky,#land{z-index:0;pointer-events:none;width:100%;height:100lvh;display:block;position:fixed;inset:0}#land{will-change:transform}.topbar{z-index:10;background:linear-gradient(#060c26d1,#060c2600);justify-content:space-between;align-items:center;padding:18px 28px;transition:background-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.topbar.scrolled{box-shadow:0 1px 0 var(--edge);background:#060c26e6}.mark{color:var(--ink);text-shadow:0 2px 12px #04081ee6;font:italic 500 1.25rem/1 Fraunces,serif;text-decoration:none}.mark .short{display:none}.topbar nav{align-items:center;gap:26px;display:flex}.topbar nav a{color:var(--gold-soft);letter-spacing:.02em;text-shadow:0 2px 10px #04081ee6;font-size:.95rem;text-decoration:none}.topbar nav a:hover{color:#fff}.theme{border:1px solid var(--edge);width:36px;height:36px;color:var(--gold);cursor:pointer;background:#08113299;border-radius:50%;place-items:center;font-size:1rem;display:grid}main{z-index:1;position:relative}.hero{min-height:100svh;position:relative;overflow-x:clip}.hero-copy{z-index:1;isolation:isolate;margin-left:var(--gutter);max-width:760px;padding:15vh 28px 0 0;position:relative}.hero-copy:before{content:"";z-index:-1;background:radial-gradient(at 42% 48%,#060c28a8,#060c2800 68%);position:absolute;inset:4% -14% 10% -10%}.eyebrow span{white-space:nowrap}.eyebrow{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-size:.78rem;font-weight:600}h1{letter-spacing:-.01em;text-shadow:0 3px 24px #04081ed9;margin:0;font:400 clamp(2.7rem,min(6.2vw,9.5vh),5.4rem)/1.02 Fraunces,serif}h1 em{color:var(--gold-soft);font-weight:300}.lede{max-width:38ch;color:var(--ink);text-shadow:0 2px 14px #04081ee6;margin:24px 0 0;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.55}.availability{border:1px solid var(--edge);color:var(--ink-dim);background:#0811329e;border-radius:999px;align-items:center;gap:10px;margin:26px 0 0;padding:7px 14px;font-size:.9rem;display:inline-flex}.availability .dot{background:var(--gold);width:8px;height:8px;box-shadow:0 0 10px var(--gold);border-radius:50%}.ctas{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.btn{color:var(--gold-soft);background:#0811328c;border:1px solid #f7e3a173;border-radius:999px;padding:12px 20px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block}.btn.primary{background:var(--gold);border-color:var(--gold);color:#0b1640}.stats{border:1px solid var(--edge);background:var(--card);border-radius:20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;max-width:1000px;margin:0 0 12vh;padding:26px 34px;display:grid}.stats div{padding-top:4px}.stats dt{color:var(--gold);text-shadow:0 2px 14px #04081ee6;font:500 clamp(1.7rem,2.6vw,2.3rem)/1 Fraunces,serif}.stats dd{color:var(--ink-dim);text-shadow:0 1px 8px #04081ee6;margin:8px 0 0;font-size:.85rem;line-height:1.4}.section{padding:12vh 6vw 6vh var(--gutter);position:relative}#work{padding-top:16vh}.section h2{text-shadow:0 3px 20px #04081ee6;margin:0 0 28px;font:400 clamp(2rem,3.6vw,3rem)/1.1 Fraunces,serif}.case{border:1px solid var(--edge);background:var(--card);border-radius:20px;max-width:1000px;padding:32px 34px;box-shadow:0 24px 60px #02061873}.case-meta{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:600}.case h3{margin:10px 0 24px;font:400 clamp(1.5rem,2.4vw,2rem)/1.2 Fraunces,serif}.case-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.case h4{color:var(--gold-soft);margin:0 0 6px;font:italic 500 1.05rem/1.3 Fraunces,serif}.case p{color:var(--ink-dim);margin:0;font-size:.96rem}.tags{flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--edge);color:var(--gold-soft);border-radius:999px;padding:4px 12px;font-size:.8rem}.case+.case{margin-top:22px}.section h2.sub{margin-top:10vh}.timeline{border:1px solid var(--edge);background:var(--card);border-radius:20px;max-width:1000px;margin:0;padding:30px 34px;list-style:none}.timeline li{border-top:1px solid #f7e3a11a;grid-template-columns:130px minmax(0,1fr);gap:24px;padding:20px 0;display:grid}.timeline li:first-child{border-top:0;padding-top:0}.timeline li:last-child{padding-bottom:0}.when{color:var(--gold);letter-spacing:.04em;margin:0;padding-top:4px;font-size:.85rem;font-weight:600}.role{margin:0;font:400 1.3rem/1.3 Fraunces,serif}.role .at{color:var(--gold-soft);font-style:italic;font-weight:300}.where{color:var(--ink-dim);letter-spacing:.02em;margin:2px 0 8px;font-size:.82rem}.what{color:var(--ink-dim);margin:0;font-size:.96rem}.edu{max-width:1000px;color:var(--ink-dim);text-shadow:0 1px 8px #04081ee6;margin:18px 0 0;font-size:.92rem}.edu em{color:var(--gold-soft);margin-right:10px;font:italic 500 1rem Fraunces,serif}.skills{border:1px solid var(--edge);background:var(--card);border-radius:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 34px;max-width:1000px;padding:30px 34px;display:grid}.skills h3{color:var(--gold-soft);margin:0;font:italic 500 1.05rem/1.3 Fraunces,serif}.skills .tags{margin-top:12px}.projects{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;max-width:1000px;display:grid}.project{border:1px solid var(--edge);background:var(--card);color:inherit;border-radius:18px;padding:24px 26px;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.project:hover{border-color:#f7e3a180;transform:translateY(-2px)}.project h3{margin:0 0 6px;font:400 1.35rem/1.2 Fraunces,serif}.project p{color:var(--ink-dim);margin:0;font-size:.95rem}.project .meta{color:var(--gold-soft);gap:16px;margin-top:14px;font-size:.82rem;display:flex}.section.contact{padding-bottom:58vh}.contact p{text-shadow:0 2px 14px #04081ee6;max-width:36ch;margin:0;font-size:1.15rem}#hud{z-index:20;color:#9fe39f;white-space:pre;background:#0009;border-radius:8px;padding:6px 10px;font:12px/1.4 ui-monospace,monospace;position:fixed;bottom:12px;left:12px}@media screen and (orientation:portrait),screen and (width<=760px){:root{--gutter:0px}.topbar{padding:12px 14px}.theme{width:32px;height:32px}.mark .full{display:none}.mark .short{display:inline}.topbar nav{gap:10px}.topbar nav a{letter-spacing:0;font-size:.8rem}.hero-copy{margin:0;padding:96px 22px 0}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:20px}.section.contact{padding-bottom:56svh}.section{padding:10vh 18px 4vh}.case{padding:24px 20px}.case-grid{grid-template-columns:1fr;gap:18px}.timeline{padding:24px 20px}.timeline li{grid-template-columns:1fr;gap:4px}.skills,.projects{grid-template-columns:1fr}.skills{padding:24px 20px}}:root:not([data-theme=starry-night]) #sky,:root:not([data-theme=starry-night]) #land{display:none}.skip{z-index:30;background:var(--gold);color:#0b1640;border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.print-only{display:none}@media print{@page{size:A4;margin:12mm 14mm}:root{--ink:#111;--ink-dim:#333;--gold:#7a5c00;--gold-soft:#4a3b10;--card:transparent;--edge:#c8c8c8;--gutter:0px}html,body{color:var(--ink);background:#fff;font-size:10pt;line-height:1.45}#sky,#land,#hud,.topbar,.skip,.ctas,.availability,.contact,.hero-copy:before{display:none!important}*{text-shadow:none!important;box-shadow:none!important}a{color:inherit;text-decoration:none}.print-only{display:block}.print-contact{color:var(--ink-dim);margin:8pt 0 0;font-size:9.5pt}.hero{min-height:0}.hero-copy{max-width:none;margin:0;padding:0}.eyebrow{margin-bottom:6pt;font-size:8pt}h1{font-size:24pt}.lede{max-width:none;margin-top:8pt;font-size:10.5pt}.section,#work{margin-top:12pt;padding:0}.section h2{margin:0 0 8pt;font-size:14pt}.section h2.sub{margin-top:12pt}.stats{border:0;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:12pt;margin:0 0 14pt;padding:8pt 0}.stats dt{font-size:14pt}.stats dd{font-size:8.5pt}.case,.timeline,.skills,.project{background:0 0;border:0;border-radius:0;padding:0}.case{break-inside:avoid}.case+.case{margin-top:12pt}.case h3{margin:2pt 0 6pt;font-size:12pt}.case-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12pt}.case p,.what{font-size:9.5pt}.timeline li{break-inside:avoid;border-top-color:#e2e2e2;grid-template-columns:70pt minmax(0,1fr);gap:10pt;padding:4pt 0}.where{margin:0 0 2pt}.role{font-size:11pt}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:6pt 20pt}.skills .tags{gap:0;margin-top:2pt}.skills .tags li{border:0;padding:0;font-size:9pt}.skills .tags li:not(:last-child):after{content:", "}.tags{gap:4pt;margin-top:6pt}.tags li{color:#333;border-color:#bbb;padding:0 6pt;font-size:8pt}#projects{break-inside:avoid}.projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:10pt}.project h3{font-size:11pt}.project p{font-size:9pt}}
