@charset "UTF-8";
/* The light palette stays unchanged; every surface has a dark counterpart. */
:root{color-scheme:light;--paper:#f5f5ef;--ink:#20291f;--muted:#636a5f;--line:#d6d9ce;--accent:#ddf5a2;--focus:#638b37;--selection-bg:#d8ef98;--selection-ink:#20291f;--status:#647d3b;--status-ring:#e7eadc;--button-hover:#3e5032;--project-hover:#ebeee2;--ignite-bg:#e7eadc;--ignite-ink:#495b2b;--actors-bg:#e5e8ed;--actors-ink:#596a84;--statechart-bg:#eee6df;--statechart-ink:#956645;--tag-ink:#626b57;--tag-line:#d8dccf;--connect-bg:#e9ede1;--social-line:#ccd2c2;--social-hover:#dce4cf;--top-line:#c4ccb7;--art-bg:#253025;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:6px}::selection{background:var(--selection-bg);color:var(--selection-ink)}.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:21px;height:21px;flex-shrink:0}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:14px;z-index:10}.skip:focus{top:20px}.eyebrow{font:10px/1.5 var(--mono);letter-spacing:1.2px;font-weight:500}.site-header{height:113px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;font-size:30px;font-weight:800;letter-spacing:-1.8px;align-items:flex-start;line-height:1}.wordmark span{padding-left:1px}.wordmark i{font:10px/1 var(--sans);letter-spacing:0;margin:1px 0 0 5px}.site-header nav{display:flex;gap:36px;font-size:13px}.site-header nav a{padding:12px 0;position:relative}.site-header nav a:after{content:"";position:absolute;bottom:3px;left:0;height:1px;width:0;background:currentColor;transition:width .2s}.site-header nav a:hover:after{width:100%}.site-header nav span{font:9px var(--mono);padding-left:4px;vertical-align:super;color:var(--muted)}.header-contact{display:flex;align-items:center;gap:22px;font-size:13px}.header-contact .icon{background:var(--ink);color:var(--paper);width:35px;height:35px;padding:11px;border-radius:50%;transition:transform .2s}.header-contact:hover .icon{transform:rotate(45deg)}.hero{display:grid;grid-template-columns:1.32fr 1fr;gap:45px 55px;padding-top:75px;padding-bottom:32px}.hero-copy{padding:2px 0 16px}.hero .eyebrow{display:flex;align-items:center;gap:9px;font-size:9px;margin:0 0 35px;letter-spacing:1px}.status-dot{width:6px;height:6px;background:var(--status);border-radius:50%;box-shadow:0 0 0 4px var(--status-ring)}h1{font-size:clamp(56px,6.4vw,86px);font-weight:500;line-height:1.04;letter-spacing:-5px;margin:0 0 36px;white-space:nowrap}.serif{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-.045em}.hero-intro{font-size:20px;letter-spacing:-.5px;margin:0 0 15px}.hero-intro strong{font-weight:650}.handle{font:11px var(--mono);letter-spacing:0;color:var(--muted);margin-left:10px}.hero-description{font-size:16px;line-height:1.7;max-width:405px;color:var(--muted);margin:0}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:31px}.button{background:var(--ink);color:var(--paper);font-size:12px;display:inline-flex;align-items:center;gap:36px;padding:17px 20px;transition:background .2s,transform .2s}.button span{font-size:21px;line-height:16px}.button:hover{background:var(--button-hover);transform:translateY(-2px)}.text-link{display:inline-flex;align-items:center;gap:9px;font-size:12px}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.text-link .icon{width:17px;height:17px}.hero-art{position:relative;background:var(--art-bg);min-width:0;overflow:hidden;color:#dbe5cf;align-self:start;margin-top:0;aspect-ratio:1/.99;display:flex;flex-direction:column;justify-content:space-between}.art-top{z-index:1;display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;color:#a5b19a;padding:22px 23px}.sculpture{position:absolute;top:13px;left:0;width:100%;height:calc(100% - 18px)}.floating-mark{animation:float 4.5s ease-in-out 1;transform-origin:center}.art-bottom{display:flex;justify-content:space-between;align-items:flex-end;padding:0 23px 23px;z-index:1}.art-caption{font-size:11px;line-height:1.5;color:#c2cdb6;letter-spacing:.15px}.art-signature{font-size:30px;line-height:1;color:#ddf5a2;font-weight:500}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding-top:5px;font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.hero-foot a{display:flex;gap:18px;align-items:center}.hero-foot a span{font-size:18px;transition:transform .2s}.hero-foot a:hover span{transform:translateY(3px)}.work-section{padding-top:99px;padding-bottom:104px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-heading .eyebrow{margin:0 0 18px;color:var(--muted)}h2{font-size:43px;font-weight:500;line-height:1.12;letter-spacing:-1.9px;margin:0}.all-projects{margin-bottom:5px;gap:18px}.section-description{color:var(--muted);font-size:14px;margin:18px 0 40px;line-height:1.6}.project{display:flex;align-items:center;gap:28px;border-top:1px solid var(--line);padding:32px 0;transition:background .2s}.project:last-child{border-bottom:1px solid var(--line)}.project:hover{background:var(--project-hover)}.project-number{font:10px var(--mono);color:var(--muted);align-self:flex-start;margin-top:8px;min-width:20px}.project-mark{width:72px;height:76px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.project-mark svg{width:35px;height:35px}.ignite{background:var(--ignite-bg);color:var(--ignite-ink)}.actors{background:var(--actors-bg);color:var(--actors-ink)}.statechart{background:var(--statechart-bg);color:var(--statechart-ink)}.project-info{flex:1}.project-info h3{font-size:22px;font-weight:500;letter-spacing:-.6px;margin:0 0 9px}.project-info p{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 12px;max-width:490px}.tags{display:flex;gap:7px;font:8px var(--mono);color:var(--tag-ink)}.tags span{border:1px solid var(--tag-line);border-radius:2px;padding:5px 7px}.project-action{display:flex;align-items:center;gap:30px;padding-left:15px}.project-action span{font:8px var(--mono);letter-spacing:.7px}.project-action .icon{width:23px;height:23px;transition:transform .2s}.project:hover .project-action .icon{transform:translate(3px,-3px)}.connect-section{background:var(--connect-bg);padding-top:65px}.connect-section h2{font-size:40px}.connect-note{font:8px/1.8 var(--mono);letter-spacing:.8px;color:var(--muted);padding-bottom:2px}.social-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--social-line);border-bottom:1px solid var(--social-line);margin-top:38px}.social-grid>a{display:flex;flex-direction:column;position:relative;padding:30px 25px 30px 0;transition:background .2s}.social-grid>a+a{border-left:1px solid var(--social-line);padding-left:26px}.social-grid>a:hover{background:var(--social-hover)}.social-icon{width:22px;height:22px;margin-bottom:26px}.social-name{font-size:18px;letter-spacing:-.3px;margin-bottom:8px}.social-detail{font-size:11px;color:var(--muted)}.social-arrow{position:absolute;right:24px;top:31px;width:18px;height:18px;transition:transform .2s}.social-grid>a:hover .social-arrow{transform:translate(3px,-3px)}footer{display:flex;align-items:center;gap:28px;padding:34px 0 31px}footer .wordmark{font-size:22px;letter-spacing:-1.2px}footer p{font-size:10px;color:var(--muted);margin:0}.footer-copy{margin-left:auto;font:9px var(--mono);color:var(--muted)}.back-top{border:1px solid var(--top-line);background:none;color:var(--ink);width:33px;height:33px;cursor:pointer;font-size:20px;transition:background .2s}.back-top:hover{background:var(--ink);color:var(--paper)}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

:root[data-theme="dark"]{color-scheme:dark;--paper:#171e16;--ink:#eef1e5;--muted:#b2bbaa;--line:#364131;--focus:#ddf5a2;--status:#c7e59b;--status-ring:#303e26;--button-hover:#d5e4b8;--project-hover:#222c1e;--ignite-bg:#2d3924;--ignite-ink:#c9e49e;--actors-bg:#26323a;--actors-ink:#becfe5;--statechart-bg:#392f26;--statechart-ink:#e3c2a3;--tag-ink:#b9c6ac;--tag-line:#45503d;--connect-bg:#1e271b;--social-line:#3a4632;--social-hover:#2c3925;--top-line:#46543b;--art-bg:#202b1e}
.header-actions{display:flex;align-items:center;gap:20px}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;appearance:none;-webkit-appearance:none;line-height:1;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s}
.theme-toggle:hover{background:var(--project-hover);border-color:var(--muted)}
.theme-toggle svg{width:18px;height:18px;flex:none}
.theme-sun{display:none}
[data-theme="dark"] .theme-sun{display:block}
[data-theme="dark"] .theme-moon{display:none}
@media(min-width:1600px){.hero{padding-top:90px}.hero-copy{padding-top:18px}h1{font-size:88px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero{gap:35px;padding-top:58px;grid-template-columns:1.25fr 1fr}h1{font-size:65px;letter-spacing:-3.5px}.hero .eyebrow{font-size:8px;letter-spacing:.3px}.hero-art{aspect-ratio:1/1.18}.hero-description{font-size:14px;max-width:340px}.hero-actions{gap:20px}.button{gap:20px}.project-action span{display:none}.project{gap:22px}.hero-foot{font-size:8px}.work-section{padding-top:75px;padding-bottom:80px}.connect-section h2{font-size:34px}.social-grid>a+a{padding-left:20px}.social-detail{font-size:10px}}
@media(max-width:800px){.wrap{width:calc(100% - 48px)}.site-header{height:88px}.site-header nav{gap:23px;font-size:11px}.header-contact{font-size:0;gap:0}.header-contact .icon{width:32px;height:32px;padding:10px}.hero{padding-top:50px;grid-template-columns:1fr;gap:32px}.hero-copy{padding:0}.hero .eyebrow{font-size:8px;letter-spacing:.7px;margin-bottom:27px}h1{font-size:clamp(48px,9.7vw,73px);line-height:1.04;letter-spacing:-3.5px;margin-bottom:28px}.hero-description{font-size:15px;max-width:440px}.hero-art{aspect-ratio:1.35/1;max-height:490px}.sculpture{height:117%;top:-40px}.art-top{padding:20px}.art-bottom{padding:0 20px 20px}.hero-foot{padding-top:6px;font-size:7px;letter-spacing:.5px;gap:20px}.hero-foot a{gap:10px}.work-section{padding-top:61px;padding-bottom:66px}h2{font-size:35px}.section-heading{align-items:flex-start}.all-projects{font-size:10px;margin-top:38px;gap:8px}.all-projects .icon{width:13px}.section-description{font-size:12px;margin-top:15px;margin-bottom:28px}.project{gap:16px;padding:25px 0}.project-number{font-size:9px;min-width:12px;margin-top:5px}.project-mark{width:58px;height:63px}.project-mark svg{width:29px;height:29px}.project-info h3{font-size:19px}.project-info p{font-size:12px;max-width:420px}.project-action{padding-left:0}.project-action .icon{width:18px}.connect-section{padding-top:48px}.connect-section h2{font-size:34px;max-width:400px}.connect-note{display:none}.social-grid{grid-template-columns:repeat(2,1fr);margin-top:29px}.social-grid>a{padding:25px 18px 26px 0}.social-grid>a:nth-child(3){border-left:0;padding-left:0;border-top:1px solid var(--social-line)}.social-grid>a:nth-child(4){border-top:1px solid var(--social-line)}.social-icon{margin-bottom:22px}.social-arrow{top:25px;right:20px}.social-name{font-size:17px}.social-detail{font-size:11px}footer{gap:18px;padding:28px 0}footer p{font-size:9px;max-width:130px;line-height:1.5}.footer-copy{font-size:8px}.back-top{width:29px;height:29px}}
@media(max-width:480px){.wrap{width:calc(100% - 40px)}.site-header nav{gap:18px}.site-header nav span{display:none}.site-header nav a{font-size:10px}.wordmark{font-size:27px}.hero{padding-top:42px}.hero .eyebrow{font-size:7px;letter-spacing:.45px;gap:8px}h1{font-size:clamp(40px,10.1vw,49px);letter-spacing:-2.5px;white-space:normal}.hero-intro{font-size:19px}.handle{font-size:10px}.hero-description{font-size:14px;line-height:1.7}.hero-actions{margin-top:26px;gap:23px}.button{padding:16px 17px;font-size:11px;gap:24px}.text-link{font-size:11px}.hero-art{aspect-ratio:1.13/1}.sculpture{height:111%;top:-16px}.art-top{font-size:7px;padding:17px}.art-bottom{padding:0 17px 17px}.art-caption{font-size:10px}.hero-foot>span{max-width:155px;line-height:1.8}.hero-foot a{font-size:6.5px}.work-section{padding-top:47px}.section-heading{display:block}h2{font-size:32px;letter-spacing:-1.5px}.section-heading .eyebrow{font-size:8px;margin-bottom:15px}.all-projects{margin:19px 0 0}.section-description{margin:13px 0 25px;max-width:270px}.project{position:relative;gap:14px;align-items:flex-start;padding:25px 0}.project-number{display:none}.project-mark{width:45px;height:49px;margin-top:2px}.project-mark svg{width:25px;height:25px}.project-info{padding-right:22px}.project-info h3{font-size:18px;margin-bottom:9px}.project-info p{font-size:11px;line-height:1.7}.project-action{position:absolute;right:0;top:30px}.project-action .icon{width:16px}.tags{font-size:7px;gap:5px}.tags span{padding:4px 6px}.connect-section h2{font-size:32px;max-width:320px}.social-arrow{right:15px}.social-grid>a+a{padding-left:18px}.social-name{font-size:16px}.social-detail{font-size:10px}footer{gap:13px;flex-wrap:wrap}footer p{font-size:8px;max-width:108px}.footer-copy{font-size:7px}.back-top{width:25px;height:25px;font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:800px){.header-actions{gap:12px}.theme-toggle{width:44px;height:44px}}
@media(max-width:480px){.header-actions{gap:8px}.theme-toggle{width:44px;height:44px}.site-header nav{gap:12px}}
@media(max-width:360px){.header-contact{display:none}}

@media(prefers-reduced-motion:reduce){.button:hover,.header-contact:hover .icon,.hero-foot a:hover span,.project:hover .project-action .icon,.social-grid>a:hover .social-arrow{transform:none}}

/* SVG arrows avoid emoji substitution on iOS. */
.button .button-arrow{width:18px;height:18px;transform:rotate(90deg)}
.text-link .text-arrow{width:13px;height:13px}
.hero-foot .scroll-arrow{width:18px;height:18px;transition:transform .2s}
.hero-foot a:hover .scroll-arrow{transform:translateY(2px)}
.back-top{display:inline-flex;align-items:center;justify-content:center;padding:0;appearance:none;-webkit-appearance:none}
.back-top .top-arrow{width:17px;height:17px;transform:rotate(180deg)}
@media(max-width:800px){.header-contact{width:44px;height:44px;justify-content:center}.site-header nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.back-top{width:44px;height:44px}}
@media(max-width:480px){.site-header nav a{font-size:11px}.header-actions{gap:4px}}
@media(prefers-reduced-motion:reduce){.hero-foot a:hover .scroll-arrow{transform:none}}

@media(max-width:360px){.site-header .wordmark{font-size:25px}.site-header nav{gap:10px}.site-header nav a{font-size:10px}}
