:root{--bg:#FAF6F0;--bg-elev:#FFFFFF;--text:#221E1A;--text-soft:#5D564E;--accent:#BC4A26;--accent-ink:#A03C1C;--ok:#37A169;--ok-ink:#2C8757;--line:#E5DDD0;--shadow-s:0 6px 18px rgba(60,42,28,0.07);--shadow:0 16px 40px rgba(60,42,28,0.10);--shadow-l:0 24px 60px rgba(60,42,28,0.14);--grain-opacity:0.028;--doodle-alpha:0.08;--font-display:var(--font-fraunces),Georgia,"Times New Roman",serif;--font-body:var(--font-inter),system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:var(--font-jetbrains),ui-monospace,SFMono-Regular,Menlo,monospace;--container:1060px;--header-h:72px;--section-pad:clamp(4.75rem,12vw,8.5rem);--r-s:10px;--r-m:16px;--r-l:22px;color-scheme:light}[data-theme=dark]{--bg:#16130F;--bg-elev:#201B16;--text:#F2ECE3;--text-soft:#A79C8E;--accent:#E0764B;--accent-ink:#E88A62;--ok:#4CBB7F;--ok-ink:#5FCE93;--line:#322B23;--shadow-s:0 6px 18px rgba(0,0,0,0.3);--shadow:0 16px 40px rgba(0,0,0,0.45);--shadow-l:0 24px 60px rgba(0,0,0,0.55);--grain-opacity:0.05;--doodle-alpha:0.1;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;color:var(--text);background:var(--bg);overflow-x:clip;-webkit-tap-highlight-color:transparent;transition:background .3s ease,color .3s ease}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:min(100% - 2.75rem,var(--container));margin-inline:auto}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;line-height:1.1;margin:0;font-weight:600;text-wrap:balance}p{margin:0;text-wrap:pretty}blockquote,dd,dl,dt,figure,ol,ul{margin:0;padding:0}.mono{font-family:var(--font-mono)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.hl{color:inherit;background:linear-gradient(transparent 58%,color-mix(in srgb,var(--accent) 26%,transparent) 58%,color-mix(in srgb,var(--accent) 26%,transparent) 92%,transparent 92%)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--accent);color:#FFF6EF;padding:.6rem 1.1rem;border-radius:0 0 var(--r-s) 0;text-decoration:none;font-weight:600}.skip-link:focus{left:0}body:before{background:radial-gradient(620px 420px at 85% -5%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%),radial-gradient(520px 420px at -10% 42%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 70%)}body:after,body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none}body:after{opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}.bg-doodles{position:fixed;inset:0;z-index:-1;pointer-events:none;color:var(--text-soft)}.doodle{position:absolute;height:auto;opacity:var(--doodle-alpha);animation:doodle-drift var(--drift-t,14s) ease-in-out var(--drift-d,0s) infinite alternate}@keyframes doodle-drift{0%{transform:translate(0) rotate(var(--rot-a,-2deg))}to{transform:translate(var(--dx,0),var(--dy,-18px)) rotate(var(--rot-b,2deg))}}.doodle-ball{top:21%;left:4%;width:96px;--dx:12px;--dy:-22px;--rot-a:0deg;--rot-b:0deg;--drift-t:13s}.doodle-goal{top:20%;right:6%;width:150px;--dx:-8px;--dy:-12px;--rot-a:1.5deg;--rot-b:-1.5deg;--drift-t:18s;--drift-d:-8s}.doodle-code{top:44%;right:4%;width:110px;--dx:-14px;--dy:-26px;--rot-a:-6deg;--rot-b:6deg;--drift-t:13s;--drift-d:-5s}.doodle-terminal{top:56%;left:3%;width:132px;--dx:14px;--dy:-20px;--rot-a:2.5deg;--rot-b:-3.5deg;--drift-t:16s;--drift-d:-12s}.doodle-padel{bottom:7%;right:8%;width:88px;--dx:-12px;--dy:-24px;--rot-a:-8deg;--rot-b:8deg;--drift-t:11s;--drift-d:-7s}.doodle-waves{top:19%;left:38%;width:110px;--dx:26px;--dy:-5px;--rot-a:0deg;--rot-b:0deg;--drift-t:9s;--drift-d:-4s}.doodle-waves2{top:20%;right:18%;width:76px;--dx:-20px;--dy:-4px;--rot-a:0deg;--rot-b:0deg;--drift-t:11s;--drift-d:-6s}.doodle-spin{transform-box:fill-box;transform-origin:center;animation:doodle-spin 42s linear infinite}@keyframes doodle-spin{to{transform:rotate(1turn)}}.doodle-sailboat{top:7%;left:-160px;width:120px;animation:doodle-sail 100s linear infinite}@keyframes doodle-sail{to{transform:translateX(calc(100vw + 340px))}}.doodle-rock{transform-box:fill-box;transform-origin:50% 85%;animation:doodle-rock 5.5s ease-in-out infinite alternate}@keyframes doodle-rock{0%{transform:rotate(-3.5deg) translateY(0)}to{transform:rotate(3.5deg) translateY(-3px)}}@media (max-width:760px){.doodle-goal,.doodle-terminal,.doodle-waves2{display:none}.doodle-ball{width:64px}.doodle-code{width:76px}.doodle-padel{width:58px}.doodle-waves{width:84px}.doodle-sailboat{width:88px}}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s ease,background .3s ease}.site-header.is-scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent)}.site-header:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--scroll-progress,0));transform-origin:left;pointer-events:none}.nav{display:flex;align-items:center;height:var(--header-h);transition:height .3s ease}.is-scrolled .nav{height:62px}.brand{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--text);text-decoration:none}.brand-mark{width:24px;height:24px;flex:none;margin-right:.6rem;transform:rotate(-6deg);transition:transform .3s ease}.brand:hover .brand-mark{transform:rotate(0deg) scale(1.06)}.brand span{display:inline-block;color:var(--accent)}.brand:hover span{animation:dot-hop .5s ease}@keyframes dot-hop{0%{transform:none}40%{transform:translateY(-7px)}70%{transform:translateY(1px)}to{transform:none}}.nav-menu{margin-left:auto}.nav-links{display:flex;gap:1.7rem;list-style:none}.nav-links a{position:relative;display:inline-block;color:var(--text-soft);text-decoration:none;font-size:.95rem;font-weight:500;padding:.35rem 0;transition:color .2s}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4 C 8 2, 14 5.5, 21 3.5 S 36 2, 42 4' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center /100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 6' preserveAspectRatio='none'%3E%3Cpath d='M2 4 C 8 2, 14 5.5, 21 3.5 S 36 2, 42 4' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center /100% 100% no-repeat;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,1,.36,1)}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{transform:scaleX(1)}.nav-links a[aria-current=true]{color:var(--accent-ink)}.nav-links a[aria-current=true]:after{transform:scaleX(1)}.nav-actions{display:flex;gap:.55rem;margin-left:1.5rem}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 4px;flex:none;border:1px solid var(--line);border-radius:50%;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--text-soft);text-decoration:none;transition:color .2s,border-color .2s,transform .2s}.lang-toggle:hover{color:var(--accent-ink);border-color:var(--accent);transform:rotate(-4deg)}.nav-toggle,.theme-toggle{width:38px;height:38px;flex:none;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);cursor:pointer;transition:border-color .2s,transform .2s}.theme-toggle{display:grid;place-items:center}.theme-toggle:hover{border-color:var(--accent);transform:rotate(15deg)}.theme-toggle svg{width:17px;height:17px}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}.nav-toggle,[data-theme=dark] .theme-toggle .icon-moon{display:none}.nav-toggle{flex-direction:column;align-items:center;justify-content:center;gap:5px}.nav-toggle-bar{width:16px;height:2px;border-radius:2px;background:var(--text);transition:transform .25s}.nav-open .nav-toggle-bar:first-child{transform:translateY(3.5px) rotate(45deg)}.nav-open .nav-toggle-bar:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{position:relative;display:flex;min-height:min(calc(100svh - var(--header-h)),940px);padding:clamp(3.5rem,8vh,6rem) 0 clamp(4.5rem,10vh,7rem)}.hero,.hero-grid{align-items:center}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:clamp(2rem,6vw,5rem);gap:clamp(2rem,6vw,5rem)}.hero-kicker{font-size:.78rem;letter-spacing:.05em;color:var(--text-soft);margin-bottom:1.4rem;text-wrap:balance}.hero-title{font-size:clamp(3.1rem,8vw,5.4rem);letter-spacing:-.02em;line-height:1.04}.hero-title .line{display:block;overflow:clip;padding-bottom:.3em;margin-bottom:-.3em}.hero-title .line-in,.squiggle{display:inline-block}.squiggle{position:relative}.squiggle svg{position:absolute;left:-3%;bottom:-.16em;width:106%;height:.16em;color:var(--accent);transform:rotate(-1.2deg)}.squiggle path{stroke-dasharray:113;stroke-dashoffset:113;animation:draw 1.35s cubic-bezier(.45,0,.55,1) 1.2s forwards}.anim .squiggle path{animation:none}@keyframes draw{to{stroke-dashoffset:0}}.hero-lede{font-size:clamp(1.08rem,2.2vw,1.22rem);line-height:1.75;max-width:34rem;margin:1.9rem 0 2.2rem}.hero-lede,.hero-now{color:var(--text-soft)}.hero-now{display:flex;align-items:baseline;gap:.6rem;font-size:.82rem}.now-dot{align-self:center;width:8px;height:8px;flex:none;border-radius:50%;background:var(--ok);animation:pulse 2.2s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 45%,transparent)}to{box-shadow:0 0 0 9px transparent}}.now-rotator{overflow:clip;white-space:nowrap;color:var(--text)}.now-item,.now-rotator{display:inline-block}.hero-hello{margin-top:1rem;font-size:.88rem;color:var(--text-soft)}.hero-hello a{color:var(--text);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;transition:color .2s}.hero-hello a:hover{color:var(--accent-ink)}.hero-hello-note{opacity:.85}.hero-photo{position:relative;z-index:0;max-width:400px;justify-self:end}.hero-photo-parallax{position:relative;perspective:900px}.hero-photo-frame{position:relative;z-index:0;transform-style:preserve-3d}.hero-photo-frame:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:26px;background:color-mix(in srgb,var(--accent) 22%,transparent);transform:rotate(3deg) translate(12px,10px);transition:transform .45s cubic-bezier(.22,1,.36,1)}.hero-photo-frame:hover:before{transform:rotate(4.2deg) translate(15px,12px)}.hero-photo-frame img{display:block;width:100%;height:auto;border-radius:26px;border:1px solid var(--line);background:#FFFFFF;box-shadow:var(--shadow)}.hero-badge{position:absolute;z-index:1;width:clamp(92px,9vw,118px);height:auto;left:-2.6rem;bottom:.4rem;filter:drop-shadow(0 8px 18px rgba(60,42,28,.16))}[data-theme=dark] .hero-badge{filter:drop-shadow(0 8px 18px rgba(0,0,0,.4))}.badge-face{fill:var(--bg-elev);stroke:var(--line)}.badge-text{font-family:var(--font-mono);font-size:9px;letter-spacing:.07em;fill:var(--text-soft)}.badge-m{font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700;fill:#FFF6EF}.photo-note{margin-top:1rem;font-size:.78rem;transform:rotate(-1.2deg);text-align:right}.hero-cue,.photo-note{color:var(--text-soft)}.hero-cue{position:absolute;bottom:1.6rem;left:max(1.375rem,calc((100% - var(--container)) / 2));display:flex;align-items:center;gap:.7rem;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.cue-line{position:relative;width:44px;height:1px;background:color-mix(in srgb,var(--text-soft) 35%,transparent);overflow:hidden}.cue-line:after{content:"";position:absolute;inset:0;background:var(--accent);transform:translateX(-100%);animation:cue-sweep 2.4s cubic-bezier(.65,0,.35,1) infinite}@keyframes cue-sweep{0%{transform:translateX(-100%)}55%{transform:translateX(0)}to{transform:translateX(102%)}}@media (max-height:600px){.hero-cue{display:none}}.section{padding:var(--section-pad) 0 0}.section:last-of-type{padding-bottom:var(--section-pad)}.section-head{display:flex;align-items:baseline;gap:1.1rem;margin-bottom:clamp(2.2rem,5vw,3.4rem)}.section-no{font-size:.8rem;font-weight:500;letter-spacing:.08em;color:var(--accent-ink)}.h2{font-size:clamp(1.85rem,4.4vw,2.6rem);letter-spacing:-.015em;overflow:clip;padding-bottom:.14em;margin-bottom:-.14em}.h2-in{display:inline-block}.head-rule{flex:1 1;height:1px;align-self:center;margin-top:.5em;background:var(--line);transform-origin:left center}.section-lede{max-width:38rem;color:var(--text-soft);margin-bottom:clamp(2.2rem,5vw,3.2rem)}.about-text{max-width:41rem}.about-text>p{margin-bottom:1.4rem}.about-text>p:last-child{margin-bottom:0}.pull-quote{margin:2.4rem 0 2.4rem clamp(0rem,4vw,2.5rem);padding-left:1.4rem;border-left:3px solid var(--accent)}.pull-quote p{font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,2.8vw,1.55rem);line-height:1.45;color:var(--text)}.about-langs{font-size:.95rem;color:var(--text-soft)}.jobs{list-style:none;border-top:1px solid var(--line)}.job{display:grid;grid-template-columns:170px 1fr;grid-gap:1.5rem;gap:1.5rem;padding:1.8rem 0;border-bottom:1px solid var(--line);transition:border-color .3s}.job:hover{border-bottom-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.job-when{font-size:.78rem;letter-spacing:.06em;color:var(--text-soft);padding-top:.45rem;white-space:nowrap}.job-body h3{font-size:1.3rem;line-height:1.3;transition:color .2s}.job-co,.job:hover .job-body h3{color:var(--accent-ink)}.job-co{font-style:italic;font-weight:500}.job-co:before{content:"· ";font-style:normal;color:var(--text-soft)}.job-body p{color:var(--text-soft);margin-top:.55rem;max-width:44rem}.p-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s);perspective:1100px;transition:box-shadow .4s ease,border-color .4s ease}.p-card:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));box-shadow:var(--shadow-l)}.p-tilt{padding:clamp(1.6rem,3.5vw,2.6rem);transform-style:preserve-3d}.p-featured{margin-bottom:2rem}.p-featured .p-tilt{display:grid;grid-template-columns:1.04fr .96fr;grid-gap:clamp(1.8rem,4vw,3.2rem);gap:clamp(1.8rem,4vw,3.2rem);align-items:center}.p-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem}.p-grid .p-tilt{display:flex;flex-direction:column;gap:1.5rem;height:100%}.p-top{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem}.p-featured h3{font-size:clamp(1.8rem,3.5vw,2.2rem)}.p-grid h3{font-size:1.45rem}.p-status{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;letter-spacing:.06em;color:var(--text-soft);white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}.p-status-wip .status-dot{background:var(--accent)}.p-hook{color:var(--text);max-width:34rem;margin-bottom:1.6rem}.p-grid .p-copy>p{color:var(--text-soft)}.p-rows{grid-gap:1rem;margin-bottom:1.8rem}.p-row,.p-rows{display:grid;gap:1rem}.p-row{grid-template-columns:92px 1fr;grid-gap:1rem;align-items:baseline}.p-row dt{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}.p-row dd{color:var(--text-soft);font-size:.97rem}.p-stack{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.p-stack li{font-size:.74rem;letter-spacing:.04em;color:var(--text-soft);padding:.3rem .7rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg) 55%,transparent)}.p-link{margin:1.1rem 0 1.4rem}.chip-link{display:inline-block;font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--accent-ink);text-decoration:none;padding:.5rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:999px;transition:color .25s,border-color .25s,background .25s}.chip-link:hover{color:#FFF6EF;background:var(--accent);border-color:var(--accent)}.p-grid .p-copy{display:flex;flex-direction:column;align-items:flex-start;flex:1 1}.p-grid .p-copy .p-stack{margin-top:auto;padding-top:1.2rem}.p-visual{--mock-bg:var(--bg-elev);--mock-dim:color-mix(in srgb,var(--text) 11%,transparent);--mock-strong:color-mix(in srgb,var(--text) 24%,transparent);--mock-inset:color-mix(in srgb,var(--text) 5%,transparent);--mock-qr:color-mix(in srgb,var(--text) 70%,transparent);min-width:0}.mock{display:block;width:100%;height:auto;border-radius:var(--r-m)}.p-featured .p-visual .mock{background:radial-gradient(90% 90% at 20% 10%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%),color-mix(in srgb,var(--text) 3%,transparent);padding:clamp(.8rem,2vw,1.4rem)}.p-grid .p-visual .mock{background:color-mix(in srgb,var(--text) 3%,transparent);padding:.9rem}.mk-card,.mk-window{fill:var(--mock-bg);stroke:var(--line)}.mk-field,.mk-panel{fill:var(--mock-inset);stroke:var(--line)}.mk-line{stroke:var(--line)}.mk-dim{fill:var(--mock-dim)}.mk-strong{fill:var(--mock-strong)}.mk-onaccent{fill:rgba(255,246,239,.92)}.mk-ball,.mk-qr{fill:var(--mock-qr);stroke:var(--mock-qr)}.mk-ball{opacity:.8}[data-theme=dark] .p-visual{--mock-dim:color-mix(in srgb,var(--text) 16%,transparent);--mock-strong:color-mix(in srgb,var(--text) 30%,transparent);--mock-inset:color-mix(in srgb,var(--text) 8%,transparent)}.mk-dashed{fill:none;stroke:var(--mock-strong);stroke-width:1.5;stroke-dasharray:6 6}.mk-ok{stroke:var(--ok);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mk-chev{stroke:var(--mock-qr);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.mk-label{font-family:var(--font-mono);font-size:11px;fill:var(--text-soft)}.mk-spaced{letter-spacing:.18em}.mk-ok-text{fill:var(--ok-ink)}.shot-frame{background:color-mix(in srgb,var(--text) 3%,transparent);border-radius:var(--r-m);padding:.9rem}.shot{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}.shot-light,[data-theme=light] .shot-dark{display:none}[data-theme=light] .shot-light{display:block}.p-sketchnote{margin-top:.8rem;font-size:.72rem;color:var(--text-soft);text-align:right;transform:rotate(-.6deg)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(2rem,5vw,3.2rem) clamp(2.5rem,6vw,4.5rem);gap:clamp(2rem,5vw,3.2rem) clamp(2.5rem,6vw,4.5rem)}.skill-group{border-top:1px dashed var(--line);padding-top:1.3rem}.skill-name{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}.skill-note{font-family:var(--font-display);font-style:italic;font-size:1.08rem;color:var(--text-soft);margin:.3rem 0 1.1rem}.pills{display:flex;flex-wrap:wrap;gap:.55rem;list-style:none}.pills li{font-size:.85rem;color:var(--text);padding:.42rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--bg-elev);transition:border-color .25s,color .25s,transform .25s}.pills li:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--accent-ink);transform:translateY(-2px)}.after-grid{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:clamp(2.2rem,6vw,4.5rem);gap:clamp(2.2rem,6vw,4.5rem);align-items:center}.after-photo{max-width:340px}.after-frame{overflow:clip;border-radius:var(--r-l);border:1px solid var(--line);background:#FFFFFF;box-shadow:var(--shadow);aspect-ratio:727/820}.after-frame img{display:block;width:100%;height:100%;object-fit:cover}.after-photo figcaption{margin-top:.9rem;font-size:.78rem;color:var(--text-soft);transform:rotate(-1.2deg)}.after-text{max-width:36rem}.after-text p{margin-bottom:1.3rem}.after-text p:last-child{margin-bottom:0}.contact-note{max-width:34rem;color:var(--text-soft);margin-bottom:2.2rem}.contact-mail-row{display:flex;align-items:center;flex-wrap:wrap;gap:1.1rem}.contact-mail{display:inline-block;font-family:var(--font-mono);font-weight:600;font-size:clamp(1.15rem,3.5vw,1.7rem);color:var(--text);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);text-decoration-thickness:3px;text-underline-offset:7px;transition:color .2s,-webkit-text-decoration-color .2s;transition:color .2s,text-decoration-color .2s;transition:color .2s,text-decoration-color .2s,-webkit-text-decoration-color .2s;overflow-wrap:anywhere}.contact-mail:hover{color:var(--accent-ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.copy-btn{position:relative;width:44px;height:44px;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--bg-elev);color:var(--text-soft);cursor:pointer;transition:border-color .25s,color .25s,transform .25s}.copy-btn:hover{border-color:var(--accent);color:var(--accent-ink);transform:translateY(-2px)}.copy-btn svg{width:17px;height:17px}.copy-btn .icon-check{display:none;color:var(--ok-ink)}.copy-btn.copied .icon-copy{display:none}.copy-btn.copied .icon-check{display:block}.copy-btn.copied{border-color:color-mix(in srgb,var(--ok) 60%,var(--line))}.copy-btn:after{content:"Copied";position:absolute;bottom:calc(100% + 8px);left:50%;translate:-50% 4px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;padding:.25rem .55rem;border-radius:6px;background:var(--text);color:var(--bg);opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .25s,translate .25s}.copy-btn.copied:after{opacity:1;translate:-50% 0}.contact-alt{margin-top:1.8rem;color:var(--text-soft)}.contact-alt a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;transition:color .2s,-webkit-text-decoration-color .2s;transition:color .2s,text-decoration-color .2s;transition:color .2s,text-decoration-color .2s,-webkit-text-decoration-color .2s}.contact-alt a:hover{color:var(--accent-ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.site-footer{border-top:1px solid var(--line);padding:2rem 0 2.4rem}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;font-size:.88rem;color:var(--text-soft)}.stamp-btn{padding:0;border:0;background:none;cursor:pointer;line-height:0}.stamp{width:24px;height:24px;transform:rotate(-4deg);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.stamp-btn:hover .stamp{transform:rotate(3deg) scale(1.12)}.easter-ball{position:fixed;top:0;left:0;z-index:90;font-size:42px;line-height:1;pointer-events:none;will-change:transform}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}.anim [data-reveal]{opacity:0;transform:translateY(28px)}.anim .h2-in{transform:translateY(118%)}.anim .section-no{opacity:0;transform:translateX(-10px)}.anim .head-rule{transform:scaleX(0)}.anim .hero-cue,.anim .hero-hello,.anim .hero-kicker,.anim .hero-lede,.anim .hero-now,.anim .photo-note{opacity:0}.anim .hero-title .line-in{transform:translateY(115%)}.anim .hero-badge,.anim .hero-photo-frame{opacity:0}@media (max-width:1020px){.p-featured .p-tilt{grid-template-columns:1fr}.p-featured .p-visual{order:-1}}@media (max-width:860px){.hero{min-height:0}.hero-grid{grid-template-columns:1fr;gap:2.8rem}.hero-photo{justify-self:start;max-width:300px}.hero-badge{left:auto;right:-1.6rem;bottom:-1rem}.photo-note{text-align:left}.hero-cue{display:none}.after-grid,.p-grid,.skills-grid{grid-template-columns:1fr}.after-photo{max-width:300px}.job{grid-template-columns:1fr;gap:.3rem}.job-when{padding-top:0}.p-row{grid-template-columns:1fr;gap:.15rem}}@media (max-width:760px){.nav-toggle{display:inline-flex}.nav-actions{margin-left:auto}.nav-menu{position:absolute;top:100%;left:0;right:0;margin-left:0;display:none;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav-open .nav-menu{display:block;animation:menu-in .22s ease}.nav-links{flex-direction:column;gap:0;padding:.5rem 1.4rem .9rem}.nav-links a{display:block;padding:.75rem 0;font-size:1.05rem}.nav-links a:after{display:none}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.brand:hover span{animation:none}.copy-btn,.pills li,.stamp,.theme-toggle{transition:none}.squiggle path{animation:none;stroke-dasharray:none;stroke-dashoffset:0}.doodle,.doodle-rock,.doodle-spin{animation:none}.doodle-sailboat{left:20%}.now-dot{animation:none}.cue-line:after{animation:none;transform:none}.hero-photo-frame:before{transition:none}}@media print{.copy-btn,.hero-cue,.p-visual,.site-header,.stamp-btn,body:after,body:before{display:none}body{background:#FFFFFF;color:#000000}}.phone{position:relative;padding:.5rem .4rem .6rem;border-radius:clamp(1.2rem,2.6vw,1.8rem);background:linear-gradient(155deg,#38312A,#14110E 65%);border:1px solid rgba(255,255,255,.09);box-shadow:var(--shadow-l)}.phone:before{content:"";position:absolute;top:.2rem;left:50%;width:22%;height:3px;border-radius:999px;background:rgba(255,255,255,.22);transform:translateX(-50%)}.phone img{display:block;width:100%;height:auto;border-radius:clamp(.85rem,1.9vw,1.25rem)}.phones{display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,1.4vw,1rem)}.phones .phone{flex:0 1 30%;max-width:190px}.phones .phone:first-child{transform:translateY(1.1rem) rotate(-3.5deg)}.phones .phone:last-child{transform:translateY(1.1rem) rotate(3.5deg)}.phones .phone-lead{flex-basis:36%;max-width:220px;position:relative;z-index:1;transform:translateY(-.9rem)}.sub-hero{padding:clamp(2.5rem,6vh,4.5rem) 0 clamp(3rem,8vh,5rem)}.sub-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:clamp(2rem,6vw,4.5rem);gap:clamp(2rem,6vw,4.5rem);align-items:center}.sub-hero .hero-title{font-size:clamp(2.7rem,6.5vw,4.4rem)}.sub-hero .hero-lede{margin-bottom:1.6rem}.back-link{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-soft);text-decoration:none;margin-bottom:1.5rem}.back-link:hover{color:var(--accent-ink)}.cta-row{display:flex;flex-wrap:wrap;gap:.9rem 1.2rem}.btn,.cta-row{align-items:center}.btn{display:inline-flex;gap:.5rem;font-family:var(--font-mono);font-size:.86rem;font-weight:500;line-height:1;padding:.95rem 1.5rem;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}.btn-primary{background:var(--accent);color:#FFF6EF}.btn-primary:hover{background:var(--accent-ink)}.btn-ghost{color:var(--text);border-color:var(--line);background:var(--bg-elev)}.btn-ghost:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent-ink)}.btn[disabled]{opacity:.6;cursor:progress}.feat-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(1.4rem,3vw,2.2rem);gap:clamp(1.4rem,3vw,2.2rem)}.feat{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-l);padding:clamp(1.4rem,3vw,1.9rem);box-shadow:var(--shadow-s)}.feat h3{font-size:1.25rem;margin-bottom:.6rem}.feat p{color:var(--text-soft);margin:0;font-size:.99rem}.feat-no{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--accent-ink);margin-bottom:.9rem}.screens{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:clamp(1.6rem,4vw,3rem);gap:clamp(1.6rem,4vw,3rem)}.screen{display:grid;grid-gap:1.1rem;gap:1.1rem;justify-items:center;text-align:center;margin:0}.screen .phone{width:100%;max-width:240px}.screen h3{font-size:1.15rem;margin-bottom:.4rem}.screen p{color:var(--text-soft);font-size:.95rem;margin:0;max-width:26rem}.status-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(1.6rem,4vw,3rem);gap:clamp(1.6rem,4vw,3rem)}.status-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:.85rem;gap:.85rem}.status-list li{position:relative;padding-left:1.7rem;color:var(--text-soft)}.status-list li:before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--ok)}.status-list.is-open li:before{background:var(--accent)}.status-title{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin:0 0 1.1rem}.ask{display:grid;grid-gap:1rem;gap:1rem;max-width:42rem}.ask p{color:var(--text-soft)}.ask .cta-row{margin-top:.7rem}@media (max-width:1020px){.sub-hero-grid{grid-template-columns:1fr}.sub-hero-visual{order:-1}}@media (max-width:860px){.feat-grid,.screens,.status-cols{grid-template-columns:1fr}.screens{justify-items:center}}.sub-tag{font-family:var(--font-display);font-size:clamp(1.3rem,3vw,1.75rem);line-height:1.25;font-weight:600;margin:1.1rem 0 0;text-wrap:balance}.section-lede-after{margin-top:clamp(2rem,4vw,2.8rem)}.screen .phone{width:240px;max-width:100%}.shots{display:grid;grid-gap:1.2rem;gap:1.2rem;justify-items:center}.shots-stage{display:flex;align-items:center;justify-content:center;gap:.6rem}.shots-stage .phone{width:100%;max-width:260px}.shots-nav{display:none}.is-carousel .shots-stage{display:grid}.is-carousel .shots-stage .phone{grid-area:1/1}.is-carousel .shot-slide{display:none}.is-carousel .shot-slide.is-active{display:block;animation:shot-in .4s cubic-bezier(.22,1,.36,1)}.is-carousel[data-dir=prev] .shot-slide.is-active{animation-name:shot-in-back}@keyframes shot-in{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}@keyframes shot-in-back{0%{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}.is-carousel .shots-nav{display:flex;gap:.9rem}.is-carousel .shots-nav,.shot-arrow{align-items:center;justify-content:center}.shot-arrow{display:inline-flex;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--bg-elev);color:var(--text-soft);cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}.shot-arrow svg{width:19px;height:19px}.shot-arrow:hover{color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:scale(1.06)}.shot-arrow:active{transform:scale(.96)}.shots-meta{display:flex;align-items:baseline;gap:.6rem;min-width:9.5rem;justify-content:center;font-size:.76rem;letter-spacing:.04em;color:var(--text);margin:0;text-align:center}.shots-count{color:var(--text-soft);font-size:.7rem}@media (prefers-reduced-motion:reduce){.is-carousel .shot-slide.is-active{animation:none}.shot-arrow:active,.shot-arrow:hover{transform:none}}.sub-hero-narrow>*{max-width:46rem}.steps{list-style:none;display:grid;grid-gap:clamp(1.6rem,3.5vw,2.4rem);gap:clamp(1.6rem,3.5vw,2.4rem)}.step{display:grid;grid-template-columns:4.5rem 1fr;grid-gap:clamp(1rem,3vw,2rem);gap:clamp(1rem,3vw,2rem);align-items:start;padding-top:clamp(1.4rem,3vw,2rem);border-top:1px dashed var(--line)}.step-no{font-size:1.5rem;font-weight:600;line-height:1;color:color-mix(in srgb,var(--accent) 60%,transparent)}.step h3{font-size:clamp(1.3rem,2.4vw,1.55rem);margin-bottom:.6rem}.step-body p{color:var(--text-soft);max-width:44rem}.step-note{margin-top:.9rem;font-size:.76rem;letter-spacing:.02em;color:var(--accent-ink)}.faq{display:grid;grid-gap:0;gap:0}.faq-item{display:grid;grid-template-columns:.85fr 1.15fr;grid-gap:clamp(1rem,3vw,2.5rem);gap:clamp(1rem,3vw,2.5rem);padding:clamp(1.3rem,3vw,1.8rem) 0;border-bottom:1px solid var(--line)}.faq-item:first-child{border-top:1px solid var(--line)}.faq dt{font-family:var(--font-display);font-size:1.12rem;font-weight:600;line-height:1.3;text-wrap:balance}.faq dd{color:var(--text-soft);font-size:.99rem}@media (max-width:700px){.step{gap:.4rem}.faq-item,.step{grid-template-columns:1fr}.faq-item{gap:.5rem}}.sub-hero-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;max-width:none;margin-bottom:clamp(1.8rem,4vw,2.6rem)}.sub-hero-top .back-link,.sub-hero-top .hero-kicker{margin-bottom:0}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c56fbb5486862d1b-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/bd7a9b1ce2297c14-s.p.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/45d0fdf0988e07ff-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/7452ca4a93358909-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/e0ecb571b51ea3b5-s.p.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/6e8c7cb283336a9d-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_98f1e9{font-family:Fraunces,Fraunces Fallback}.__variable_98f1e9{--font-fraunces:"Fraunces","Fraunces Fallback"}@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.p.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_1b85de{font-family:Inter,Inter Fallback;font-style:normal}.__variable_1b85de{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.p.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_fdaf1b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_fdaf1b{--font-jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}