/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components,utilities;:root{--accent:#781e3d;--accent-strong:#5d152e;--accent-soft:#f3e4e6;--on-accent:#fff5db;--gold:#946715;--gold-soft:#f0dfa8;--page:#fcf8ef;--surface:#fffdf7;--text:#351921;--muted:#755761;--line:#e5d5b0;--shadow:0 18px 60px #5212281f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--accent:#dfb85d;--accent-strong:#f3d99a;--accent-soft:#4d2033;--on-accent:#30121f;--gold:#dfb85d;--gold-soft:#5a4123;--page:#210c15;--surface:#30121f;--text:#fff3db;--muted:#d2b5b4;--line:#704755;--shadow:0 20px 70px #00000052;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 88% 4%, var(--accent), transparent 27rem), var(--page);min-height:100vh;margin:0}@supports (color:color-mix(in lab, red, red)){body{background:radial-gradient(circle at 88% 4%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 27rem), var(--page)}}body{color:var(--text);font-family:var(--font-roboto-flex), system-ui, sans-serif}button,a{font:inherit}a{color:inherit}.topbar{z-index:20;background:var(--surface);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:68px;padding:12px max(20px,50vw - 560px);display:grid;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb, var(--surface) 88%, transparent)}}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.15);backdrop-filter:blur(16px)saturate(1.15)}.brand{letter-spacing:-.02em;align-items:center;gap:10px;width:fit-content;font-weight:750;text-decoration:none;display:inline-flex}.brand-icon{object-fit:contain;flex-shrink:0;width:40px;height:40px}.nav,.header-actions,.language-switch{align-items:center;display:flex}.nav{gap:4px}.nav a,.language-switch button,.theme-toggle{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;text-decoration:none}.nav a{padding:9px 13px}.nav a:hover,.language-switch button:hover,.theme-toggle:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.nav a:hover,.language-switch button:hover,.theme-toggle:hover{background:color-mix(in srgb, var(--accent) 11%, transparent)}}.header-actions{justify-content:flex-end;gap:10px}.language-switch{gap:4px}.language-switch button{border:1px solid #0000;min-width:38px;padding:6px 8px;font-size:.78rem;font-weight:700}.language-switch button.active{border-color:var(--line);background:var(--surface);color:var(--accent-strong)}.theme-toggle{border:1px solid var(--line);width:36px;height:36px;font-size:1.2rem}.mobile-language-switch{display:none}.contact-hint{width:min(1120px,100% - 40px);color:var(--muted);align-items:center;gap:10px;margin:8px auto 0;font-size:.9rem;display:flex}.site-shell{width:min(1120px,100% - 40px);margin:0 auto}.eyebrow{color:var(--accent-strong);letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px;font-size:.76rem;font-weight:780}h1,h2,h3,p{overflow-wrap:anywhere}h1{letter-spacing:-.065em;max-width:760px;margin:0;font-size:clamp(2.7rem,6vw,5.7rem);line-height:.98}.lede{max-width:680px;color:var(--muted);margin:24px 0 0;font-size:clamp(1.04rem,1.8vw,1.25rem);line-height:1.65}.lede.secondary{margin-top:9px;font-size:1rem}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.button{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 20px;font-weight:680;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--accent);color:var(--on-accent);box-shadow:0 12px 28px var(--accent)}@supports (color:color-mix(in lab, red, red)){.button.primary{box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 25%, transparent)}}.button.secondary{border:1px solid var(--line);background:var(--surface)}.section-heading p:not(.eyebrow),.contact-heading>p:not(.eyebrow){max-width:760px;color:var(--muted);margin:12px 0 0;line-height:1.6}.section-heading h2,.contact-heading h2{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3.7rem)}.skill-list{flex-wrap:wrap;gap:7px;display:flex}.skill-chip,.tag-row button,.contact-swap{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}.skill-chip,.tag-row button{border-radius:999px;padding:7px 11px;font-size:.8rem;transition:transform .14s,background .14s,border-color .14s}.skill-chip:hover,.tag-row button:hover{border-color:var(--accent);transform:translateY(-1px)}.skill-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.tag-row button:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.projects-section{border-top:1px solid var(--line);padding:72px 0 92px}.projects-heading{justify-content:space-between;align-items:end;gap:22px;margin-bottom:28px;display:flex}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.projects-grid .project-card{grid-template-columns:1fr;align-content:space-between;min-height:470px;margin:0;padding:28px}.projects-grid .tag-row{margin-top:22px}.project-actions{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.button.small{min-height:40px;padding-inline:16px;font-size:.86rem}.personal-note{border-top:1px solid var(--line);max-width:760px;margin:64px auto;padding-top:38px}.personal-note h2{letter-spacing:-.045em;text-align:center;margin:0 0 26px;font-size:clamp(2rem,4vw,3.2rem)}.personal-note p{color:var(--muted);white-space:pre-line;line-height:1.8}.personal-note-pending{text-align:center;min-height:64px}.contact-section{border-top:1px solid var(--line);padding:72px 0 100px}.contact-heading{text-align:center;margin-bottom:30px;position:relative}.contact-swap{color:var(--muted);border-radius:999px;padding:7px 12px;font-size:.78rem;position:absolute;bottom:0;right:0}.contact-layout{align-items:stretch;gap:20px;display:flex}.contact-layout>*{flex:1;min-width:0}.contact-layout.flipped .services-panel{order:2}.contact-layout.flipped .contact-form{order:1}.services-panel,.contact-form{border:1px solid var(--line);background:var(--surface);border-radius:24px;padding:clamp(22px,4vw,34px)}.services-panel{gap:10px;display:grid}.service-item{background:var(--accent);border-radius:16px;grid-template-columns:42px 1fr;gap:12px;padding:13px;display:grid}@supports (color:color-mix(in lab, red, red)){.service-item{background:color-mix(in srgb, var(--accent) 6%, var(--surface))}}.service-item>span{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-strong);border-radius:50%;place-items:center;font-size:.75rem;font-weight:750;display:grid}.service-item h3{margin:0 0 4px;font-size:.98rem}.service-item p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.5}.contact-form{gap:15px;display:grid;position:relative}.form-field{gap:7px;display:grid}.form-field label{color:var(--muted);font-size:.82rem;font-weight:700}.form-field input,.form-field textarea{border:1px solid var(--line);background:var(--page);width:100%;color:var(--text);resize:vertical;border-radius:13px;outline:none;padding:12px 13px}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab, red, red)){.form-field input:focus,.form-field textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.submit-button{justify-self:start}.submit-button:disabled{cursor:wait;opacity:.6}.form-privacy,.form-status{color:var(--muted);margin:0;font-size:.78rem;line-height:1.45}.form-status{min-height:1.2em;font-size:.88rem}.form-status.error{color:#b42318}:root[data-theme=dark] .form-status.error{color:#fda4af}.contact-dialog{width:min(680px,100% - 28px);max-height:calc(100vh - 28px);color:var(--text);box-shadow:var(--shadow);background:0 0;border:0;border-radius:26px;margin:auto;padding:0}.contact-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#030f0db8}.dialog-panel{background:var(--surface);padding:clamp(22px,4vw,36px)}.dialog-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:20px;display:flex}.dialog-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(1.7rem,4vw,2.6rem)}.dialog-close{border:1px solid var(--line);background:var(--page);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;flex:none;font-size:1.5rem}.contact-dialog .contact-form{border:0;padding:0}.detail-shell{padding-bottom:92px}.backbar{padding-top:26px}.backbar a{color:var(--muted);border-radius:999px;padding:8px 12px;text-decoration:none;display:inline-flex}.backbar a:hover{background:var(--accent-soft);color:var(--accent-strong)}.project-hero{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:start;gap:clamp(28px,5vw,64px);padding:clamp(52px,8vw,94px) 0 68px;display:grid}.project-hero-copy h1{font-size:clamp(2.8rem,7vw,6.6rem)}.project-lede{max-width:760px;color:var(--muted);margin:24px 0 0;font-size:clamp(1.08rem,2vw,1.32rem);line-height:1.65}.project-angle{border:1px solid var(--accent);max-width:820px;margin:22px 0 0;padding:18px 20px}@supports (color:color-mix(in lab, red, red)){.project-angle{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line))}}.project-angle{background:linear-gradient(135deg, var(--accent-soft), var(--surface));color:var(--text);border-radius:18px}@supports (color:color-mix(in lab, red, red)){.project-angle{color:color-mix(in srgb, var(--text) 86%, var(--accent))}}.project-angle{line-height:1.65}.project-hero.project-hero-without-aside{grid-template-columns:minmax(0,1fr)}.project-hero-without-aside .project-hero-copy{max-width:820px}.project-aside{border:1px solid var(--line);background:var(--surface);border-radius:22px;padding:26px;position:sticky;top:100px}.project-aside dl{gap:18px;margin:0;display:grid}.project-aside dl div{gap:5px;display:grid}.project-aside dt{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;font-size:.74rem;font-weight:750}.project-aside dd{margin:0;font-weight:650;line-height:1.5}.static-tags span{border:1px solid var(--line);background:var(--page)}.architecture-section,.decisions-section{border-top:1px solid var(--line);padding:clamp(64px,9vw,104px) 0}.architecture-heading{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);align-items:end;gap:clamp(28px,6vw,84px);margin-bottom:clamp(34px,5vw,56px);display:grid}.architecture-heading h2,.decisions-heading h2{letter-spacing:-.05em;margin:6px 0 0;font-size:clamp(2rem,5vw,4rem)}.architecture-heading>p{max-width:720px;color:var(--muted);margin:0;font-size:clamp(1.02rem,1.8vw,1.2rem);line-height:1.7}.architecture-board{border:1px solid var(--accent);gap:34px;margin:0;padding:clamp(18px,3vw,30px);list-style:none;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.architecture-board{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--line))}}.architecture-board{background-color:var(--accent);border-radius:26px}@supports (color:color-mix(in lab, red, red)){.architecture-board{background-color:color-mix(in srgb, var(--accent) 3%, var(--surface))}}.architecture-board{background-image:linear-gradient(var(--accent) 1px, transparent 1px), linear-gradient(90deg, var(--accent) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.architecture-board{background-image:linear-gradient(color-mix(in srgb, var(--accent) 8%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent) 1px, transparent 1px)}}.architecture-board{background-size:24px 24px}.architecture-stage{flex:1 1 0;min-width:0;position:relative}.architecture-stage-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.architecture-stage-head>span{background:var(--accent-strong);width:28px;height:28px;color:var(--page);border-radius:999px;place-items:center;font-size:.68rem;font-weight:800;display:grid}.architecture-stage-head p{color:var(--accent-strong);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:800}.architecture-stage ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.architecture-stage ul li{border:1px solid var(--line);background:var(--surface);border-radius:15px;flex-direction:column;justify-content:center;gap:7px;min-height:78px;padding:15px;display:flex}@supports (color:color-mix(in lab, red, red)){.architecture-stage ul li{background:color-mix(in srgb, var(--surface) 94%, var(--accent))}}.architecture-stage ul li{box-shadow:0 12px 30px #0d3a3412}.architecture-stage ul li>span{background:var(--accent-soft);width:fit-content;color:var(--accent-strong);letter-spacing:.04em;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:780}.architecture-stage ul li strong{font-size:.91rem;line-height:1.35}.architecture-arrow{z-index:2;border:1px solid var(--accent);place-items:center;width:24px;height:24px;display:grid;position:absolute;top:53%;right:-29px}@supports (color:color-mix(in lab, red, red)){.architecture-arrow{border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line))}}.architecture-arrow{background:var(--page);color:var(--accent-strong);border-radius:999px;font-size:.9rem;font-weight:800;transform:translateY(-50%)}.decisions-heading{max-width:760px;margin-bottom:clamp(32px,5vw,52px)}.decisions-heading>p:last-child{color:var(--muted);margin:16px 0 0;font-size:1.06rem;line-height:1.65}.decisions-layout{grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);align-items:start;gap:clamp(26px,5vw,56px);display:grid}.technology-table{border-top:1px solid var(--line)}.decisions-layout-full{grid-template-columns:minmax(0,1fr)}.technology-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(126px,.65fr) minmax(180px,.95fr) minmax(260px,1.4fr);align-items:start;gap:clamp(16px,3vw,34px);padding:22px 0;display:grid}.technology-row-head{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;padding:11px 0;font-size:.68rem;font-weight:800}.technology-row strong{color:var(--accent-strong);line-height:1.45}.technology-row p{color:var(--muted);margin:0;line-height:1.58}.technology-row p:first-of-type{color:var(--text);font-weight:620}.cell-label{display:none}.tradeoff-card{border:1px solid var(--accent);padding:clamp(24px,3vw,34px);position:sticky;top:100px}@supports (color:color-mix(in lab, red, red)){.tradeoff-card{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line))}}.tradeoff-card{background:linear-gradient(150deg, var(--accent-soft), var(--surface));border-radius:24px}.tradeoff-card>p:first-child{color:var(--accent-strong);letter-spacing:.11em;text-transform:uppercase;margin:0 0 13px;font-size:.7rem;font-weight:800}.tradeoff-card h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,2.5vw,1.85rem);line-height:1.15}.tradeoff-card>div{background:var(--accent-strong);width:42px;height:42px;color:var(--page);border-radius:999px;place-items:center;margin:24px 0;font-size:1.15rem;display:grid}.tradeoff-card>p:last-child{color:var(--muted);margin:0;line-height:1.65}.gallery-section{border-top:1px solid var(--line);padding:70px 0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:24px;display:grid}.gallery-thumb{background:var(--surface);cursor:pointer;border:0;border-radius:16px;padding:0;position:relative;overflow:hidden;box-shadow:0 10px 34px #0d3a3417}.gallery-format{background:var(--text);color:var(--page);pointer-events:none;border-radius:6px;padding:5px 9px;font-size:.8rem;font-weight:700;position:absolute;bottom:12px;right:12px}.gallery-motion-control{margin-bottom:4px}.gallery-thumb :is(img,video){width:100%;height:auto;transition:transform .18s,filter .18s;display:block}:is(.gallery-thumb:hover :is(img,video),.gallery-thumb:focus-visible :is(img,video)){filter:saturate(1.05);transform:scale(1.025)}.gallery-note{color:var(--muted);line-height:1.6}.gallery-grid.gallery-grid-app{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:stretch}.gallery-grid-app .gallery-thumb{border:1px solid var(--line);padding:16px}.gallery-grid-app .gallery-thumb :is(img,video){object-fit:contain;width:100%;height:420px}@media (max-width:640px){.gallery-grid.gallery-grid-app{grid-template-columns:minmax(0,1fr)}.gallery-grid-app .gallery-thumb :is(img,video){height:auto;max-height:480px}}.next-project{border-top:1px solid var(--line);justify-content:flex-end;padding-top:42px;display:flex}.next-project a{color:var(--accent-strong);font-weight:750;text-decoration:none}.lightbox{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--text);z-index:100;background:0 0;border:0;place-items:center;margin:0;padding:18px;display:grid;position:fixed;inset:0}.lightbox-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:zoom-out;background:#020c0ad6;border:0;width:100%;height:100%;position:absolute;inset:0}.lightbox-shell{flex-direction:column;justify-content:center;align-items:center;width:min(1280px,100vw - 64px);min-height:min(680px,100vh - 36px);max-height:calc(100vh - 36px);display:flex;position:relative}.lightbox-close{z-index:4;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;width:42px;height:42px;font-size:1.5rem;position:absolute;top:12px;right:12px}.lightbox-stage{flex:auto;justify-content:center;align-items:center;width:100%;min-height:360px;display:flex;position:relative;overflow:hidden}.lightbox-stage>:is(img,video){object-fit:contain;width:auto;max-width:calc(100% - 120px);max-height:min(72vh,860px);display:block;box-shadow:0 24px 60px #00000052}.lightbox .lightbox-nav{z-index:2;color:#ffffffc2;cursor:pointer;background:0 0;border:0;width:74px;font-size:2.5rem;position:absolute;top:0;bottom:0}.lightbox .lightbox-nav-prev{left:0}.lightbox .lightbox-nav-next{right:0}.lightbox-bottom{border-top:1px solid #ffffff2e;justify-items:center;gap:12px;width:min(1040px,100%);margin-top:18px;padding:14px 16px 16px;display:grid}.lightbox-meta{color:#fff;justify-content:space-between;gap:20px;width:100%;display:flex}.lightbox-meta p{margin:0}.lightbox-meta span{color:#ffffffb3;white-space:nowrap}.lightbox-thumbs{justify-content:center;gap:10px;max-width:100%;display:flex;overflow-x:auto}.lightbox-thumbs button{opacity:.6;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:11px;flex:0 0 104px;padding:0;overflow:hidden}.lightbox-thumbs button.active{border-color:var(--accent);opacity:1}.lightbox-thumbs img{object-fit:cover;width:100%;height:66px;display:block}.not-found{text-align:center;align-content:center;place-items:center;gap:14px;width:min(660px,100% - 40px);min-height:100vh;margin:0 auto;display:grid}.not-found img{width:min(340px,76vw);height:auto}.not-found h1,.not-found p{margin:0}.not-found>p:not(.eyebrow){color:var(--muted)}.section-heading h2{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,4vw,3.7rem)}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:24px;grid-template-columns:1fr auto;align-items:end;gap:30px;margin-top:24px;padding:clamp(24px,4vw,42px);display:grid;box-shadow:0 12px 40px #0d3a340f}.project-card h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,3vw,2.25rem)}.project-card p{max-width:740px;color:var(--muted);margin:14px 0 0;line-height:1.65}.tag-row{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.tag-row span{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:650}footer{border-top:1px solid var(--line);min-height:86px;color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 18px;padding:20px;font-size:.88rem;display:flex}@media (max-width:800px){.topbar{grid-template-columns:auto 1fr auto;padding-inline:16px}.header-actions .language-switch{display:none}.mobile-language-switch{justify-content:center;padding:9px 16px 0;display:flex}.contact-hint{display:none}.hero-copy{justify-items:center;display:grid}.projects-grid{grid-template-columns:1fr}.projects-grid .project-card{min-height:0}.contact-layout{flex-direction:column}.contact-layout.flipped .services-panel,.contact-layout.flipped .contact-form{order:initial}.contact-swap{display:none}.project-hero{grid-template-columns:1fr}.project-aside{position:static}.architecture-heading{grid-template-columns:1fr;align-items:start}.architecture-board{flex-direction:column}.architecture-stage ul{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-arrow{inset:auto auto -29px 50%;transform:translate(-50%)rotate(90deg)}.decisions-layout{grid-template-columns:1fr}.tradeoff-card{position:static}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.gallery-thumb :is(img,video){object-fit:cover;height:clamp(90px,20vw,130px)}.lightbox{padding:0}.lightbox-shell{width:100%;min-height:100vh;max-height:100vh}.lightbox-stage{min-height:0}.lightbox-stage>:is(img,video){max-width:calc(100% - 56px);max-height:68vh}.lightbox .lightbox-nav{width:56px}.lightbox-bottom{width:100%;padding-inline:12px}}@media (max-width:560px){.topbar{gap:6px}.nav{justify-content:center}.nav a{padding-inline:8px}.site-shell{width:min(100% - 28px,1120px)}h1{font-size:clamp(2.55rem,14vw,4.3rem)}.hero-actions{justify-content:center}.project-card{grid-template-columns:1fr}.projects-heading{flex-direction:column;align-items:start}.contact-section{padding-bottom:72px}.project-hero-copy h1{font-size:clamp(2.65rem,14vw,4.6rem)}.architecture-board{padding:14px}.architecture-stage ul{grid-template-columns:1fr}.technology-row-head{display:none}.technology-row{grid-template-columns:1fr;gap:12px;padding:24px 0}.technology-row p{gap:5px;display:grid}.cell-label{color:var(--accent-strong);letter-spacing:.1em;text-transform:uppercase;font-size:.67rem;font-weight:800;display:inline}.gallery-grid{gap:7px}.gallery-thumb,.gallery-thumb :is(img,video){border-radius:10px}.gallery-thumb :is(img,video){height:clamp(82px,24vw,114px)}}@media (max-width:900px) and (orientation:landscape){.lightbox-stage>:is(img,video){max-height:82vh}.lightbox-bottom{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.button,.skill-chip,.language-switch button{isolation:isolate;position:relative}.button.primary:before,.skill-chip:before{content:"";z-index:-1;border-radius:inherit;background:var(--accent-soft);transform-origin:0;pointer-events:none;position:absolute;inset:0;transform:scaleX(0)}.button.primary:before{background:var(--accent-strong)}.skill-chip.active{background:var(--surface)}.skill-chip.active:before{transform:scaleX(1)}.button.primary:focus-visible:before{transform:scaleX(1)}.project-card,.gallery-thumb{transition:translate .24s,border-color .24s,box-shadow .24s}.nav a,.backbar a,.next-project a{background-image:linear-gradient(var(--accent), var(--accent));background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;text-decoration:none}:is(.nav a:focus-visible,.backbar a:focus-visible,.next-project a:focus-visible){background-size:100% 1px}@media (prefers-reduced-motion:no-preference){[data-motion-pending]{opacity:0}[data-reveal=section][data-motion-enter]{animation:.9s cubic-bezier(.16,1,.3,1) backwards section-materialize}[data-motion-enter]{animation:.64s cubic-bezier(.16,1,.3,1) backwards yui-frame-enter}.projects-grid>:nth-child(2),.architecture-board>:nth-child(2),.gallery-grid>:nth-child(2){animation-delay:90ms}.projects-grid>:nth-child(3),.architecture-board>:nth-child(3){animation-delay:.18s}.architecture-board>:nth-child(4){animation-delay:.27s}.contact-dialog[open],.lightbox-shell{transform-origin:50% 65%;animation:.34s cubic-bezier(.16,1,.3,1) yui-pop-in}.button,.skill-chip,.language-switch button,.theme-toggle{transition:scale .22s cubic-bezier(.2,1.6,.4,1),transform .18s,background .18s,box-shadow .18s,border-color .18s}.button.primary:before,.skill-chip:before{transition:transform .28s cubic-bezier(.16,1,.3,1)}.button:active:not(:disabled),.skill-chip:active,.language-switch button:active,.theme-toggle:active{scale:.95 .97}.nav a,.backbar a,.next-project a{transition:background-size .26s cubic-bezier(.16,1,.3,1)}.next-project a span{transition:translate .24s;display:inline-block}.next-project a:focus-visible span{translate:5px}}@media (hover:hover) and (pointer:fine){.button.primary:hover:not(:disabled):before{transform:scaleX(1)}.nav a:hover,.backbar a:hover,.next-project a:hover{background-size:100% 1px}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project-card:hover{border-color:var(--accent);box-shadow:0 24px 60px color-mix(in srgb, var(--accent) 14%, transparent);translate:0 -5px}.next-project a:hover span{translate:5px}}@keyframes yui-frame-enter{0%{opacity:0;transform:translateY(24px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes section-materialize{0%{opacity:0;clip-path:inset(0 0 30% round 20px);transform:translateY(56px)scale(.98)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes yui-pop-in{0%{opacity:.3;scale:.96}70%{opacity:1;scale:1.006}to{opacity:1;scale:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.button:hover,.skill-chip:hover,.tag-row button:hover,.gallery-thumb:hover img{transform:none}.gallery-thumb:focus-visible img{transform:none}}.project-showcase{border:1px solid var(--line);background:linear-gradient(155deg, var(--surface), color-mix(in srgb, var(--accent-soft) 40%, var(--surface)));width:100%;min-width:0;box-shadow:var(--shadow);text-align:left;border-radius:28px;padding:22px}.showcase-heading,.showcase-footer,.showcase-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.showcase-heading{color:var(--muted);font-size:.875rem}.showcase-counter{font-variant-numeric:tabular-nums;white-space:nowrap}.showcase-counter b{color:var(--accent-strong)}.showcase-stage{isolation:isolate;aspect-ratio:4/3;touch-action:pan-y;margin:16px -8px 12px;position:relative}.showcase-card{border:1px solid var(--line);background:var(--surface);transform-origin:50% 82%;pointer-events:none;border-radius:15px;place-items:center;padding:8px;display:grid;position:absolute;inset:20px 18px;overflow:hidden;box-shadow:0 12px 26px #00000017}.showcase-card :is(img,video){object-fit:contain;border-radius:8px;width:100%;height:100%;min-height:0;display:block}.showcase-card[data-position=active]{z-index:3;opacity:1;transform:translate(0)rotate(0)scale(1)}.showcase-card[data-position=next]{z-index:2;opacity:.65;transform:translate(13px,5px)rotate(5deg)scale(.94)}.showcase-card[data-position=previous]{z-index:1;opacity:.4;transform:translate(-11px,3px)rotate(-5deg)scale(.94)}.showcase-card[data-position=hidden]{z-index:0;opacity:0;visibility:hidden;transform:translateY(16px)scale(.9)}.showcase-fallback{color:var(--muted);margin:0;font-size:.875rem}.showcase-description{min-height:78px;padding:8px 0 12px}.showcase-project{letter-spacing:-.035em;margin:0;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:750;line-height:1.25}.showcase-caption{color:var(--muted);margin:7px 0 0;font-size:.875rem;line-height:1.4}.showcase-thumbnails{gap:9px;padding:3px 2px 12px;display:flex;overflow-x:auto}.showcase-thumbnails button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;flex:0 0 68px;height:56px;padding:4px;position:relative}.showcase-thumbnails img{object-fit:contain;opacity:.6;border-radius:5px;width:100%;height:100%;display:block}.showcase-thumbnails span{background:var(--surface);color:var(--muted);border-radius:3px;padding:1px 4px;font-size:.75rem;position:absolute;bottom:2px;left:2px}.showcase-thumbnails button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.showcase-thumbnails button[aria-pressed=true] img{opacity:1}.showcase-footer{border-top:1px solid var(--line);text-align:left;flex-wrap:nowrap;min-height:0;padding:14px 0 0}.showcase-project-link{color:var(--accent-strong);font-size:.875rem;font-weight:750;text-decoration:none}.showcase-project-link span{margin-left:6px;display:inline-block}.showcase-controls{flex-shrink:0;gap:6px}.showcase-controls button{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:1.2rem;display:grid}.showcase-controls button:last-child{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.showcase-controls button:disabled{opacity:.4;cursor:default}.project-showcase:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-showcase button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.showcase-project-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (prefers-reduced-motion:no-preference){.showcase-card{transition:transform .62s cubic-bezier(.22,1,.36,1),opacity .42s}.showcase-thumbnails button,.showcase-controls button{transition:transform .24s cubic-bezier(.2,1.6,.4,1),border-color .2s,box-shadow .2s}.showcase-thumbnails button[aria-pressed=true]{transform:translateY(-2px)}.showcase-controls button:active:not(:disabled){transform:scale(.9)}.showcase-project-link span{transition:transform .22s}.showcase-project-link:hover span{transform:translate(2px,-2px)}}@media (max-width:1050px){.project-showcase{width:min(620px,100%);margin-inline:auto}}@media (max-width:480px){.project-showcase{border-radius:22px;padding:16px}.showcase-stage{aspect-ratio:1.15;margin-inline:-6px}.showcase-card{padding:5px;inset:17px 15px}.showcase-description{min-height:92px}.showcase-thumbnails{gap:7px}.showcase-thumbnails button{flex-basis:58px;height:48px}.showcase-controls button{width:44px;height:44px}}.project-filters{gap:16px;margin-bottom:28px;display:grid}.filter-categories{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px 20px;display:flex}.filter-categories button{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 0;font-size:.85rem}.filter-categories button[aria-pressed=true]{color:var(--accent-strong);border-bottom-color:var(--accent);font-weight:700}.project-count{color:var(--muted);font:.85rem ui-monospace,monospace}.projects-grid{align-items:start}.projects-grid .project-card{border-radius:18px;align-content:start;gap:0;min-height:0;padding:22px}.projects-grid .project-card h3{font-size:1.35rem}.projects-grid .project-card p{margin-top:9px;font-size:.91rem;line-height:1.5}.projects-grid .tag-row{gap:5px;margin-top:16px}.projects-grid .tag-row button{padding:5px 8px;font-size:.7rem}.projects-grid .project-actions{margin-top:18px}.projects-grid .project-actions .button{min-height:36px;padding-inline:12px;font-size:.78rem}.project-cover{float:right;border:1px solid var(--line);background:#fff;border-radius:9px;width:80px;height:58px;margin:0 0 10px 12px;overflow:hidden}.project-cover img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.project-cover.logo img{object-fit:contain;padding:8px}.project-card .tag-row{clear:both}@media (max-width:1000px) and (min-width:601px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.projects-grid{grid-template-columns:1fr;gap:12px}.filter-categories{gap:0 16px}.projects-grid .project-card{padding:20px}}@media (prefers-reduced-motion:reduce){.folder-intro[open]{display:none}}.folder-intro{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.folder-intro::backdrop{background:0 0}.folder-intro[open]{display:block}.zip-cover,.zip-panels{width:100%;height:100%;animation-duration:inherit;pointer-events:none;position:absolute;inset:0}.zip-panel{fill:var(--page)}.zip-panel-right{fill:color-mix(in srgb, var(--page) 94%, var(--accent))}.zip-tape{fill:none;stroke:var(--line);stroke-width:14px}.zip-teeth{fill:none;stroke:var(--accent-strong);stroke-width:8px;stroke-dasharray:5 8}.zip-edge-right .zip-teeth{stroke-dashoffset:6.5px}.zip-file-label{align-items:center;gap:14px;font-size:1.05rem;font-weight:700;display:flex;position:absolute;top:34px;left:clamp(24px,5vw,72px)}.zip-file-type{border:1px solid var(--line);color:var(--accent-strong);letter-spacing:.04em;border-radius:4px 12px 4px 4px;padding:13px 7px;font:.67rem ui-monospace,monospace}.zip-file-label small{color:var(--muted);letter-spacing:.12em;margin-top:6px;font:.55rem ui-monospace,monospace;display:block}.zip-slider{z-index:2;background:linear-gradient(100deg,#e0eee8,#fff 44%,#a8c3b9);border:1px solid #87afa5;border-radius:9px 9px 13px 13px;width:36px;height:46px;position:absolute;top:-55px;left:calc(50% - 18px);box-shadow:0 3px 8px #092c3540}.zip-pull{transform-origin:50% 5px;background:linear-gradient(90deg,#b5d0c5,#f1f8f4,#b5d0c5);border:1px solid #7d9e92;border-radius:6px 6px 9px 9px;width:18px;height:49px;position:absolute;top:20px;left:8px}.zip-pull span{background:#6b938580;border:1px solid #89a79c;border-radius:5px;position:absolute;inset:19px 4px 7px}.intro-skip{z-index:3;right:max(24px, env(safe-area-inset-right));top:max(24px, env(safe-area-inset-top));border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:12px 18px;position:absolute}@media (max-width:500px){.zip-file-label{gap:9px;font-size:.8rem}.zip-file-label small{display:none}.zip-file-type{padding:10px 5px}.intro-skip{padding:10px 12px;font-size:.8rem}}@media (prefers-reduced-motion:reduce){.folder-intro[open]{display:none}}.hero-story{flex-direction:column;display:flex;position:relative}#home.site-shell{scroll-margin-top:96px}.hero-story .hero-copy{text-align:center;order:-1;padding:70px 0 50px}.hero-story h1{letter-spacing:-.06em;text-wrap:balance;max-width:1000px;margin-inline:auto;font-size:clamp(2.8rem,7vw,6.2rem);line-height:1.04}.hero-story h1 span{display:block}.hero-story .lede{text-wrap:pretty;max-width:720px;margin-inline:auto;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.6}.hero-story .hero-actions{justify-content:center}.hero-scroll-cue{color:var(--muted);justify-content:center;align-items:center;gap:10px;margin-top:25px;font-size:.75rem;text-decoration:none;display:flex}.hero-scroll-cue span{font-size:1.25rem}.hero-story .project-showcase{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.hero-story .showcase-stage{aspect-ratio:auto;height:min(65svh,660px);margin:0}.hero-story .showcase-card{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;inset:0}.hero-story .showcase-card :is(img,video){border-radius:0}.hero-story .showcase-card[data-position]{transform:none}.hero-story .showcase-card:not([data-position=active]){opacity:0;visibility:visible}.hero-story .showcase-interface{grid-template-columns:max-content minmax(0,1fr);column-gap:22px;width:min(820px,100%);margin:18px auto 0;display:grid}.hero-story .showcase-heading,.hero-story .showcase-description{grid-column:1/-1}.hero-story .showcase-description{min-height:0;padding:6px 0}.hero-story .showcase-project{font-size:1.1rem}.hero-story .showcase-caption{display:none}.hero-story .showcase-thumbnails{gap:7px;padding:5px 0 0}.hero-story .showcase-thumbnails button{border-radius:6px;flex-basis:50px;height:38px}.hero-story .showcase-thumbnails span{font-size:.6rem}.hero-story .showcase-footer{border:0;margin-left:0;padding:5px 0 0}.hero-story .showcase-heading{font-size:.73rem}.hero-story .showcase-controls button{width:38px;height:38px}.hero-story .showcase-controls .showcase-animation-control{align-content:center;gap:0;font-size:1rem;line-height:1}.showcase-animation-control span{font-size:.6rem;font-weight:750}@media (max-width:720px){.hero-story .showcase-interface{display:block}}.hero-story[data-scroll-story]{--hero-progress:0;height:calc(200svh - 76px);display:block}.hero-story[data-scroll-story] .hero-visual{align-items:center;height:calc(100svh - 76px);display:flex;position:sticky;top:76px}.hero-story[data-scroll-story] .project-showcase{padding:16px 0}.hero-story[data-scroll-story] .showcase-stage{height:calc(100svh - 260px);min-height:180px}.hero-story[data-scroll-story] .showcase-card{opacity:0;transition:opacity .9s}.hero-story[data-scroll-story] .showcase-card[data-position=active]{opacity:1}.hero-story[data-scroll-story] .showcase-stage{opacity:clamp(.13, calc(.13 + var(--hero-progress) * 1.1), 1);filter:blur(clamp(0px, calc(10px - var(--hero-progress) * 15px), 10px));transform:scale(clamp(1, calc(1.08 - var(--hero-progress) * .1), 1.08))}.hero-story[data-scroll-story] .hero-copy{z-index:4;min-height:calc(100svh - 155px);opacity:clamp(0, calc(1 - var(--hero-progress) * 1.7), 1);flex-direction:column;justify-content:center;align-items:center;padding:30px 0 55px;display:flex;position:absolute;inset:0 0 auto}.hero-story[data-scroll-story] .hero-copy:focus-within{opacity:1}.hero-story[data-scroll-story] .showcase-interface{opacity:0;visibility:hidden;transition:opacity .3s,transform .3s,visibility .3s;transform:translateY(12px)}.hero-story[data-gallery-ready=true] .showcase-interface{opacity:1;visibility:visible;transform:none}.hero-story[data-scroll-story] .gallery-stop{width:1px;height:1px;scroll-margin-top:76px;position:absolute;bottom:calc(100svh - 76px)}.projects-grid{grid-auto-rows:1fr;align-items:stretch}.projects-grid .project-card{flex-direction:column;height:100%;min-height:265px;display:flex}.projects-grid .project-actions{margin-top:auto;padding-top:18px}.projects-heading{text-align:center;margin-bottom:36px;display:block;position:relative}.projects-heading .project-count{position:absolute;bottom:3px;right:0}.contact-heading{text-align:center}.contact-heading>p:not(.eyebrow){margin-inline:auto}.section-title{width:fit-content;padding-bottom:15px;position:relative;margin-inline:auto!important}.section-title span{display:inline-block}.section-title:after{content:"";background:var(--accent);border-radius:2px;width:44px;height:3px;position:absolute;bottom:0;left:calc(50% - 22px)}@media (prefers-reduced-motion:no-preference){.section-title[data-motion-enter]{animation:none}.section-title:not(.purpose-title)[data-motion-enter] span{animation:.75s cubic-bezier(.16,1,.3,1) backwards title-arrive}.section-title:not(.purpose-title)[data-motion-enter]:after{animation:.65s cubic-bezier(.16,1,.3,1) .13s backwards title-line}}@keyframes title-arrive{0%{opacity:0;letter-spacing:.025em;filter:blur(3px);transform:translateY(24px)}to{opacity:1;filter:none;transform:none}}@keyframes title-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (max-width:600px){.hero-story h1{font-size:clamp(2.35rem,9vw,3.6rem)}.hero-story .eyebrow{font-size:.6rem}.hero-story .lede{font-size:.96rem}.hero-story[data-scroll-story] .hero-copy{padding-block:25px 45px}.hero-story[data-scroll-story] .showcase-stage{height:calc(100svh - 315px)}.hero-story .showcase-thumbnails{float:none;justify-content:center;padding-block:7px}.hero-story .showcase-footer{margin-left:0}.hero-story .showcase-controls button{width:44px;height:44px}.hero-story .showcase-interface{padding-inline:3px}.hero-story .showcase-project-link{font-size:.78rem}.hero-story .hero-actions{margin-top:22px}.hero-scroll-cue{margin-top:16px}.projects-heading .project-count{margin-top:12px;display:block;position:static}}@media (prefers-reduced-motion:reduce){.hero-story[data-scroll-story] .showcase-stage{filter:none;transform:none}}@media (max-height:550px){.hero-story[data-scroll-story]{height:auto;display:flex}.hero-story[data-scroll-story] .hero-copy{opacity:1;order:-1;min-height:0;position:relative}.hero-story[data-scroll-story] .hero-visual{height:auto;position:relative;top:0}.hero-story[data-scroll-story] .showcase-stage{opacity:1;filter:none;height:65svh;transform:none}.hero-story[data-scroll-story] .gallery-stop{position:static}}.purpose-title{padding-top:54px}.purpose-title:after{display:none}.title-floor{background:var(--accent);border-radius:2px;width:44px;height:3px;position:absolute;bottom:-15px;left:calc(50% - 22px)}.title-scene,.title-word{position:relative}.title-letter{transform-origin:50% 85%;display:inline-block}.purpose-title .title-art{pointer-events:none;width:112px;height:44px;position:absolute;top:-51px;left:calc(50% - 56px)}.title-collection{width:100%;height:100%;position:relative}.title-file{width:37px;height:29px;left:calc(38px + (var(--file) - 1) * 22px);border:1.5px solid var(--accent);background:var(--surface);rotate:calc((var(--file) - 1) * 10deg);transform-origin:50% 100%;box-shadow:0 4px 8px color-mix(in srgb, var(--accent) 10%, transparent);border-radius:2px 5px 5px;position:absolute;top:8px}.title-file:nth-child(2){z-index:2;background:var(--accent-soft);top:3px}.title-file:nth-child(3){z-index:1}.title-file-tab{border:1.5px solid var(--accent);background:inherit;border-bottom:0;border-radius:3px 3px 0 0;width:16px;height:5px;position:absolute;top:-5px;left:-1.5px}.purpose-title .title-file-line{background:var(--accent);opacity:.5;border-radius:2px;height:2px;margin:8px 7px 0;display:block}.purpose-title .title-file-line+.title-file-line{width:12px;margin-top:4px}.title-message{border:1.5px solid var(--accent);background:var(--accent-soft);transform-origin:8px 100%;border-radius:10px 10px 10px 2px;justify-content:center;align-items:center;gap:4px;width:49px;height:31px;position:absolute;top:6px;left:32px;display:flex!important}.title-message>span{background:var(--accent);border-radius:50%;width:4px;height:4px}.title-send{opacity:0;width:25px;height:25px;stroke:var(--accent-strong);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;fill:var(--surface);position:absolute;top:9px;left:45px}.title-message-echo{border:1.5px solid var(--accent);opacity:0;border-radius:10px;position:absolute;inset:6px 31px 7px 32px}.title-caret{background:var(--accent);opacity:0;border-radius:1px;width:2px;height:72%;position:absolute;top:15%;right:-7px}@media (prefers-reduced-motion:no-preference){.purpose-title[data-motion-enter]{animation:none}.purpose-title-projects[data-motion-enter] .title-file{animation:1.3s cubic-bezier(.22,1,.36,1) both project-file-deal;animation-delay:calc(var(--file) * .11s)}.purpose-title-projects[data-motion-enter] .title-letter{animation:.9s cubic-bezier(.2,1.3,.4,1) both project-letter-build;animation-delay:calc(.22s + var(--letter) * 65ms)}.purpose-title-projects[data-motion-enter] .title-floor{animation:1.4s both project-shelf}.purpose-title-contact[data-motion-enter] .title-message{animation:1.8s cubic-bezier(.22,1,.36,1) both contact-message}.purpose-title-contact[data-motion-enter] .title-message>span{animation:1.05s both contact-thinking}.purpose-title-contact[data-motion-enter] .title-message>span:nth-child(2){animation-delay:.1s}.purpose-title-contact[data-motion-enter] .title-message>span:nth-child(3){animation-delay:.2s}.purpose-title-contact[data-motion-enter] .title-letter{animation:.38s both contact-letter;animation-delay:calc(.32s + var(--letter) * 85ms)}.purpose-title-contact[data-motion-enter] .title-caret{animation:1.5s step-end both contact-caret}.purpose-title-contact[data-motion-enter] .title-send{animation:1.8s cubic-bezier(.4,0,.7,.4) both contact-send}.purpose-title-contact[data-motion-enter] .title-message-echo{animation:1.8s both contact-echo}.purpose-title-contact[data-motion-enter] .title-floor{animation:.65s cubic-bezier(.16,1,.3,1) .8s backwards title-line}}@keyframes project-file-deal{0%{opacity:0;transform:translate(calc((var(--file) - 1) * 50px), -28px) rotate(-30deg) scale(.65)}38%{opacity:1;transform:translateY(7px)rotate(5deg)scale(1.08)}62%{transform:translateY(-3px)rotate(-3deg)scale(.98)}to{opacity:1;transform:none}}@keyframes project-letter-build{0%{opacity:0;transform:translate(var(--letter-x), 25px) rotate(var(--letter-turn)) scale(.7)}70%{opacity:1;transform:translateY(-3px)rotate(-2deg)scale(1.025)}to{opacity:1;transform:none}}@keyframes project-shelf{0%,20%{transform:scaleX(0)}65%{transform:scaleX(1.7)}to{transform:scaleX(1)}}@keyframes contact-message{0%{opacity:0;transform:translate(22px,10px)rotate(12deg)scale(.3)}24%{opacity:1;transform:translateY(-3px)rotate(-5deg)scale(1.1)}38%,59%{opacity:1;transform:none}70%{opacity:.2;transform:scale(.8)}88%,to{opacity:1;transform:none}}@keyframes contact-thinking{0%,to{transform:none}30%,70%{transform:translateY(-4px)}50%,90%{transform:translateY(1px)}}@keyframes contact-letter{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(7px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes contact-caret{0%,24%,48%,72%,to{opacity:0}12%,36%,60%{opacity:1}}@keyframes contact-send{0%,58%{opacity:0;transform:translate(0)rotate(-6deg)scale(.7)}66%{opacity:1;transform:translate(0)rotate(-6deg)scale(1)}84%{opacity:1;transform:translate(42px,-18px)rotate(10deg)scale(.85)}to{opacity:0;transform:translate(85px,-50px)rotate(20deg)scale(.45)}}@keyframes contact-echo{0%,73%{opacity:0;transform:scale(1)}78%{opacity:.5}to{opacity:0;transform:scale(1.6)}}@media (min-width:801px){.contact-heading{padding-bottom:70px}.contact-swap{width:max-content;min-height:46px;color:var(--accent-strong);background:var(--surface);border:1px solid var(--line);box-shadow:0 5px 16px color-mix(in srgb, var(--accent) 8%, transparent);align-items:center;gap:10px;margin-inline:auto;padding:8px 18px 8px 12px;font-weight:700;transition:background .18s,border-color .18s,box-shadow .18s;display:inline-flex;bottom:0;left:0;right:0}:is(.contact-swap:hover,.contact-swap:focus-visible){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 7px 22px color-mix(in srgb, var(--accent) 17%, transparent)}.contact-swap[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}}.swap-symbol{width:42px;height:28px;display:block;position:relative}.swap-orbit{position:absolute;inset:0;rotate:0deg}.swap-orbit-path{border:1px dashed var(--accent);opacity:.25;border-radius:50%;position:absolute;inset:2px 0}.swap-tile{border:1px solid var(--accent);background:var(--surface);z-index:1;border-radius:4px;width:17px;height:21px;position:absolute;top:3px;rotate:0deg}.swap-tile-list{left:0}.swap-tile-form{background:var(--accent);right:0}.swap-tile:before,.swap-tile:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;top:5px;left:3px;right:3px}.swap-tile:after{top:10px;right:5px}.swap-tile-form:before{background:var(--surface);opacity:.9;height:5px}.swap-tile-form:after{background:var(--surface);top:13px;left:7px;right:3px}.contact-swap[aria-pressed=true] .swap-orbit{rotate:180deg}.contact-swap[aria-pressed=true] .swap-tile{rotate:-180deg}[data-shuffle-spark]{border:1px solid var(--accent);opacity:0;pointer-events:none;width:5px;height:5px;position:absolute;top:12px;left:19px}.contact-layout{isolation:isolate}.contact-layout>*{position:relative}@media (prefers-reduced-motion:no-preference){.swap-orbit,.swap-tile{transition:rotate .85s cubic-bezier(.16,1.3,.3,1)}.contact-swap:is(:hover,:focus-visible) .swap-symbol{animation:.65s swap-invitation}.contact-swap:is(:hover,:focus-visible) .swap-orbit-path{animation:.65s swap-path}}@keyframes swap-invitation{0%,to{transform:none}28%{transform:rotate(-10deg)translateY(-2px)}60%{transform:rotate(7deg)}82%{transform:rotate(-3deg)}}@keyframes swap-path{0%,to{opacity:.25}40%{opacity:.7;scale:1.14}}.contact-heading{padding-bottom:0}.contact-fun{z-index:3;justify-content:center;align-items:center;gap:8px;width:max-content;max-width:100%;margin:24px auto 0;display:flex;position:relative}.contact-fun-count{min-width:66px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;padding:8px;font:.72rem ui-monospace,monospace}.contact-fun-count:hover,.contact-fun-count[aria-expanded=true]{color:var(--accent-strong);background:var(--accent-soft)}.contact-fun-count:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.motion-hint a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.contact-fun .contact-swap{margin:0;position:relative;inset:auto}.contact-fun .motion-button-icon{width:68px;height:50px;padding:8px 12px}.motion-hint{width:max-content;max-width:min(280px,100vw - 40px);padding-bottom:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.motion-hint a{border:1px solid var(--line);background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow);transform-origin:50% 100%;border-radius:16px;padding:14px 18px;font-size:.85rem;font-weight:650;text-decoration:none;display:block;position:relative}.motion-hint a:after{content:"";border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);width:9px;height:9px;position:absolute;bottom:-5px;left:calc(50% - 5px);rotate:45deg}.motion-hint a:hover{text-underline-offset:4px;text-decoration:underline}.motion-hint a span{margin-left:6px;display:inline-block}.motion-button{min-width:0;min-height:46px;color:var(--accent-strong);background:var(--surface);border:1px solid var(--line);font:inherit;cursor:pointer;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 7%, transparent);border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:8px 14px;font-size:.78rem;font-weight:700;transition:background .18s,border-color .18s,box-shadow .18s;display:inline-flex;position:relative}.motion-button:hover,.motion-button[aria-pressed=true],.motion-button[data-playing=true]{border-color:var(--accent);background-color:var(--accent-soft)}:is(.motion-button:focus-visible,.image-file-button:focus-within){outline:2px solid var(--accent);outline-offset:4px}.motion-button-label{white-space:nowrap}.motion-button-orbit{border-style:dashed}.motion-button-fold{border-radius:5px 16px}.motion-button-spring{border-bottom-width:3px;border-radius:18px}.motion-button-magnet{border-inline-width:3px;border-radius:16px}.motion-button-stack{box-shadow:3px 3px 0 var(--accent-soft);border-radius:6px 15px}.motion-button-curtain{border-top:3px solid var(--accent);border-radius:5px 5px 18px 18px}.motion-button-flip{border-radius:12px 3px}.motion-button-portal{border:3px double color-mix(in srgb, var(--accent) 65%, var(--line))}.motion-glyph{flex:none;width:42px;height:32px;overflow:visible}.glyph-track{opacity:.35}.glyph-fill{fill:var(--accent)}.glyph-cut{stroke:var(--surface)}.glyph-moving,.glyph-a,.glyph-b{transform-box:fill-box;transform-origin:50%}.motion-button[data-flipped=true] .swap-orbit{rotate:180deg}.motion-button[data-flipped=true] .swap-tile{rotate:-180deg}.motion-pair{isolation:isolate;position:relative}.motion-pair>*{z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;min-width:0;position:relative}.motion-pair.flipped>:first-child{order:2}.motion-pair.flipped>:nth-child(2){order:1}.motion-pair[data-pair-motion=stack]>:first-child,.motion-pair[data-pair-motion=shuffle]>:first-child{z-index:2}.motion-pair:before,.motion-pair:after{content:"";pointer-events:none;z-index:0;aspect-ratio:1;border:2px solid var(--accent);opacity:0;border-radius:50%;width:clamp(50px,13vw,160px);position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)scale(.1)}.motion-pair:after{border-style:dashed}.animation-showcase{border-top:1px solid var(--line);padding:68px 0;scroll-margin-top:88px}.animation-showcase-heading{text-align:center;margin-bottom:32px}.animation-showcase-heading h2{letter-spacing:-.045em;margin:8px 0 14px;font-size:clamp(2.4rem,5vw,4rem)}.animation-showcase-heading>p:last-child{color:var(--muted);margin:0;line-height:1.6}.motion-picker{grid-template-columns:repeat(9,minmax(0,1fr));gap:9px;display:grid}.motion-picker .motion-button{flex-direction:column;gap:5px;min-height:84px;padding:11px 4px}.motion-caption{min-height:68px;color:var(--muted);justify-content:space-between;align-items:center;gap:16px;font-size:.87rem;display:flex}.motion-caption p{margin:0}.motion-stop{border:1px solid var(--line);min-height:40px;color:var(--text);background:var(--surface);font:inherit;cursor:pointer;border-radius:999px;padding:6px 15px}.motion-stop:disabled{opacity:.35;cursor:default}.motion-reduced-note{color:var(--muted);font-size:.85rem;display:none}.showcase-pair{align-items:stretch;gap:clamp(12px,2vw,26px);display:flex}.showcase-pair>*{flex:1}.showcase-image{margin:0}.showcase-image-window{aspect-ratio:4/3;background:var(--accent-soft);border-radius:18px;position:relative;overflow:hidden}.showcase-image-window img{object-fit:contain;width:100%;height:100%;display:block}.showcase-image-loading{background:color-mix(in srgb, var(--surface) 85%, transparent);color:var(--text);place-content:center;font-size:.85rem;display:grid;position:absolute;inset:0}.showcase-image figcaption{justify-content:space-between;align-items:start;gap:12px;padding:16px 0 0;display:flex}.showcase-image-name{min-width:0;color:var(--muted);font:.78rem/1.7 ui-monospace,monospace}.showcase-image-name small{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.75rem;display:block;overflow:hidden}.image-file-button{color:var(--accent-strong);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:5px;min-height:30px;font-size:.8rem;display:flex;position:relative}.image-file-button input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.image-load-error{color:#bd493a;font-size:.8rem;line-height:1.5}.showcase-image-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;margin-top:26px;padding-top:20px;font-size:.8rem;line-height:1.6;display:flex}.showcase-image-footer p{margin:0}.showcase-image-footer button{min-height:40px;color:var(--accent-strong);font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}@media (max-width:900px){.motion-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}}@media (max-width:800px){.contact-fun .contact-swap{display:none}.contact-layout.motion-pair.flipped>*{order:initial}}@media (max-width:600px){.motion-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.motion-picker .motion-button{flex-direction:row;gap:3px;min-height:67px;padding:8px 5px;font-size:.68rem}.motion-picker .motion-glyph,.motion-picker .swap-symbol{width:35px;scale:.85}.animation-showcase{padding-block:44px}.showcase-image-window{border-radius:10px}.showcase-image figcaption{flex-direction:column;gap:2px;padding-top:10px}.showcase-image-name small{max-width:130px}.image-file-button{white-space:normal;min-height:40px;font-size:.72rem}}@media (prefers-reduced-motion:no-preference){.motion-hint:not([hidden]) a{animation:.24s cubic-bezier(.2,1.2,.4,1) both motion-hint-pop}.motion-button-shuffle:is(:hover,:focus-visible) .swap-symbol{animation:.65s swap-invitation}.motion-button-orbit:is(:hover,:focus-visible) .glyph-moving{transform-box:view-box;animation:.85s mini-orbit}.motion-button-fold:is(:hover,:focus-visible) .glyph-a{transform-origin:100%;animation:.8s mini-fold}.motion-button-fold:is(:hover,:focus-visible) .glyph-b{transform-origin:0;animation:.8s mini-fold}.motion-button-spring:is(:hover,:focus-visible) .glyph-moving{animation:.75s mini-spring}.motion-button-magnet:is(:hover,:focus-visible) .glyph-b{animation:.8s mini-magnet}.motion-button-stack:is(:hover,:focus-visible) .glyph-b{animation:.8s mini-stack}.motion-button-curtain:is(:hover,:focus-visible) .glyph-a,.motion-button-curtain:is(:hover,:focus-visible) .glyph-b{animation:.9s mini-fold}.motion-button-flip:is(:hover,:focus-visible) .glyph-moving{animation:.85s mini-flip}.motion-button-portal:is(:hover,:focus-visible) .glyph-moving{animation:1s mini-orbit}.motion-pair[data-pair-motion=portal]:before{animation:1.9s pair-portal}.motion-pair[data-pair-motion=portal]:after{animation:1.9s 80ms pair-portal}}@keyframes motion-hint-pop{0%{opacity:0;transform:translateY(6px)scale(.94)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.motion-reduced-note{display:block}}@keyframes mini-orbit{to{rotate:360deg}}@keyframes mini-fold{45%{scale:.15 1}}@keyframes mini-spring{20%{translate:0 4px;scale:1.1 .8}52%{translate:0 -6px;scale:.95 1.1}75%{translate:0 2px}}@keyframes mini-magnet{45%,60%{translate:-6px}}@keyframes mini-stack{45%,65%{translate:-6px 2px;rotate:-10deg}}@keyframes mini-flip{50%{transform:perspective(100px)rotateY(180deg)}to{transform:perspective(100px)rotateY(360deg)}}@keyframes pair-portal{0%,15%,to{opacity:0;transform:translate(-50%,-50%)scale(.1)}40%,58%{opacity:.7;transform:translate(-50%,-50%)scale(1)rotate(90deg)}84%{opacity:0;transform:translate(-50%,-50%)scale(1.8)rotate(150deg)}}.palette-toggle{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;touch-action:manipulation;border-radius:999px;flex-shrink:0;place-items:center;padding:0;display:inline-grid;position:relative;overflow:hidden}.palette-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.palette-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.palette-icon-stage{isolation:isolate;pointer-events:none;width:28px;height:24px;display:block;position:relative}.palette-icon{opacity:0;transform-origin:50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;align-items:center;display:flex;position:absolute;inset:0}.palette-icon i{background:#781e3d;border:1px solid #0000001f;border-radius:50%;flex:none;width:18px;height:18px;display:block}.palette-icon i+i{background:#d3ac54;margin-left:-8px}.palette-icon[data-icon-for=green] i{background:#0f766e}.palette-icon[data-icon-for=green] i+i{background:#f8fbfa}.palette-icon-stage[data-target=green] [data-icon-for=green],.palette-icon-stage[data-target=bordeaux-gold] [data-icon-for=bordeaux-gold]{opacity:1}:root[data-palette=green]{--accent:#0f766e;--accent-strong:#0a5f59;--accent-soft:#d9f1ed;--on-accent:#fff;--page:#f8fbfa;--surface:#fff;--text:#101b19;--muted:#506763;--line:#d7e3e1;--shadow:0 18px 60px #0d3a341a}:root[data-palette=green][data-theme=dark]{--accent:#5eead4;--accent-strong:#99f6e4;--accent-soft:#123c38;--on-accent:#032b26;--page:#061311;--surface:#0a1c19;--text:#ecfdf8;--muted:#acd0c9;--line:#21443f;--shadow:0 20px 70px #00000052}:root[data-palette=bordeaux-gold] .hero-copy h1 span:last-child{color:var(--gold)}:root[data-palette=bordeaux-gold] .topbar{border-bottom-color:color-mix(in srgb, var(--gold) 45%, var(--line))}:root[data-palette=bordeaux-gold] :is(.title-floor,.title-message>span){background:var(--gold)}:root[data-palette=bordeaux-gold] .title-file:nth-child(2){background:var(--gold-soft)}:root[data-palette=bordeaux-gold] :is(.title-file,.title-file-tab,.motion-button,.motion-hint a),:root[data-palette=bordeaux-gold] .motion-hint a:after{border-color:color-mix(in srgb, var(--gold) 60%, var(--line))}:root[data-palette=bordeaux-gold] .project-count{color:var(--gold)}:root[data-palette=bordeaux-gold] .zip-slider{border-color:var(--gold);background:linear-gradient(100deg,#d3ac54,#fff5db 44%,#a57527);box-shadow:0 3px 8px #52122840}:root[data-palette=bordeaux-gold] .zip-pull{background:linear-gradient(90deg,#d3ac54,#fff5db,#d3ac54);border-color:#a57527}:root[data-palette=bordeaux-gold] .zip-pull span{background:#94671573;border-color:#a57527}@media (max-width:560px){.topbar .brand>span{display:none}.header-actions{gap:6px}}
