*,:before,:after{box-sizing:border-box}*{margin:0}body{-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}
:root{--color-orange-400:#ff6b3d;--color-orange-500:#ff501a;--color-cream-50:#f6f4f1;--color-cream-100:#ede9e3;--color-cream-200:#e4ded2;--color-cream-300:#dfdcd4;--color-cream-900:#201b13;--color-neutral-0:#fff;--color-neutral-50:#f4f4f4;--color-neutral-100:#e9e9e9;--color-neutral-200:#dedede;--color-neutral-300:#dcdcdc;--color-neutral-700:#3a3a3a;--color-neutral-800:#2a2a2a;--color-neutral-900:#1c1c1c;--color-neutral-950:#121212;--color-neutral-1000:#000;--rem-0:0;--rem-1:.25rem;--rem-2:.5rem;--rem-3:.75rem;--rem-3-5:.875rem;--rem-4:1rem;--rem-5:1.25rem;--rem-6:1.5rem;--rem-7:1.75rem;--rem-8:2rem;--rem-9:2.25rem;--rem-10:2.5rem;--rem-12:3rem;--rem-14:3.5rem;--rem-16:4rem;--rem-18:4.5rem;--rem-20:5rem;--rem-24:6rem;--rem-28:7rem;--rem-32:8rem;--duration-fast:.15s;--duration-base:.3s;--duration-slow:.5s;--easing-standard:cubic-bezier(.4, 0, .2, 1);--z-base:0;--z-elevated:10;--z-sticky:50;--z-overlay:100;--z-header:9999}
:root{--color-primary:var(--color-orange-500);--color-on-primary:var(--color-neutral-0);--color-surface:var(--color-cream-50);--color-on-surface:var(--color-cream-900);--color-surface-variant:var(--color-cream-200);--color-on-surface-variant:var(--color-cream-900);--color-background:var(--color-cream-100);--color-on-background:var(--color-cream-900);--color-surface-inverse:var(--color-neutral-950);--color-on-surface-inverse:var(--color-neutral-50);--color-outline:var(--color-cream-300);--color-link:var(--color-primary);--font-weight-light:400;--font-weight-regular:500;--font-weight-semibold:600;--font-weight-bold:700;--font-size-xs:var(--rem-3);--font-lineheight-xs:1.6;--font-size-sm:var(--rem-3-5);--font-lineheight-sm:1.5;--font-size-base:var(--rem-4);--font-lineheight-base:1.6;--font-size-lg:var(--rem-6);--font-lineheight-lg:1.3;--font-size-xl:var(--rem-9);--font-lineheight-xl:1.3;--font-family-primary:var(--font-geist-sans), system-ui, sans-serif;--font-family-secondary:var(--font-geist-mono), ui-monospace, monospace;--font-family-mono:var(--font-geist-mono), ui-monospace, monospace;--font-display:var(--font-weight-light) clamp(var(--font-size-lg), 5vw, var(--font-size-xl))/var(--font-lineheight-xl) var(--font-family-primary);--font-heading:var(--font-weight-semibold) var(--font-size-lg)/var(--font-lineheight-lg) var(--font-family-primary);--font-title:var(--font-weight-semibold) var(--font-size-base)/var(--font-lineheight-base) var(--font-family-primary);--font-body-large:var(--font-weight-regular) var(--font-size-lg)/var(--font-lineheight-lg) var(--font-family-primary);--font-body:var(--font-weight-regular) var(--font-size-base)/var(--font-lineheight-base) var(--font-family-primary);--font-body-small:var(--font-weight-regular) var(--font-size-sm)/var(--font-lineheight-sm) var(--font-family-primary);--font-caption:var(--font-weight-regular) var(--font-size-xs)/var(--font-lineheight-xs) var(--font-family-primary);--font-label:var(--font-weight-bold) var(--font-size-xs)/var(--font-lineheight-xs) var(--font-family-primary);--font-quote:var(--font-weight-bold) var(--font-size-lg)/var(--font-lineheight-lg) var(--font-family-primary);--font-quote-large:var(--font-weight-bold) var(--font-size-xl)/var(--font-lineheight-xl) var(--font-family-primary);--font-code:var(--font-weight-regular) var(--font-size-sm)/var(--font-lineheight-sm) var(--font-family-mono);--font-control:var(--font-weight-regular) var(--font-size-sm)/var(--font-lineheight-sm) var(--font-family-primary);--font-control-small:var(--font-weight-regular) var(--font-size-xs)/var(--font-lineheight-xs) var(--font-family-primary);--font-display-letterspacing:0;--font-heading-letterspacing:0;--font-title-letterspacing:.02em;--font-body-large-letterspacing:0;--font-body-letterspacing:0;--font-body-small-letterspacing:0;--font-caption-letterspacing:0;--font-label-letterspacing:.1em;--font-quote-letterspacing:0;--font-quote-large-letterspacing:0;--font-code-letterspacing:0;--font-control-letterspacing:.02em;--font-control-small-letterspacing:.05em;--radius-none:0;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-pill:9999px;--control-height:48px;--content-max-width:56rem;--border-width-hairline:.5px;--border-width-thin:1px;--border-width-medium:2px;--shadow-lg:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a}body:not([data-theme=neutral])[data-theme-mode=dark]{--color-primary:var(--color-orange-400);--color-on-primary:var(--color-neutral-950);--color-surface:var(--color-neutral-900);--color-on-surface:var(--color-neutral-100);--color-surface-variant:var(--color-neutral-800);--color-on-surface-variant:var(--color-neutral-100);--color-background:var(--color-neutral-950);--color-on-background:var(--color-neutral-100);--color-surface-inverse:var(--color-neutral-100);--color-on-surface-inverse:var(--color-neutral-900);--color-outline:var(--color-neutral-700);--color-link:var(--color-primary)}@media (prefers-color-scheme:dark){body:not([data-theme=neutral]):not([data-theme-mode]){--color-primary:var(--color-orange-400);--color-on-primary:var(--color-neutral-950);--color-surface:var(--color-neutral-900);--color-on-surface:var(--color-neutral-100);--color-surface-variant:var(--color-neutral-800);--color-on-surface-variant:var(--color-neutral-100);--color-background:var(--color-neutral-950);--color-on-background:var(--color-neutral-100);--color-surface-inverse:var(--color-neutral-100);--color-on-surface-inverse:var(--color-neutral-900);--color-outline:var(--color-neutral-700);--color-link:var(--color-primary)}}[data-theme=neutral]{--color-primary:var(--color-orange-500);--color-on-primary:var(--color-neutral-0);--color-surface:var(--color-neutral-50);--color-on-surface:var(--color-neutral-900);--color-surface-variant:var(--color-neutral-200);--color-on-surface-variant:var(--color-neutral-900);--color-background:var(--color-neutral-100);--color-on-background:var(--color-neutral-900);--color-surface-inverse:var(--color-neutral-950);--color-on-surface-inverse:var(--color-neutral-50);--color-outline:var(--color-neutral-300);--color-link:var(--color-primary)}body[data-theme=neutral][data-theme-mode=dark]{--color-primary:var(--color-orange-400);--color-on-primary:var(--color-neutral-950);--color-surface:var(--color-neutral-900);--color-on-surface:var(--color-neutral-100);--color-surface-variant:var(--color-neutral-800);--color-on-surface-variant:var(--color-neutral-100);--color-background:var(--color-neutral-950);--color-on-background:var(--color-neutral-100);--color-surface-inverse:var(--color-neutral-100);--color-on-surface-inverse:var(--color-neutral-900);--color-outline:var(--color-neutral-700);--color-link:var(--color-primary)}@media (prefers-color-scheme:dark){body[data-theme=neutral]:not([data-theme-mode]){--color-primary:var(--color-orange-400);--color-on-primary:var(--color-neutral-950);--color-surface:var(--color-neutral-900);--color-on-surface:var(--color-neutral-100);--color-surface-variant:var(--color-neutral-800);--color-on-surface-variant:var(--color-neutral-100);--color-background:var(--color-neutral-950);--color-on-background:var(--color-neutral-100);--color-surface-inverse:var(--color-neutral-100);--color-on-surface-inverse:var(--color-neutral-900);--color-outline:var(--color-neutral-700);--color-link:var(--color-primary)}}
html{overflow-x:hidden}body{font:var(--font-body);letter-spacing:var(--font-body-letterspacing);color:var(--color-on-surface);background-color:var(--color-surface);margin:0}h1,.project-abstract{font:var(--font-display);letter-spacing:var(--font-display-letterspacing);margin:0 0 var(--rem-2)}h2{font:var(--font-heading);letter-spacing:var(--font-heading-letterspacing);margin:0 0 var(--rem-2)}h3{font:var(--font-title);letter-spacing:var(--font-title-letterspacing)}h4,h5,h6{font:var(--font-label);letter-spacing:var(--font-label-letterspacing);text-transform:uppercase}p a{color:var(--color-link);text-underline-offset:2px;font-weight:var(--font-weight-bold);transition:opacity var(--duration-base) var(--easing-standard);text-decoration:underline}p a:hover{opacity:.7}@keyframes image-loading{0%,to{opacity:0}50%{opacity:.6}}.app-shell{min-height:100vh;font:var(--font-body);letter-spacing:var(--font-body-letterspacing);color:var(--color-on-surface);background:var(--color-surface);flex-direction:column;display:flex}.app-shell>main{flex-direction:column;flex:1;display:flex}

