:root{color-scheme:dark;--color-paper:#0b0b0a;--color-surface:#151513;--color-ink:#ebe6dc;--color-body:#d4d0c8;--color-meta:#b3afa7;--color-num:#a5a198;--color-rule:#23221f;--color-chip:#4a4842;--color-live:#5b9dff;--font-sans:"Instrument Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-num:"Geist",var(--font-sans);--font-display:"Instrument Serif",Georgia,serif;--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ease-out:cubic-bezier(0.16,1,0.3,1);--dur:200ms;--gutter:clamp(1.25rem,4vw,3.5rem);--header-h:4rem}html{scroll-padding-top:calc(var(--header-h) + 1rem)}body{font-size:16px;line-height:1.6}a{text-decoration:none}:focus-visible{outline:1px solid var(--color-ink);outline-offset:3px}::-moz-selection{background:var(--color-ink);color:var(--color-paper)}::selection{background:var(--color-ink);color:var(--color-paper)}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:30;padding:.5rem .75rem;background:var(--color-ink);color:var(--color-paper);font-size:.875rem}.skip-link:focus{top:1rem}.text-link{color:var(--color-ink);font-weight:500;transition:opacity var(--dur) var(--ease-out)}.text-link:hover{opacity:.6}.body-copy{max-width:52ch;font-size:1.0625rem;line-height:1.65;color:var(--color-body)}.body-copy+.body-copy{margin-top:1.25rem}.link-row{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.5rem;font-size:.9375rem}.icon-link{display:inline-flex;color:var(--color-meta);transition:color var(--dur) var(--ease-out),transform .16s var(--ease-out)}.icon-link:hover{color:var(--color-ink)}.icon-link:active{transform:scale(.92)}.icon-link svg{width:1.375rem;height:1.375rem}.topnav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--header-h);padding:0 max(var(--gutter),calc((100% - 1440px) / 2 + var(--gutter)));border-bottom:1px solid transparent;transition:background-color .3s var(--ease-out),border-color .3s var(--ease-out)}.topnav[data-scrolled=true]{background:var(--color-paper);border-color:var(--color-rule)}.topnav-name{font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink);white-space:nowrap}.topnav-links{display:flex;gap:2rem;font-size:.875rem;white-space:nowrap}.topnav-links a{color:var(--color-body);transition:color var(--dur) var(--ease-out)}.topnav-links a:hover,.topnav-links a[aria-current]{color:var(--color-ink)}.page{max-width:1440px;margin:0 auto;padding:0 var(--gutter)}.hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));-moz-column-gap:1.5rem;column-gap:1.5rem;align-items:center;min-height:calc(100vh - var(--header-h));min-height:calc(100svh - var(--header-h));padding:3rem 0 5rem}.hero-copy{grid-column:1/8}.hero-art{grid-column:9/-1;justify-self:center;height:clamp(24rem,68vh,38rem);width:auto;color:var(--color-num)}.hero-art-node{stroke:var(--color-live)}.hero-title{font-size:clamp(2.25rem,4.2vw,4rem);font-weight:500;line-height:1.08;letter-spacing:-.02em;color:var(--color-ink)}.hero-title-sub{display:block;color:var(--color-meta)}.hero-location{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:2rem;white-space:nowrap;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-body)}.live-dot{position:relative;flex:none;width:var(--dot,7px);height:var(--dot,7px);border-radius:50%;background:var(--color-live);animation:hero-breathe 2.4s ease-in-out infinite}.live-dot:after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--color-live);animation:hero-pulse 2.4s var(--ease-out) infinite}@keyframes hero-pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}@keyframes hero-breathe{0%,to{opacity:1}50%{opacity:.55}}.hero-about{max-width:46ch;margin-top:2rem;font-size:1.125rem;line-height:1.6;color:var(--color-body)}.hero-about+.hero-about{margin-top:1rem}.hero-location-sep{color:var(--color-chip)}.hero .link-row{margin-top:2.5rem;gap:.5rem 1.5rem}@media (prefers-reduced-motion:no-preference){.hero-copy>*{animation:hero-rise .45s var(--ease-out) backwards}.hero-copy>:nth-child(2){animation-delay:60ms}.hero-copy>:nth-child(3){animation-delay:.12s}.hero-copy>:nth-child(4){animation-delay:.18s}.hero-art{animation:hero-grow 1.2s var(--ease-out) .3s backwards}.hero-art-node{animation:hero-fade .4s var(--ease-out) 1.2s backwards}}@keyframes hero-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes hero-grow{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}@keyframes hero-fade{0%{opacity:0}}@view-transition{navigation:auto}.section{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));-moz-column-gap:1.5rem;column-gap:1.5rem;align-items:start;position:relative;padding:8rem 0;border-top:1px solid var(--color-rule)}.sec-head{grid-column:1/3;display:flex;flex-direction:column;gap:.875rem}.sec-num{font-family:var(--font-display);font-size:clamp(2.75rem,5.25vw,4.5rem);font-weight:400;font-variant-numeric:lining-nums tabular-nums;line-height:.8;margin:-.25rem 0 0 -.04em;color:var(--color-num)}.sec-title{font-family:var(--font-mono);font-size:.75rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--color-meta)}.section-foot{margin-top:2.5rem;font-size:.9375rem}.chip-link{--dx:100%;--dy:0%;position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:.625rem;padding:.625rem 1rem .625rem 1.25rem;border:1px solid var(--color-chip);border-radius:999px;font-size:.875rem;color:var(--color-ink);transition:border-color .5s var(--ease-out),color .5s var(--ease-out),transform .16s var(--ease-out)}.chip-link[data-external]{--dy:-100%}.chip-link:before{content:"";position:absolute;z-index:-1;left:-25%;top:100%;width:150%;aspect-ratio:1;border-radius:50%;background:var(--color-ink);transition:transform .6s var(--ease-out)}.chip-arrow{display:inline-grid;width:.875rem;height:.875rem;overflow:hidden}.chip-arrow svg{grid-area:1/1;width:100%;height:100%;transition:transform .5s var(--ease-out)}.chip-arrow svg+svg{transform:translate(calc(var(--dx) * -1),calc(var(--dy) * -1))}.chip-link:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.chip-link:hover{border-color:var(--color-ink);color:var(--color-paper)}.chip-link:hover:before{transform:translateY(-55%)}.chip-link:hover .chip-arrow svg{transform:translate(var(--dx),var(--dy))}.chip-link:hover .chip-arrow svg+svg{transform:none;transition-delay:60ms}}.work{padding-bottom:5rem}.project-list{grid-column:3/-1}.project-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,24rem);-moz-column-gap:3rem;column-gap:3rem;align-items:center;min-height:9.5rem;padding:2rem 0;border-top:1px solid var(--color-rule)}.project-row:first-child{border-top:0;padding-top:0}.project-name a:after{content:"";position:absolute;inset:0}.project-links a,.project-status{position:relative;z-index:1}.project-name{font-size:clamp(1.75rem,2.6vw,2.25rem);font-weight:500;line-height:1.1;letter-spacing:-.015em;color:var(--color-ink)}.project-desc{margin-top:.375rem;font-size:1.0625rem;color:var(--color-body)}.project-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;margin-top:1rem;font-size:.875rem}.project-status{display:inline-flex;align-items:center;gap:.4rem;align-self:center;padding:.2rem .55rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--color-live) 35%,transparent);background:color-mix(in srgb,var(--color-live) 8%,transparent);font-family:var(--font-mono);font-size:.625rem;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--color-body)}.project-status .live-dot{--dot:5px}.project-cover{position:relative;aspect-ratio:40/21;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-chip);border-radius:6px;transition:border-color .4s var(--ease-out)}.project-cover>img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .6s var(--ease-out)}.project-row:hover .project-cover>img{transform:scale(1.02)}.project-row:hover .project-cover{border-color:color-mix(in srgb,var(--color-ink) 40%,transparent)}.exp-list{grid-column:3/-1}.exp-row{display:grid;grid-template-columns:7rem minmax(0,1fr) minmax(0,1fr);-moz-column-gap:2rem;column-gap:2rem;align-items:baseline;padding:1.75rem 0;border-top:1px solid var(--color-rule)}.exp-row:first-child{border-top:0;padding-top:0}.exp-time{font-family:var(--font-num);font-size:.875rem;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;color:var(--color-meta);white-space:nowrap}.exp-company{font-size:1.375rem;font-weight:500;letter-spacing:-.015em;color:var(--color-ink)}.exp-role{margin-top:.25rem;font-size:1rem}.exp-note,.exp-role{color:var(--color-body)}.exp-note{font-size:.9375rem}.exp-foot,.work-foot{grid-column:3/-1}.contact{padding-bottom:6rem}.contact-body{grid-column:3/12}.contact-statement{font-size:clamp(1.75rem,3.2vw,2.75rem);font-weight:500;line-height:1.02;letter-spacing:-.025em;color:var(--color-ink)}.contact-foot{margin-top:2rem}.contact-email{display:inline-block;margin-top:1.75rem;font-size:clamp(1.25rem,2vw,1.625rem);letter-spacing:-.01em}.footer{display:flex;justify-content:space-between;gap:1rem;padding:2rem 0 3rem;border-top:1px solid var(--color-rule);font-family:var(--font-mono);font-size:.75rem}.footer,.footer .text-link{color:var(--color-meta)}.archive{padding:5rem 0 6rem}.archive .back-link{font-size:.875rem}.archive-title{margin:2.5rem 0 1rem;font-size:clamp(2.5rem,5vw,4rem);font-weight:500;line-height:1.02;letter-spacing:-.025em;color:var(--color-ink)}.archive-list{margin-top:4rem}.archive-row{display:grid;grid-template-columns:5rem minmax(0,.9fr) minmax(0,1.5fr) minmax(0,13rem);gap:1.5rem;align-items:baseline;padding:1.5rem 0;border-top:1px solid var(--color-rule)}.archive-row h2{font-size:1.125rem;font-weight:500;letter-spacing:-.01em;color:var(--color-ink)}.archive-tools{display:flex;flex-wrap:wrap;gap:.375rem}.archive-tools li{padding:.125rem .5rem;border:1px solid var(--color-chip);border-radius:4px;font-family:var(--font-mono);font-size:.75rem;line-height:1.6;color:var(--color-ink)}.archive-links{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:.5rem 1rem;font-size:.875rem;white-space:nowrap}.resume-head{padding-bottom:4.5rem}.resume-head-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem 3rem;flex-wrap:wrap;margin-top:2.5rem}.resume-head .archive-title{margin:0}.resume-id{text-align:right}.resume-name{margin-top:.5rem;font-size:1.75rem;font-weight:500;letter-spacing:-.02em;line-height:1.1;color:var(--color-ink)}.resume-tagline{margin-top:.375rem;font-size:1rem;color:var(--color-body)}.resume-contact{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.375rem 1.25rem;margin-top:1rem;font-size:.9375rem}.resume-download{margin-top:1.5rem}.resume-section{padding:4.5rem 0}.resume-summary{grid-column:3/11;max-width:62ch;font-size:1.25rem;line-height:1.6;letter-spacing:-.005em;color:var(--color-ink)}.resume-skills{grid-column:3/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:2rem 2.5rem}.resume-skill dt{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-body)}.resume-skill dd{margin-top:.5rem;font-size:.9375rem;line-height:1.6;color:var(--color-ink)}.resume-list{grid-column:3/-1}.resume-row{padding:2.5rem 0;border-top:1px solid var(--color-rule)}.resume-row:first-child{border-top:0;padding-top:0}.resume-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;-moz-column-gap:2rem;column-gap:2rem;row-gap:.375rem;align-items:baseline}.resume-row-title{font-size:1.5rem;font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--color-ink)}.resume-date{font-family:var(--font-num);font-size:.875rem;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink);white-space:nowrap;text-align:right}.resume-role{font-size:1.0625rem;color:var(--color-body)}.resume-place{font-size:.9375rem;color:var(--color-meta);text-align:right}.resume-tools{margin-top:.75rem}.resume-points{max-width:75ch;margin-top:1.25rem;display:grid;gap:.625rem}.resume-points li{position:relative;padding-left:1.25rem;font-size:1rem;line-height:1.65;color:var(--color-body)}.resume-points li:before{content:"–";position:absolute;left:0;color:var(--color-meta)}.resume-points strong{font-weight:500;color:var(--color-ink)}@media (max-width:900px){.hero-copy{grid-column:1/-1}.hero-art{display:none}.hero{min-height:0;padding:4rem 0 5rem}.section{display:block;padding:5rem 0}.sec-head{flex-direction:row;align-items:baseline;gap:1rem;margin-bottom:2.5rem}.sec-num{font-size:3rem}.exp-row{display:block}.exp-company,.exp-note{margin-top:.5rem}.resume-section{padding:4rem 0}.resume-id{text-align:left}.resume-contact{justify-content:flex-start}}@media (max-width:640px){.resume-row-head{grid-template-columns:minmax(0,1fr)}.resume-date,.resume-place{text-align:left}.resume-summary{font-size:1.0625rem}.topnav-name{font-size:.75rem;letter-spacing:.08em}.topnav-links{gap:1rem;font-size:.8125rem}.hero-location{display:grid;grid-template-columns:auto 1fr}.hero-location-sep{display:none}.hero-location>span:last-child{grid-column:2}.project-row{grid-template-columns:minmax(0,1fr);row-gap:1.25rem;min-height:0;padding:2rem 0}.project-row:first-child{padding-top:0}.archive-row{grid-template-columns:3.5rem minmax(0,1fr);row-gap:.75rem}.archive-links,.archive-tools{grid-column:2;justify-content:flex-start}}@media (max-width:400px){.topnav-name{font-size:.6875rem;letter-spacing:.04em}.topnav-links{gap:.625rem;font-size:.75rem}}@media (max-width:360px){.topnav-resume{display:none}}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){.section[data-reveal=line]{border-top-color:transparent}.section[data-reveal=line]:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--color-rule);transform-origin:left;transition:transform .6s var(--ease-out)}.section[data-reveal=line]:not([data-inview]):before{transform:scaleX(0)}[data-reveal=num],[data-reveal=up]{transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);transition-delay:var(--d,0ms)}[data-reveal=num]:not([data-inview]){opacity:0;transform:translateY(.15em)}[data-reveal=up]:not([data-inview]){opacity:0;transform:translateY(8px)}[data-reveal=cover]{clip-path:inset(0 round 6px);transition:clip-path .6s var(--ease-out),border-color .4s var(--ease-out);transition-delay:var(--d,0ms),0ms}[data-reveal=cover]:not([data-inview]){clip-path:inset(100% 0 0 0 round 6px)}[data-reveal=cover]>img{transition:transform .8s var(--ease-out)}[data-reveal=cover]:not([data-inview])>img{transform:scale(1.08)}}@media print{:root{--color-paper:#fff;--color-ink:#000;--color-body:#222;--color-meta:#444;--color-num:#888;--color-rule:#ccc;--color-chip:#bbb}body{background:#fff}.back-link,.footer,.resume-download,.skip-link,.topnav{display:none}.archive{padding:0 0 1.5rem}.archive-title{margin-top:0}.resume-section{padding:1.5rem 0}.sec-num{font-size:2rem}.resume-row,.resume-skill{-moz-column-break-inside:avoid;break-inside:avoid}.resume-row{padding:.75rem 0}[data-reveal]{opacity:1!important;transform:none!important;filter:none!important}.section[data-reveal=line]{border-top-color:var(--color-rule)!important}.section[data-reveal=line]:before{display:none}}

/* ! tailwindcss v3.4.1 | 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:var(--font-body),IBM Plex Sans,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:var(--font-mono),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;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-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]{display:none}:root{--inherit:inherit;--current:currentColor;--transparent:transparent;--black:#000;--white:#fff;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--gray-950:#030712;--zinc-50:#fafafa;--zinc-100:#f4f4f5;--zinc-200:#e4e4e7;--zinc-300:#d4d4d8;--zinc-400:#a1a1aa;--zinc-500:#71717a;--zinc-600:#52525b;--zinc-700:#3f3f46;--zinc-800:#27272a;--zinc-900:#18181b;--zinc-950:#09090b;--neutral-50:#fafafa;--neutral-100:#f5f5f5;--neutral-200:#e5e5e5;--neutral-300:#d4d4d4;--neutral-400:#a3a3a3;--neutral-500:#737373;--neutral-600:#525252;--neutral-700:#404040;--neutral-800:#262626;--neutral-900:#171717;--neutral-950:#0a0a0a;--stone-50:#fafaf9;--stone-100:#f5f5f4;--stone-200:#e7e5e4;--stone-300:#d6d3d1;--stone-400:#a8a29e;--stone-500:#78716c;--stone-600:#57534e;--stone-700:#44403c;--stone-800:#292524;--stone-900:#1c1917;--stone-950:#0c0a09;--red-50:#fef2f2;--red-100:#fee2e2;--red-200:#fecaca;--red-300:#fca5a5;--red-400:#f87171;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--red-800:#991b1b;--red-900:#7f1d1d;--red-950:#450a0a;--orange-50:#fff7ed;--orange-100:#ffedd5;--orange-200:#fed7aa;--orange-300:#fdba74;--orange-400:#fb923c;--orange-500:#f97316;--orange-600:#ea580c;--orange-700:#c2410c;--orange-800:#9a3412;--orange-900:#7c2d12;--orange-950:#431407;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--amber-800:#92400e;--amber-900:#78350f;--amber-950:#451a03;--yellow-50:#fefce8;--yellow-100:#fef9c3;--yellow-200:#fef08a;--yellow-300:#fde047;--yellow-400:#facc15;--yellow-500:#eab308;--yellow-600:#ca8a04;--yellow-700:#a16207;--yellow-800:#854d0e;--yellow-900:#713f12;--yellow-950:#422006;--lime-50:#f7fee7;--lime-100:#ecfccb;--lime-200:#d9f99d;--lime-300:#bef264;--lime-400:#a3e635;--lime-500:#84cc16;--lime-600:#65a30d;--lime-700:#4d7c0f;--lime-800:#3f6212;--lime-900:#365314;--lime-950:#1a2e05;--green-50:#f0fdf4;--green-100:#dcfce7;--green-200:#bbf7d0;--green-300:#86efac;--green-400:#4ade80;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;--green-800:#166534;--green-900:#14532d;--green-950:#052e16;--emerald-50:#ecfdf5;--emerald-100:#d1fae5;--emerald-200:#a7f3d0;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--emerald-700:#047857;--emerald-800:#065f46;--emerald-900:#064e3b;--emerald-950:#022c22;--teal-50:#f0fdfa;--teal-100:#ccfbf1;--teal-200:#99f6e4;--teal-300:#5eead4;--teal-400:#2dd4bf;--teal-500:#14b8a6;--teal-600:#0d9488;--teal-700:#0f766e;--teal-800:#115e59;--teal-900:#134e4a;--teal-950:#042f2e;--cyan-50:#ecfeff;--cyan-100:#cffafe;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--cyan-800:#155e75;--cyan-900:#164e63;--cyan-950:#083344;--sky-50:#f0f9ff;--sky-100:#e0f2fe;--sky-200:#bae6fd;--sky-300:#7dd3fc;--sky-400:#38bdf8;--sky-500:#0ea5e9;--sky-600:#0284c7;--sky-700:#0369a1;--sky-800:#075985;--sky-900:#0c4a6e;--sky-950:#082f49;--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-300:#93c5fd;--blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--blue-900:#1e3a8a;--blue-950:#172554;--indigo-50:#eef2ff;--indigo-100:#e0e7ff;--indigo-200:#c7d2fe;--indigo-300:#a5b4fc;--indigo-400:#818cf8;--indigo-500:#6366f1;--indigo-600:#4f46e5;--indigo-700:#4338ca;--indigo-800:#3730a3;--indigo-900:#312e81;--indigo-950:#1e1b4b;--violet-50:#f5f3ff;--violet-100:#ede9fe;--violet-200:#ddd6fe;--violet-300:#c4b5fd;--violet-400:#a78bfa;--violet-500:#8b5cf6;--violet-600:#7c3aed;--violet-700:#6d28d9;--violet-800:#5b21b6;--violet-900:#4c1d95;--violet-950:#2e1065;--purple-50:#faf5ff;--purple-100:#f3e8ff;--purple-200:#e9d5ff;--purple-300:#d8b4fe;--purple-400:#c084fc;--purple-500:#a855f7;--purple-600:#9333ea;--purple-700:#7e22ce;--purple-800:#6b21a8;--purple-900:#581c87;--purple-950:#3b0764;--fuchsia-50:#fdf4ff;--fuchsia-100:#fae8ff;--fuchsia-200:#f5d0fe;--fuchsia-300:#f0abfc;--fuchsia-400:#e879f9;--fuchsia-500:#d946ef;--fuchsia-600:#c026d3;--fuchsia-700:#a21caf;--fuchsia-800:#86198f;--fuchsia-900:#701a75;--fuchsia-950:#4a044e;--pink-50:#fdf2f8;--pink-100:#fce7f3;--pink-200:#fbcfe8;--pink-300:#f9a8d4;--pink-400:#f472b6;--pink-500:#ec4899;--pink-600:#db2777;--pink-700:#be185d;--pink-800:#9d174d;--pink-900:#831843;--pink-950:#500724;--rose-50:#fff1f2;--rose-100:#ffe4e6;--rose-200:#fecdd3;--rose-300:#fda4af;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--rose-800:#9f1239;--rose-900:#881337;--rose-950:#4c0519;--midgreen:#025259;--midgreen-dark:#01373d;--midgreen-deep:#012b2f;--midgreen-surface:#013e45;--salmon:#ff947a;--salmon-hover:#ffa994;--salmon-subtle:rgba(255,148,122,.15);--cannoli:#f1f0e2;--cannoli-muted:#a5c2c4;--paper:var(--color-paper);--paper-raised:var(--color-paper-2);--rule:var(--color-rule);--terracotta:var(--color-accent);--border:hsl(var(--border));--input:hsl(var(--input));--ring:hsl(var(--ring));--background:hsl(var(--background));--foreground:hsl(var(--foreground));--primary:hsl(var(--primary));--primary-foreground:hsl(var(--primary-foreground));--secondary:hsl(var(--secondary));--secondary-foreground:hsl(var(--secondary-foreground));--destructive:hsl(var(--destructive));--destructive-foreground:hsl(var(--destructive-foreground));--muted:hsl(var(--muted));--muted-foreground:hsl(var(--muted-foreground));--accent:hsl(var(--accent));--accent-foreground:hsl(var(--accent-foreground));--popover:hsl(var(--popover));--popover-foreground:hsl(var(--popover-foreground));--card:hsl(var(--card));--card-foreground:hsl(var(--card-foreground))}body,html{background-color:var(--color-paper);color:var(--color-ink);overflow-x:clip}body{font-family:var(--font-sans);padding-bottom:env(safe-area-inset-bottom,0)}canvas,img,svg,video{max-width:100%}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,: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:rgba(59,130,246,.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: }::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:rgba(59,130,246,.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: }.block{display:block}.resize{resize:both}.scroll-smooth{scroll-behavior:smooth}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}