@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;600;700;800&family=Playfair+Display:ital,wght@1,600&display=swap";:root{--paper: #f1eee7;--paper-deep: #e7e0d5;--paper-warm: #faf8f4;--ink: #171614;--ink-raised: #232120;--ink-soft: #4e4b46;--ink-faint: #6f6a62;--coral: #ff5a36;--coral-deep: #e0431f;--acid: #e7ff57;--live: #5fd45b;--line: rgb(23 22 20 / .14);--line-strong: rgb(23 22 20 / .3);--line-invert: rgb(241 238 231 / .16);--paper-on-ink: #b4afa6;--font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;--font-serif: "Playfair Display", ui-serif, Georgia, serif;--font-mono: "DM Mono", ui-monospace, SFMono-Regular, monospace;--step-hero: clamp(2.6rem, 7.2vw, 6rem);--step-display: clamp(2.4rem, 5vw, 5rem);--step-title: clamp(1.5rem, 2.4vw, 2.1rem);--step-lead: clamp(1.05rem, 1.5vw, 1.3rem);--step-body: clamp(.95rem, 1.05vw, 1.05rem);--step-meta: .68rem;--tracking-tight: -.055em;--tracking-meta: .11em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--section-y: clamp(5rem, 10vw, 9rem);--gutter: clamp(1.25rem, 4vw, 4rem);--measure: 62ch;--nav-h: 86px;--nav-h-min: 64px;--rail-w: 3px;--radius-sm: 2px;--radius-pill: 100px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-editorial: cubic-bezier(.2, .8, .2, 1);--dur-fast: .22s;--dur-base: .4s;--dur-slow: .7s;--shadow-slab: 8px 8px 0 rgb(23 22 20 / .1);--shadow-slab-coral: 5px 5px 0 var(--coral);--z-grain: 60;--z-cursor: 90;--z-nav: 40;--z-menu: 50}@media(max-width:600px){:root{--nav-h: 70px;--nav-h-min: 58px}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h-min) + var(--space-4));-webkit-text-size-adjust:100%;overflow-x:clip}body{overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-body);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body[data-scroll-locked=true]{overflow:hidden}img,svg,video{display:block;max-width:100%}img{height:auto}.hero-grid>*,.project-grid>*,.project-card>*,.profile>*,.roadmap>*,.section-heading>*,.tool-grid>*,.tool-card-head>*,.school-head>*,.masthead-bar>*{min-width:0}h1,h2,h3,h4{overflow-wrap:break-word}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}ul,ol{list-style:none;padding:0}h1,h2,h3,h4{font-weight:700;line-height:.93;letter-spacing:var(--tracking-tight);text-wrap:balance}h1 em,h2 em,h3 em{font-family:var(--font-serif);font-style:italic;font-weight:600;color:var(--coral);letter-spacing:-.02em}p{text-wrap:pretty}::selection{background:var(--coral);color:var(--paper)}:focus{outline:none}:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:var(--radius-sm)}.on-ink :focus-visible,.ink-surface :focus-visible{outline-color:var(--acid)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:var(--space-2);left:var(--space-2);z-index:200;transform:translateY(-200%);background:var(--ink);color:var(--paper);padding:var(--space-3) var(--space-4);font:500 var(--step-meta) / 1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta);transition:transform var(--dur-fast) var(--ease-out-expo)}.skip-link:focus-visible{transform:translateY(0)}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font:500 var(--step-meta) / 1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--ink-faint)}.on-ink .eyebrow{color:var(--paper-on-ink)}.section{position:relative;padding:var(--section-y) var(--gutter)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.brand-mark{display:inline-flex;align-items:center;gap:.12em;padding:.42em .52em;background:var(--ink);color:var(--paper);border-radius:9px;font:700 .72rem/1 var(--font-mono);letter-spacing:-.08em;box-shadow:var(--shadow-slab-coral);transition:box-shadow var(--dur-base) var(--ease-out-expo),transform var(--dur-base) var(--ease-out-expo)}.brand-mark strong{font:800 1.35rem/.8 var(--font-sans);color:var(--paper)}.brand-mark i{font-style:normal;color:var(--coral)}.brand-mark.is-compact{transform:scale(.86);transform-origin:left center}a:hover>.brand-mark,a:focus-visible>.brand-mark{box-shadow:8px 8px 0 var(--coral);transform:translate(-2px,-2px)}.arrow-link{display:inline-flex;align-items:center;gap:.6em;padding:.35em 0;border-bottom:1px solid currentColor;font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.arrow-link svg{transition:transform var(--dur-base) var(--ease-out-expo)}.arrow-link:hover svg,.arrow-link:focus-visible svg{transform:translate(3px,-3px)}.arrow-link.masthead-cta{border:1px solid currentColor;border-radius:var(--radius-pill);padding:.68em 1.1em;transition:background var(--dur-base),color var(--dur-base)}.arrow-link.masthead-cta:hover{background:var(--ink);color:var(--paper)}.button-slab{position:relative;display:inline-flex;align-items:center;gap:.8em;padding:1.05em 1.5em;background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);font-weight:700;font-size:.86rem;letter-spacing:-.01em;overflow:hidden;isolation:isolate}.button-slab:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--coral);transform:scaleY(0);transform-origin:bottom center;transition:transform var(--dur-base) var(--ease-out-expo)}.button-slab:hover:before,.button-slab:focus-visible:before{transform:scaleY(1)}.button-slab svg{transition:transform var(--dur-base) var(--ease-out-expo)}.button-slab:hover svg{transform:translate(3px,3px)}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.tag-row li{border:1px solid var(--line);border-radius:var(--radius-pill);padding:.4em .75em;font:400 .6rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.on-ink .tag-row li{border-color:var(--line-invert)}.tag-row.is-large{gap:.6rem}.tag-row.is-large li{font-size:.78rem;padding:.6em 1.1em;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.tag-row.is-large li:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.split-headline{display:block}.split-line{display:block;overflow:hidden}.split-line-inner{display:block;padding-bottom:.12em;margin-bottom:-.12em}.split-part{display:inline}.split-word{display:inline-block;white-space:nowrap}.split-char{display:inline-block;will-change:transform}[data-motion=on] .reveal-rise{opacity:0}[data-motion=on] .reveal-wipe{clip-path:inset(0 100% 0 0)}.section-heading{display:grid;grid-template-columns:1fr minmax(260px,420px);gap:clamp(2rem,5vw,4rem);align-items:end;margin-bottom:clamp(3rem,6vw,4.5rem)}.section-heading.is-compact{margin-bottom:var(--space-8)}.section-title{font-size:var(--step-display);margin-top:var(--space-4)}.section-standfirst{color:var(--ink-faint);line-height:1.75;max-width:var(--measure)}.on-ink .section-standfirst{color:var(--paper-on-ink)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(3rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem)}.project-card:nth-child(2n){margin-top:clamp(2rem,6vw,5rem)}.project-plate{position:relative;display:block;aspect-ratio:16 / 10;overflow:hidden;border-radius:3px;background:var(--ink-raised)}.project-plate-inner{position:absolute;inset:-8% 0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.25rem,3vw,2.2rem);color:var(--ink);transition:transform var(--dur-slow) var(--ease-editorial)}.project-card:hover .project-plate-inner{transform:scale(1.03)}.tone-0{background:var(--acid)}.tone-1{background:var(--coral);color:var(--paper)}.tone-2{background:#d7c9ff}.tone-3{background:var(--paper)}.plate-chrome{position:absolute;top:1.3rem;left:1.3rem;display:flex;gap:.35rem}.plate-chrome i{width:7px;height:7px;border:1px solid currentColor;border-radius:50%}.project-plate-inner strong{position:relative;z-index:2;max-width:75%;font-size:clamp(1.8rem,3.6vw,3.5rem);font-weight:700;line-height:.92;letter-spacing:var(--tracking-tight);text-transform:capitalize}.project-plate-inner small{position:relative;z-index:2;margin-top:.8rem;font:500 .6rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.plate-shape{position:absolute;right:-8%;top:-10%;width:46%;aspect-ratio:1;border:1px solid currentColor;border-radius:50%}.tone-0 .plate-shape{background:var(--coral)}.tone-1 .plate-shape{background:var(--paper);border-radius:4px;rotate:18deg}.tone-2 .plate-shape{background:var(--ink);border-radius:50% 0 50% 50%}.tone-3 .plate-shape{background:var(--acid);border-radius:8px;rotate:45deg}.project-number{position:absolute;z-index:3;top:1rem;left:1rem;padding:.5rem;background:var(--ink);color:var(--acid);font:500 .65rem/1 var(--font-mono)}.project-open{position:absolute;z-index:3;right:1rem;bottom:1rem;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--paper);color:var(--ink);transition:transform var(--dur-base) var(--ease-out-expo)}.project-card:hover .project-open{transform:translate(3px,-3px) rotate(8deg)}.project-body{padding:1.5rem 0;border-bottom:1px solid var(--line-invert)}.project-title-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.project-title-row h3{font-size:var(--step-title);text-transform:capitalize;letter-spacing:-.04em}.project-badges{display:flex;gap:.75rem;flex:none}.badge{display:inline-flex;align-items:center;gap:.35em;font:500 .58rem/1 var(--font-mono);letter-spacing:.08em;color:var(--paper-on-ink)}.badge.is-live{color:var(--paper)}.badge.is-live i{width:6px;height:6px;border-radius:50%;background:var(--live)}.project-body>p{min-height:3em;margin:var(--space-3) 0 var(--space-4);color:var(--paper-on-ink)}.project-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.project-links{display:flex;gap:1rem;flex:none}.project-links a{display:inline-flex;align-items:center;gap:.35em;font:500 .66rem/1 var(--font-mono);text-transform:uppercase;border-bottom:1px solid transparent;transition:color var(--dur-fast),border-color var(--dur-fast)}.project-links a:hover{color:var(--coral);border-color:var(--coral)}.project-index-title{margin:var(--space-24) 0 var(--space-6);font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--paper-on-ink)}.project-index{border-top:1px solid var(--line-invert)}.project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--line-invert)}.project-row-main{display:grid;grid-template-columns:3rem minmax(0,1fr) auto auto;align-items:baseline;gap:var(--space-4);padding:clamp(1rem,2.2vw,1.5rem) 0;transition:color var(--dur-base) var(--ease-editorial)}.project-row-number{font:500 .66rem/1 var(--font-mono);color:var(--coral)}.project-row-title{font-size:clamp(1.15rem,2vw,1.6rem);font-weight:700;letter-spacing:-.03em;transition:transform var(--dur-base) var(--ease-out-expo)}.project-row-kind{font:400 var(--step-meta)/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--paper-on-ink)}.project-row-year{font:400 var(--step-meta)/1 var(--font-mono);color:var(--paper-on-ink)}.project-row-go{display:grid;place-items:center;font-size:1.1rem;opacity:0;transform:translate(-8px,8px);transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-out-expo)}.project-row-main:hover .project-row-title,.project-row-main:focus-visible .project-row-title{transform:translate(6px);color:var(--coral)}.project-row-main:hover .project-row-go,.project-row-main:focus-visible .project-row-go{opacity:1;transform:translate(0)}.project-row-code{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line-invert);border-radius:50%;color:var(--paper-on-ink);flex:none;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.project-row-code:hover{background:var(--acid);border-color:var(--acid);color:var(--ink)}.project-plate-inner strong,.project-title-row h3{overflow-wrap:anywhere}@media(max-width:900px){.project-grid{grid-template-columns:1fr}.project-card:nth-child(2n){margin-top:0}}@media(max-width:600px){.project-meta{flex-direction:column;align-items:flex-start}.project-row-main{grid-template-columns:2.4rem minmax(0,1fr);row-gap:var(--space-1)}.project-row-kind,.project-row-year{grid-column:2}.project-row-go{display:none}}.marquee{overflow:hidden;width:100%}.marquee-track{display:flex;width:max-content;will-change:transform}.marquee-group{display:flex;align-items:center}.marquee-group li{display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.75rem);padding-right:clamp(1.5rem,3vw,2.75rem);font-size:clamp(1.1rem,2.2vw,1.9rem);font-weight:600;letter-spacing:-.03em;white-space:nowrap}.marquee-dot{width:9px;height:9px;border-radius:50%;background:var(--coral);flex:none}.hero-pulse{width:8px;height:8px;border-radius:50%;background:var(--coral);flex:none;box-shadow:0 0 #ff5a3680;animation:pulse 2.4s var(--ease-out-expo) infinite}@keyframes pulse{0%{box-shadow:0 0 #ff5a3680}70%{box-shadow:0 0 0 10px #ff5a3600}to{box-shadow:0 0 #ff5a3600}}.copy-email{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding-bottom:var(--space-6);border-bottom:1px solid var(--line-invert)}.copy-email-address{font-size:clamp(1.2rem,3vw,2.1rem);font-weight:700;letter-spacing:var(--tracking-tight);background-image:linear-gradient(var(--coral),var(--coral));background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-base) var(--ease-out-expo)}.copy-email-address:hover,.copy-email-address:focus-visible{background-size:100% 2px}.copy-email-button{display:inline-flex;align-items:center;gap:.5em;padding:.6em 1em;border:1px solid var(--line-invert);border-radius:var(--radius-pill);font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta);transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.copy-email-button:hover{background:var(--acid);color:var(--ink);border-color:var(--acid)}.copy-email-status{flex-basis:100%;min-height:1.2em;font:400 var(--step-meta)/1.2 var(--font-mono);color:var(--acid)}@media(max-width:900px){.section-heading{grid-template-columns:1fr;align-items:start}}.whatsapp-float-wrap{position:fixed;bottom:clamp(1.5rem,3.5vw,2.5rem);right:clamp(1.5rem,3.5vw,2.5rem);bottom:calc(clamp(1.5rem,3.5vw,2.5rem) + env(safe-area-inset-bottom,0px));right:calc(clamp(1.5rem,3.5vw,2.5rem) + env(safe-area-inset-right,0px));z-index:45;pointer-events:auto}.whatsapp-float{position:relative;display:inline-flex;align-items:center;gap:.8rem;padding:.95rem 1.55rem;background:var(--ink);color:var(--paper);border:1px solid var(--line-invert);border-radius:var(--radius-pill);box-shadow:5px 5px 0 var(--coral);font:700 .95rem/1 var(--font-sans);letter-spacing:-.01em;cursor:pointer;overflow:hidden;isolation:isolate;will-change:transform,box-shadow,background-color,color;transition:transform var(--dur-base) var(--ease-out-expo),box-shadow var(--dur-base) var(--ease-out-expo),border-color var(--dur-fast),color var(--dur-fast),background-color var(--dur-base) var(--ease-out-expo)}.whatsapp-float:before{content:"";position:absolute;inset:0;z-index:-1;background:#25d366;transform:scaleY(0);transform-origin:bottom center;transition:transform var(--dur-base) var(--ease-out-expo)}.whatsapp-float:hover:before,.whatsapp-float:focus-visible:before,.whatsapp-float[data-open=true]:before{transform:scaleY(1)}.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translate(-3px,-3px);box-shadow:8px 8px 0 var(--coral);border-color:#25d366;color:var(--ink)}.whatsapp-float[data-open=true]{color:var(--ink);border-color:#25d366;box-shadow:6px 6px 0 var(--acid)}.whatsapp-float:focus-visible{outline:2px solid var(--acid);outline-offset:3px}.whatsapp-float-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem;line-height:1}.whatsapp-float-icon{display:block;color:#25d366;transition:color var(--dur-fast)}.whatsapp-float:hover .whatsapp-float-icon,.whatsapp-float:focus-visible .whatsapp-float-icon,.whatsapp-float[data-open=true] .whatsapp-float-icon{color:var(--ink)}.whatsapp-float-close-icon{display:block;font-size:1.35rem;color:var(--ink)}.whatsapp-float-pulse{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:#25d366;box-shadow:0 0 #25d366b3;animation:pulse-wa 2.2s var(--ease-out-expo) infinite}.whatsapp-float:hover .whatsapp-float-pulse,.whatsapp-float[data-open=true] .whatsapp-float-pulse{background:var(--ink);animation:none}@keyframes pulse-wa{0%{box-shadow:0 0 #25d366b3}70%{box-shadow:0 0 0 8px #25d36600}to{box-shadow:0 0 #25d36600}}.whatsapp-float-label{font-family:var(--font-sans);font-weight:700;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap}.whatsapp-modal{position:absolute;bottom:calc(100% + 14px);right:0;width:min(390px,calc(100vw - 2.5rem));background:var(--ink);color:var(--paper);border:1px solid var(--line-invert);border-radius:4px;box-shadow:8px 8px 0 var(--coral);overflow:hidden;z-index:46;display:flex;flex-direction:column}.whatsapp-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.9rem 1.15rem;background:var(--ink-raised);border-bottom:1px solid var(--line-invert)}.whatsapp-modal-title-group{display:flex;flex-direction:column;gap:3px}.whatsapp-modal-title{display:inline-flex;align-items:center;gap:.45rem;font-size:.92rem;font-weight:800;letter-spacing:-.02em;color:var(--paper)}.whatsapp-modal-title svg{color:#25d366;font-size:1.15rem}.whatsapp-modal-status{display:inline-flex;align-items:center;gap:.45rem;font:400 .64rem/1 var(--font-mono);color:var(--paper-on-ink);text-transform:uppercase;letter-spacing:.05em}.whatsapp-modal-status .live-dot{width:6px;height:6px;border-radius:50%;background:#25d366}.whatsapp-modal-close{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line-invert);border-radius:50%;color:var(--paper);background:transparent;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.whatsapp-modal-close:hover{background:var(--coral);border-color:var(--coral);color:var(--paper)}.whatsapp-modal-intro{padding:.75rem 1.15rem .4rem;font:500 .68rem/1.35 var(--font-mono);color:var(--paper-on-ink);text-transform:uppercase;letter-spacing:.06em}.whatsapp-presets-list{display:flex;flex-direction:column;gap:.5rem;padding:0 1rem .75rem;max-height:52vh;overflow-y:auto;overscroll-behavior:contain}.whatsapp-preset-item{position:relative;display:flex;flex-direction:column;gap:.25rem;padding:.75rem .95rem;background:#ffffff08;border:1px solid var(--line-invert);border-radius:var(--radius-sm);text-decoration:none;color:var(--paper);transition:transform var(--dur-fast) var(--ease-out-expo),background var(--dur-fast),border-color var(--dur-fast)}.whatsapp-preset-item:hover,.whatsapp-preset-item:focus-visible{transform:translate(4px);background:var(--ink-raised);border-color:#25d366}.whatsapp-preset-item:focus-visible{outline:2px solid var(--acid)}.whatsapp-preset-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.whatsapp-preset-badge{font:500 .58rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;padding:.22em .55em;border-radius:var(--radius-pill);background:#25d36624;color:#25d366;border:1px solid rgb(37 211 102 / .35)}.whatsapp-preset-arrow{color:var(--paper-on-ink);font-size:.85rem;transition:transform var(--dur-fast) var(--ease-out-expo),color var(--dur-fast)}.whatsapp-preset-item:hover .whatsapp-preset-arrow{transform:translate(2px,-2px);color:#25d366}.whatsapp-preset-title{font-size:.85rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}.whatsapp-preset-subtitle{font-size:.72rem;color:var(--paper-on-ink);line-height:1.35}.whatsapp-modal-foot{padding:.75rem 1rem;border-top:1px solid var(--line-invert);background:var(--ink-raised)}.whatsapp-custom-link{display:flex;align-items:center;justify-content:center;gap:.5em;font:500 .72rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--acid);padding:.35rem 0;transition:color var(--dur-fast)}.whatsapp-custom-link:hover{color:#25d366}@media(max-width:600px){.whatsapp-float-wrap{bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));right:calc(1.25rem + env(safe-area-inset-right,0px))}.whatsapp-float{padding:.85rem;gap:0;border-radius:50%;min-width:54px;min-height:54px;justify-content:center}.whatsapp-float-label{display:none}.whatsapp-float-icon-wrapper{font-size:1.6rem}.whatsapp-modal{right:0;width:calc(100vw - 2.5rem);max-height:75vh}}@media(prefers-reduced-motion:reduce){.whatsapp-float-pulse{animation:none}}.shell{position:relative}.grain{position:fixed;inset:-50%;z-index:var(--z-grain);pointer-events:none;opacity:.32;mix-blend-mode:multiply;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.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}@media(prefers-reduced-motion:reduce){.grain{opacity:.2}}.cursor-layer{position:fixed;inset:0;z-index:var(--z-cursor);pointer-events:none;mix-blend-mode:difference}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;translate:-50% -50%;will-change:transform}.cursor-dot{width:6px;height:6px;background:#fff}.cursor-ring{width:34px;height:34px;border:1px solid #fff;display:grid;place-items:center}.cursor-label{font:500 .3rem/1 var(--font-mono);letter-spacing:.1em;color:#fff;opacity:0;transition:opacity var(--dur-fast)}.cursor-ring.is-labelled{background:#ffffff2e}.cursor-ring.is-labelled .cursor-label{opacity:1}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){body,a,button{cursor:none}}.section-rail{position:fixed;top:0;left:0;bottom:0;z-index:var(--z-nav);width:58px;display:none;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(var(--nav-h) + var(--space-6)) 0 var(--space-6);pointer-events:none;--rail-ink: var(--ink);--rail-bg: var(--paper);--rail-line: var(--line);color:var(--rail-ink);border-right:1px solid var(--rail-line);transition:color var(--dur-slow) var(--ease-editorial),border-color var(--dur-slow) var(--ease-editorial)}.section-rail[data-theme=ink]{--rail-ink: var(--paper);--rail-bg: var(--ink);--rail-line: var(--line-invert)}.section-rail[data-theme=coral]{--rail-ink: var(--ink);--rail-bg: var(--coral);--rail-line: var(--line-strong)}.rail-track{position:relative;flex:1;width:var(--rail-w);background:var(--rail-line);margin:var(--space-4) 0}.rail-progress{position:absolute;inset:0;background:var(--coral);transform:scaleY(0);transform-origin:top center}.section-rail[data-theme=coral] .rail-progress{background:var(--ink)}.rail-readout{position:absolute;top:50%;left:50%;translate:-50% -50%;display:flex;align-items:center;gap:var(--space-4);writing-mode:vertical-rl;background:var(--rail-bg);padding:var(--space-3) 0;transition:background var(--dur-slow) var(--ease-editorial)}.rail-index{font:700 1.05rem/1 var(--font-sans);letter-spacing:-.06em;color:var(--coral)}.section-rail[data-theme=coral] .rail-index{color:var(--ink)}.rail-label{font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta)}.rail-foot{font:700 .62rem/1 var(--font-mono);letter-spacing:.1em}@media(min-width:1200px)and (prefers-reduced-motion:no-preference){.section-rail{display:flex}.section-rail+.shell{padding-left:58px}}.masthead{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line);transition:background var(--dur-base) var(--ease-editorial),border-color var(--dur-base) var(--ease-editorial)}.masthead[data-condensed=true]{background:color-mix(in srgb,var(--paper) 95%,transparent);border-bottom-color:var(--line-strong)}.masthead-bar{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2rem);height:var(--nav-h);padding-inline:var(--gutter);transition:height var(--dur-base) var(--ease-editorial)}.masthead[data-condensed=true] .masthead-bar{height:var(--nav-h-min)}.masthead-brand{display:inline-flex;align-items:center;gap:var(--space-3);margin-right:auto;min-width:0}.masthead-wordmark{display:flex;flex-direction:column;gap:2px;min-width:0}.masthead-wordmark strong{font-size:.82rem;font-weight:800;letter-spacing:-.03em;line-height:1}.masthead-wordmark small{font:400 .54rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);white-space:nowrap}.masthead-nav{position:relative;display:flex;align-items:center;gap:2px}.nav-pill{position:absolute;top:3px;bottom:3px;left:0;width:0;background:var(--ink);border-radius:var(--radius-pill);opacity:0;visibility:hidden;pointer-events:none}.masthead-nav a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.45em;padding:.72em 1em;border-radius:var(--radius-pill);font-size:.8rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;transition:color var(--dur-base) var(--ease-editorial)}.masthead-nav a i{font:500 .55rem/1 var(--font-mono);font-style:normal;color:var(--coral);opacity:.55;transition:opacity var(--dur-fast)}.masthead-nav a:hover{color:var(--coral)}.masthead-nav a:hover i{opacity:1}.masthead-nav a[aria-current=true]{color:var(--paper)}.masthead-nav a[aria-current=true] i{color:var(--acid);opacity:1}.masthead-end{display:flex;align-items:center;gap:var(--space-4);flex:none}.masthead-progress{display:block;height:2px;background:var(--line)}.masthead-progress i{display:block;height:100%;background:var(--coral);transform:scaleX(0);transform-origin:left center}.menu-toggle{display:none;place-items:center;width:44px;height:44px;margin-right:-10px;flex:none}.menu-bars{position:relative;display:block;width:24px;height:13px}.menu-bars i{position:absolute;left:0;height:2px;background:currentColor;transition:transform var(--dur-base) var(--ease-out-expo),width var(--dur-base) var(--ease-out-expo)}.menu-bars i:first-child{top:0;width:100%}.menu-bars i:last-child{bottom:0;width:62%}.menu-toggle[data-open=true] .menu-bars i:first-child{transform:translateY(5.5px) rotate(45deg)}.menu-toggle[data-open=true] .menu-bars i:last-child{width:100%;transform:translateY(-5.5px) rotate(-45deg)}.menu-panel{position:fixed;inset:0;z-index:var(--z-menu);display:flex;flex-direction:column;background:var(--ink);color:var(--paper);padding:0 var(--gutter) calc(var(--gutter) + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}.menu-head{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);flex:none}.menu-head .menu-toggle{display:grid;color:var(--paper)}.menu-list{display:flex;flex-direction:column;margin:auto 0;padding:var(--space-8) 0}.menu-entry{display:block;overflow:hidden}.menu-entry-inner{display:flex;align-items:baseline;gap:var(--space-4);padding-bottom:.12em;margin-bottom:-.12em;font-size:clamp(2rem,9vw,3.1rem);font-weight:700;letter-spacing:var(--tracking-tight);line-height:1.22;transition:color var(--dur-fast)}.menu-entry i{font:500 .66rem/1 var(--font-mono);font-style:normal;color:var(--coral);flex:none}.menu-entry:hover .menu-entry-inner,.menu-entry[aria-current=true] .menu-entry-inner{color:var(--coral)}.menu-entry[aria-current=true] i{color:var(--acid)}.menu-foot{display:flex;flex-wrap:wrap;gap:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--line-invert);flex:none}@media(max-width:1100px){.masthead-wordmark{display:none}}@media(max-width:900px){.masthead-nav,.masthead-cta{display:none}.menu-toggle{display:grid}}.colophon{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--gutter);background:var(--ink);color:var(--paper);border-top:1px solid var(--line-invert);font:400 var(--step-meta)/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.colophon p{margin-right:auto}.colophon-links{display:flex;gap:var(--space-6)}.colophon-links a{border-bottom:1px solid transparent;transition:border-color var(--dur-fast),color var(--dur-fast)}.colophon-links a:hover{color:var(--coral);border-color:var(--coral)}.colophon-top{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-invert);border-radius:50%;transition:background var(--dur-fast),color var(--dur-fast)}.colophon-top:hover{background:var(--coral);border-color:var(--coral)}@media(max-width:600px){.colophon{flex-direction:column;align-items:flex-start}.colophon p{margin-right:0}}.hero{position:relative;min-height:calc(100svh - var(--nav-h));display:flex;flex-direction:column;padding:clamp(2.5rem,5vw,5rem) var(--gutter) 0;background:linear-gradient(105deg,transparent 62%,rgb(255 90 54 / .08))}.hero-kicker{display:flex;align-items:center;gap:.7rem;font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta)}.hero-grid{flex:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(2rem,4vw,4rem);width:100%;max-width:1500px;margin-inline:auto}.hero-headline{font-size:var(--step-hero)}.hero-intro{max-width:58ch;margin:clamp(1.5rem,3vw,2.4rem) 0;font-size:var(--step-lead);line-height:1.65;color:var(--ink-soft)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1.25rem,3vw,2rem)}.hero-visual{position:relative;display:grid;place-items:center}.hero-visual-inner{position:relative;display:grid;place-items:center;width:min(480px,100%)}.hero-orbit{position:absolute;border:1px solid var(--line-strong);border-radius:50%;pointer-events:none}.hero-orbit-a{width:88%;aspect-ratio:1}.hero-orbit-b{width:100%;height:clamp(170px,46%,250px)}.hero-portrait{position:relative;z-index:2;display:block;width:100%;aspect-ratio:1122 / 1402}.hero-portrait img{width:100%;height:100%;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 24px 28px rgb(23 22 20 / .14))}.hero-portrait:after{content:"";position:absolute;inset:auto 8% 2%;height:15%;z-index:-1;background:#17161433;filter:blur(28px);border-radius:50%}.hero-chip{position:absolute;z-index:3;display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;font:400 .62rem/1.35 var(--font-mono);text-transform:uppercase;box-shadow:var(--shadow-slab)}.hero-chip svg{font-size:1.4rem;flex:none}.hero-chip span{display:flex;flex-direction:column}.hero-chip strong{font-size:.7rem}.chip-code{left:0;top:24%;background:var(--acid);rotate:-5deg}.chip-ai{right:0;bottom:25%;background:var(--coral);color:var(--paper);rotate:5deg}.hero-caption{position:absolute;bottom:0;left:0;max-width:9ch;font:italic 1.2rem/1.35 var(--font-serif);pointer-events:none}@media(max-width:900px){.hero-caption{display:none}}.hero-facts{display:flex;justify-content:space-between;gap:var(--space-4);padding:1.1rem 0;border-top:1px solid var(--line);font:400 .63rem/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.ticker{padding:clamp(1rem,2vw,1.6rem) 0;background:var(--paper-deep);border-block:1px solid var(--line)}.projects{background:var(--ink);color:var(--paper)}.projects-foot{display:flex;justify-content:flex-end;margin-top:var(--space-16)}.profile{display:grid;grid-template-columns:.68fr 1.32fr;gap:clamp(2.5rem,8vw,8rem);background:var(--paper-deep)}.profile-aside{display:flex;flex-direction:column}.profile-asterisk{display:block;width:clamp(4.5rem,11vw,8rem);margin:clamp(2rem,5vw,4rem) 0 auto;color:var(--coral);transform-origin:center}.profile-asterisk .asterisk{display:block;width:100%;height:auto}.profile-aside blockquote{max-width:350px}.profile-aside blockquote p{font:italic 1.35rem/1.5 var(--font-serif)}.profile-copy{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);margin:var(--space-12) 0 var(--space-16);color:var(--ink-faint);line-height:1.75}.profile-lead{grid-column:1 / -1;max-width:700px;font-size:var(--step-lead);color:var(--ink)}.principles{--rule-scale: 1}.principle{position:relative;display:grid;grid-template-columns:48px 1fr;padding:var(--space-6) 0}.principle:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--line-strong);transform:scaleX(var(--rule-scale));transform-origin:left center}.principle-index{font:500 .66rem/1.8 var(--font-mono);color:var(--coral)}.principle h3{font-size:var(--step-title)}.principle p{grid-column:2;max-width:55ch;margin-top:.4rem;color:var(--ink-faint)}.toolbox{background:var(--paper)}.stack-icons{display:flex;flex-wrap:wrap;gap:clamp(1.2rem,3vw,2rem);margin-bottom:var(--space-16);font-size:clamp(1.5rem,4.6vw,2.1rem)}.stack-icon{will-change:transform;transition:color var(--dur-base) var(--ease-editorial)}.stack-icon:hover{color:var(--coral)}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.4vw,2rem);padding-top:var(--space-12);border-top:1px solid var(--line)}.tool-card{display:flex;flex-direction:column;gap:var(--space-4);padding:clamp(1.25rem,2.4vw,1.9rem);background:var(--paper-warm);border:1px solid var(--line);border-radius:var(--radius-sm);--rule-scale: 1;transition:transform var(--dur-base) var(--ease-out-expo),box-shadow var(--dur-base) var(--ease-out-expo),border-color var(--dur-base)}.tool-card:nth-child(2){margin-top:clamp(1.5rem,3.5vw,3rem)}.tool-card:nth-child(3){margin-top:clamp(3rem,7vw,6rem)}.tool-card:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-slab-coral);border-color:var(--ink)}.tool-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.tool-card-number{font-size:clamp(2.6rem,5.5vw,4rem);font-weight:800;line-height:.8;letter-spacing:-.07em;color:var(--coral)}.tool-card-caption{font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--ink-faint);text-align:right}.tool-card-rule{display:block;height:2px;background:var(--ink);transform:scaleX(var(--rule-scale));transform-origin:left center}.tool-card h3{font-size:clamp(1.35rem,2.2vw,1.85rem)}.tool-card .tag-row{margin-top:auto;padding-top:var(--space-2)}@media(max-width:900px){.tool-grid{grid-template-columns:1fr;gap:var(--space-6)}.tool-card:nth-child(2),.tool-card:nth-child(3){margin-top:0}}.roadmap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,8vw,8rem);background:var(--coral);color:var(--ink)}.roadmap .eyebrow{color:#171614b8}.roadmap h2 em{color:var(--paper)}.roadmap-intro>p{max-width:55ch;margin-top:var(--space-6);line-height:1.75}.roadmap-list{position:relative;padding-left:var(--space-8)}.roadmap-rule{position:absolute;top:0;bottom:0;left:5px;width:2px;background:var(--ink);transform:scaleY(1);transform-origin:top center}.roadmap-item{position:relative;padding:var(--space-6) 0 var(--space-8)}.roadmap-dot{position:absolute;top:calc(var(--space-6) + .5em);left:calc(-1 * var(--space-8) + 1px);width:10px;height:10px;border-radius:50%;background:var(--ink)}.roadmap-stage{display:block;margin-bottom:var(--space-2);font:500 .62rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta)}.roadmap-item h3{font-size:var(--step-title);margin-bottom:var(--space-2)}.roadmap-item p{max-width:48ch;line-height:1.65;color:#171614c7}.contact{position:relative;min-height:88vh;display:grid;place-items:center;background:var(--ink);color:var(--paper);text-align:center;overflow:hidden}.contact-orb{position:absolute;display:grid;place-items:center;width:clamp(240px,42vw,420px);aspect-ratio:1;border-radius:50%;background:var(--coral);opacity:.84;pointer-events:none}.contact-orb .brand-mark{transform:scale(2.4);box-shadow:5px 5px 0 var(--acid)}.contact-inner{position:relative;z-index:2;display:grid;justify-items:center;gap:var(--space-6);width:100%}.contact-title{font-size:clamp(2.8rem,13vw,9rem)}.contact-title em{color:var(--acid)}.contact-channels{display:grid;justify-items:center;gap:var(--space-8);width:min(720px,100%);margin-top:var(--space-8)}.contact-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-8)}.contact-socials a{display:grid;justify-items:center;gap:.25rem}.contact-social-label{font-size:1.3rem;font-weight:700;letter-spacing:-.03em}.contact-social-handle{font:400 var(--step-meta)/1 var(--font-mono);color:var(--paper-on-ink)}.contact-socials a:hover .contact-social-label{color:var(--coral)}.contact-note{display:inline-flex;align-items:center;gap:.6rem;font:400 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--paper-on-ink)}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-visual{margin-top:var(--space-8)}.hero-facts li:nth-child(2){display:none}.profile,.roadmap{grid-template-columns:1fr}.profile-aside{min-height:0}.profile-asterisk{margin:var(--space-8) 0 var(--space-4)}}@media(max-width:600px){.hero{min-height:auto}.hero-grid{padding:var(--space-12) 0 var(--space-8)}.hero-visual-inner{width:min(360px,100%)}.hero-chip{padding:.55rem}.hero-caption{font-size:1rem}.hero-actions{flex-direction:column;align-items:flex-start}.hero-facts{flex-direction:column;gap:var(--space-2)}.profile-copy{grid-template-columns:1fr}.profile-lead{grid-column:auto}.projects-foot{justify-content:flex-start}.principle{grid-template-columns:36px 1fr}.tag-row.is-large li{white-space:normal}}.copy-email-address{overflow-wrap:anywhere}.education-intro{display:grid;gap:var(--space-6);justify-items:start;padding-top:clamp(3rem,8vw,6rem);background:linear-gradient(105deg,transparent 62%,rgb(255 90 54 / .08))}.education-title{font-size:var(--step-display)}.education-standfirst{max-width:var(--measure);font-size:var(--step-lead);line-height:1.7;color:var(--ink-soft)}.school{padding-top:var(--space-12)}.school+.school{border-top:1px solid var(--line)}.school-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--space-4);margin-bottom:clamp(2rem,4vw,3rem)}.school-head h2{grid-column:1;font-size:clamp(2rem,5vw,3.4rem)}.school-head .eyebrow{grid-column:1}.school-count{grid-row:1 / span 2;grid-column:2;font:800 clamp(2rem,5vw,3.4rem)/.8 var(--font-sans);letter-spacing:-.07em;color:var(--coral)}.school .project-plate{background:var(--paper-deep)}.school .project-body{border-bottom-color:var(--line)}.school .project-body>p{color:var(--ink-faint)}.school .badge{color:var(--ink-faint)}.school .badge.is-live{color:var(--ink)}.school .project-index{border-top-color:var(--line)}.school .project-row{border-bottom-color:var(--line)}.school .project-row-kind,.school .project-row-year{color:var(--ink-faint)}.school .project-row-code{border-color:var(--line);color:var(--ink-faint)}.school .project-row-code:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.school .project-grid+.project-index{margin-top:clamp(2.5rem,5vw,4rem)}.certificates{padding-top:0}.certificates-fold{border-top:1px solid var(--line)}.certificates-fold summary{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-6) 0;cursor:pointer;list-style:none}.certificates-fold summary::-webkit-details-marker{display:none}.certificates-label{margin-right:auto;font:500 var(--step-meta)/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-meta)}.certificates-count{font:500 .66rem/1 var(--font-mono);color:var(--coral)}.certificates-marker{position:relative;width:14px;height:14px;flex:none}.certificates-marker:before,.certificates-marker:after{content:"";position:absolute;inset:50% 0 auto;height:1.5px;background:currentColor;transition:transform var(--dur-base) var(--ease-out-expo)}.certificates-marker:after{transform:rotate(90deg)}.certificates-fold[open] .certificates-marker:after{transform:rotate(0)}.certificates-list{display:grid;gap:var(--space-2);padding-bottom:var(--space-8)}.certificates-list li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--line)}.certificate-head h3{font-size:var(--step-title)}.certificate-meta{display:block;margin-top:var(--space-1);font:400 var(--step-meta)/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.certificate-links{display:flex;gap:var(--space-4);flex:none}.certificate-links a{display:inline-flex;align-items:center;gap:.4em;font:500 .66rem/1 var(--font-mono);text-transform:uppercase;border-bottom:1px solid transparent;transition:color var(--dur-fast),border-color var(--dur-fast)}.certificate-links a:hover{color:var(--coral);border-color:var(--coral)}@media(max-width:600px){.school-head{grid-template-columns:minmax(0,1fr)}.school-count{grid-row:auto;grid-column:1}.certificates-list li{flex-direction:column;align-items:flex-start}}
