@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c62081b071647022-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_c5b148{font-family:Fraunces,Fraunces Fallback}.__variable_c5b148{--font-display:"Fraunces","Fraunces Fallback"}

/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\!mt-0{margin-top:calc(var(--spacing)*0)!important}.mt-8{margin-top:calc(var(--spacing)*8)}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-full{height:100%}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.focus\:not-sr-only:focus{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}@media (min-width:40rem){.sm\:block{display:block}}@media (min-width:64rem){.lg\:grid-cols-\[minmax\(0\,0\.85fr\)_minmax\(0\,1\.15fr\)\]{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.lg\:gap-16{gap:calc(var(--spacing)*16)}}}:root{--bg:#faf7f2;--bg-soft:#f3ece2;--surface:#fff;--surface-2:#fbf8f4;--border:#1c19171c;--border-strong:#1c191738;--text:#1c1917;--text-soft:#4d4741;--muted:#8a8078;--accent:#b4331f;--accent-hover:#972a19;--accent-contrast:#fff;--accent-tint:#b4331f17;--footer-bg:#ece3d6;--pastel-sand:#efe6d7;--pastel-sage:#dfe8e1;--pastel-blush:#f4ded6;--pastel-sky:#dde5f0;--shadow-sm:0 1px 2px #1c19170d;--shadow-md:0 18px 40px -28px #1c191773;--nav-h:74px;--edge:clamp(1.25rem,5vw,3rem);--maxw:1120px;--ease:cubic-bezier(.22,1,.36,1);--fs-label:.72rem;--fs-xs:.8rem;--fs-sm:.92rem;--fs-md:.95rem;--fs-h3:1.3rem;--fs-lead:clamp(1.02rem,2.4vw,1.12rem);color-scheme:light}[data-theme=dark]{--bg:#14110f;--bg-soft:#1a1614;--surface:#1d1917;--surface-2:#221d1a;--border:#f5efe81f;--border-strong:#f5efe842;--text:#f5efe8;--text-soft:#cbc2b8;--muted:#968c81;--accent:#e0563d;--accent-hover:#ef6b52;--accent-contrast:#14110f;--accent-tint:#e0563d24;--footer-bg:#100e0d;--pastel-sand:#2a231d;--pastel-sage:#1e2622;--pastel-blush:#2c1f1c;--pastel-sky:#1c2230;--shadow-sm:0 1px 2px #0006;--shadow-md:0 24px 50px -30px #000000d9;color-scheme:dark}*{min-width:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 28px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans),system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background .4s var(--ease),color .4s var(--ease);font-size:1.02rem;line-height:1.7;overflow-x:clip}::selection{background:var(--accent-tint);color:var(--text)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.001ms!important;animation-duration:.001ms!important}}.display{font-family:var(--font-display),Georgia,serif;letter-spacing:-.022em;font-weight:400;line-height:1.06}.italic-accent{color:var(--accent);font-style:italic}.section-title{font-family:var(--font-display),Georgia,serif;letter-spacing:-.02em;margin-top:.9rem;font-size:clamp(2rem,5vw,3.1rem);font-weight:400;line-height:1.1}.section-lead{max-width:52ch;color:var(--text-soft);font-size:var(--fs-lead);margin-top:1.1rem}.eyebrow{font-size:var(--fs-label);letter-spacing:.17em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.7rem;font-weight:600;display:inline-flex}.eyebrow:before{content:"";opacity:.6;background:currentColor;width:22px;height:1px}.prose{color:var(--text-soft);font-size:var(--fs-lead)}.prose p+p{margin-top:1.15rem}.tags{flex-wrap:wrap;gap:.45rem;margin-top:1.25rem;display:flex}.shell{width:100%;max-width:var(--maxw);padding-inline:var(--edge);margin-inline:auto}.section{padding-block:clamp(4.5rem,11vw,8rem);position:relative}.section--tinted{background:var(--bg-soft);border-block:1px solid var(--border)}.wash{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.wash__blob{filter:blur(70px);opacity:.75;border-radius:999px;position:absolute}[data-theme=dark] .wash__blob{opacity:.5;filter:blur(90px)}.wash__blob--1{background:var(--pastel-blush);width:46vw;min-width:320px;height:46vw;min-height:320px;top:-14vw;right:-8vw}.wash__blob--2{background:var(--pastel-sky);width:38vw;min-width:260px;height:38vw;min-height:260px;top:30vh;left:-12vw}.wash__blob--3{background:var(--pastel-sand);width:30vw;min-width:220px;height:30vw;min-height:220px;bottom:-8vw;left:45vw}.wash__grain{opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");position:absolute;inset:0}[data-theme=dark] .wash__grain{mix-blend-mode:screen;opacity:.1}.masthead{min-height:100svh;padding-top:var(--nav-h);border-bottom:1px solid var(--border);flex-direction:column;display:flex;position:relative}.nav{z-index:50;height:var(--nav-h);transition:background .4s var(--ease),border-color .4s var(--ease),backdrop-filter .4s var(--ease);inset-inline:0;border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0}.nav[data-stuck=true]{background:var(--bg)}@supports (color:color-mix(in lab,red,red)){.nav[data-stuck=true]{background:color-mix(in srgb,var(--bg)82%,transparent)}}.nav[data-stuck=true]{-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom-color:var(--border)}.nav__inner{width:100%;max-width:var(--maxw);padding-inline:var(--edge);justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;display:flex}.brand{font-family:var(--font-display),Georgia,serif;letter-spacing:-.01em;color:var(--text);white-space:nowrap;transition:color .2s var(--ease);font-size:1.12rem;text-decoration:none}.brand:hover{color:var(--accent)}.nav__links{align-items:center;display:none}@media (min-width:860px){.nav__links{display:flex}}.nav__link{font-size:var(--fs-sm);color:var(--text-soft);transition:color .2s var(--ease);margin-inline:.7rem;padding:.35rem .15rem;text-decoration:none;position:relative}.nav__link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1.5px;transition:transform .3s var(--ease);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav__link:hover{color:var(--text)}.nav__link:hover:after,.nav__link[data-active=true]:after{transform:scaleX(1)}.nav__link[data-active=true]{color:var(--text)}.nav__actions{align-items:center;gap:.6rem;display:flex}.icon-btn{border:1px solid var(--border);width:40px;height:40px;color:var(--text-soft);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--accent);border-color:var(--border-strong)}@media (min-width:860px){.nav__toggle{display:none}}.nav__sheet{inset:var(--nav-h)0 auto 0;z-index:45;padding:.5rem var(--edge)1.5rem;background:var(--bg);border-bottom:1px solid var(--border);animation:sheet-in .26s var(--ease)both;flex-direction:column;display:flex;position:fixed}@media (min-width:860px){.nav__sheet{display:none}}@keyframes sheet-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.nav__sheet a{font-family:var(--font-display),Georgia,serif;font-size:var(--fs-h3);color:var(--text);border-bottom:1px solid var(--border);padding:1rem .1rem;text-decoration:none}.nav__sheet a:last-child{border-bottom:0}.hero{z-index:2;flex:1;padding-block:clamp(2.5rem,9vh,5rem);display:flex;position:relative}.hero,.hero__grid{align-items:center}.hero__grid{grid-template-columns:1fr;gap:clamp(2.5rem,6vw,4.5rem);display:grid}@media (min-width:900px){.hero__grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}.hero__title{margin-top:1.4rem;font-size:clamp(2.7rem,8.4vw,4.9rem)}.hero__lead{max-width:46ch;color:var(--text-soft);margin-top:1.6rem;font-size:clamp(1.05rem,2.6vw,1.2rem)}.hero__actions{flex-wrap:wrap;align-items:center;gap:.9rem;margin-top:2.1rem;display:flex}.btn{font-size:var(--fs-md);transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);border-radius:999px;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-weight:500;text-decoration:none;display:inline-flex}.btn--primary{color:var(--accent-contrast);background:var(--accent)}.btn--primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn--ghost{color:var(--text);border:1px solid var(--border-strong)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.hero__socials{flex-wrap:wrap;align-items:center;gap:1.4rem;margin-top:1.8rem;display:flex}.social-link{min-height:44px;font-size:var(--fs-sm);color:var(--text-soft);transition:color .2s var(--ease);align-items:center;gap:.5rem;padding-block:.35rem;text-decoration:none;display:inline-flex}.social-link:hover{color:var(--accent)}.portrait{aspect-ratio:1;order:-1;justify-self:center;width:min(330px,76vw);position:relative}@media (min-width:900px){.portrait{order:0;width:min(400px,42vw)}}.portrait__frame{background:var(--bg-soft);width:100%;height:100%;box-shadow:var(--shadow-md);border-radius:64% 36% 43% 57%/41% 62% 38% 59%;animation:blob 18s ease-in-out infinite alternate;position:relative;overflow:hidden}.portrait__frame img{object-fit:cover;object-position:38% 32%;width:100%;height:100%}.portrait:before{content:"";border:1px solid var(--border-strong);opacity:.45;pointer-events:none;border-radius:64% 36% 43% 57%/41% 62% 38% 59%;animation:blob 22s ease-in-out infinite alternate-reverse;position:absolute;inset:-16px}@keyframes blob{0%{border-radius:64% 36% 43% 57%/41% 62% 38% 59%}35%{border-radius:38% 62% 66% 34%/57% 39% 61% 43%}70%{border-radius:57% 43% 35% 65%/63% 55% 45% 37%}to{border-radius:45% 55% 61% 39%/36% 58% 42% 64%}}.card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);border-radius:16px;padding:clamp(1.4rem,3.5vw,2rem);position:relative}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-3px)}.card__title{font-family:var(--font-display),Georgia,serif;font-size:var(--fs-h3);letter-spacing:-.01em;font-weight:400}.card__body{color:var(--text-soft);font-size:var(--fs-md);margin-top:.55rem}.card__index{font-size:var(--fs-label);letter-spacing:.16em;color:var(--accent);margin-bottom:.75rem;font-weight:600;display:block}.card--media{flex-direction:column;display:flex}.card__head{align-items:center;gap:1.1rem;margin-bottom:1.1rem;display:flex}.card__media{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-soft);border-radius:16px;flex:none;width:84px;position:relative;overflow:hidden}.card__media img{object-fit:cover;width:100%;height:100%;display:block}.card--media .card__index{margin-bottom:.25rem}.chip{font-size:var(--fs-xs);color:var(--text-soft);padding:.28rem .75rem}.badge,.chip{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;align-items:center;display:inline-flex}.badge{font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;gap:.4rem;padding:.2rem .65rem;font-weight:600}.badge--live{color:var(--accent);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.badge--live{border-color:color-mix(in srgb,var(--accent)35%,transparent)}}.badge--live{background:var(--accent-tint)}.projects__grid{grid-template-columns:1fr;gap:1.1rem;margin-top:clamp(2.5rem,6vw,3.5rem);display:grid}@media (min-width:780px){.projects__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.project{min-height:250px;color:inherit;flex-direction:column;gap:1.2rem;text-decoration:none;display:flex}.project__head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project__name{font-family:var(--font-display),Georgia,serif;font-size:var(--fs-h3);letter-spacing:-.015em;transition:color .2s var(--ease);font-weight:400}.project__tagline{font-size:var(--fs-sm);color:var(--muted);margin-top:.1rem}.project__tags{margin-top:auto}.project__meta{border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;display:flex}a.project:hover .project__meta span:last-child,a.project:hover .project__name{color:var(--accent)}.text-link{min-height:44px;font-size:var(--fs-sm);color:var(--text);border-bottom:1px solid var(--border-strong);transition:color .2s var(--ease),border-color .2s var(--ease);align-self:flex-start;align-items:center;gap:.4rem;margin-top:.9rem;padding-bottom:1px;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.posts{border-top:1px solid var(--border);margin-top:clamp(2.5rem,6vw,3.5rem)}.post__excerpt{font-size:var(--fs-sm);color:var(--text-soft);margin-top:.3rem;display:block}.post{border-bottom:1px solid var(--border);color:inherit;gap:.35rem 2.5rem;padding:1.6rem 0;text-decoration:none;display:grid}@media (min-width:760px){.post{grid-template-columns:160px minmax(0,1fr);align-items:baseline}}.post__date{font-size:var(--fs-xs);color:var(--muted)}.post__title{font-family:var(--font-display),Georgia,serif;font-size:var(--fs-h3);transition:color .2s var(--ease);font-weight:400}.post:hover .post__title{color:var(--accent)}.empty{border:1px dashed var(--border-strong);background:var(--surface-2);text-align:center;color:var(--text-soft);border-radius:16px;margin-top:clamp(2rem,5vw,3rem);padding:clamp(2rem,6vw,3.25rem)}.contact__socials{grid-template-columns:1fr;gap:.85rem;margin-top:2.5rem;display:grid}@media (min-width:700px){.contact__socials{grid-template-columns:repeat(3,minmax(0,1fr))}}.social-card{border:1px solid var(--border);background:var(--surface);color:inherit;transition:border-color .2s var(--ease),transform .2s var(--ease);border-radius:14px;align-items:center;gap:.85rem;padding:1rem 1.15rem;text-decoration:none;display:flex}.social-card:hover{border-color:var(--accent);transform:translateY(-2px)}.social-card__icon{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--accent);border-radius:999px;flex:none;place-items:center;display:grid}.social-card__label{font-size:var(--fs-md);font-weight:500;line-height:1.3}.social-card__handle{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere}.footer{border-top:1px solid var(--border);background:var(--footer-bg);padding-block:2.5rem 3rem}.footer__credit{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.footer__made{align-items:center;gap:.4rem;display:inline-flex}.footer__flag{border-radius:2px;width:18px;height:auto;display:block}.footer__inner{text-align:center;font-size:var(--fs-sm);color:var(--text-soft);flex-direction:column;align-items:center;gap:1.25rem;display:flex}@media (min-width:700px){.footer__inner{text-align:left;flex-direction:row;justify-content:space-between}}.footer__top{border:1px solid var(--border-strong);min-height:44px;font-size:var(--fs-sm);color:var(--text);transition:color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1.15rem;text-decoration:none;display:inline-flex}.footer__top:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.now{border-top:1px solid var(--border);margin-top:2.25rem;padding-top:1.5rem}.now__label{font-size:var(--fs-label);letter-spacing:.17em;text-transform:uppercase;color:var(--muted);font-weight:600}.now__list{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.now__list li{font-size:var(--fs-md);color:var(--text-soft);padding-left:1.4rem;line-height:1.5;position:relative}.now__list li:before{content:"";background:var(--accent);width:7px;height:1px;position:absolute;top:.6em;left:0}.pillars{grid-template-columns:1fr;gap:1.1rem;margin-top:clamp(3rem,7vw,4.5rem);display:grid}@media (min-width:720px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1000px){.pillars{grid-template-columns:repeat(3,minmax(0,1fr))}}.reveal{opacity:0;transition:opacity .75s var(--ease),transform .75s var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(16px)}.reveal[data-visible=true]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}