*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-body);font-weight:500;font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:hover{text-decoration:none}.btn-primary{color:var(--color-accent);border-color:var(--color-accent)}.btn-primary:hover{color:var(--color-accent);background:rgba(var(--color-accent-rgb),.12)}.btn-primary:active{background:rgba(var(--color-accent-rgb),.22)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{color:var(--color-text);background:rgba(var(--color-text-rgb),.07)}.btn-secondary:active{background:rgba(var(--color-text-rgb),.14)}.btn-icon{width:36px;height:36px;padding:0}.section-title{font-family:Acorn,serif;font-weight:400;color:var(--color-text)}.accent-rule{display:block;width:28px;height:1px;background:var(--color-accent)}.nav-header{position:fixed;top:0;left:0;width:100%;z-index:999;background:#060607;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--color-text-rgb),.09)}.nav-inner{max-width:880px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;gap:24px}.nav-brand{font-size:15px;letter-spacing:.01em}.nav-brand,.nav-brand:hover{color:var(--color-text);text-decoration:none}.nav-list{display:flex;gap:22px;list-style:none;align-items:center;font-size:14px}.nav-list a{color:rgba(var(--color-text-rgb),.62);text-decoration:none}.nav-list a:hover{color:var(--color-text);text-decoration:none}@media (max-width:600px){.nav-brand{display:none}.nav-inner{justify-content:center}.nav-list{gap:15px;font-size:13px}}.project-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;text-align:left;padding:16px 4px;border-top:1px solid rgba(var(--color-text-rgb),.1)}.project-row,.project-row:hover{color:var(--color-text);text-decoration:none}.project-row:hover{background:rgba(var(--color-text-rgb),.04)}.chat-launcher{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--color-surface);border:1px solid rgba(var(--color-text-rgb),.12);box-shadow:var(--shadow-md);color:var(--color-text);font:inherit;font-size:13px;cursor:pointer;transition:border-color .2s ease}.chat-launcher:hover{border-color:var(--color-accent)}.chat-launcher img{width:26px;height:26px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.chat-container{position:fixed;bottom:20px;right:20px;width:300px;max-height:70vh;background:var(--color-surface);border:1px solid rgba(var(--color-text-rgb),.1);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;z-index:9999}.chat-header{padding:14px 16px;justify-content:space-between;border-bottom:1px solid rgba(var(--color-text-rgb),.1)}.chat-header,.chat-title{display:flex;align-items:center}.chat-title{gap:10px}.chat-title img{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.chat-title span{color:var(--color-text);font-size:14px;font-weight:500}.chat-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:rgba(var(--color-text-rgb),.55);line-height:1}.chat-close:hover{color:var(--color-text)}.chat-body{padding:14px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}.chat-message{max-width:85%;border-radius:var(--radius-md);padding:8px 11px;font-size:.88rem;line-height:1.55}.chat-message a{color:var(--color-accent-300)}.bot-message{background:rgba(var(--color-text-rgb),.08);color:var(--color-text);align-self:flex-start}.user-message{background:rgba(var(--color-accent-rgb),.2);color:var(--color-text);align-self:flex-end}.chat-prompts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.prompt-btn{font-family:var(--font-body);font-size:12px;min-height:28px;padding:4px 10px;border-radius:999px;background:transparent;color:var(--color-text);border:1px solid var(--color-divider);cursor:pointer;transition:background .2s ease,border-color .2s ease}.prompt-btn:hover{background:rgba(var(--color-text-rgb),.07);border-color:rgba(var(--color-text-rgb),.32)}@media (max-width:768px){.chat-container{width:calc(100vw - 32px)}.chat-container,.chat-launcher{right:16px;bottom:16px}}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.m-0{margin:0}.mx-0{margin-left:0;margin-right:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-6{margin-bottom:1.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-7{margin-top:1.75rem}.mt-\[18px\]{margin-top:18px}.block{display:block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\[300px\]{height:300px}.h-px{height:1px}.min-h-\[92vh\]{min-height:92vh}.w-\[300px\]{width:300px}.w-\[5px\]{width:5px}.max-w-\[46ch\]{max-width:46ch}.max-w-\[60ch\]{max-width:60ch}.max-w-\[640px\]{max-width:640px}.max-w-\[66ch\]{max-width:66ch}.max-w-\[880px\]{max-width:880px}.shrink-0{flex-shrink:0}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-7{gap:1.75rem}.gap-\[18px\]{gap:18px}.gap-\[22px\]{gap:22px}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.border{border-width:1px}.object-cover{-o-object-fit:cover;object-fit:cover}.px-1{padding-left:.25rem;padding-right:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[88px\]{padding-top:88px;padding-bottom:88px}.pb-10{padding-bottom:2.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pl-4{padding-left:1rem}.pt-32{padding-top:8rem}.pt-7{padding-top:1.75rem}.pt-\[88px\]{padding-top:88px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.92rem\]{font-size:.92rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[0\.98rem\]{font-size:.98rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.05rem\]{font-size:1.05rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.9rem\]{font-size:1.9rem}.text-\[clamp\(1\.1rem\2c 2\.4vw\2c 1\.6rem\)\]{font-size:clamp(1.1rem,2.4vw,1.6rem)}.text-\[clamp\(2\.4rem\2c 6vw\2c 4rem\)\]{font-size:clamp(2.4rem,6vw,4rem)}.text-base{font-size:1rem;line-height:1.5rem}.font-medium{font-weight:500}.leading-\[1\.1\]{line-height:1.1}.leading-\[1\.35\]{line-height:1.35}.leading-\[1\.55\]{line-height:1.55}.leading-\[1\.5\]{line-height:1.5}.leading-\[1\.7\]{line-height:1.7}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[0\.04em\]{letter-spacing:.04em}@font-face{font-family:Acorn;src:url(/fonts/acorn.woff2) format("woff2"),url(/fonts/acorn.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GT;src:url(/fonts/gt.woff2) format("woff2"),url(/fonts/gt.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-accent:#89a7cb;--color-accent-2:#a2bcd8;--color-text-rgb:233,233,237;--color-accent-rgb:137,167,203;--color-divider:rgba(var(--color-text-rgb),0.16);--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f2f6fb;--color-accent-200:#e0e9f4;--color-accent-300:#c6d7e9;--color-accent-400:#a4bdd8;--color-accent-500:#85a4c6;--color-accent-600:#6a88aa;--color-accent-700:#526b88;--color-accent-800:#3c5066;--color-accent-900:#29364a;--font-heading:"Acorn","GT",system-ui,sans-serif;--font-body:"GT",system-ui,sans-serif;--space-1:2.8px;--space-2:5.6px;--space-3:8.4px;--space-4:11.2px;--space-6:16.8px;--space-8:22.4px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c,0 6px 18px rgba(0,0,0,0.55);--shadow-lg:0 0 0 1px #9397ab,0 16px 40px rgba(0,0,0,0.65)}html{scroll-behavior:smooth;scroll-padding-top:72px}*{box-sizing:border-box;margin:0;padding:0}html{background:#0d0e10}html.loading body{opacity:0}body{transition:opacity .45s ease;font-family:var(--font-body);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:18px;line-height:1.6;min-height:100vh;color:var(--color-text)}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse 70% 45% at 50% -5%,#17181b 0,transparent 70%)}a{color:var(--color-accent);text-decoration:none;text-underline-offset:3px;transition:color .2s ease}a:hover{color:var(--color-accent-300);text-decoration:underline}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::-moz-selection{background:rgba(var(--color-accent-rgb),.3)}::selection{background:rgba(var(--color-accent-rgb),.3)}section{content-visibility:auto;contain-intrinsic-size:1px 720px}.bg-canvas{position:fixed;inset:0;z-index:-1;display:block;pointer-events:none}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.fade-in.from-above{transform:translateY(-20px)}.fade-in.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fade-in,.fade-in.from-above{opacity:1;transform:none;transition:none}}