/* V11: recorded work at poster scale; factual captions. No external runtime. */
:root{--paper:#f4efe6;--paper-deep:#e9e0d2;--ink:#211c17;--muted:#5f574f;--rule:#c8bcaa;--oxide:#a9442a;--leaf:#596747;--light:#d3c6b3;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif;--mono:Consolas,'Courier New',monospace;--gutter:clamp(20px,3.3vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}img,video{display:block;max-width:100%}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.06em;line-height:.97}h3{font-weight:500}p{max-width:60ch}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--oxide);outline-offset:5px}::selection{background:var(--oxide);color:var(--paper)}[hidden]{display:none!important}.skip-link{position:fixed;top:8px;left:20px;z-index:100;background:var(--ink);color:var(--paper);padding:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-nav{position:sticky;top:0;z-index:30;background:rgba(244,239,230,.97);border-bottom:1px solid var(--rule)}.nav-inner{min-height:68px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}.wordmark span{color:var(--oxide)}.site-links{display:flex;align-items:center;gap:28px}.site-links a{font:12px var(--mono);min-height:44px;display:flex;align-items:center}.site-links a:hover,.site-links a[aria-current=page]{color:var(--oxide)}.nav-menu{display:none;border:1px solid var(--rule);background:transparent;min-height:44px;padding:0 14px;font:12px var(--mono)}
.label{font:12px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase}.accent{color:var(--oxide)}.muted{color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:30px;min-height:46px;border-bottom:1px solid currentColor;font-size:14px}.text-link:hover{color:var(--oxide)}.action-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.small-action{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font:12px var(--mono);border-bottom:1px solid var(--rule)}.primary-action{background:var(--ink);color:var(--paper);padding:14px 20px;display:inline-flex;gap:36px;min-height:48px;font:12px var(--mono)}.primary-action:hover{background:var(--oxide)}
.opening{position:relative;padding:36px var(--gutter) 0}.opening-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.65fr);gap:16px;align-items:center}.identity{position:relative;z-index:2;padding:42px 0}.identity h1{font-size:clamp(64px,7.1vw,126px);margin:28px 0}.identity .role{font-family:var(--serif);font-size:clamp(22px,2vw,34px);color:var(--oxide);margin-bottom:18px;line-height:1.2}.identity .intro{max-width:29ch;color:var(--muted);font-size:15px;line-height:1.65}.identity .action-row{margin-top:32px;gap:22px}.hero-model{position:relative;min-width:0}.hero-model img{width:100%;height:min(71vw,710px);object-fit:contain;position:relative;z-index:1}.hero-counter{position:absolute;left:0;bottom:12%;font:400 clamp(110px,16vw,270px)/.8 var(--serif);letter-spacing:-.09em;color:var(--oxide);opacity:.74;z-index:2;pointer-events:none}.model-caption{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--rule);padding:12px 0;font:11px/1.5 var(--mono)}.model-caption span:last-child{color:var(--muted)}.hero-console{display:grid;grid-template-columns:1.3fr repeat(3,1fr) auto;align-items:center;border-top:1px solid var(--rule);margin-top:22px}.hero-console>div{padding:18px 20px;border-right:1px solid var(--rule)}.hero-console>div:first-child{padding-left:0}.hero-console dt{font:11px var(--mono);color:var(--muted);margin-bottom:8px}.hero-console dd{font:24px var(--mono);letter-spacing:-.06em}.hero-console .state-name{font-size:15px;letter-spacing:0}.play-toggle{background:transparent;border:1px solid var(--rule);min-height:44px;padding:10px 16px;margin-left:24px;font:12px var(--mono)}.play-toggle:hover{background:var(--paper-deep)}
.work-directory{padding:28px var(--gutter) 50px;display:flex;justify-content:space-between;gap:28px;align-items:baseline}.directory-links{display:flex;gap:32px;flex-wrap:wrap}.directory-links a{font-size:14px;min-height:44px;display:flex;gap:12px;align-items:center}.directory-links a span{font:11px var(--mono);color:var(--oxide)}.directory-links a:hover{text-decoration:underline}
.study{background:var(--ink);color:var(--paper);padding:64px var(--gutter) 36px;scroll-margin-top:68px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:30px}.section-heading h2{font-size:clamp(45px,5.6vw,90px);max-width:14ch;margin-top:16px}.section-heading p{font-size:15px;max-width:40ch;justify-self:end;color:var(--muted)}.study .section-heading p{color:var(--light)}.study .label{color:var(--light)}.study-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,.7fr);gap:44px;align-items:center}.study-figure{position:relative}.study-figure img{width:100%;height:680px;object-fit:contain}.study-figure figcaption{font:11px var(--mono);color:var(--light);display:flex;justify-content:space-between;gap:20px;border-top:1px solid #5d5144;padding-top:14px}.study-panel{min-width:0}.sweep-tabs{display:flex;border-bottom:1px solid #6c5c4c;gap:0}.sweep-tabs button{flex:1;border:0;border-bottom:3px solid transparent;padding:14px 8px;background:transparent;color:var(--light);font:13px var(--mono);min-height:48px}.sweep-tabs button[aria-pressed=true]{border-color:#e8ab87;color:var(--paper)}.study-active{margin-top:34px}.study-active .label{display:block}.active-value{display:block;font:clamp(68px,7.1vw,120px)/1.1 var(--serif);letter-spacing:-.075em;margin:12px 0 22px;color:var(--paper)}.fixed-parameters{display:flex;flex-wrap:wrap;gap:12px 24px;color:var(--light);font:13px var(--mono);padding-bottom:24px;border-bottom:1px solid #5d5144}.solar-total{margin:24px 0}.solar-total dt{font:11px var(--mono);color:var(--light)}.solar-total dd{font:clamp(29px,3vw,48px) var(--mono);letter-spacing:-.07em;margin-top:8px}.solar-total dd span{font-size:13px;letter-spacing:0;color:var(--light)}.range-heading{display:flex;justify-content:space-between;font:12px var(--mono);gap:16px}.study input{width:100%;height:44px;accent-color:#e8ab87;cursor:ew-resize}.range-limits{display:flex;justify-content:space-between;color:var(--light);font:11px var(--mono)}.study-note{font-size:13px;color:var(--light);margin-top:24px;line-height:1.7}.state-rail{display:flex;gap:5px;margin-top:38px;padding-top:22px;border-top:1px solid #5d5144}.state-rail button{height:48px;flex:1;min-width:0;background:transparent;color:var(--light);border:1px solid #83705d;font:11px var(--mono);position:relative}.state-rail button[aria-pressed=true]{background:#e8ab87;color:var(--ink);border-color:#e8ab87}.state-rail button:hover{border-color:var(--paper)}.state-rail button:nth-child(12),.state-rail button:nth-child(19){margin-left:16px}.study :focus-visible{outline-color:#e8ab87}
.recordings{padding:86px var(--gutter) 70px}.recording-tabs{display:flex;gap:28px;flex-wrap:wrap;margin:28px 0 18px}.recording-tabs button{padding:10px 0;background:transparent;border:0;border-bottom:2px solid transparent;min-height:48px;font:18px var(--serif);color:var(--muted)}.recording-tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--oxide)}.recording-stage{background:#181518;position:relative}.recording-stage video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#181518}.recording-caption{display:grid;grid-template-columns:1fr auto;gap:28px;padding:20px 0;border-bottom:1px solid var(--rule)}.recording-caption h3{font-size:17px;margin-bottom:8px}.recording-caption p{font-size:14px;color:var(--muted);max-width:66ch}.recording-caption a{align-self:start}.recording-meta{display:flex;gap:30px;margin-top:24px;font:12px var(--mono);flex-wrap:wrap}.recording-meta b{font-size:18px;font-weight:400;color:var(--oxide);margin-right:8px}
.state-rail button:nth-child(19){margin-left:0}.state-rail button:nth-child(18){margin-left:16px}
.research-spread{padding:74px var(--gutter);background:var(--paper-deep);display:grid;grid-template-columns:1fr 1.1fr;gap:8vw;align-items:start}.research-spread h2{font-size:clamp(50px,6vw,100px);margin:18px 0 28px}.research-spread p{color:var(--muted);font-size:15px;max-width:38ch}.research-spread .text-link{margin-top:28px}.publication-preview{border-top:1px solid var(--ink);padding-top:20px}.publication-preview h3{font:clamp(24px,2.7vw,43px)/1.13 var(--serif);letter-spacing:-.035em;margin:16px 0 24px}.publication-preview+.publication-preview{margin-top:38px}.publication-preview p{font-size:14px;max-width:55ch}.publication-preview .label{color:var(--oxide)}
.tools-index{padding:74px var(--gutter)}.tools-index h2{font-size:clamp(46px,6vw,96px);margin:16px 0 34px}.tool-row{display:grid;grid-template-columns:70px 1fr 1fr 40px;gap:24px;align-items:center;padding:30px 0;border-top:1px solid var(--rule)}.tool-row:last-child{border-bottom:1px solid var(--rule)}.tool-row .tool-number{font:14px var(--mono);color:var(--oxide)}.tool-row h3{font:clamp(25px,3vw,48px)/1.1 var(--serif);letter-spacing:-.04em}.tool-row p{font-size:14px;color:var(--muted)}.tool-row .arrow{font-size:30px}.tool-row:hover h3,.tool-row:hover .arrow{color:var(--oxide)}.practice-strip{margin:0 var(--gutter) 70px;padding:28px 0;border-top:3px solid var(--oxide);display:grid;grid-template-columns:1fr 1.2fr auto;gap:30px;align-items:start}.practice-strip h3{font:27px var(--serif)}.practice-strip p{font-size:14px;color:var(--muted)}
.site-footer{padding:54px var(--gutter) 26px;background:var(--ink);color:var(--paper)}.footer-top{display:flex;justify-content:space-between;align-items:end;gap:30px}.footer-top h2{font:clamp(46px,8vw,128px)/1 var(--serif);letter-spacing:-.06em}.footer-top .text-link{font-size:clamp(15px,1.5vw,22px)}.footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:44px;padding-top:22px;border-top:1px solid #5d5144;font:11px var(--mono);color:var(--light)}.footer-bottom a{display:inline-flex;min-height:44px;align-items:center}.footer-bottom div{display:flex;gap:24px}.no-script-note{padding:14px var(--gutter);background:var(--paper-deep);font-size:14px}
@media(min-width:1800px){.opening-grid{grid-template-columns:1fr 1.5fr}.hero-model img{height:850px}}
@media(max-width:1100px){.site-links{gap:12px;flex-wrap:wrap;justify-content:flex-end}.site-links a{font-size:11px}.opening-grid{grid-template-columns:1fr 1.5fr}.identity h1{font-size:72px}.hero-model img{height:560px}.hero-counter{font-size:150px}.study-layout{gap:24px;grid-template-columns:1.2fr 1fr}.study-figure img{height:530px}.section-heading h2{font-size:62px}.directory-links{gap:20px}.work-directory{align-items:flex-start}.hero-console>div{padding:16px 12px}.hero-console dd{font-size:20px}.practice-strip{grid-template-columns:1fr 1.5fr}.practice-strip .text-link{grid-column:2}}
@media(max-width:760px){html{scroll-padding-top:72px}.nav-inner{min-height:60px}.nav-menu{display:block}.site-links{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);padding:12px var(--gutter) 20px;border-bottom:1px solid var(--rule)}.site-links.is-open{display:flex}.site-links a{min-height:48px;font-size:14px;border-bottom:1px solid var(--rule)}.opening{padding-top:16px}.opening-grid{grid-template-columns:1fr}.identity{padding:22px 0 0}.identity h1{font-size:clamp(60px,13vw,90px);margin:18px 0}.identity h1 br{display:initial}.identity .role{font-size:25px;margin-bottom:12px}.identity .intro{max-width:40ch;font-size:14px}.identity .action-row{margin-top:20px}.hero-model img{height:auto;aspect-ratio:3440/2966}.hero-counter{font-size:clamp(100px,24vw,165px);bottom:14%;left:0}.model-caption{font-size:10px}.hero-console{grid-template-columns:repeat(3,1fr);margin-top:16px}.hero-console>div:first-child{grid-column:1/3;border-bottom:1px solid var(--rule);border-right:0}.hero-console>div:nth-child(2){grid-column:1;grid-row:2;padding-left:0}.hero-console>div:nth-child(3){grid-column:2;grid-row:2}.hero-console>div:nth-child(4){grid-column:3;grid-row:2;border-right:0}.play-toggle{grid-column:3;grid-row:1;margin-left:0}.hero-console dd{font-size:20px}.work-directory{display:block;padding-block:24px 30px}.directory-links{gap:8px 22px;margin-top:12px}.directory-links a{font-size:13px}.study{padding-top:38px}.section-heading{grid-template-columns:1fr;gap:18px;margin-bottom:20px}.section-heading h2{font-size:clamp(43px,10vw,66px);max-width:16ch}.section-heading p{justify-self:start;max-width:48ch;font-size:14px}.study-layout{grid-template-columns:1fr;gap:30px}.study-figure img{height:auto;aspect-ratio:3440/2966}.study-panel{padding-top:8px}.study-active{margin-top:22px}.active-value{font-size:86px;margin-block:6px 18px}.solar-total dd{font-size:36px}.state-rail{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.state-rail button:nth-child(12),.state-rail button:nth-child(19){margin-left:0}.state-rail button{min-width:40px}.recordings{padding-block:46px}.recording-tabs{gap:22px;margin-top:12px}.recording-caption{grid-template-columns:1fr;gap:16px}.recording-meta{gap:14px;font-size:11px}.recording-meta b{font-size:16px}.research-spread{padding-block:46px;grid-template-columns:1fr;gap:40px}.research-spread h2{font-size:54px}.research-spread p{max-width:50ch}.tools-index{padding-block:46px}.tools-index h2{font-size:52px}.tool-row{grid-template-columns:30px 1fr 24px;gap:14px;padding:22px 0}.tool-row h3{font-size:31px}.tool-row p{grid-column:2;grid-row:2}.tool-row .arrow{grid-column:3;grid-row:1;font-size:23px}.practice-strip{grid-template-columns:1fr;gap:18px;margin-bottom:46px}.practice-strip .text-link{grid-column:auto;justify-self:start}.footer-top{display:block}.footer-top .text-link{margin-top:24px}.footer-bottom{flex-direction:column;gap:10px;margin-top:30px}.site-footer{padding-top:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}



/* Final portfolio refinements */
.site-footer{padding:34px var(--gutter) 18px}.footer-top h2{font-size:clamp(34px,5vw,78px)}.footer-top .text-link{font-size:clamp(13px,1.2vw,17px)}.footer-bottom{margin-top:28px;padding-top:16px}.stage{display:flex;justify-content:center}.stage>svg[id]{width:100%;max-width:260px!important;height:auto}.recording-intro img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover}

.solver-preview{padding:86px var(--gutter) 70px}.solver-preview figure{margin:0}.solver-preview figure>img{display:block;width:100%;height:clamp(280px,38vw,560px);object-fit:contain;object-position:center;background:var(--paper-deep);padding:clamp(14px,2.5vw,34px)}.solver-preview .recording-caption{margin-top:0}.solver-preview .section-heading{margin-bottom:28px}@media(max-width:760px){.solver-preview{padding-block:46px}.solver-preview .section-heading{margin-bottom:20px}.solver-preview figure>img{height:clamp(220px,58vw,380px);padding:14px}}

.tool-row-static{cursor:default}.tool-row-static:hover h3,.tool-row-static:hover .arrow{color:inherit}

.solver-cta{padding:34px var(--gutter) 70px;border-top:1px solid var(--rule);background:var(--paper-deep);display:grid;grid-template-columns:1fr 1.1fr auto;gap:30px;align-items:end}.solver-cta h2{font:clamp(34px,4vw,64px)/1 var(--serif);letter-spacing:-.045em;margin-top:12px}.solver-cta>p{max-width:42ch;color:var(--muted);font-size:14px}.solver-cta .primary-action{justify-self:end;white-space:nowrap}@media(max-width:760px){.solver-cta{grid-template-columns:1fr;gap:18px;padding-block:34px 46px}.solver-cta .primary-action{justify-self:start}}

/* Keep the solver invitation inside the dark demo sequence. */
.study>.solver-cta{margin:38px calc(var(--gutter) * -1) -36px;padding:30px var(--gutter) 34px;background:#2c2925;border-top:1px solid #5d5144;color:var(--paper);grid-template-columns:1fr 1.1fr auto}.study>.solver-cta>p{color:var(--light)}.study>.solver-cta .label{color:#e8ab87}.study>.solver-cta .primary-action{background:#e8ab87;color:var(--ink)}
@media(max-width:760px){.study>.solver-cta{margin-top:30px;margin-bottom:-36px;padding-block:28px 32px;grid-template-columns:1fr}}

/* Keep the two footer contacts separate on every page. */
.footer-emails{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.footer-emails .text-link{display:flex!important;width:max-content;max-width:100%;white-space:nowrap;margin:0}

.nav-menu{color:var(--ink)!important;background:var(--paper)!important;border-color:var(--rule)!important}

@media(max-width:760px){.state-rail{display:none!important}}
@media(max-width:820px){.state-rail{display:none!important}}
