@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}img,svg{max-width:100%;display:block}button,input,textarea{font:inherit}}@layer base{:root{--color-bg:#f1e5d8;--color-surface:#f8f0e7;--color-text:#211b19;--color-muted:#71645d;--color-line:#d8c5b7;--color-accent:#a84f3c;--color-on-dark:#f8f0e7;--font-sans:"Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--shell:1180px;--gutter:clamp(1.25rem, 4vw, 3rem);--section-space:clamp(5.5rem, 10vw, 9rem)}html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility}body{background:radial-gradient(circle at 88% 12%, #ab4b322b, transparent 30rem), radial-gradient(circle at 8% 92%, #d38f4c29, transparent 34rem), linear-gradient(145deg, #f7eee5 0%, var(--color-bg) 52%, #ead2c1 100%);flex-direction:column;min-width:320px;min-height:100vh;line-height:1.55;display:flex;overflow-x:hidden}main{flex:1;overflow:clip}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}::selection{background:var(--color-accent);color:#fff}h1,h2,h3{text-wrap:balance;font-weight:640;line-height:1}}@layer layout{.shell{width:min(calc(100% - (var(--gutter) * 2)), var(--shell));margin-inline:auto}.section{padding-block:var(--section-space)}.section-after-intro{padding-top:1rem}}@layer components{.skip-link{z-index:100;background:var(--color-text);color:var(--color-on-dark);padding:.75rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f1e5d8d6;border-bottom:1px solid #211b1921;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:72px;display:flex}.wordmark{font-family:var(--font-mono);letter-spacing:.035em;align-items:baseline;font-size:1rem;font-weight:700;display:inline-flex}.nav-list{align-items:center;gap:clamp(1.1rem,3vw,2.5rem);font-size:.92rem;display:flex}.nav-list a{padding-block:.35rem;display:inline-block;position:relative}.nav-list a:after{background:var(--color-accent);content:"";transform-origin:100%;height:2px;transition:transform .18s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-list a:hover:after,.nav-list a[data-active=true]:after{transform-origin:0;transform:scaleX(1)}.hero{flex-direction:column;justify-content:center;align-items:flex-start;min-height:calc(100svh - 148px);padding-block:clamp(4.5rem,10vh,7.5rem);display:flex}.hero-main{width:min(100%,1040px)}.eyebrow,.section-index,.contact-label,.hero-note-index,.detail-kicker,.meta-row,.article-meta{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.72rem}.eyebrow{color:var(--color-muted);align-items:center;gap:.65rem;display:flex}.hero-welcome{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem}.status-dot{background:var(--color-accent);border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 5px #3d5afe1f}.hero-title{letter-spacing:-.07em;margin-top:clamp(1.4rem,3vw,2.5rem);font-size:clamp(3.2rem,7.8vw,7.4rem)}.hero-title span{display:block}.hero-title-accent{color:var(--color-accent)}.hero-intro{max-width:44rem;margin-top:clamp(1.8rem,3.5vw,2.8rem);font-size:clamp(1.05rem,1.8vw,1.3rem);line-height:1.55}.hero-role{max-width:47rem;color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.02em;margin-top:1.15rem;font-size:clamp(.72rem,1.3vw,.86rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.hero-rule{background:linear-gradient(90deg, var(--color-text), transparent 82%);opacity:.55;width:100%;height:1px;margin-top:clamp(4rem,10vh,7rem)}.button{border:1px solid var(--color-text);justify-content:center;align-items:center;gap:.8rem;min-height:48px;padding:.75rem 1.15rem;font-size:.9rem;font-weight:600;transition:background-color .16s,color .16s,transform .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--color-text);color:var(--color-on-dark)}.button-primary:hover{background:var(--color-accent);border-color:var(--color-accent)}.button-secondary:hover{background:var(--color-surface)}.hero-note{border-top:1px solid var(--color-text);align-self:end;padding-top:1rem;font-size:.95rem}.hero-note-index{color:var(--color-accent);margin-bottom:1.2rem;display:block}.hero-note p+p{margin-top:1rem}.muted{color:var(--color-muted)}.focus-strip{background:var(--color-text);color:var(--color-on-dark);overflow:hidden}.focus-strip-inner{min-height:72px;font-family:var(--font-mono);letter-spacing:.075em;text-transform:uppercase;grid-template-columns:repeat(4,1fr);align-items:center;gap:1rem;font-size:.7rem;display:grid}.focus-strip-inner span:not(:first-child){border-left:1px solid #fff3;padding-left:clamp(1rem,3vw,2.5rem)}.section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,4rem);display:flex}.section-index{color:var(--color-accent);margin-bottom:1rem}.section-heading h2,.contact-cta h2{letter-spacing:-.055em;font-size:clamp(2.2rem,5vw,4.8rem)}.section-link,.text-link,.back-link{border-bottom:1px solid;align-items:center;gap:.55rem;padding-bottom:.2rem;font-size:.88rem;font-weight:600;display:inline-flex}.section-link:hover,.text-link:hover,.back-link:hover{color:var(--color-accent)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.5vw,2rem);display:grid}.project-card{min-width:0}.project-card>a{border:1px solid var(--color-line);background:#faf9f494;flex-direction:column;height:100%;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.project-card>a:hover{border-color:var(--color-text);box-shadow:8px 8px 0 var(--color-text);transform:translate(-4px,-4px)}.project-visual{aspect-ratio:4/3;font-family:var(--font-mono);background:linear-gradient(135deg,#0000 49.6%,#11130f33 49.8% 50.2%,#0000 50.4%),#d7dcff;justify-content:space-between;align-items:flex-start;padding:1rem;font-size:.72rem;display:flex;position:relative;overflow:hidden}.project-card:nth-child(2) .project-visual{background:radial-gradient(circle,#0000 0 18%,#11130f2e 18.4% 18.8%,#0000 19.2% 31%,#11130f2e 31.4% 31.8%,#0000 32.2%),#d9efcf}.project-card:nth-child(3) .project-visual{background:repeating-linear-gradient(90deg,#0000 0 24px,#11130f21 24px 25px),repeating-linear-gradient(0deg,#0000 0 24px,#11130f21 24px 25px),#f2d7c5}.project-visual-mark{font-family:var(--font-sans);letter-spacing:-.12em;opacity:.14;font-size:clamp(5rem,12vw,9rem);font-weight:700;line-height:1;position:absolute;bottom:-.25em;right:-.05em}.project-visual-number{z-index:2;position:relative}.project-card-cover{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.project-card-body{flex-direction:column;flex:1;align-items:flex-start;padding:clamp(1.15rem,2.5vw,1.7rem);display:flex}.meta-row{width:100%;color:var(--color-muted);justify-content:space-between;gap:1rem;display:flex}.project-card h2,.project-card h3{letter-spacing:-.035em;margin-top:1.7rem;font-size:clamp(1.4rem,2.5vw,2rem)}.project-card p{color:var(--color-muted);margin-top:1rem;font-size:.92rem}.tag-list,.detail-tags{flex-wrap:wrap;gap:.45rem;display:flex}.tag-list{margin-top:1.5rem}.tag-list li,.detail-tags li{border:1px solid var(--color-line);font-family:var(--font-mono);letter-spacing:.03em;border-radius:99px;padding:.3rem .6rem;font-size:.62rem}.text-link{margin-top:2rem}.section-writing{border-block:1px solid var(--color-line);background:#faf9f485}.article-list{border-top:1px solid var(--color-text)}.article-card>a{border-bottom:1px solid var(--color-line);grid-template-columns:minmax(150px,.35fr) minmax(0,1fr) auto;align-items:start;gap:clamp(1.5rem,5vw,4rem);padding-block:clamp(1.6rem,3.5vw,2.5rem);transition:color .16s,padding-inline .16s;display:grid;position:relative}.article-card>a:hover{color:var(--color-accent);padding-inline:.75rem}.article-meta{color:var(--color-muted);flex-direction:column;gap:.5rem;display:flex}.article-copy h2,.article-copy h3{letter-spacing:-.04em;font-size:clamp(1.45rem,3vw,2.3rem)}.article-copy p{max-width:42rem;color:var(--color-muted);margin-top:.75rem}.article-arrow{font-size:1.35rem;line-height:1}.contact-cta{padding-block:var(--section-space)}.contact-cta-row{border-top:1px solid var(--color-text);justify-content:space-between;align-items:center;gap:2rem;padding-top:clamp(1.5rem,4vw,3rem);display:flex}.round-link{aspect-ratio:1;background:var(--color-accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:clamp(4rem,8vw,6rem);font-size:1.7rem;transition:transform .18s,background-color .18s;display:grid}.round-link:hover{background:var(--color-text);transform:rotate(45deg)}.email-link{font-family:var(--font-mono);border-bottom:1px solid;margin-top:2.5rem;font-size:clamp(.82rem,2vw,1rem);display:inline-block}.site-footer{color:var(--color-muted);background:#f8f0e73d;border-top:1px solid #211b1921}.footer-inner{min-height:76px;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;justify-content:flex-start;align-items:center;gap:1rem;font-size:.67rem;display:flex}.page-intro{padding-block:clamp(5rem,11vw,9rem) clamp(4rem,8vw,7rem)}.page-intro h1,.not-found h1{letter-spacing:-.075em;max-width:1000px;margin-top:1.5rem;font-size:clamp(3.2rem,8vw,6.8rem)}.page-intro>p:last-child{max-width:42rem;color:var(--color-muted);margin-top:clamp(2rem,4vw,3.5rem);font-size:clamp(1rem,2vw,1.3rem)}.article-list-page{margin-bottom:clamp(4rem,8vw,7rem)}.detail-page{padding-block:clamp(3rem, 7vw, 6rem) var(--section-space)}.back-link{margin-bottom:clamp(3rem,7vw,6rem)}.detail-header{grid-template-columns:minmax(0,1fr) minmax(180px,.28fr);align-items:end;gap:clamp(2rem,8vw,8rem);display:grid}.detail-kicker{color:var(--color-accent);gap:1rem;margin-bottom:1.2rem;display:flex}.detail-header h1,.article-header h1{letter-spacing:-.07em;font-size:clamp(3rem,8vw,7rem)}.detail-summary{max-width:50rem;color:var(--color-muted);margin-top:1.7rem;font-size:clamp(1.05rem,2vw,1.35rem)}.detail-tags{align-content:flex-end;padding-bottom:.5rem}.detail-cover{aspect-ratio:16/8;border:1px solid var(--color-text);object-fit:cover;width:100%;margin-top:clamp(3rem,7vw,6rem)}.detail-cover-placeholder{font-family:var(--font-mono);letter-spacing:.08em;background:linear-gradient(135deg,#0000 49.8%,#11130f2b 50%,#0000 50.2%),repeating-linear-gradient(90deg,#0000 0 48px,#11130f14 48px 49px),#d7dcff;justify-content:flex-start;align-items:flex-start;padding:1.25rem;font-size:.7rem;display:flex;position:relative;overflow:hidden}.detail-cover-placeholder strong{font-family:var(--font-sans);letter-spacing:-.13em;opacity:.12;font-size:clamp(8rem,28vw,26rem);line-height:1;position:absolute;bottom:-.28em;right:-.04em}.prose{width:min(100%,740px);margin:clamp(4rem,8vw,7rem) auto 0;font-size:clamp(1rem,1.5vw,1.12rem);line-height:1.75}.prose>*+*{margin-top:1.4rem}.prose h2,.prose h3{letter-spacing:-.035em;margin-top:2.8rem}.prose h2{font-size:clamp(1.8rem,4vw,2.7rem)}.prose h3{font-size:1.45rem}.prose p,.prose li{color:#30332e}.prose ul,.prose ol{padding-left:1.3rem}.prose ul{list-style:square}.prose a{border-bottom:1px solid var(--color-accent);color:var(--color-accent)}.prose pre{color:var(--color-on-dark);font-family:var(--font-mono);border:1px solid #30332e;padding:1.25rem;font-size:.88rem;overflow-x:auto;background:var(--color-text)!important}.prose :not(pre)>code{font-family:var(--font-mono);background:#e2e2da;border-radius:3px;padding:.14em .35em;font-size:.9em}.detail-links{flex-wrap:wrap;gap:.75rem;width:min(100%,740px);margin:3rem auto 0;display:flex}.detail-links a{border:1px solid var(--color-text);padding:.7rem 1rem}.detail-links a:hover{background:var(--color-text);color:var(--color-on-dark)}.article-header{border-bottom:1px solid var(--color-text);max-width:980px;margin-inline:auto;padding-bottom:clamp(2.5rem,5vw,4rem)}.article-header .detail-summary{max-width:45rem}.article-prose{margin-top:clamp(3rem,6vw,5rem)}.contact-intro{padding-bottom:clamp(2.5rem,5vw,4rem)}.contact-simple{border-top:1px solid var(--color-text);padding-block:clamp(1.5rem, 3vw, 2.5rem) var(--section-space)}.contact-email{overflow-wrap:anywhere;border-bottom:1px solid;font-size:clamp(1.05rem,3.2vw,2rem);display:inline-block}.contact-email:hover{color:var(--color-accent)}.contact-layout{padding-bottom:var(--section-space);grid-template-columns:minmax(260px,.7fr) minmax(0,1fr);gap:clamp(2rem,8vw,8rem);display:grid}.portrait-placeholder{aspect-ratio:4/5;border:1px solid var(--color-text);font-family:var(--font-mono);letter-spacing:.08em;background:radial-gradient(circle,#0000 0 20%,#11130f26 20.3% 20.7%,#0000 21%),repeating-linear-gradient(45deg,#0000 0 15px,#11130f12 15px 16px),#d7dcff;align-items:flex-start;padding:1rem;font-size:.7rem;display:flex;position:relative;overflow:hidden}.portrait-placeholder strong{font-family:var(--font-sans);letter-spacing:-.13em;opacity:.12;font-size:clamp(9rem,28vw,18rem);line-height:1;position:absolute;bottom:-.25em;right:-.05em}.contact-details{flex-direction:column;display:flex}.contact-block{border-top:1px solid var(--color-text);padding-block:1.25rem clamp(2.5rem,5vw,4rem)}.contact-label{color:var(--color-muted);margin-bottom:1rem}.contact-value{overflow-wrap:anywhere;border-bottom:1px solid;font-size:clamp(1rem,2.3vw,1.55rem)}.contact-value:hover{color:var(--color-accent)}.social-placeholders{border-top:1px solid var(--color-line)}.social-placeholders li{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:1rem;padding-block:.85rem;display:flex}.social-placeholders small{color:var(--color-muted)}.form-placeholder{border:1px solid var(--color-text);background:var(--color-surface);margin-top:auto;padding:clamp(1.25rem,4vw,2.25rem)}.form-placeholder h2{letter-spacing:-.04em;font-size:clamp(1.65rem,3vw,2.4rem)}.form-placeholder>p:not(.contact-label){color:var(--color-muted);margin-top:1rem}.form-placeholder .button{margin-top:1.5rem}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;min-height:calc(100svh - 166px);padding-block:5rem;display:flex}.not-found>p:not(.eyebrow){color:var(--color-muted);margin-top:1.5rem}.not-found .button{margin-top:2rem}}@layer utilities{@media (width<=900px){.hero{min-height:calc(100svh - 148px)}.hero-note{max-width:34rem}.focus-strip-inner{grid-template-columns:repeat(2,1fr);row-gap:1.2rem;padding-block:1.2rem}.focus-strip-inner span:nth-child(3){border-left:0;padding-left:0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card:last-child{grid-column:1/-1}.project-card:last-child>a{grid-template-columns:.8fr 1fr;display:grid}.detail-header{grid-template-columns:1fr;gap:2rem}.contact-layout{grid-template-columns:minmax(220px,.65fr) 1fr;gap:2rem}}@media (width<=680px){.header-inner{flex-direction:row;align-items:center;gap:1rem;min-height:64px;padding-block:0}.header-inner nav{width:auto}.nav-list{justify-content:flex-end;gap:clamp(.9rem,5vw,1.4rem);width:auto;font-size:.8rem}.hero{min-height:calc(100svh - 140px);padding-block:4rem}.hero-title{font-size:clamp(2.45rem,11.8vw,4.6rem)}.focus-strip-inner{grid-template-columns:1fr}.focus-strip-inner span:not(:first-child),.focus-strip-inner span:nth-child(3){border-left:0;padding-left:0}.focus-strip-inner span+span{border-top:1px solid #ffffff29;padding-top:1rem}.section-heading{flex-direction:column;align-items:flex-start;margin-bottom:2.2rem}.project-grid{grid-template-columns:1fr}.project-card:last-child{grid-column:auto}.project-card:last-child>a{display:flex}.article-card>a{grid-template-columns:1fr auto;gap:1rem}.article-meta{flex-flow:wrap;grid-column:1/-1}.contact-cta-row{align-items:flex-end}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:1.5rem}.footer-inner p:last-child{text-align:left}.page-intro h1,.not-found h1,.detail-header h1,.article-header h1{font-size:clamp(2.45rem,11.8vw,4.6rem)}.detail-cover{aspect-ratio:4/3}.contact-layout{grid-template-columns:1fr}.portrait-placeholder{width:min(100%,420px)}.form-placeholder{margin-top:1rem}}@media (width<=440px){.nav-list{gap:.72rem;font-size:.74rem}.hero-actions .button{width:100%}.contact-cta-row{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{.site-header,.site-footer,.hero-actions,.focus-strip,.contact-cta{display:none}body{background:#fff}}}
