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

:root { --ink:#202323; --muted:#6f7470; --paper:#f2f0e9; --lime:#cdf45b; --line:rgba(32,35,35,.16); --orange:#ff704d; --mono:'DM Mono', monospace; --display:'Space Grotesk', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--display); }
a { color:inherit; text-decoration:none; }
.site-shell { max-width:1440px; margin:auto; overflow:hidden; }
.topbar { align-items:center; display:flex; justify-content:space-between; padding:25px 5.6vw; border-bottom:1px solid var(--line); }
.brand { align-items:center; display:flex; gap:11px; font-size:14px; font-weight:600; }
.brand-mark { align-items:center; background:var(--ink); color:var(--lime); display:flex; font-family:var(--mono); font-size:10px; height:30px; justify-content:center; letter-spacing:-1px; width:30px; }
.nav-links { display:flex; gap:34px; font-family:var(--mono); font-size:11px; color:var(--muted); text-transform:uppercase; }
.nav-links a:hover, .text-link:hover { color:var(--orange); }
.status-chip { align-items:center; display:flex; font-family:var(--mono); font-size:10px; gap:8px; text-transform:uppercase; }
.status-chip span, .caption-dot { background:#8ccc4a; border-radius:50%; box-shadow:0 0 0 4px rgba(140,204,74,.16); height:7px; width:7px; }
.section-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw; padding-left:5.6vw; padding-right:5.6vw; }
.hero { min-height:700px; padding-bottom:90px; padding-top:100px; }
.eyebrow { align-items:center; color:var(--muted); display:flex; font-family:var(--mono); font-size:10px; gap:10px; letter-spacing:.02em; margin:0 0 29px; text-transform:uppercase; }
.eyebrow-line { background:var(--orange); display:block; height:1px; width:30px; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-weight:500; letter-spacing:-.075em; line-height:.94; }
h1 { font-size:clamp(60px, 8vw, 116px); margin-bottom:32px; }
h2 { font-size:clamp(48px, 6vw, 86px); margin-bottom:30px; }
em { color:var(--orange); font-style:normal; }
.hero-intro { color:var(--muted); font-size:16px; line-height:1.55; max-width:390px; }
.hero-actions { align-items:center; display:flex; gap:25px; margin-top:40px; }
.button { align-items:center; display:inline-flex; font-family:var(--mono); font-size:11px; gap:22px; justify-content:space-between; padding:16px 18px; text-transform:uppercase; transition:transform .2s, background .2s; }
.button:hover { transform:translateY(-3px); }
.button-primary { background:var(--lime); min-width:207px; }
.button-dark { background:var(--ink); color:var(--paper); min-width:172px; }
.button span { font-size:17px; }
.text-link { border-bottom:1px solid var(--ink); font-family:var(--mono); font-size:11px; padding-bottom:6px; text-transform:uppercase; }
.hero-meta { display:flex; font-family:var(--mono); font-size:10px; gap:38px; margin-top:104px; color:var(--muted); text-transform:uppercase; }
.hero-visual { background:var(--ink); min-height:500px; position:relative; }
.visual-label, .visual-caption { color:#b6bcb4; display:flex; font-family:var(--mono); font-size:9px; justify-content:space-between; left:24px; letter-spacing:.04em; position:absolute; right:24px; text-transform:uppercase; top:21px; z-index:1; }
.visual-caption { align-items:center; bottom:21px; gap:10px; justify-content:flex-start; left:24px; right:24px; top:auto; }.visual-caption .mono { margin-left:auto; color:#6f7970; }
.mono { font-family:var(--mono); }.hero-visual canvas { display:block; height:100%; inset:0; position:absolute; width:100%; }
.system-trigger { background:transparent; border:1px solid rgba(205,244,91,.42); bottom:56px; color:var(--lime); cursor:pointer; font-family:var(--mono); font-size:9px; left:24px; padding:10px 12px; position:absolute; text-transform:uppercase; transition:background .2s, color .2s, transform .2s; z-index:2; }.system-trigger:hover, .system-trigger:focus-visible, .system-trigger.is-active { background:var(--lime); color:var(--ink); transform:translateY(-2px); }.system-trigger span { font-size:14px; margin-left:15px; }.system-status { color:#8d968d; font-family:var(--mono); font-size:9px; left:24px; position:absolute; top:48px; z-index:2; }
.ticker { background:var(--lime); overflow:hidden; padding:17px 0; white-space:nowrap; }
.ticker-track { animation:marquee 24s linear infinite; display:flex; gap:33px; width:max-content; font-family:var(--mono); font-size:11px; }.ticker b { font-size:13px; font-weight:400; }
.systems { padding-bottom:150px; padding-top:145px; }.service-list { border-top:1px solid var(--line); }.service-row { align-items:flex-start; border-bottom:1px solid var(--line); display:grid; grid-template-columns:45px 1fr 25px; gap:14px; padding:27px 0; transition:padding .25s, color .25s; }.service-row:hover { color:var(--orange); padding-left:12px; }.service-number { color:var(--muted); font-family:var(--mono); font-size:10px; padding-top:5px; }.service-row h3 { font-size:22px; font-weight:500; margin-bottom:9px; }.service-row p { color:var(--muted); font-size:13px; line-height:1.5; margin:0; max-width:410px; }.service-arrow { font-size:23px; }
.capabilities { background:#e6e4dc; padding-bottom:145px; padding-top:125px; }.capability-grid { display:grid; gap:1px; grid-template-columns:repeat(3, 1fr); }.capability { border-top:1px solid var(--line); min-height:220px; padding:19px 18px 18px 0; }.capability + .capability { border-left:1px solid var(--line); padding-left:18px; }.capability-index { color:var(--orange); display:block; font-family:var(--mono); font-size:9px; margin-bottom:47px; }.capability strong { display:block; font-size:22px; font-weight:500; margin-bottom:10px; }.capability p { color:var(--muted); font-size:13px; line-height:1.5; margin:0; max-width:230px; }
.approach { background:var(--ink); color:var(--paper); }.approach-inner { min-height:580px; padding-bottom:115px; padding-top:125px; }.approach .eyebrow { color:#90988e; }.approach-copy > p:last-child { color:#a3aaa1; font-size:15px; line-height:1.6; max-width:370px; }.process-map { align-self:center; border-left:1px solid #505750; padding-left:44px; position:relative; }.process-line { background:var(--orange); height:64%; left:-1px; position:absolute; top:0; width:1px; }.process-step { margin:0 0 49px; position:relative; }.process-step:last-child { margin-bottom:0; }.process-step span { color:var(--lime); display:block; font-family:var(--mono); font-size:10px; margin-bottom:12px; }.process-step strong { display:block; font-size:25px; font-weight:500; }.process-step small { color:#899188; display:block; font-size:12px; margin-top:6px; }
.contact { padding-bottom:140px; padding-top:140px; }.contact-side { align-self:end; padding-bottom:6px; }.contact-side > p { color:var(--muted); font-size:16px; line-height:1.55; max-width:330px; }.contact-details { border-top:1px solid var(--line); display:flex; font-family:var(--mono); font-size:10px; justify-content:space-between; margin-top:80px; padding-top:14px; text-transform:uppercase; }
.button:focus-visible, .text-link:focus-visible, .nav-links a:focus-visible, .brand:focus-visible, .status-chip:focus-visible { outline:2px solid var(--orange); outline-offset:5px; }
.inner-page .topbar { background:var(--paper); }.page-intro { min-height:560px; padding-bottom:95px; padding-top:105px; }.page-intro h1 { margin-bottom:0; }.page-intro-side { align-self:end; max-width:390px; padding-bottom:10px; }.page-intro-side > p { color:var(--muted); font-size:16px; line-height:1.6; margin-bottom:32px; }.link-row { border-top:1px solid var(--line); display:flex; font-family:var(--mono); font-size:10px; justify-content:space-between; margin-top:55px; padding-top:14px; text-transform:uppercase; }.link-row a { color:var(--orange); }.resume-section { border-top:1px solid var(--line); padding-bottom:120px; padding-top:110px; }.resume-summary { max-width:450px; }.resume-summary p { font-size:20px; line-height:1.45; }.muted { color:var(--muted); font-size:14px !important; line-height:1.6 !important; }.timeline { border-top:1px solid var(--line); }.timeline-item { display:grid; gap:28px; grid-template-columns:150px 1fr; border-bottom:1px solid var(--line); padding:30px 0; }.timeline-date, .toolkit span, .project-id, .project-state, .project-legend, .experiment-list span { color:var(--muted); font-family:var(--mono); font-size:9px; letter-spacing:.03em; text-transform:uppercase; }.timeline-item h3 { font-size:27px; font-weight:500; margin-bottom:5px; }.role-label { color:var(--orange); font-family:var(--mono); font-size:10px; text-transform:uppercase; }.timeline-item p:last-child { color:var(--muted); font-size:14px; line-height:1.6; max-width:510px; }.toolkit { display:grid; grid-template-columns:1fr 1fr; gap:0 35px; }.toolkit > div { border-top:1px solid var(--line); padding:18px 0 24px; }.toolkit span { display:block; margin-bottom:18px; }.toolkit strong { font-size:19px; font-weight:500; }.resume-cta { background:var(--lime); padding-bottom:105px; padding-top:100px; }.resume-cta .button { margin-top:22px; }.projects-page .page-intro { min-height:540px; }.project-legend { align-items:center; display:flex; gap:25px; margin-top:75px; }.project-legend span { align-items:center; display:flex; gap:8px; }.project-legend i { border-radius:50%; display:inline-block; height:7px; width:7px; }.legend-live { background:var(--lime); }.legend-study { background:var(--orange); }.project-domain { padding:90px 0 110px; }.football-domain { background:var(--ink); color:var(--paper); }.legal-domain { background:#e6e4dc; }..domain-head { align-items:center; }.domain-head .eyebrow { color:#9ba39a; }.football-mark, .document-mark { align-self:center; height:235px; position:relative; }.pitch { border:1px solid rgba(205,244,91,.55); height:210px; margin:auto; position:relative; transform:rotate(-4deg); width:150px; }.pitch:before, .pitch:after { border:1px solid rgba(205,244,91,.4); content:''; height:62px; position:absolute; top:72px; width:22px; }.pitch:before { border-left:0; left:0; }.pitch:after { border-right:0; right:0; }.pitch-circle { border:1px solid rgba(205,244,91,.5); border-radius:50%; height:42px; left:53px; position:absolute; top:83px; width:42px; }.ball { color:var(--orange); font-size:23px; left:72px; position:absolute; top:103px; }.ball-trail { border-top:1px dashed var(--orange); left:93px; position:absolute; top:110px; transform:rotate(-34deg); width:55px; }.project-source-strip { border-bottom:1px solid rgba(242,240,233,.2); border-top:1px solid rgba(242,240,233,.2); color:#9ba39a; display:flex; font-family:var(--mono); font-size:9px; gap:24px; justify-content:center; padding:16px 20px; }.project-source-strip b { color:var(--lime); font-weight:400; }.project-list { display:block; padding-top:10px; }.project-entry { border-bottom:1px solid rgba(242,240,233,.2); display:grid; gap:25px; grid-template-columns:115px 1fr 135px; padding:32px 0; }.legal-domain .project-entry { border-color:var(--line); }.project-entry h3 { font-size:27px; font-weight:500; margin-bottom:10px; }.project-entry p { color:#adb4ab; font-size:14px; line-height:1.6; max-width:600px; }.legal-domain .project-entry p { color:var(--muted); }.project-state { color:var(--lime); text-align:right; }.legal-domain .project-state { color:var(--orange); }.tag-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }.tag-row span { border:1px solid rgba(205,244,91,.42); color:var(--lime); font-family:var(--mono); font-size:9px; padding:7px 9px; text-transform:uppercase; }.legal-domain .tag-row span { border-color:var(--line); color:var(--orange); }.document-sheet { background:var(--paper); box-shadow:12px 12px 0 rgba(255,112,77,.3); color:var(--ink); display:flex; flex-direction:column; gap:16px; height:205px; padding:17px; position:absolute; right:20px; transform:rotate(5deg); width:150px; z-index:1; }.document-sheet span { font-family:var(--mono); font-size:8px; }.document-sheet i { background:var(--line); display:block; height:1px; width:100%; }.document-sheet b { color:var(--orange); font-family:var(--mono); font-size:8px; margin-top:auto; }.document-sheet-back { background:#d5d2c8; right:4px; top:16px; transform:rotate(-5deg); z-index:0; }.legal-flow { align-items:center; gap:18px; padding-top:70px; }.flow-step { border-top:1px solid var(--line); flex:1; padding-top:14px; }.flow-step span { color:var(--orange); font-family:var(--mono); font-size:9px; }.flow-step strong { display:block; font-size:19px; font-weight:500; margin:22px 0 7px; }.flow-step small { color:var(--muted); font-size:11px; }.flow-arrow { color:var(--orange); font-size:22px; }.experiments { padding-bottom:140px; padding-top:140px; }.experiment-list { border-top:1px solid var(--line); }.experiment-list > div { border-bottom:1px solid var(--line); display:grid; gap:10px; grid-template-columns:90px 1fr; padding:20px 0; }.experiment-list strong { font-size:19px; font-weight:500; }.experiment-list small { color:var(--muted); grid-column:2; line-height:1.5; }.section-link { display:inline-block; }
.medical-domain { background:#ecebe5; color:var(--ink); }
.medical-domain .project-entry { border-color:var(--line); }
.medical-domain .project-entry p { color:var(--muted); }
.medical-domain .project-state, .medical-domain .tag-row span { color:var(--orange); }
.medical-domain .tag-row span { border-color:var(--line); }
.medical-sources { border-color:var(--line); color:var(--muted); }
.medical-sources b { color:var(--orange); }
.evidence-mark { height:220px; margin:auto; position:relative; width:250px; }
.evidence-mark i { background:var(--orange); height:1px; left:42px; position:absolute; top:80px; transform-origin:left; width:175px; }
.evidence-mark i:first-of-type { transform:rotate(24deg); }
.evidence-mark i:last-of-type { transform:rotate(-22deg); }
.evidence-node { background:var(--paper); border:1px solid var(--orange); color:var(--ink); font-family:var(--mono); font-size:9px; padding:11px; position:absolute; z-index:1; }
.node-one { left:0; top:70px; }.node-two { right:0; top:25px; }.node-three { bottom:35px; right:8px; }
.project-source-strip { flex-wrap:wrap; row-gap:14px; }
.project-signal-trigger { background:transparent; border:1px solid currentColor; cursor:pointer; font-family:var(--mono); font-size:9px; margin:30px 5.6vw 0; padding:11px 13px; text-transform:uppercase; transition:background .2s, color .2s, transform .2s; }
.football-trigger { color:var(--lime); }.medical-trigger { color:var(--orange); }
.project-signal-trigger:hover, .project-signal-trigger:focus-visible, .project-signal-trigger[aria-pressed='true'] { transform:translateY(-2px); }
.football-domain.signal-active .ball { animation:ball-run 1.1s ease-out; }
.football-domain.signal-active .ball-trail { animation:trail-run 1.1s ease-out; }
.medical-domain.signal-active .evidence-node { animation:evidence-ping 1s ease-out; }
.medical-domain.signal-active .evidence-node:nth-child(2) { animation-delay:.15s; }
.medical-domain.signal-active .evidence-node:nth-child(3) { animation-delay:.3s; }
.footer { border-top:1px solid var(--line); color:var(--muted); display:flex; font-family:var(--mono); font-size:10px; justify-content:space-between; padding:23px 5.6vw; text-transform:uppercase; }.footer-spark { color:var(--orange); font-size:15px; margin-left:5px; }
.reveal { transform:translateY(18px); }.js-ready .reveal { opacity:0; }.js-ready .reveal.is-visible { animation:rise .8s both; opacity:1; }.js-ready .delay-one.is-visible { animation-delay:.16s; }
@keyframes rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } } @keyframes marquee { to { transform:translateX(-50%); } }
@keyframes ball-run { 0% { transform:translate(-55px, 45px) scale(.7); } 55% { transform:translate(35px, -52px) scale(1.2); } 100% { transform:none; } }
@keyframes trail-run { 0% { opacity:0; width:0; } 45% { opacity:1; width:90px; } 100% { opacity:.5; width:55px; } }
@keyframes evidence-ping { 0% { background:var(--orange); color:var(--paper); transform:scale(.86); } 60% { box-shadow:0 0 0 12px rgba(255,112,77,.12); } 100% { background:var(--paper); color:var(--ink); transform:none; } }
@media (max-width:760px) { .topbar { padding:18px 20px; }.nav-links { gap:12px; font-size:8px; }.status-chip { display:none; }.section-grid { display:block; padding-left:20px; padding-right:20px; }.hero { min-height:auto; padding-bottom:65px; padding-top:70px; }.hero h1 { font-size:62px; }.hero-meta { margin-top:65px; }.hero-visual { margin-top:68px; min-height:380px; }.system-trigger { bottom:57px; }.systems { padding-bottom:85px; padding-top:90px; }.systems h2, .approach h2, .contact h2, .capabilities h2, .page-intro h1, .resume-section h2, .projects-page h2, .experiments h2 { font-size:58px; }.service-list { margin-top:55px; }.capabilities { padding-bottom:85px; padding-top:90px; }.capability-grid { display:block; margin-top:55px; }.capability, .capability + .capability { border-left:0; min-height:0; padding:22px 0; }.capability-index { margin-bottom:24px; }.approach-inner { min-height:auto; padding-bottom:85px; padding-top:90px; }.process-map { margin-top:70px; }.contact { padding-bottom:90px; padding-top:90px; }.contact-side { margin-top:55px; }.contact-actions { align-items:flex-start; display:flex; flex-direction:column; gap:24px; }.contact-details { margin-top:65px; }.footer { padding:18px 20px; }.footer span:last-child { display:none; }.page-intro { min-height:auto; padding-bottom:85px; padding-top:75px; }.page-intro-side { margin-top:60px; }.resume-section { padding-bottom:85px; padding-top:80px; }.timeline-item { display:block; }.timeline-date { margin-bottom:20px; }.toolkit { display:block; }.toolkit > div { padding:18px 0; }.project-domain { padding:75px 0 80px; }.domain-head { display:block; }.football-mark, .document-mark { margin:45px 20px 0; }.project-source-strip { gap:10px; justify-content:flex-start; overflow:hidden; font-size:8px; }.project-entry { display:block; padding:28px 0; }.project-id, .project-state { display:block; margin-bottom:17px; text-align:left; }.project-entry h3 { font-size:24px; }.legal-flow { display:grid; gap:12px; grid-template-columns:1fr 20px 1fr; padding-top:55px; }.flow-arrow { align-self:center; }.flow-step strong { font-size:17px; }.flow-step small { font-size:10px; }.experiments { padding-bottom:90px; padding-top:90px; }.experiment-list { margin-top:55px; }.experiment-list > div { grid-template-columns:70px 1fr; }.experiment-list small { grid-column:2; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal, .reveal.is-visible, .ticker-track { animation:none; opacity:1; transform:none; } }
@media (max-width:760px) {
	.topbar { align-items:flex-start; flex-wrap:wrap; gap:14px; }
	.nav-links { flex-basis:100%; justify-content:space-between; order:3; width:100%; }
	.nav-links a { min-height:28px; padding:7px 0; }
	.project-source-strip { flex-wrap:wrap; justify-content:center; overflow:visible; white-space:normal; }
	.evidence-mark { margin-top:45px; max-width:100%; }
	.football-mark, .document-mark, .evidence-mark { height:220px; }
	.project-signal-trigger { margin-left:20px; margin-right:20px; min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
	.football-domain.signal-active .ball, .football-domain.signal-active .ball-trail, .medical-domain.signal-active .evidence-node { animation:none; }
	*, *::before, *::after { scroll-behavior:auto !important; transition-duration:0s !important; }
}
.domain-head { align-items:center; }
.process-line { height:100%; }
.legal-flow { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:16px; padding-left:5.6vw; padding-right:5.6vw; }
.legal-flow .flow-arrow { align-self:end; padding-bottom:8px; text-align:center; }
.evidence-mark i:first-of-type { left:42px; top:82px; transform:rotate(-13deg); width:182px; }
.evidence-mark i:last-of-type { left:42px; top:82px; transform:rotate(26deg); width:176px; }
@media (max-width:760px) {
	.legal-flow { display:block; padding-left:20px; padding-right:20px; }
	.legal-flow .flow-step { margin-bottom:22px; }
	.legal-flow .flow-arrow { display:none; }
}
