@keyframes sd-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes sd-blurIn{0%{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur()}}@keyframes sd-slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}[data-sd-animate]{animation:var(--sd-animation,sd-fadeIn) var(--sd-duration,.15s) var(--sd-easing,ease) var(--sd-delay,0s) both}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#f2eee6;--paper-raised:#faf7f0;--surface:#fff;--ink:#2a2622;--ink-soft:#4a443c;--ink-mute:#6b6157;--ink-faint:#9a8f7e;--line:#ddd2c0;--line-soft:#e2d7c4;--field-border:#d8cbb6;--accent:#c2622e;--accent-deep:#b06a3a;--on-ink:#f2eee6;--header-bg:#f2eee6d1;--grid-line:#9b8f7e0f;--focus-ring:#c2622e1f;--danger:#9d3325;--fit-no-icon:#b3a692;--font-display:"Fraunces", Georgia, serif;--font-body:"Newsreader", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-ui:"Newsreader", Georgia, serif;--r-sm:6px;--r-md:8px;--r-lg:12px;--maxw:1080px;--gutter:clamp(1.25rem, 5vw, 4rem)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#181614;--paper-raised:#211e1a;--surface:#27231f;--ink:#f1eadf;--ink-soft:#d6cabe;--ink-mute:#a99d90;--ink-faint:#827769;--line:#3a332c;--line-soft:#302b26;--field-border:#4a4037;--accent:#e1894d;--accent-deep:#f0a86a;--on-ink:#181614;--header-bg:#181614d6;--grid-line:#e6d7be0d;--focus-ring:#e1894d2e;--danger:#ff907f;--fit-no-icon:#70675d}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background:var(--paper);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);color:var(--ink);font-family:var(--font-body);background-size:96px 96px;font-size:17px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button,input,textarea{font:inherit}img{max-width:100%;height:auto;display:block}nextjs-portal{display:none!important}.route-progress{--route-progress:0%;opacity:0;pointer-events:none;z-index:1000;transition:opacity .16s,transform .16s;position:fixed;inset:0 0 auto;transform:translateY(-100%)}.route-progress[data-state=loading],.route-progress[data-state=settling]{opacity:1;transform:translateY(0)}.route-progress__track{background:color-mix(in srgb, var(--line) 56%, transparent);box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 72%, transparent);height:3px;overflow:hidden}.route-progress__bar{background:linear-gradient(90deg, color-mix(in srgb, var(--accent-deep) 78%, var(--ink)) 0%, var(--accent) 44%, color-mix(in srgb, var(--accent) 62%, var(--surface)) 74%, var(--accent-deep) 100%);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 50%, transparent), 0 0 26px color-mix(in srgb, var(--accent-deep) 28%, transparent);height:100%;transform:translateX(calc(var(--route-progress) - 100%));width:100%;transition:transform .28s cubic-bezier(.22,.61,.36,1)}.route-progress[data-state=settling] .route-progress__bar{transition-duration:.18s}.shell{max-width:var(--maxw);padding-inline:var(--gutter);margin:0 auto}.accent,.period{color:var(--accent)}.site-header{-webkit-backdrop-filter:saturate(140%)blur(8px);backdrop-filter:saturate(140%)blur(8px);background:var(--header-bg);border-bottom:1px solid var(--line);z-index:50;position:sticky;top:0}.site-header .row{justify-content:space-between;align-items:center;height:60px;display:flex}.brand{font-family:var(--font-mono);letter-spacing:0;font-size:16px;font-weight:500}.brand .mark{color:var(--accent);margin-right:2px}.header-right{align-items:center;gap:clamp(12px,3vw,28px);display:flex}.status{color:var(--ink-mute);font-family:var(--font-mono);align-items:center;gap:7px;font-size:11px;display:flex}.status:before{background:var(--accent);content:"";border-radius:50%;width:6px;height:6px;display:inline-block}.btn-start{border:1px solid var(--ink);border-radius:var(--r-md);font-family:var(--font-mono);letter-spacing:0;padding:8px 18px;font-size:12px;transition:background .18s,color .18s}.btn-start:hover{background:var(--ink);color:var(--on-ink)}.hero{padding-block:7rem 5.5rem;position:relative}.hero>.shell{z-index:1;position:relative}.eyebrow{color:var(--ink-mute);font-family:var(--font-mono);letter-spacing:0;margin-bottom:1.5rem;font-size:12px}.hero h1{font-family:var(--font-display);letter-spacing:0;max-width:16ch;margin-bottom:1.75rem;font-size:5.25rem;font-weight:400;line-height:.98}.hero .lede{color:var(--ink-soft);max-width:38ch;margin-bottom:2.25rem;font-size:1.3rem;line-height:1.55}.cta-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.btn-primary{background:var(--ink);border-radius:var(--r-md);color:var(--on-ink);font-family:var(--font-mono);letter-spacing:0;align-items:center;gap:10px;padding:14px 24px;font-size:13px;transition:opacity .18s,transform .15s;display:inline-flex}.btn-primary:hover{opacity:.92;transform:translateY(-1px)}.btn-primary .arrow{transition:transform .18s}.btn-primary:hover .arrow{transform:translate(3px)}.btn-ghost{color:var(--ink-mute);font-family:var(--font-mono);padding:14px 8px;font-size:13px;transition:color .15s}.btn-ghost:hover{color:var(--ink)}.hero-mark{background:var(--paper-raised);border:1px solid var(--line);pointer-events:none;height:168px;right:var(--gutter);z-index:0;width:168px;display:none;position:absolute;top:12%;transform:rotate(-9deg)}.hero-mark:before,.hero-mark:after{background:var(--line);content:"";position:absolute}.hero-mark:before{width:1px;top:6%;bottom:6%;left:50%}.hero-mark:after{height:1px;top:50%;left:6%;right:6%}.section{border-top:1px solid var(--line);padding-block:5rem}.section-head{margin-bottom:2.25rem}.section-head h2{font-family:var(--font-display);letter-spacing:0;font-size:2.4rem;font-weight:400;line-height:1.05}.section-head .kicker{color:var(--ink-faint);font-family:var(--font-mono);margin-bottom:.5rem;font-size:12px}.work-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.project-card{--project-accent:#b06a3a;--project-bg:var(--paper-raised);--project-text:var(--ink);border-radius:var(--r-lg);color:var(--project-text);flex-direction:column;justify-content:space-between;min-height:230px;padding:1.75rem;transition:transform .2s;display:flex;overflow:hidden}.project-card:hover{transform:translateY(-3px)}.project-card--freeform{background:0 0;align-self:stretch;width:100%;height:auto;min-height:0;padding:0;display:block;overflow:visible}.project-card__shadow{background:var(--paper-raised);border:1px solid var(--project-card-border,#e0d5bd);border-radius:var(--r-lg);width:100%;max-width:100%;display:block;overflow:hidden;box-shadow:0 1px 1px #5b43231a,0 12px 24px #5b43231a}.project-card .card-kicker{font-family:var(--font-mono);letter-spacing:0;font-size:11px;display:block}.project-card .card-tagline{font-family:var(--font-display);letter-spacing:0;margin:.75rem 0;font-size:1.7rem;font-weight:400;line-height:1.05}.project-card .card-blurb{font-size:.95rem;line-height:1.5}.project-card .card-foot{font-family:var(--font-mono);align-items:center;gap:6px;margin-top:1rem;font-size:11px;display:inline-flex}.project-card[data-layout=quote]{background:var(--project-bg,#2f3b34);color:var(--project-text,#e8efe6)}.project-card[data-layout=quote] .card-kicker{color:var(--project-accent,#9db89c)}.project-card[data-layout=quote] .card-blurb{color:color-mix(in srgb, var(--project-text,#e8efe6) 78%, transparent)}.project-card[data-layout=minimal],.project-card[data-layout=image],.project-card[data-layout=split]{background:var(--project-bg,var(--paper-raised));border:1px solid var(--line);color:var(--project-text,var(--ink))}.project-card[data-layout=minimal] .card-kicker,.project-card[data-layout=image] .card-kicker,.project-card[data-layout=split] .card-kicker{color:var(--project-accent,var(--accent-deep))}.project-card[data-layout=minimal] .card-blurb,.project-card[data-layout=image] .card-blurb,.project-card[data-layout=split] .card-blurb{color:color-mix(in srgb, var(--project-text,var(--ink-soft)) 76%, transparent)}.card-media{border-radius:var(--r-md);max-height:220px;margin:-.75rem -.75rem 1rem;overflow:hidden}.card-media img{object-fit:cover;object-position:top left;width:100%;height:100%}.how-summary{color:var(--ink-soft);font-family:var(--font-body);max-width:46ch;margin-bottom:2.5rem;font-size:1.25rem;line-height:1.6}.fit-cols{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem 3rem;display:grid}.fit-cols h3{color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:0;margin-bottom:1rem;font-size:12px;font-weight:400}.fit-list{list-style:none}.fit-list li{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:9px 0;font-size:1.05rem;display:flex}.fit-list li:last-child{border-bottom:none}.fit-list .icon{font-family:var(--font-mono);text-align:center;flex:none;width:18px;font-weight:500}.fit-list.yes .icon{color:var(--accent)}.fit-list.yes li{color:var(--ink-soft)}.fit-list.no .icon{color:var(--fit-no-icon)}.fit-list.no li{color:var(--ink-mute)}.contact h2 .period{color:var(--accent)}.contact-intro{color:var(--ink-soft);max-width:44ch;margin-bottom:2rem;font-size:1.2rem;line-height:1.55}.contact-grid{grid-template-columns:1.05fr 1fr;gap:16px;display:grid}.panel{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem}.panel-label{color:var(--accent-deep);font-family:var(--font-mono);letter-spacing:0;align-items:center;gap:7px;margin-bottom:1.1rem;font-size:11px;display:flex}.assistant-thread{max-height:310px;margin-bottom:12px;padding-right:2px;overflow-y:auto}.ai-conversation-content{flex-direction:column;gap:10px;display:flex}.ai-message{width:100%;display:flex}.ai-message--assistant{justify-content:flex-start}.ai-message--user{justify-content:flex-end}.ai-message-content{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r-md);color:var(--ink-soft);min-width:0;max-width:92%;padding:13px 15px;font-size:1rem;line-height:1.5}.ai-message--user .ai-message-content{background:var(--ink);color:var(--on-ink);white-space:pre-wrap;max-width:86%}.assistant-msg--smooth{will-change:height;padding:0;transition:height .56s cubic-bezier(.22,.61,.36,1),opacity .36s,transform .36s;animation:.46s both assistant-message-in;overflow:hidden}.assistant-msg-inner{padding:13px 15px}.ai-message-response{color:inherit;font-size:inherit;line-height:inherit}.ai-message-response p{margin:0}.ai-message-response p+p{margin-top:.75rem}.ai-message-response ul,.ai-message-response ol{margin:.75rem 0 0;padding-left:1.25rem}.ai-message-response li+li{margin-top:.25rem}.ai-message-response a{color:var(--accent-deep);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.ai-message-response code{background:var(--paper);border:1px solid var(--line-soft);color:var(--ink);font-family:var(--font-mono);border-radius:5px;padding:.08rem .28rem;font-size:.88em}.ai-message-response pre{background:var(--ink);border-radius:var(--r-sm);color:var(--on-ink);max-width:100%;margin:.85rem 0 0;padding:.85rem;overflow-x:auto}.ai-message-response pre code{color:inherit;background:0 0;border:0;padding:0}.assistant-loading{align-items:center;gap:5px;height:1.5em;display:inline-flex}.assistant-loading span{background:var(--ink-faint);border-radius:999px;width:6px;height:6px;animation:.9s ease-in-out infinite assistant-loading;display:block}.assistant-loading span:nth-child(2){animation-delay:.12s}.assistant-loading span:nth-child(3){animation-delay:.24s}@keyframes assistant-loading{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes assistant-message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ai-prompt-input{background:var(--surface);border:1px solid var(--field-border);border-radius:var(--r-md);align-items:center;gap:10px;padding:9px 9px 9px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.ai-prompt-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.ai-prompt-input-textarea{color:var(--ink);font-family:var(--font-body);resize:none;background:0 0;border:none;outline:none;flex:1;min-width:0;max-height:96px;font-size:1rem;line-height:1.4}.ai-prompt-input-textarea:focus-visible{outline:none}.ai-prompt-input-textarea::placeholder{color:var(--ink-faint)}.ai-prompt-input-submit{background:var(--ink);border-radius:var(--r-sm);color:var(--on-ink);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:opacity .15s;display:flex}.ai-prompt-input-submit:hover{opacity:.9}.ai-prompt-input-submit:disabled,.btn-send:disabled{cursor:not-allowed;opacity:.55}.field{margin-bottom:14px}.field label{color:var(--ink-mute);font-family:var(--font-mono);margin-bottom:6px;font-size:11px;display:block}.field input,.field textarea{background:var(--surface);border:1px solid var(--field-border);border-radius:var(--r-md);color:var(--ink);font-family:var(--font-body);outline:none;width:100%;padding:10px 13px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.field textarea{resize:vertical;min-height:76px;line-height:1.5}.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}.btn-send{background:var(--ink);border-radius:var(--r-md);color:var(--on-ink);cursor:pointer;font-family:var(--font-mono);letter-spacing:0;border:none;padding:11px 22px;font-size:12px;transition:opacity .15s}.btn-send:hover{opacity:.9}.contact-status{color:var(--accent-deep);font-family:var(--font-mono);margin:.75rem 0 0 .75rem;font-size:11px;line-height:1.5;display:inline-block}.contact-status--error{color:var(--danger);max-width:44ch;margin-left:0;display:block}.privacy-note{color:var(--ink-mute);font-family:var(--font-mono);max-width:52ch;margin-top:1.5rem;font-size:11px;line-height:1.6}.contact-links{gap:32px;margin-top:1.5rem;display:flex}.contact-links a .lbl{color:var(--ink-faint);font-family:var(--font-mono);text-transform:lowercase;margin-bottom:3px;font-size:10px;display:block}.contact-links a .val{color:var(--accent-deep);font-size:1rem}.site-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-block:1.5rem;display:flex}.site-footer .cr{color:var(--ink-mute);font-family:var(--font-mono);font-size:12px}.site-footer .build{color:var(--ink-faint);font-family:var(--font-mono);font-size:11px}.site-footer .build .sym{color:var(--accent);margin-right:7px}@media (min-width:1200px){.hero-mark{display:block}}@media (max-width:899px){.hero{padding-block:5.5rem 4.5rem}.hero h1{font-size:4.2rem}}@media (max-width:720px){.contact-grid{grid-template-columns:1fr}}@media (max-width:620px){.header-right{gap:12px}.hero{padding-block:3.5rem 3rem}.hero h1{font-size:2.75rem}.hero .lede,.contact-intro,.how-summary{font-size:1.05rem}.section{padding-block:3rem}.section-head h2{font-size:1.75rem}.cta-row,.contact-links{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;animation:.7s cubic-bezier(.2,.7,.2,1) forwards rise;transform:translateY(14px)}.hero .eyebrow{animation-delay:50ms}.hero h1{animation-delay:.12s}.hero .lede{animation-delay:.22s}.hero .cta-row{animation-delay:.32s}@keyframes rise{to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
