
:root{color-scheme:dark;--bg:#101316;--panel:#171c20;--text:#f0f2ef;--muted:#a6b0b7;--line:#343d44;--accent:#d8f77a;--blue:#8fc5f2;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{width:min(1280px,calc(100% - 96px));margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding:28px 0;border-bottom:1px solid var(--line);gap:24px}.wordmark{font-weight:800;font-size:1.5rem;letter-spacing:-.06em;display:flex;align-items:center;gap:17px}.wordmark span{font-size:1rem;font-weight:500;letter-spacing:0;border-left:1px solid var(--line);padding-left:17px}nav{display:flex;gap:30px;font-size:.9rem}.intro{display:grid;grid-template-columns:1.4fr 1fr;gap:72px;padding-top:65px;padding-bottom:62px;align-items:end}.eyebrow,.mono{font:500 .78rem/1.6 ui-monospace,Consolas,monospace;letter-spacing:.1em}.eyebrow{color:var(--accent);margin:0 0 14px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.4rem,4vw,3.8rem);font-weight:500;line-height:1.1;letter-spacing:-.045em;margin-bottom:0}h1>span{color:var(--muted)}h2{font-size:1.55rem;font-weight:500;letter-spacing:-.02em;margin:0}h3{font-size:1.5rem;letter-spacing:-.025em;font-weight:500;line-height:1.3;margin-bottom:16px}.intro-copy{max-width:390px;justify-self:end}.intro-copy p{margin-bottom:14px}.muted{color:var(--muted)}.text-link{font-size:.9rem;display:inline-flex;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:4px 0}.text-link:hover{border-color:var(--accent)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.project{border:1px solid var(--line);background:var(--panel);overflow:hidden}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:28px 30px}.project-heading h3{margin:0}.project-heading .eyebrow{margin-bottom:6px}.capture{display:block;background:#070b11}.capture img{width:100%;height:auto;display:block}.caption{display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:var(--muted);padding:13px 30px;border-top:1px solid var(--line)}.project-summary{display:grid;grid-template-columns:1fr 1fr;gap:48px;border-top:1px solid var(--line);padding:25px 30px}.project-summary p{max-width:510px;margin:0;color:var(--muted)}.stat{display:flex;flex-direction:column;align-items:flex-end}.stat strong{font:500 2rem/1.3 ui-monospace,Consolas,monospace;letter-spacing:-.06em}.stat strong>span{color:var(--accent)}.stat strong .unit{font-size:1rem;color:var(--muted);letter-spacing:0}.stat>span{font-size:.88rem}.stat small{color:var(--muted);font-size:.75rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.project-grid .capture{aspect-ratio:16/9;display:flex;align-items:center}.project-grid .capture img{height:100%;object-fit:contain}.project-body{padding:26px 30px}.project-body p{color:var(--muted)}.project-body .eyebrow{color:var(--accent)}.project-body .scope{font-size:.8rem;line-height:1.6}.work{padding-bottom:80px}.lab-section{background:var(--accent);color:#172114;padding:52px 0 48px}.lab-intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin:34px 0 28px}.lab-intro h3{font-size:2.6rem;line-height:1.15;letter-spacing:-.05em}.lab-intro p{max-width:535px}.lab-intro a,.method a{text-decoration:underline}.lab-section a:hover{color:#3d5611}.lab-panel{background:#11171b;color:var(--text);padding:28px;min-height:110px;border-radius:4px}.method{border-top:1px solid #819e44;margin-top:24px;padding-top:18px}.method summary{cursor:pointer;font-weight:600}.method>div{max-width:950px;padding-top:15px;font-size:.9rem}.systems{padding:65px 0}.system-row{display:grid;grid-template-columns:42px 1fr auto 20px;align-items:center;gap:24px;border-top:1px solid var(--line);padding:27px 0}.system-row:last-child{border-bottom:1px solid var(--line)}.system-row h3{font-size:1.2rem;margin-bottom:4px}.system-row p{color:var(--muted);font-size:.9rem;margin:0}.row-number{color:var(--muted);font-family:monospace}.pill{border:1px solid var(--line);padding:4px 12px;font:500 .75rem/1.5 ui-monospace,monospace;border-radius:20px;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:40px 0 80px}.about h2{font-size:2.4rem;line-height:1.2;margin-bottom:22px}.about p:not(.eyebrow){color:var(--muted)}footer{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;gap:25px;font-size:.8rem;color:var(--muted)}.skip{position:absolute;left:16px;top:-80px;padding:10px 20px;background:var(--accent);color:#101316;z-index:5}.skip:focus{top:10px}.doc{max-width:900px;padding:45px 0}.doc h1{margin-bottom:35px}.doc h2{margin:35px 0 12px}.doc a{text-decoration:underline}.doc table{width:100%;border-collapse:collapse;font-size:.9rem}.doc td,.doc th{text-align:left;vertical-align:top;padding:12px;border-bottom:1px solid var(--line)}.table-scroll{overflow-x:auto}.controls{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.controls label{display:flex;flex-direction:column;gap:7px;font-size:.88rem;color:var(--muted)}select,button{font:inherit;min-height:44px;border:1px solid #54616a;border-radius:3px;padding:10px 15px;background:#20292f;color:var(--text)}button{cursor:pointer}button.primary{background:var(--accent);color:#172114;border-color:var(--accent);font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.device{margin:20px 0 0;font:.8rem/1.6 ui-monospace,monospace;color:var(--muted)}.status{font-size:.9rem;color:var(--accent);min-height:1.5em;margin:8px 0 22px}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.result{padding:20px;background:#1b2329;border:1px solid var(--line)}.result h4{font-size:.9rem;font-weight:500;margin:0 0 8px}.result .time{font:500 2rem/1.4 ui-monospace,monospace}.result .meta{font-size:.78rem;color:var(--muted)}.bar-track{height:4px;background:#35414a;margin:14px 0}.bar-fill{height:100%;width:0;background:var(--accent);transition:width .25s}.result:nth-child(1) .bar-fill{background:#8fc5f2}.result:nth-child(2) .bar-fill{background:#d6aaf6}.chart{margin-top:24px;width:100%;height:180px;background:#141d23;border:1px solid var(--line)}.chart-label,.lab-note{font-size:.8rem;color:var(--muted);margin:12px 0}.lab-note a{color:var(--blue)}.lab-panel details{margin-top:20px;font-size:.85rem;color:var(--muted)}.lab-panel summary{cursor:pointer}.lab-panel a:hover{color:var(--accent)}progress{width:100%;height:6px;accent-color:var(--accent);margin-bottom:20px}.proof-result{color:var(--muted);font-size:.85rem}.output-note{display:flex;justify-content:space-between;gap:20px}.warning{color:#f5bb77}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.intro{grid-template-columns:1fr;gap:28px;padding-top:45px}.intro-copy{justify-self:start;max-width:600px}.lab-intro{gap:25px}.results{grid-template-columns:1fr}.result{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}.result .bar-track{grid-column:1/-1}.result .time{text-align:right;grid-row:1/3;grid-column:2}.project-summary{gap:25px}.stat strong{font-size:1.6rem}.system-row .pill{display:none}.system-row{grid-template-columns:30px 1fr 20px}.about{gap:30px}}
@media(max-width:600px){.wrap{width:calc(100% - 32px)}.site-header{align-items:flex-start;flex-direction:column;gap:16px;padding:20px 0}nav{gap:19px;flex-wrap:wrap}h1{font-size:2.5rem}.intro{padding-bottom:40px}.section-heading{align-items:flex-start;flex-direction:column;gap:6px}.project-heading{padding:20px;align-items:flex-start;flex-direction:column;gap:12px}.caption{padding:10px 20px;flex-direction:column;gap:4px}.project-summary{grid-template-columns:1fr;padding:20px}.stat{align-items:flex-start}.project-grid{grid-template-columns:1fr}.project-body{padding:22px}.lab-intro,.about{grid-template-columns:1fr;gap:20px}.lab-intro h3{font-size:2.2rem;margin-bottom:0}.lab-panel{padding:20px}.controls{gap:14px}.controls label{flex:1;min-width:120px}select{width:100%}.controls button{flex:1}.work{padding-bottom:45px}.system-row{gap:14px}.about{padding-bottom:45px}footer{flex-direction:column;gap:8px}.output-note{flex-direction:column;gap:0}.mono{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bar-fill{transition:none}}

/* Portfolio evidence additions */
.cv-section{padding-bottom:65px}.cv-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;list-style:none;padding:0}.cv-list li{border-top:1px solid var(--line);padding-top:20px}.cv-list h3{font-size:1.2rem;margin-bottom:8px}.cv-list p{color:var(--muted);font-size:.9rem}.cv-list a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline}.revision{overflow-wrap:anywhere}.doc li{margin-bottom:14px}.system-row{grid-template-columns:42px 1fr 20px}.scope{font-size:.8rem}.project-body .scope{color:var(--blue)}nav a{display:inline-flex;min-height:44px;align-items:center}@media(max-width:600px){.cv-list{grid-template-columns:1fr}.system-row{grid-template-columns:30px 1fr 20px}}
.updates{padding-bottom:64px}.update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.update-grid article{border-top:1px solid var(--line);padding-top:20px}.update-grid h3{font-size:1.25rem}.update-grid p{color:var(--muted)}@media(max-width:600px){.update-grid{grid-template-columns:1fr}}
.case-study{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.case-lead{font-size:1.1rem}.case-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 18px}.case-metrics>div{border-left:2px solid var(--accent);padding-left:16px}.case-metrics strong{display:block;font-size:1.3rem;line-height:1.4;color:var(--accent)}.case-metrics span{display:block;font-size:.84rem;color:var(--muted);margin-top:8px}.case-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px;padding-left:22px;margin:30px 0}.case-steps h3{font-size:1.1rem;margin-bottom:8px}.case-steps p{color:var(--muted);margin-bottom:0}.evidence-figure{margin:24px 0}.evidence-figure img{display:block;width:100%;height:auto;background:#fff}.evidence-figure figcaption{font-size:.84rem;color:var(--muted);padding-top:10px}.case-data{margin:22px 0;border:1px solid var(--line);padding:16px}.case-data summary{cursor:pointer;min-height:32px}.case-data table{min-width:580px}.doc table caption{text-align:left;color:var(--muted);padding:12px 0}.table-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.case-boundary{background:var(--panel);border-left:3px solid var(--blue);padding:24px;margin:28px 0}.case-boundary h3{font-size:1.15rem}.case-boundary p:last-child{margin-bottom:0;color:var(--muted);font-size:.9rem}.case-links a{display:inline-block;min-height:44px;padding:8px 0}@media(max-width:600px){.case-metrics,.case-steps{grid-template-columns:1fr}.case-metrics strong{font-size:1.35rem}.case-data{padding:12px}.case-boundary{padding:18px}}
