@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600;6..72,700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#f5f7f6;--surface:#fff;--surface-subtle:#e9efee;--ink:#132e3b;--ink-soft:#365463;--muted:#657b83;--line:#132e3b2e;--line-strong:#132e3b52;--accent:#147b80;--accent-dark:#0e5b61;--accent-soft:#cfe3e0;--z-base:0;--z-content:1;--z-header:20;--z-modal:50;--z-skip:60;--display:"Newsreader", Georgia, serif;--body:"IBM Plex Sans", Arial, sans-serif;--mono:"DM Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#10232c;--surface:#162f3a;--surface-subtle:#1b3944;--ink:#edf4f2;--ink-soft:#c4d4d5;--muted:#9ab0b3;--line:#edf4f233;--line-strong:#edf4f257;--accent:#75c4bf;--accent-dark:#a2ddd7;--accent-soft:#244a52}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--paper);color:var(--ink);font:400 15px/1.55 var(--body);margin:0}body:has(.demo-backdrop){overflow:hidden}button,a{font:inherit}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:max(12px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));z-index:var(--z-skip);background:var(--ink);min-height:44px;color:var(--paper);padding:10px 14px;font-size:12px;transition:transform .18s;position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-shell{min-height:100dvh;overflow:clip}.page-width{width:min(100% - 64px,1180px);margin-inline:auto}.site-header{z-index:var(--z-header);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.nav-wrap{justify-content:space-between;align-items:center;width:min(100% - 64px,1180px);min-height:72px;margin-inline:auto;display:flex;position:relative}.brand{min-height:44px;color:var(--ink);text-align:left;background:0 0;align-items:baseline;gap:13px;padding:0;display:inline-flex}.brand span{font:700 17px/1 var(--display);letter-spacing:-.04em}.brand i{color:var(--muted);font:500 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;font-style:normal}.site-nav{align-items:center;gap:31px;display:flex}.site-nav button,.site-footer button{min-width:44px;min-height:44px;color:var(--ink-soft);font:500 12px var(--body);background:0 0;padding:7px 0}.site-nav button:hover,.site-footer button:hover{color:var(--accent)}.site-nav .nav-contact{border:1px solid var(--ink);min-height:44px;color:var(--ink);align-items:center;gap:9px;padding:9px 14px;display:inline-flex}.site-nav .nav-contact:hover{border-color:var(--accent);color:var(--accent)}.menu-button{width:44px;height:44px;color:var(--ink);background:0 0;padding:7px;display:none}.hero{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);align-items:center;gap:clamp(38px,6vw,88px);min-height:660px;padding-top:80px;padding-bottom:88px;display:grid}.hero-copy{max-width:690px}.hero h1{max-width:760px;font:600 clamp(3.2rem, 6.2vw, 5.5rem)/.94 var(--display);letter-spacing:-.055em;margin:0}.hero h1 em,.about-me-copy h2 em,.section-heading h2 em,.contact h2 em{color:var(--accent);font-style:normal}.hero-summary{max-width:55ch;color:var(--ink-soft);margin:32px 0 0;font-size:18px;line-height:1.55}.hero-actions{align-items:center;gap:25px;margin-top:37px;display:flex}.button{min-height:48px;font:600 12px var(--body);border:1px solid #0000;justify-content:center;align-items:center;gap:12px;padding:0 17px;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:var(--accent);color:var(--paper)}.button-paper{border-color:var(--paper);color:var(--paper);background:0 0}.button-paper:hover{border-color:var(--paper);background:var(--paper);color:var(--ink)}.text-link,.arrow-link{border-bottom:1px solid var(--line-strong);min-height:44px;color:var(--ink-soft);align-items:center;gap:9px;padding-bottom:7px;font-size:12px;display:inline-flex}.text-link:hover,.arrow-link:hover{border-color:var(--accent);color:var(--accent)}.signal-panel{justify-self:end;width:100%;max-width:530px}.signal-panel:before,.signal-panel:after,.signal-panel>:not(.signal-visual){display:none}.signal-visual{aspect-ratio:1.16;background:var(--surface-subtle);position:relative;overflow:hidden}.signal-visual img{object-fit:cover;filter:saturate(.78)contrast(.98);width:100%;height:100%;display:block}.intro-band{border-block:1px solid var(--line);background:var(--surface-subtle)}.about-me-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(52px,9vw,130px);padding-top:110px;padding-bottom:116px;display:grid}.about-me-visual{width:100%;height:clamp(360px,36vw,500px);margin:0;position:relative}.about-me-visual:after{content:"";z-index:var(--z-base);border:1px solid var(--line);pointer-events:none;position:absolute;inset:12px -12px -12px 12px}.about-me-visual img{z-index:var(--z-content);object-fit:cover;filter:saturate(.74);width:100%;height:100%;display:block;position:relative}.about-me-copy{max-width:660px}.about-me-copy h2{font:600 clamp(3.5rem, 6vw, 5.6rem)/.95 var(--display);letter-spacing:-.06em;margin:0}.about-me-rule{align-items:center;gap:10px;width:100%;margin-top:25px;display:flex}.about-me-rule:after{content:"";background:var(--line);width:100%;height:1px}.about-me-rule i{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;display:block}.about-me-lead{max-width:58ch;color:var(--ink);margin:35px 0 0;font-size:19px;line-height:1.48}.about-me-text{max-width:63ch;color:var(--ink-soft);margin-top:25px}.about-me-text p{margin:0 0 16px}.about-me-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:39px;padding-top:18px;display:flex}.about-me-footer>span{color:var(--muted);font:9px var(--mono);letter-spacing:.04em;text-transform:uppercase}.about-me-footer .arrow-link{color:var(--ink-soft);font-weight:500}.capabilities,.work,.experience{padding-top:110px;padding-bottom:112px}.section-heading{max-width:800px;margin-bottom:51px}.section-heading h2{font:600 clamp(2.6rem, 5vw, 4.8rem)/.98 var(--display);letter-spacing:-.06em;margin:0}.section-heading>p{max-width:62ch;color:var(--muted);margin:22px 0 0;font-size:15px}.capability-grid{border-top:1px solid var(--line);grid-template-columns:1fr;display:grid}.capability-card{border-bottom:1px solid var(--line);grid-template-columns:42px minmax(190px,.62fr) minmax(220px,1fr) 34px;align-items:start;gap:25px;min-height:0;padding:25px 0 26px;display:grid}.capability-card+.capability-card{border-left:0;padding-left:0}.capability-icon{border:1px solid var(--accent);width:40px;height:40px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.capability-number{display:none}.capability-card h3{font:600 25px/1.05 var(--display);letter-spacing:-.04em;margin:7px 0 0}.capability-card p{max-width:44ch;color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.6}.capability-line{background:var(--accent);width:28px;height:1px;margin:19px 0 0 auto}.tool-strip{color:var(--muted);justify-content:space-between;align-items:baseline;gap:30px;padding-top:25px;display:flex}.tool-strip>span{font:9px var(--mono);letter-spacing:.05em;text-transform:uppercase;flex:none}.tool-strip>div{flex-wrap:wrap;justify-content:flex-end;gap:7px 18px;display:flex}.tool-strip b{color:var(--ink-soft);font-size:12px;font-weight:500}.work{border-top:1px solid var(--line)}.work-heading{max-width:820px}.work-heading>p{margin-top:22px}.filter-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px 26px;margin-bottom:42px;display:flex}.filter-bar button{min-width:44px;min-height:44px;color:var(--muted);text-align:center;background:0 0;padding:0 0 13px;font-size:12px;position:relative}.filter-bar button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.filter-bar button:hover,.filter-bar button.filter-active{color:var(--ink)}.filter-bar button.filter-active:after{background:var(--accent)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 30px;display:grid}.project-card{--project-accent:var(--accent);--project-soft:var(--accent-soft);border-top:1px solid var(--line-strong);background:0 0;grid-template-rows:auto auto auto auto;min-width:0;display:grid}.project-card:before,.project-card-top{display:none}.project-featured{grid-column:span 2;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1.22fr) minmax(260px,.78fr);column-gap:33px}.visual-graphic{background:var(--surface-subtle);width:100%;min-width:0;min-height:240px;position:relative;overflow:hidden}.project-card:not(.project-featured) .visual-graphic{aspect-ratio:1.45;min-height:0;margin-top:20px}.project-featured .visual-graphic{aspect-ratio:1.35;grid-area:1/1/span 3}.visual-graphic:before,.visual-graphic:after{pointer-events:none}.visual-image-card img{object-fit:cover;filter:saturate(.72);width:100%;height:100%;transition:transform .18s ease-out,filter .18s ease-out;display:block}.project-card:hover .visual-image-card img{filter:saturate(.9);transform:scale(1.015)}.visual-label,.churn-visual-heading,.credit-visual-heading,.wine-visual-heading{display:none!important}.visual-games{background:var(--surface-subtle);padding:0;display:block}.project-card-body{justify-content:space-between;gap:24px;padding-top:22px;display:flex}.project-featured .project-card-body{grid-area:1/2;align-self:end;padding-top:26px}.project-copy{min-width:0}.project-copy h3{font:600 clamp(1.45rem, 2.3vw, 2.25rem)/1.04 var(--display);letter-spacing:-.035em;margin:0}.project-copy p{max-width:50ch;color:var(--muted);margin:14px 0 0;font-size:14px;line-height:1.55}.tag-list{color:var(--ink-soft);font:10px var(--mono);letter-spacing:.03em;margin-top:19px;line-height:1.7}.project-metric{border-left:1px solid var(--accent);flex:0 0 105px;align-content:start;gap:2px;padding-left:14px;display:grid}.project-metric strong{color:var(--accent);font:600 24px/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.06em}.project-metric span,.project-metric small{color:var(--muted);font-size:10px;line-height:1.35}.project-metric small{font-family:var(--mono);text-transform:uppercase;margin-top:5px;font-size:8px}.project-demo{border-bottom:1px solid var(--line-strong);min-height:44px;color:var(--ink-soft);background:0 0;justify-self:start;align-items:center;gap:8px;margin-top:23px;padding:0 0 9px;font-size:12px;display:inline-flex}.project-featured .project-demo{grid-area:2/2}.project-demo:hover{border-color:var(--accent);color:var(--accent)}.project-link{border-bottom:1px solid var(--line);min-height:44px;color:var(--muted);font:10px var(--mono);text-transform:uppercase;justify-self:end;align-items:center;gap:8px;margin-top:23px;padding-bottom:9px;display:inline-flex}.project-featured .project-link{grid-area:3/2}.project-link:hover{border-color:var(--accent);color:var(--accent)}.project-empty{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);justify-items:start;gap:16px;padding:28px 0;display:grid}.project-empty p{color:var(--muted);margin:0}.project-empty button{border:1px solid var(--ink);min-height:44px;color:var(--ink);background:0 0;padding:0 14px;font-size:12px}.project-empty button:hover{border-color:var(--accent);color:var(--accent)}.project-theme-vision,.project-theme-forecast,.project-theme-clusters,.project-theme-heart,.project-theme-annotation,.project-theme-chat,.project-theme-churn,.project-theme-games,.project-theme-credit,.project-theme-wine{--project-accent:var(--accent)!important;--project-soft:var(--accent-soft)!important;background:0 0!important}.experience{border-top:1px solid var(--line)}.experience-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:60px;display:grid}.timeline-stack{gap:0;display:grid}.timeline-card{border-top:1px solid var(--line-strong);background:0 0;min-height:0;padding:30px 0 34px 26px;position:relative}.timeline-card:last-child{border-bottom:1px solid var(--line)}.timeline-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:37px;left:-4px}.timeline-meta{color:var(--muted);font:10px var(--mono);font-variant-numeric:tabular-nums;text-transform:uppercase;justify-content:space-between;gap:20px;display:flex}.timeline-card h3{max-width:590px;font:600 clamp(1.6rem, 3vw, 2.45rem)/1.04 var(--display);letter-spacing:-.035em;margin:42px 0 13px}.timeline-card h3 span{color:var(--accent)}.timeline-card p{max-width:66ch;color:var(--muted);margin:0;font-size:14px;line-height:1.6}.timeline-footer{border-top:1px solid var(--line);color:var(--accent);font:9px var(--mono);text-transform:uppercase;justify-content:space-between;align-items:center;margin-top:27px;padding-top:15px;display:flex}.learning-stack{align-content:start;gap:0;display:grid}.learning-card{border-top:1px solid var(--line-strong);background:0 0;min-height:0;padding:25px 0 27px;position:relative}.learning-card:last-child{border-bottom:1px solid var(--line)}.learning-card-dark{color:var(--ink);background:0 0}.card-kicker,.card-year{color:var(--muted);font:9px var(--mono);text-transform:uppercase}.learning-card h3{max-width:280px;font:600 21px/1.08 var(--display);letter-spacing:-.03em;margin:22px 0 8px}.learning-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.card-year{color:var(--accent);font-variant-numeric:tabular-nums;margin-top:21px;display:block}.contact{background:var(--ink);min-height:400px;color:var(--paper);grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);gap:70px;padding:78px clamp(24px,4vw,48px) 80px;display:grid}.contact-main{max-width:720px}.contact h2{max-width:680px;font:600 clamp(3rem, 6vw, 5.6rem)/.96 var(--display);letter-spacing:-.04em;margin:0}.contact-main p{max-width:54ch;color:color-mix(in srgb, var(--paper) 68%, var(--ink));margin:24px 0 0;font-size:15px;line-height:1.6}.contact-main .button{margin-top:31px}.contact-side{flex-direction:column;justify-content:end;align-items:flex-start;gap:13px;display:flex}.contact-orbit{display:none}.contact-side>span{color:color-mix(in srgb, var(--paper) 55%, var(--ink));font:9px var(--mono);text-transform:uppercase;margin-bottom:16px}.contact-side a{min-height:44px;color:var(--paper);align-items:center;gap:9px;font-size:13px;display:inline-flex}.contact-side a:hover{color:var(--accent)}.site-footer{min-height:86px;color:var(--muted);justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex}.site-footer button{color:var(--ink-soft);font:10px var(--mono);text-transform:uppercase;align-items:center;gap:4px;display:inline-flex}.back-icon{transform:rotate(-90deg)}.demo-backdrop{z-index:var(--z-modal);padding:max(28px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08161cb8;place-items:center;display:grid;position:fixed;inset:0}.demo-modal{border:1px solid var(--line-strong);background:var(--paper);width:min(1060px,100%);max-height:min(820px,100dvh - 56px);color:var(--ink);padding:clamp(24px,4vw,48px);overflow:auto;box-shadow:0 24px 80px #00000040}.demo-header{justify-content:space-between;align-items:flex-start;gap:25px;display:flex}.demo-kicker{color:var(--accent);font:9px var(--mono);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:7px;display:inline-flex}.demo-header h2{max-width:720px;font:600 clamp(2rem, 4.5vw, 4rem)/.98 var(--display);letter-spacing:-.04em;margin:16px 0 0}.demo-close{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink);background:0 0;flex:none;place-items:center;display:grid}.demo-close:hover{border-color:var(--accent);color:var(--accent)}.demo-guide{border-block:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(210px,.8fr);gap:28px;margin:29px 0 26px;padding:18px 0;display:grid}.demo-guide-copy,.demo-guide-action{min-width:0}.demo-guide-label,.demo-guide-action>span{color:var(--accent);font:9px var(--mono);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:6px;display:inline-flex}.demo-guide-copy p{max-width:60ch;color:var(--ink-soft);margin:9px 0 0;font-size:13px;line-height:1.5}.demo-guide-action{border-left:1px solid var(--line);padding-left:28px}.demo-guide-action>span{color:var(--muted)}.demo-guide-action strong{font:500 15px/1.35 var(--body);margin-top:7px;display:block}.demo-layout{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);align-items:stretch;gap:25px;display:grid}.demo-art,.demo-annotation,.demo-chat{border:1px solid var(--line-strong);background:var(--surface);min-width:0}.demo-art{min-height:360px;position:relative;overflow:hidden}.demo-art:before{display:none}.demo-art>*,.demo-annotation>*,.demo-chat>*{z-index:var(--z-content);position:relative}.demo-art-caption{background:var(--ink);color:var(--paper);font:8px var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:6px 8px;position:absolute;bottom:14px;right:14px}.demo-controls{border:1px solid var(--line);background:var(--surface-subtle);flex-direction:column;gap:20px;min-width:0;padding:19px;display:flex}.demo-control{gap:10px;display:grid}.demo-control label,.demo-label{color:var(--muted);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:14px;display:flex}.demo-control output{color:var(--accent)}.demo-control input[type=range]{width:100%;min-height:44px;accent-color:var(--accent)}.demo-result{border-top:1px solid var(--line);gap:7px;margin-top:auto;padding-top:18px;display:grid}.demo-result>span,.demo-result small,.demo-mini-stats span,.demo-footnote{color:var(--muted);font:10px/1.45 var(--mono);letter-spacing:.02em;text-transform:uppercase}.demo-result strong{color:var(--accent);font:600 clamp(1.5rem, 3vw, 2.1rem)/1.04 var(--display);letter-spacing:-.03em}.demo-result small{font-family:var(--body);text-transform:none;font-size:12px;line-height:1.45}.demo-mini-stats{border-top:1px solid var(--line);gap:8px;padding-top:15px;display:grid}.demo-mini-stats b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.demo-legend{color:var(--muted);font:8px var(--mono);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:9px;display:flex}.demo-legend i{background:var(--accent);width:8px;height:8px;margin-left:7px;display:inline-block}.legend-coral,.legend-lime{background:var(--accent)!important}.demo-footer{border-top:1px solid var(--line);color:var(--muted);font:9px var(--mono);text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:15px;display:flex}.demo-footer a{min-height:44px;color:var(--accent);align-items:center;gap:7px;display:inline-flex}.demo-footer a:hover{color:var(--ink)}.demo-layout-churn{grid-template-columns:minmax(0,1fr) minmax(320px,.92fr)}.demo-art-churn{border-color:var(--ink);background:var(--ink);min-height:410px;color:var(--paper);isolation:isolate;flex-direction:column;justify-content:space-between;padding:24px;display:flex}.demo-art-churn:before{z-index:var(--z-base);border:1px solid color-mix(in srgb, var(--paper) 24%, transparent);content:"";pointer-events:none;display:block;position:absolute;inset:16px}.churn-art-header{color:color-mix(in srgb, var(--paper) 66%, transparent);font:9px var(--mono);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.churn-art-header b{color:var(--accent);font-weight:500}.churn-risk-display{gap:8px;margin-block:auto;padding-block:46px;display:grid}.churn-risk-display>span,.churn-risk-meter span,.churn-art-footer span{color:color-mix(in srgb, var(--paper) 62%, transparent);font:9px var(--mono);letter-spacing:.04em;text-transform:uppercase}.churn-risk-display strong{color:var(--paper);font:600 clamp(4rem, 9vw, 6.3rem)/.88 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.07em}.churn-risk-1 .churn-risk-display strong{color:var(--accent)}.churn-risk-meter{gap:9px;max-width:360px;margin-top:22px;display:grid}.churn-risk-meter i{background:color-mix(in srgb, var(--paper) 22%, transparent);height:7px;font-style:normal;display:block}.churn-risk-meter i b{background:var(--accent);min-width:4px;height:100%;display:block}.churn-art-footer{border-top:1px solid color-mix(in srgb, var(--paper) 22%, transparent);justify-content:space-between;gap:20px;padding-top:16px;display:flex}.churn-art-footer b{color:var(--paper);font-size:12px;font-weight:500}.demo-art-churn .demo-art-caption{background:var(--paper);color:var(--ink);align-self:flex-start;margin-top:18px;position:static}.churn-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.churn-profile-grid>div{border:1px solid var(--line);background:var(--surface);gap:5px;min-width:0;padding:12px;display:grid}.churn-profile-grid span{color:var(--muted);font:9px/1.3 var(--mono);letter-spacing:.02em;text-transform:uppercase}.churn-profile-grid strong{color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:14px;font-weight:500;line-height:1.35}.demo-art-vision,.demo-art-forecast,.demo-art-clusters,.demo-art-heart,.demo-art-games,.demo-art-credit,.demo-art-wine{background:var(--surface-subtle)!important}.demo-mammogram-stage{border:1px solid var(--line-strong);background:#dfe5e2;place-items:center;display:grid;position:absolute;inset:26px;overflow:hidden}.demo-mammogram-source,.demo-mammogram-uploaded{object-fit:contain;width:100%;height:100%;display:block}.demo-mammogram-uploaded{object-fit:cover}.demo-scan-overlay{color:var(--ink);font:8px var(--mono);text-transform:uppercase;justify-content:space-between;align-items:flex-start;gap:14px;display:flex;position:absolute;inset:14px}.demo-scan-overlay b{color:var(--accent);font-weight:500}.demo-source-buttons,.forecast-option-buttons{flex-wrap:wrap;gap:7px;display:flex}.demo-source-buttons button,.demo-upload,.forecast-option-buttons button,.segment-buttons button,.games-genre-buttons button,.games-region-buttons button{border:1px solid var(--line-strong);min-height:44px;color:var(--ink-soft);font:10px var(--body);background:0 0;padding:8px 10px}.demo-source-buttons button:hover,.demo-upload:hover,.forecast-option-buttons button:hover,.demo-source-buttons button.selected,.demo-upload.selected,.forecast-option-buttons button.selected,.segment-buttons button:hover,.segment-buttons button.selected,.games-genre-buttons button:hover,.games-genre-buttons button.selected,.games-region-buttons button:hover,.games-region-buttons button.selected{border-color:var(--accent);background:var(--accent);color:var(--paper)}.demo-upload{cursor:pointer;align-items:center;display:inline-flex;position:relative}.demo-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.forecast-chart-meta{color:var(--muted);font:8px var(--mono);text-transform:uppercase;justify-content:space-between;gap:14px;display:flex;position:absolute;top:17px;left:20px;right:20px}.forecast-chart-meta b{color:var(--ink);font-weight:500}.forecast-chart-svg{width:calc(100% - 32px);height:calc(100% - 74px);position:absolute;inset:44px 16px 30px;overflow:visible}.forecast-chart-svg text{fill:var(--muted);font:8px var(--mono);text-transform:uppercase}.forecast-grid-lines line{stroke:var(--line);stroke-dasharray:2 5}.forecast-history-line,.forecast-future-line,.forecast-actual-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.forecast-history-line{stroke:var(--ink)}.forecast-actual-line{stroke:var(--accent)}.forecast-future-line{stroke:var(--accent-dark);stroke-dasharray:7 5}.forecast-cutoff{stroke:var(--line-strong);stroke-dasharray:3 4}.forecast-last-point,.forecast-selected-actual,.forecast-selected-prediction{fill:var(--accent);stroke:var(--paper);stroke-width:2px}.forecast-selected-prediction{fill:var(--ink)}.forecast-axis-labels{color:var(--muted);font:8px var(--mono);text-transform:uppercase;justify-content:space-between;display:flex;position:absolute;bottom:26px;left:24px;right:24px}.forecast-axis-labels span:last-child{color:var(--accent)}.forecast-legend{color:var(--muted);font:8px var(--mono);text-transform:uppercase;flex-wrap:wrap;gap:12px;display:flex;position:absolute;bottom:10px;left:20px}.forecast-swatch{vertical-align:middle;background:var(--ink);width:18px;height:2px;margin-right:4px;display:inline-block}.forecast-swatch-actual{background:var(--accent)}.forecast-swatch-prediction{background:var(--accent-dark)}.forecast-split-note{border-top:1px solid var(--accent);background:var(--surface);grid-template-columns:auto 1fr;gap:7px 13px;padding:12px;display:grid}.forecast-split-note b{color:var(--ink);font-size:12px;font-weight:500}.forecast-split-note span{color:var(--muted);font:10px var(--mono)}.forecast-reading{border:1px solid var(--line);background:var(--surface);gap:15px;padding:16px;display:grid}.forecast-reading-top{justify-content:space-between;gap:12px;display:flex}.forecast-reading-top span{color:var(--muted);font:9px var(--mono);text-transform:uppercase}.forecast-reading-top strong{color:var(--accent);font:500 12px var(--mono);font-variant-numeric:tabular-nums}.forecast-reading-values{gap:13px;display:grid}.forecast-reading-value{grid-template-columns:1fr auto;align-items:center;gap:7px 14px;display:grid}.forecast-reading-value span{color:var(--muted);font-size:11px}.forecast-reading-value b{color:var(--ink);font:500 15px var(--display);font-variant-numeric:tabular-nums}.forecast-reading-value i{background:var(--surface-subtle);grid-column:1/-1;height:5px}.forecast-reading-value i em{background:var(--accent);height:100%;display:block}.forecast-reading-value:nth-child(2) i em{background:var(--ink-soft)}.forecast-error-line{color:var(--muted);font-size:12px}.forecast-error-line strong{color:var(--ink);font-weight:500}.cluster-map-label{color:var(--muted);font:8px var(--mono);text-transform:uppercase;position:absolute;top:17px;left:20px}.cluster-map-note{gap:4px;max-width:210px;display:grid;position:absolute;top:44px;left:20px}.cluster-map-note strong{color:var(--ink);font-size:12px;font-weight:500}.cluster-map-note span{color:var(--muted);font-size:10px;line-height:1.4}.demo-axis{background:var(--line-strong);position:absolute}.demo-art-clusters .axis-x{height:1px;bottom:17%;left:13%;right:10%}.demo-art-clusters .axis-y{width:1px;top:22%;bottom:13%;left:15%}.demo-cluster-point{background:var(--accent);border-radius:50%;width:11px;height:11px;transition:transform .2s,box-shadow .2s;position:absolute}.demo-cluster-point.active{box-shadow:0 0 0 6px var(--accent-soft);transform:scale(1.55)}.point-a{top:58%;left:29%}.point-b{top:46%;left:36%}.point-c{background:var(--ink-soft);top:64%;left:47%}.point-d{background:var(--ink-soft);top:39%;left:67%}.point-e{background:var(--ink);top:72%;left:57%}.point-f{background:var(--ink);top:54%;left:74%}.cluster-map-legend{color:var(--muted);font:8px var(--mono);gap:11px;display:flex;position:absolute;bottom:18px;right:20px}.cluster-map-legend span{align-items:center;gap:4px;display:inline-flex}.cluster-map-legend i{border-radius:50%;width:7px;height:7px;display:inline-block}.dot-teal,.dot-coral,.dot-ink{background:var(--accent)!important}.dot-coral{opacity:.65}.dot-ink{opacity:.36}.segment-buttons,.games-genre-buttons,.games-region-buttons{flex-wrap:wrap;gap:7px;display:flex}.segment-buttons button,.games-genre-buttons button,.games-region-buttons button{font-size:10px}.segment-feature-grid,.credit-detail-grid,.wine-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.segment-feature-grid div,.credit-detail-grid>div,.wine-metric-grid>div{border:1px solid var(--line);background:var(--surface);gap:4px;padding:11px;display:grid}.segment-feature-grid span,.credit-detail-grid span,.wine-metric-grid span{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.segment-feature-grid strong,.credit-detail-grid strong,.wine-metric-grid strong{color:var(--ink);font:500 13px var(--display);font-variant-numeric:tabular-nums}.segment-feature-note{border-top:1px solid var(--accent);color:var(--muted);background:var(--surface);padding:14px;font-size:12px;line-height:1.5}.demo-art-heart{padding:20px}.demo-art-heart:after{display:none}.heart-visual-header{color:var(--muted);font:8px var(--mono);text-transform:uppercase;justify-content:space-between;gap:15px;display:flex}.heart-visual-header b{color:var(--accent);font-weight:500}.heart-panel{gap:8px;margin-top:58px;display:grid}.heart-panel>span,.heart-wave-wrap>span{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.heart-panel>strong{max-width:290px;color:var(--ink);font:600 clamp(1.8rem, 4vw, 2.8rem)/.95 var(--display);letter-spacing:-.07em}.heart-panel>p{color:var(--muted);margin:0;font-size:12px}.heart-panel>p b{color:var(--accent);font-weight:500}.heart-wave-wrap{position:absolute;bottom:94px;left:20px;right:20px}.heart-wave{width:100%;height:100px;margin-top:8px;display:block}.heart-wave-base,.heart-wave-line,.heart-wave-accent{fill:none;stroke-linecap:round;stroke-linejoin:round}.heart-wave-base{stroke:var(--line-strong);stroke-width:2px}.heart-wave-line{stroke:var(--ink-soft);stroke-width:1px}.heart-wave-accent{stroke:var(--accent);stroke-width:3px}.heart-metric-strip{border-top:1px solid var(--line);gap:20px;padding-top:11px;display:flex;position:absolute;bottom:42px;left:20px;right:20px}.heart-metric-strip span{gap:2px;display:grid}.heart-metric-strip b{color:var(--ink);font:500 14px var(--display)}.heart-metric-strip small{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.demo-art-heart .heart-result-key{color:var(--muted);font:8px var(--mono);text-transform:uppercase;flex-wrap:wrap;gap:12px;display:flex;position:absolute;bottom:17px;left:20px;right:20px}.demo-art-heart .heart-result-key span{align-items:center;gap:5px;display:inline-flex}.demo-art-heart .heart-result-key i{border-radius:50%;width:6px;height:6px;display:inline-block;background:var(--accent)!important}.demo-art-heart .heart-result-key span:last-child i{opacity:.45}.heart-input-record{border:1px solid var(--line);background:var(--surface);padding:14px}.heart-input-record span{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.heart-input-heading{margin-bottom:11px}.heart-value-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 12px;display:grid}.heart-value{gap:3px;display:grid}.heart-value span{font-size:8px}.heart-value strong{color:var(--ink);font:500 12px var(--body)}.demo-annotation{background:var(--surface);gap:0;display:grid}.annotation-progress{border-bottom:1px solid var(--line);background:var(--accent-soft);color:var(--ink);font:9px var(--mono);text-transform:uppercase;justify-content:space-between;gap:15px;padding:16px 18px;display:flex}.annotation-progress strong{color:var(--accent);font-weight:500}.annotation-label-buttons{flex-wrap:wrap;gap:7px;padding:15px 18px;display:flex}.annotation-label-buttons button{border:1px solid var(--line-strong);min-height:44px;color:var(--ink-soft);font:10px var(--body);text-transform:capitalize;background:0 0;padding:8px 10px}.annotation-label-buttons button:hover,.annotation-label-buttons button.active{border-color:var(--accent);background:var(--accent);color:var(--paper)}.annotation-distribution{gap:14px;padding:5px 18px 18px;display:grid}.annotation-stat-row{grid-template-columns:1fr auto;align-items:center;gap:7px 15px;display:grid}.annotation-stat-row>span{color:var(--muted);font:9px var(--mono);text-transform:uppercase}.annotation-stat-row>strong{color:var(--ink-soft);font:10px var(--mono);font-weight:500}.annotation-stat-row>i{background:var(--surface-subtle);grid-column:1/-1;height:5px}.annotation-stat-row>i b{background:var(--accent);height:100%;display:block}.annotation-samples{border-top:1px solid var(--line);margin:0 18px 18px;padding-top:18px}.annotation-samples-heading{justify-content:space-between;gap:15px;margin-bottom:12px;display:flex}.annotation-samples-heading span,.annotation-samples-heading strong{color:var(--muted);font:9px var(--mono);text-transform:uppercase}.annotation-samples-heading strong{color:var(--ink);font-weight:500}.annotation-review-list{gap:7px;display:grid}.annotation-review{border-top:1px solid var(--line);grid-template-columns:62px 1fr;gap:13px;padding:11px 0;display:grid}.annotation-review>span{color:var(--accent);font:8px var(--mono);text-transform:uppercase}.annotation-review p{color:var(--ink-soft);white-space:pre-line;margin:0;font-size:12px;line-height:1.45}.annotation-result{margin:0 18px 18px}.demo-art-games,.demo-art-credit,.demo-art-wine{padding:20px}.games-art-heading,.credit-art-heading,.wine-art-heading{color:var(--muted);font:8px var(--mono);text-transform:uppercase;justify-content:space-between;gap:15px;display:flex}.games-art-heading b,.credit-art-heading b,.wine-art-heading b{color:var(--ink);font:500 14px var(--display);letter-spacing:-.03em;text-transform:none}.games-art-bars,.credit-art-bands,.wine-feature-bars{gap:14px;margin-top:53px;display:grid}.games-art-bars>div,.credit-art-bands>div{color:var(--muted);text-align:left;grid-template-columns:75px 1fr auto;align-items:center;gap:9px;padding:0;display:grid}.games-art-bars>div>span,.credit-art-bands>div>span{font-size:10px}.games-art-bars>div>i,.credit-art-bands>div>i,.wine-feature-bars i{background:var(--surface);height:7px}.games-art-bars>div>i b,.credit-art-bands>div>i b,.wine-feature-bars i b{background:var(--accent);height:100%;display:block}.games-art-bars>div>strong,.credit-art-bands>div>strong{color:var(--ink);font:10px var(--mono);font-weight:500}.games-art-bars>div.active>span,.games-art-bars>div.active>strong,.credit-art-bands>div.active>span,.credit-art-bands>div.active>strong{color:var(--accent)}.games-art-note,.credit-art-note,.wine-art-note{border-top:1px solid var(--line);color:var(--muted);padding-top:12px;font-size:10px;position:absolute;bottom:20px;left:20px;right:20px}.games-genre-buttons,.games-region-buttons{gap:7px}.games-art-bars>div:nth-child(2)>i b,.games-art-bars>div:nth-child(3)>i b,.games-art-bars>div:nth-child(4)>i b{background:var(--accent);opacity:.7}.demo-art-games .demo-art-caption{display:none}.demo-image-bg{object-fit:cover;opacity:.16;mix-blend-mode:multiply;width:100%;height:100%;position:absolute;inset:0}.demo-art-credit:after,.demo-art-wine:after{display:none}.credit-art-heading,.credit-art-bands,.credit-art-note,.wine-art-heading,.wine-art-score,.wine-feature-bars,.wine-art-note{z-index:var(--z-content);position:relative}.credit-art-bands{margin-top:55px}.credit-art-bands>div>i{background:var(--surface)}.credit-art-note,.wine-art-note{position:absolute}.wine-art-score{gap:3px;margin-top:42px;display:grid}.wine-art-score strong{color:var(--accent);font:600 45px/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.08em}.wine-art-score span{color:var(--muted);font:8px var(--mono);text-transform:uppercase}.wine-feature-bars{margin-top:30px}.wine-feature-bars>div{grid-template-columns:100px 1fr auto;align-items:center;gap:8px;display:grid}.wine-feature-bars span,.wine-feature-bars strong{color:var(--muted);font-size:9px}.wine-feature-bars strong{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums}.wine-feature-bars i{display:block}.wine-feature-bars i b{background:var(--accent)}.demo-chat{background:var(--accent-soft);flex-direction:column;min-height:360px;padding:18px;display:flex}.chat-demo-messages{gap:10px;margin-bottom:auto;display:grid}.chat-demo-message{max-width:76%;padding:10px 12px;font-size:12px;line-height:1.45}.chat-demo-message.ai{background:var(--accent);color:var(--paper)}.chat-demo-message.user{background:var(--surface);color:var(--ink);justify-self:end}.demo-chat form{gap:7px;margin-top:22px;display:flex}.demo-chat input{border:1px solid var(--line-strong);background:var(--surface);min-width:0;min-height:44px;color:var(--ink);flex:1;padding:0 11px;font-size:12px}.demo-chat form button{background:var(--ink);width:44px;min-height:44px;color:var(--paper);place-items:center;display:grid}.demo-chat form button:hover{background:var(--accent)}.chat-form-error{color:#a33c36;margin-top:8px;font-size:11px}.demo-chat input[aria-invalid=true]{border-color:#a33c36}.demo-footnote{margin-top:11px;font-size:8px;display:block}.demo-form-error{color:#a33c36;margin-top:8px;font-size:11px;line-height:1.4;display:block}@media (width<=1024px){.page-width,.nav-wrap{width:min(100% - 48px,900px)}.hero{grid-template-columns:minmax(0,1.12fr) minmax(270px,.88fr);gap:36px;min-height:610px}.hero h1{font-size:clamp(3.1rem,6.2vw,4.7rem)}.about-me-grid{gap:55px}.project-grid{gap:48px 22px}.experience-grid{gap:42px}}@media (width>=761px) and (width<=1100px){.hero{grid-template-columns:1fr;min-height:0}.hero h1{max-width:800px}.signal-panel{justify-self:start;max-width:640px;margin-top:48px}}@media (width<=760px){.page-width,.nav-wrap{width:calc(100% - 38px)}.nav-wrap{min-height:66px}.site-nav{border-bottom:1px solid var(--line);background:var(--paper);flex-direction:column;align-items:stretch;gap:0;padding:9px 19px 18px;display:none;position:absolute;top:66px;left:-19px;right:-19px}.site-nav.nav-open{display:flex}.site-nav button{text-align:left;padding:13px 0}.site-nav .nav-contact{justify-content:space-between;padding:12px 13px}.menu-button{display:block}.hero{min-height:0;padding-top:78px;padding-bottom:78px;display:block}.hero h1{max-width:610px;font-size:clamp(3.25rem,12vw,5.2rem)}.hero-summary{font-size:16px}.signal-panel{max-width:none;margin-top:61px}.signal-visual{aspect-ratio:1.35}.about-me-grid{padding-top:78px;padding-bottom:84px;display:block}.about-me-visual{max-width:510px;margin-bottom:64px}.about-me-copy h2{font-size:clamp(3rem,12vw,5rem)}.about-me-footer{flex-direction:column;align-items:flex-start}.capabilities,.work,.experience{padding-top:78px;padding-bottom:84px}.section-heading{margin-bottom:37px}.section-heading h2{font-size:clamp(2.5rem,9vw,4rem)}.work-heading{display:block}.work-heading>p{margin-top:17px}.capability-grid{grid-template-columns:1fr}.capability-card,.capability-card+.capability-card{border-left:0;grid-template-columns:40px minmax(0,1fr);gap:0 18px;min-height:0;padding:25px 0 28px;display:grid}.capability-card h3{margin:6px 0 0}.capability-card p{grid-column:2;max-width:48ch;margin-top:12px}.capability-card .capability-line{grid-column:2;margin-top:18px}.tool-strip{padding-top:25px;display:block}.tool-strip>div{justify-content:flex-start;margin-top:13px}.project-grid{grid-template-columns:1fr;gap:45px}.project-featured{grid-column:auto;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;gap:0;display:grid}.project-featured .visual-graphic,.project-featured .project-card-body,.project-featured .project-demo,.project-featured .project-link{grid-area:auto}.project-featured .visual-graphic{aspect-ratio:1.45}.project-featured .project-card-body{padding-top:22px}.project-featured .project-demo,.project-featured .project-link{justify-self:start}.project-card .project-link{justify-self:start;margin-top:12px}.project-card-body{gap:16px}.project-copy h3{font-size:1.65rem}.project-metric{flex-basis:90px}.experience-grid{grid-template-columns:1fr;gap:47px}.contact{width:100%;min-height:0;padding:62px 19px 65px;display:block}.contact-main{max-width:700px}.contact h2{font-size:clamp(3.2rem,12vw,5rem)}.contact-side{margin-top:61px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;min-height:117px}.demo-backdrop{padding:0}.demo-modal{width:100%;min-height:100dvh;max-height:100dvh;padding:max(22px, env(safe-area-inset-top)) max(19px, env(safe-area-inset-right)) max(27px, env(safe-area-inset-bottom)) max(19px, env(safe-area-inset-left));border:0}.demo-header h2{font-size:clamp(2rem,9vw,3rem)}.demo-guide{display:block}.demo-guide-action{border-top:1px solid var(--line);border-left:0;margin-top:16px;padding-top:16px;padding-left:0}.demo-layout{grid-template-columns:1fr;gap:13px}.demo-art{min-height:280px}.demo-controls{min-height:0}.demo-footer{flex-direction:column;align-items:flex-start}}@media (width<=420px){.page-width,.nav-wrap{width:calc(100% - 30px)}.hero{padding-top:61px}.hero h1{font-size:clamp(2.8rem,13vw,3.8rem)}.hero-summary{font-size:15px}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px;margin-top:28px}.signal-panel{margin-top:50px}.about-me-grid{padding-top:65px;padding-bottom:70px}.about-me-visual{margin-bottom:52px}.about-me-copy h2,.section-heading h2{font-size:2.75rem}.about-me-lead{font-size:17px}.project-card-body{display:block}.project-metric{width:fit-content;margin-top:21px}.heart-value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-split-note{grid-template-columns:1fr;gap:4px}.annotation-review{grid-template-columns:1fr;gap:5px}.annotation-samples-heading{display:block}.annotation-samples-heading strong{margin-top:5px;display:block}.wine-feature-bars>div{grid-template-columns:82px 1fr auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.demo-backdrop{align-items:start}.demo-modal{margin-block:28px;overflow-x:hidden}@media (width<=760px){.demo-backdrop{align-items:stretch}.demo-modal{margin-block:0}.demo-art-churn{min-height:350px;padding:20px}.churn-risk-display{padding-block:34px}.demo-art-heart{flex-direction:column;min-height:420px;display:flex}.demo-art-heart .heart-panel{margin-top:42px}.demo-art-heart .heart-wave-wrap{margin-top:22px;position:static}.demo-art-heart .heart-metric-strip{margin-top:18px;position:static}.demo-art-heart .heart-result-key{margin-top:14px;position:static}.demo-art-heart .demo-art-caption{align-self:flex-start;margin-top:14px;position:static}}.demo-layout-credit .segment-buttons button{text-align:center;min-width:44px}
