@import "https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--default-font-family:"Syne", sans-serif;--default-mono-font-family:"DM Mono", monospace}}@layer base{*,:after,:before,::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]){appearance:button}::file-selector-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 utilities{.start{inset-inline-start:var(--spacing)}.block{display:block}.grid{display:grid}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.blur{--tw-blur:blur(8px);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,)}.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,)}}:root{--raspberry-50:#faeaeb;--raspberry-100:#f6d5d8;--raspberry-200:#ecacb0;--raspberry-300:#e38289;--raspberry-400:#d95961;--raspberry-500:#d02f3a;--raspberry-600:#a6262e;--raspberry-700:#7d1c23;--raspberry-800:#531317;--raspberry-900:#2a090c;--raspberry-950:#1d0708;--pistachio-50:#f8fde7;--pistachio-100:#f1fccf;--pistachio-200:#e2f99f;--pistachio-300:#d4f66f;--pistachio-400:#c6f33f;--pistachio-500:#b8f00f;--pistachio-600:#93c00c;--pistachio-700:#6e9009;--pistachio-800:#496006;--pistachio-900:#253003;--pistachio-950:#1a2202;--peppermint-50:#e9fcf8;--peppermint-100:#d3f8f2;--peppermint-200:#a7f1e5;--peppermint-300:#7bead8;--peppermint-400:#4fe3cb;--peppermint-500:#22ddbe;--peppermint-600:#1cb098;--peppermint-700:#158472;--peppermint-800:#0e584c;--peppermint-900:#072c26;--peppermint-950:#051f1b;--cantelope-50:#fdf0e7;--cantelope-100:#fce1cf;--cantelope-200:#f9c39f;--cantelope-300:#f6a56f;--cantelope-400:#f3873f;--cantelope-500:#f0690f;--cantelope-600:#c0540c;--cantelope-700:#903f09;--cantelope-800:#602a06;--cantelope-900:#301503;--cantelope-950:#220f02;--grape-50:#f5e7fe;--grape-100:#ebcffc;--grape-200:#d79efa;--grape-300:#c36ef7;--grape-400:#ae3df5;--grape-500:#9a0df2;--grape-600:#7b0ac2;--grape-700:#5d0891;--grape-800:#3e0561;--grape-900:#1f0330;--grape-950:#160222;--blueberry-50:#ecedf9;--blueberry-100:#d9dbf2;--blueberry-200:#b3b8e6;--blueberry-300:#8c94d9;--blueberry-400:#6670cc;--blueberry-500:#404cbf;--blueberry-600:#333d99;--blueberry-700:#262e73;--blueberry-800:#191f4d;--blueberry-900:#0d0f26;--blueberry-950:#090b1b;--foam-banana-50:#fffbe6;--foam-banana-100:#fff7cc;--foam-banana-200:#feef9a;--foam-banana-300:#fee867;--foam-banana-400:#fee034;--foam-banana-500:#fed801;--foam-banana-600:#cbad01;--foam-banana-700:#988201;--foam-banana-800:#655601;--foam-banana-900:#332b00;--foam-banana-950:#241e00;--theme-color-50:var(--peppermint-50);--theme-color-100:var(--peppermint-100);--theme-color-200:var(--peppermint-200);--theme-color-300:var(--peppermint-300);--theme-color-400:var(--peppermint-400);--theme-color-500:var(--peppermint-500);--theme-color-600:var(--peppermint-600);--theme-color-700:var(--peppermint-700);--theme-color-800:var(--peppermint-800);--theme-color-900:var(--peppermint-900);--theme-color-950:var(--peppermint-950);--bg:#fffcfa;--surface:#fff;--surface-2:#f4f8fa;--border:#bdd2de;--border-active:#93b5c6;--text:#18232b;--text-muted:#2b3d49;--text-dim:#415766;--accent:#b4496f;--accent-strong:#8f3554;--accent-contrast:#fff;--accent-dim:#ff739833;--text-h:var(--text);--accent-bg:var(--accent-dim);--accent-border:var(--border-active);--code-bg:var(--surface-2);--social-bg:var(--surface-2);--accent-contrast-shadow:0 1px 2px #0003;--shadow:0 1px 2px #18232b0a, 0 10px 24px -8px #18232b24;--sans:"Syne", "Segoe UI", Roboto, sans-serif;--heading:"DM Sans", "Syne", "Segoe UI", Roboto, sans-serif;--mono:"DM Mono", ui-monospace, Consolas, monospace;font:18px/1.6 var(--sans);letter-spacing:.1px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s,color .2s}@media (width<=1024px){:root{font-size:16px}}:root[data-theme=peppermint]{--theme-color-50:var(--peppermint-50);--theme-color-100:var(--peppermint-100);--theme-color-200:var(--peppermint-200);--theme-color-300:var(--peppermint-300);--theme-color-400:var(--peppermint-400);--theme-color-500:var(--peppermint-500);--theme-color-600:var(--peppermint-600);--theme-color-700:var(--peppermint-700);--theme-color-800:var(--peppermint-800);--theme-color-900:var(--peppermint-900);--theme-color-950:var(--peppermint-950)}:root[data-theme=raspberry]{--theme-color-50:var(--raspberry-50);--theme-color-100:var(--raspberry-100);--theme-color-200:var(--raspberry-200);--theme-color-300:var(--raspberry-300);--theme-color-400:var(--raspberry-400);--theme-color-500:var(--raspberry-500);--theme-color-600:var(--raspberry-600);--theme-color-700:var(--raspberry-700);--theme-color-800:var(--raspberry-800);--theme-color-900:var(--raspberry-900);--theme-color-950:var(--raspberry-950)}:root[data-theme=pistachio]{--theme-color-50:var(--pistachio-50);--theme-color-100:var(--pistachio-100);--theme-color-200:var(--pistachio-200);--theme-color-300:var(--pistachio-300);--theme-color-400:var(--pistachio-400);--theme-color-500:var(--pistachio-500);--theme-color-600:var(--pistachio-600);--theme-color-700:var(--pistachio-700);--theme-color-800:var(--pistachio-800);--theme-color-900:var(--pistachio-900);--theme-color-950:var(--pistachio-950)}:root[data-theme=cantelope]{--theme-color-50:var(--cantelope-50);--theme-color-100:var(--cantelope-100);--theme-color-200:var(--cantelope-200);--theme-color-300:var(--cantelope-300);--theme-color-400:var(--cantelope-400);--theme-color-500:var(--cantelope-500);--theme-color-600:var(--cantelope-600);--theme-color-700:var(--cantelope-700);--theme-color-800:var(--cantelope-800);--theme-color-900:var(--cantelope-900);--theme-color-950:var(--cantelope-950)}:root[data-theme=grape]{--theme-color-50:var(--grape-50);--theme-color-100:var(--grape-100);--theme-color-200:var(--grape-200);--theme-color-300:var(--grape-300);--theme-color-400:var(--grape-400);--theme-color-500:var(--grape-500);--theme-color-600:var(--grape-600);--theme-color-700:var(--grape-700);--theme-color-800:var(--grape-800);--theme-color-900:var(--grape-900);--theme-color-950:var(--grape-950)}:root[data-theme=blueberry]{--theme-color-50:var(--blueberry-50);--theme-color-100:var(--blueberry-100);--theme-color-200:var(--blueberry-200);--theme-color-300:var(--blueberry-300);--theme-color-400:var(--blueberry-400);--theme-color-500:var(--blueberry-500);--theme-color-600:var(--blueberry-600);--theme-color-700:var(--blueberry-700);--theme-color-800:var(--blueberry-800);--theme-color-900:var(--blueberry-900);--theme-color-950:var(--blueberry-950)}:root[data-theme=foam-banana]{--theme-color-50:var(--foam-banana-50);--theme-color-100:var(--foam-banana-100);--theme-color-200:var(--foam-banana-200);--theme-color-300:var(--foam-banana-300);--theme-color-400:var(--foam-banana-400);--theme-color-500:var(--foam-banana-500);--theme-color-600:var(--foam-banana-600);--theme-color-700:var(--foam-banana-700);--theme-color-800:var(--foam-banana-800);--theme-color-900:var(--foam-banana-900);--theme-color-950:var(--foam-banana-950)}:root[data-theme=raspberry]{--accent:var(--raspberry-700);--accent-strong:var(--raspberry-800);--accent-dim:var(--raspberry-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=raspberry]{--accent-dim:color-mix(in srgb, var(--raspberry-500) 20%, transparent)}}:root[data-theme=pistachio]{--accent:var(--pistachio-700);--accent-strong:var(--pistachio-800);--accent-dim:var(--pistachio-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=pistachio]{--accent-dim:color-mix(in srgb, var(--pistachio-500) 20%, transparent)}}:root[data-theme=cantelope]{--accent:var(--cantelope-700);--accent-strong:var(--cantelope-800);--accent-dim:var(--cantelope-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=cantelope]{--accent-dim:color-mix(in srgb, var(--cantelope-500) 20%, transparent)}}:root[data-theme=grape]{--accent:var(--grape-700);--accent-strong:var(--grape-800);--accent-dim:var(--grape-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=grape]{--accent-dim:color-mix(in srgb, var(--grape-500) 20%, transparent)}}:root[data-theme=blueberry]{--accent:var(--blueberry-700);--accent-strong:var(--blueberry-800);--accent-dim:var(--blueberry-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=blueberry]{--accent-dim:color-mix(in srgb, var(--blueberry-500) 20%, transparent)}}:root[data-theme=foam-banana]{--accent:var(--foam-banana-700);--accent-strong:var(--foam-banana-800);--accent-dim:var(--foam-banana-500)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=foam-banana]{--accent-dim:color-mix(in srgb, var(--foam-banana-500) 20%, transparent)}}:root[data-color-mode=dark][data-theme=raspberry]{--accent:var(--raspberry-300);--accent-strong:var(--raspberry-200);--accent-dim:var(--raspberry-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=raspberry]{--accent-dim:color-mix(in srgb, var(--raspberry-400) 25%, transparent)}}:root[data-color-mode=dark][data-theme=pistachio]{--accent:var(--pistachio-300);--accent-strong:var(--pistachio-200);--accent-dim:var(--pistachio-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=pistachio]{--accent-dim:color-mix(in srgb, var(--pistachio-400) 25%, transparent)}}:root[data-color-mode=dark][data-theme=cantelope]{--accent:var(--cantelope-300);--accent-strong:var(--cantelope-200);--accent-dim:var(--cantelope-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=cantelope]{--accent-dim:color-mix(in srgb, var(--cantelope-400) 25%, transparent)}}:root[data-color-mode=dark][data-theme=grape]{--accent:var(--grape-300);--accent-strong:var(--grape-200);--accent-dim:var(--grape-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=grape]{--accent-dim:color-mix(in srgb, var(--grape-400) 25%, transparent)}}:root[data-color-mode=dark][data-theme=blueberry]{--accent:var(--blueberry-300);--accent-strong:var(--blueberry-200);--accent-dim:var(--blueberry-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=blueberry]{--accent-dim:color-mix(in srgb, var(--blueberry-400) 25%, transparent)}}:root[data-color-mode=dark][data-theme=foam-banana]{--accent:var(--foam-banana-300);--accent-strong:var(--foam-banana-200);--accent-dim:var(--foam-banana-400)}@supports (color:color-mix(in lab, red, red)){:root[data-color-mode=dark][data-theme=foam-banana]{--accent-dim:color-mix(in srgb, var(--foam-banana-400) 25%, transparent)}}:root[data-color-mode=dark]{--bg:#121212;--surface:#1b1b1b;--surface-2:#252525;--border:#3d4850;--border-active:#5f7380;--text:#f3f8fb;--text-muted:#dde8ef;--text-dim:#c2d2dc;--accent:#ff7398;--accent-strong:#ff9ab5;--accent-contrast:#0b1220;--accent-dim:#ff739840;--text-h:var(--text);--accent-bg:var(--accent-dim);--accent-border:var(--border-active);--code-bg:var(--surface-2);--social-bg:var(--surface-2);--accent-contrast-shadow:none;--shadow:0 1px 2px #0006, 0 12px 28px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-color-mode]){--bg:#121212;--surface:#1b1b1b;--surface-2:#252525;--border:#3d4850;--border-active:#5f7380;--text:#f3f8fb;--text-muted:#dde8ef;--text-dim:#c2d2dc;--accent:#ff7398;--accent-strong:#ff9ab5;--accent-contrast:#0b1220;--accent-dim:#ff739840;--text-h:var(--text);--accent-bg:var(--accent-dim);--accent-border:var(--border-active);--code-bg:var(--surface-2);--social-bg:var(--surface-2);--accent-contrast-shadow:none;--shadow:0 1px 2px #0006, 0 12px 28px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}body{background:var(--bg);margin:0}#root{box-sizing:border-box;flex-direction:column;max-width:100%;min-height:100svh;margin:0 auto;display:flex}@media (width>=1400px){#root{border-inline:1px solid var(--border)}}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}h1,h2,h3{font-family:var(--heading);color:var(--text-h);font-weight:600;line-height:1.2}p{line-height:1.6}h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1rem,5vw,2.5rem)}@media (width<=1024px){h1{margin:0 0 .5rem}}h2{letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.3rem,2.8vw,1.8rem);line-height:1.2}@media (width<=1024px){h2{font-size:1.35rem}}a{text-decoration:none}code{font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border-radius:4px;padding:4px 8px;font-size:15px;line-height:135%;display:inline-flex}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-active)}::selection{background:var(--accent);color:var(--accent-contrast)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.skip-link{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus{z-index:1100;background:var(--bg);border:1px solid var(--accent-border);width:auto;height:auto;color:var(--text-h);border-radius:.5rem;padding:.6rem .9rem;position:fixed;top:1rem;left:1rem}:root{--anchor-offset:4rem}html{scroll-padding-top:var(--anchor-offset)}body.has-modal-open{overflow:hidden}section[id]{scroll-margin-top:var(--anchor-offset)}.site-header{z-index:1000;border-bottom:1px solid var(--border);background:var(--surface);color:var(--text-h);justify-content:space-between;align-items:center;padding:1rem clamp(1rem,3vw,2rem);font-size:.95rem;text-decoration:none;transition:background-color .2s,box-shadow .2s,border-color .2s;display:flex;position:sticky;top:0}.site-header.is-scrolled{background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow)}.header-controls{align-items:center;gap:.9rem;display:flex}.brand{font-family:var(--heading);letter-spacing:.01em;color:var(--text-h);font-size:clamp(1rem,3vw,2rem);font-weight:700}.site-header ul{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.primary-nav a{font-weight:500;transition:color .15s;position:relative}.site-header a:hover,.site-header a.active{color:var(--accent)}.primary-nav a.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:.05rem;left:.8rem;right:.8rem}.header-controls a{color:var(--text-h);border:1px solid #0000;border-radius:.5rem;padding:.4rem .8rem;font-size:.95rem}.color-mode-toggle{border:1px solid var(--border);background:var(--surface-2);width:2rem;height:2rem;color:var(--accent);cursor:pointer;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,border-color .15s,background .15s,color .15s;display:inline-flex}.color-mode-toggle:hover{border-color:var(--border-active);background:var(--accent-dim);transform:translateY(-1px)}.mobile-nav{display:none}.mobile-menu-toggle{width:3rem;height:3rem;color:var(--accent);cursor:pointer;border-radius:.6rem;justify-content:center;align-items:center;transition:transform .16s,border-color .16s,background .16s;display:none}.mobile-menu-toggle span{font-size:1.3rem;line-height:1}.mobile-menu-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}.theme-select-wrap--mobile{display:none}.theme-select-wrap{align-items:center;gap:.45rem;display:inline-flex;position:relative}.theme-select{border:1px solid var(--accent-border);background:var(--bg);font:inherit;border-radius:.55rem;min-width:8.1rem;padding:.35rem .5rem;font-size:.9rem}.theme-menu-trigger{cursor:pointer;min-width:8.1rem;color:var(--accent);justify-content:space-between;align-items:center;gap:.65rem;display:inline-flex}.theme-menu-trigger span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.theme-select:focus{outline:2px solid var(--accent-strong);outline-offset:2px}.theme-menu{z-index:1050;border:1px solid var(--accent-border);background:var(--bg);box-shadow:var(--shadow);border-radius:.65rem;flex-direction:column;gap:.1rem;min-width:8.1rem;margin:0;padding:0;list-style:none;display:flex;position:absolute;top:calc(100% + .35rem);right:0;overflow:hidden}.theme-option{width:100%;color:var(--text-h);text-align:left;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:0;padding:.4rem .55rem;font-size:.9rem}.theme-option:hover{background:var(--accent-bg)}.theme-option.is-active{background:var(--accent-bg);color:var(--accent);font-weight:600}.site-main{gap:1.25rem;width:min(94vw,1920px);max-width:100%;margin-inline:auto;padding:clamp(1rem,3vw,2rem);display:grid}.home-reveal{opacity:0;will-change:opacity, transform;width:100%;animation:.42s ease-out both home-reveal-in;transform:translateY(10px)}.home-reveal--1{animation-delay:45ms}.home-reveal--2{animation-delay:95ms}.home-reveal--3{animation-delay:.14s}.home-reveal--4{animation-delay:.185s}@keyframes home-reveal-in{to{opacity:1;transform:translate(0,0)}}.hero-panel-headline,.hero-panel-seeking{max-width:70ch;margin-bottom:.5rem}.hero-panel-headline{margin:0 0 1.25rem}.about-section-link{color:inherit;text-decoration:none;display:block}.about-section-link .about-content .card{transition:transform .18s,box-shadow .18s,border-color .18s}.about-section-link .about-card .section-header{justify-content:flex-start;align-items:center;gap:.35rem;width:fit-content;display:inline-flex}.about-section-link .about-card .section-header:after{content:"›";color:var(--accent);opacity:.82;font-size:1.35rem;line-height:1;transition:transform .18s,opacity .18s;transform:translate(0)}.about-section-link:hover .about-content .card,.about-section-link:focus-visible .about-content .card{box-shadow:var(--shadow);border-color:var(--border-active);transform:translateY(-2px)}.about-section-link:hover .about-card .section-header:after,.about-section-link:focus-visible .about-card .section-header:after{opacity:1;transform:translate(2px)}.btn{border:1px solid #0000;border-radius:.65rem;justify-content:center;align-items:center;padding:.6rem 1rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.btn:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.btn--ghost{color:var(--text-h);border-color:var(--accent-border);background:var(--accent-bg)}.section{text-align:left;background:var(--bg);border-radius:.5rem}.section-header{margin-bottom:1rem}.section-title-link{width:fit-content;color:inherit;align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.section-title-link:after{content:"›";color:var(--accent);opacity:.82;font-size:1.35rem;line-height:1;transition:transform .18s,opacity .18s;transform:translate(0)}.section-title-link:hover:after,.section-title-link:focus-visible:after{opacity:1;transform:translate(2px)}.card{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;padding:1rem}.about-content{gap:.85rem;display:grid}.about-card{flex-direction:column;justify-content:center;gap:.4rem;padding:clamp(1.5rem,3vw,2.5rem);display:flex}.about-eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.6rem;font-size:.8rem;font-weight:500}.about-headline{font-family:var(--heading);letter-spacing:-.01em;color:var(--text-h);font-size:clamp(1rem,3vw,2rem);font-weight:600;line-height:1.18}.hero-panel-seeking{color:var(--text-muted)}.about-frameworks-card{justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.about-frameworks{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;width:100%;margin:0;padding:0;list-style:none;display:grid}.framework-item{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;place-items:center;min-height:74px;transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out;display:grid}.framework-item:hover{box-shadow:var(--shadow);border-color:var(--border-active);transform:translateY(-1px)}.framework-logo{aspect-ratio:1;object-fit:contain;width:clamp(2rem,4vw,2.6rem);height:clamp(2rem,4vw,2.6rem)}.about-eyebrow,.about-headline,.hero-panel-seeking{opacity:0;animation:.48s ease-out both hero-line-in}.about-eyebrow{animation-delay:60ms}.about-headline{animation-delay:.14s}.hero-panel-seeking{animation-delay:.3s}@keyframes hero-line-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.grid{gap:.85rem;display:grid}.grid--projects,.grid--skills{grid-template-columns:repeat(1,minmax(0,1fr))}.grid--projects{align-items:stretch}.grid--skills{align-items:start}.skill-card{flex-direction:column;gap:.7rem;padding:24px 1.25rem;display:flex}.skill-card h3{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:.74rem;font-weight:500}.skill-card .pill-list{margin-top:0}.project-card-top{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.project-card-title{padding-top:.75rem;padding-bottom:.75rem}.project-media{aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:.7rem;width:auto;max-width:100%;max-height:60vh;display:block}.project-media--placeholder{object-fit:contain;padding:.5rem;max-height:367px!important}.grid--projects .project-media{aspect-ratio:auto;object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%}.grid--projects .project-media--placeholder{aspect-ratio:auto;width:100%;max-width:100%;max-height:100%!important}.project-card-link{color:inherit;height:100%;text-decoration:none;display:flex}.project-card{flex-direction:column;gap:.7rem;width:100%;height:100%;display:flex}.project-card-media-frame{border-radius:.7rem;place-items:center;width:100%;height:100%;display:grid;overflow:hidden}.project-card-media-frame:not(.project-card-media-frame--tall) .project-media{object-fit:contain;border-radius:.7rem;width:100%;max-width:100%;height:100%}.project-card-media-frame--tall{aspect-ratio:auto;background:0 0;height:auto;display:block;overflow:visible}.project-card--tall .project-media{aspect-ratio:auto;object-fit:contain;object-position:center;justify-self:center;width:auto;max-width:100%;height:auto;max-height:min(60vh,420px);margin-inline:auto}.project-card--tall .project-media--placeholder{width:auto;max-height:367px!important}.project-card-link .project-card{transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}.project-card-link:hover .project-card,.project-card-link:focus-visible .project-card{box-shadow:var(--shadow);border-color:var(--border-active);transform:translateY(-2px)}.project-card-cta{color:var(--accent);margin-top:auto;margin-bottom:0;padding-top:.35rem;font-weight:600}.pill-list{flex-wrap:wrap;gap:.45rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.pill-list li{border:1px solid var(--border);font-family:var(--mono);letter-spacing:.01em;color:var(--text-dim);background:var(--surface-2);border-radius:.5rem;padding:.24rem .6rem;font-size:.76rem;transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}.pill-list li:hover{box-shadow:var(--shadow);border-color:var(--border-active);transform:translateY(-1px)}.project-card-actions{flex-wrap:wrap;gap:.8rem;margin-top:.8rem;display:flex}.project-card-actions a,.footer-link-button{color:var(--accent)}.footer-link-button{font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.footer-link-button:hover{text-underline-offset:.18rem;text-decoration:underline}.project-card h3{color:var(--text-h);margin:0}.contact-actions{flex-wrap:wrap;gap:.85rem;display:flex}.contact-action{min-width:9rem;color:var(--accent);border-color:var(--border);background:var(--surface-2);flex:10rem;justify-content:flex-start;gap:.55rem;padding:.85rem 1.1rem;font-weight:600}.contact-action:hover{border-color:var(--border-active);color:var(--accent-strong)}.contact-action svg{flex-shrink:0}.site-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.8rem;padding:1rem clamp(1rem,3vw,2rem);display:flex}.footer-main{flex-wrap:wrap;justify-content:space-between;gap:.8rem;width:100%;font-size:.8rem;display:flex}.footer-actions{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.site-main--projects{width:min(94vw,1920px);max-width:1920px;margin:0 auto}.site-main--projects>.section{width:100%}.site-main--about{max-width:1400px;margin:0 auto}.about-page-section{width:100%}.about-page-card{width:100%;margin-inline:0;padding:clamp(1rem,2vw,1.4rem)}.about-page-prose{color:var(--text-h);gap:.9rem;line-height:1.65;display:grid}.about-page-prose h3{color:var(--text-h);margin:.25rem 0 0;font-size:clamp(1.08rem,2.2vw,1.3rem);font-weight:700}.about-page-prose p{margin:0}.about-page-prose a{color:var(--accent);text-underline-offset:.18rem}.about-page-divider{border:0;border-top:1px solid var(--border);margin:.45rem 0}.projects-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex}.projects-page-header .btn--ghost{color:var(--accent);border-color:var(--border-active);background:var(--surface-2);font-weight:600}.projects-page-header .btn--ghost:hover{color:var(--accent-strong);border-color:var(--accent)}.project-title{color:var(--text-h);justify-content:space-between;align-items:center;gap:.8rem;margin-top:.5rem;margin-bottom:.7rem;padding-bottom:.5rem;font-size:1.4rem;font-weight:600;display:flex}.grid--project-entries{gap:1rem}.project-entry{scroll-margin-top:calc(var(--anchor-offset) + .75rem)}.project-entry--active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}@media (width>=900px){.project-entry{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-areas:"title title""media detail""media actions";align-items:start;gap:.4rem 1.6rem;display:grid}.project-entry>.project-card-top{grid-area:title}.project-entry>.project-carousel{grid-area:media;align-self:start;margin-bottom:0}.project-entry>.project-card-description{grid-area:detail;align-self:start}.project-entry>.project-card-actions{grid-area:actions}}.project-card-description{color:var(--text-h);gap:.65rem;font-size:clamp(.95rem,1.2vw,1rem);line-height:1.6;display:grid}.project-card-description p{margin:0}.project-summary-line{line-height:1.55}.project-details-list{flex-direction:column;gap:.5rem;margin:.1rem 0 0;padding-left:0;list-style:none;display:flex}.project-details-list li{margin:0;padding-left:1.4rem;line-height:1.55;position:relative}.project-details-list li:before{content:"";background:var(--accent);border-radius:2px;width:.45rem;height:.45rem;position:absolute;top:.6em;left:.1rem}.project-detail-label{color:var(--text-h);font-weight:700}.project-card-description .pill-list{margin-top:.6rem}.project-entry .project-media{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:min(78vh,760px)}.project-carousel{align-items:start;gap:.7rem;margin-bottom:.75rem;display:grid}.project-carousel>*{min-width:0}.project-carousel:focus-visible{outline:2px solid var(--accent-strong);outline-offset:4px;border-radius:.7rem}.project-carousel-frame{touch-action:pan-y;place-items:center;width:100%;min-width:0;display:grid;position:relative}.project-carousel-frame .project-media,.project-carousel-frame .project-media-trigger{width:auto;max-width:100%;height:auto;max-height:min(78vh,760px)}.project-carousel-frame .project-media{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:min(78vh,760px);margin-inline:auto;display:block}.project-media-trigger{cursor:zoom-in;background:0 0;border:0;place-items:center;width:100%;height:auto;margin:0;padding:0;display:grid}.project-carousel-nav{z-index:2;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);opacity:.85;background:#0f11158c;border:1px solid #ffffff2e;border-radius:999px;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:opacity .14s,background .14s,transform .14s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.project-carousel-nav:hover{opacity:1;background:#0f1115c7}.project-carousel-nav:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px;opacity:1}.project-carousel-nav--prev{left:.6rem}.project-carousel-nav--next{right:.6rem}.project-carousel-nav:active{transform:translateY(-50%)scale(.94)}.chevron-icon{width:1.4rem;height:1.4rem;display:block}.project-carousel-footer{justify-content:center;align-items:center;gap:.8rem;display:flex}.project-lightbox{z-index:1200;background:#000000d6;place-items:center;padding:clamp(.75rem,3vw,1.4rem);display:grid;position:fixed;inset:0}.project-lightbox-inner{border:1px solid var(--border-active);background:var(--surface);border-radius:.8rem;gap:.75rem;width:fit-content;min-width:min(22rem,100%);max-width:min(100%,1200px);max-height:100%;padding:.8rem;display:grid}.project-lightbox-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.project-lightbox-counter{color:var(--text-h);min-width:3.5rem;font-size:.9rem}.project-lightbox-zoom-controls{align-items:center;gap:.45rem;display:flex}.project-lightbox-frame{touch-action:pan-y;place-items:center;width:100%;max-height:min(80vh,820px);display:grid;position:relative;overflow:auto}.project-lightbox-media{object-fit:contain;transform-origin:50%;cursor:zoom-in;width:auto;max-width:100%;height:auto;max-height:min(80vh,820px);transition:transform .12s;display:block}.project-lightbox .project-media{object-fit:contain;width:auto;max-width:100%;max-height:min(80vh,820px)}.project-carousel-button{border:1px solid var(--accent-border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.55rem;min-width:2.25rem;min-height:2.25rem}.project-carousel-count{text-align:center;min-width:3.25rem;color:var(--text-h);font-size:.9rem}.project-carousel-dots{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.project-carousel-dot{border:1px solid var(--accent-border);cursor:pointer;background:0 0;border-radius:999px;width:.7rem;height:.7rem;padding:0}.project-carousel-dot.is-active{background:var(--accent);border-color:var(--accent)}@media (width<=640px){.project-entry{padding:.85rem}.project-title{margin-top:.35rem;margin-bottom:.55rem;font-size:1.18rem}.project-carousel{gap:.55rem;margin-bottom:.6rem}.project-carousel-footer{gap:.35rem;padding-top:.25rem}.project-carousel-frame{min-height:0}.project-entry .project-media,.project-carousel-frame .project-media,.project-carousel-frame .project-media-trigger{max-height:min(72vh,620px)}.project-carousel-count{min-width:2.8rem;font-size:.85rem}.project-carousel-dots{gap:.35rem}.project-card-actions{gap:.55rem}.project-card-actions a{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:.55rem;justify-content:center;align-items:center;padding:.4rem .65rem;display:inline-flex}.project-card-description{padding-top:.8rem}}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}@media (width>=820px){.about-content{grid-template-columns:1.15fr .85fr;align-items:stretch}.about-frameworks{grid-template-columns:repeat(5,minmax(0,1fr))}.grid--projects{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--skills{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px}.skill-card{height:100%}}@media (width<=980px){.site-main{width:100%}.site-header{flex-wrap:nowrap;gap:.6rem}.header-controls{flex-wrap:nowrap;justify-content:flex-end;gap:.5rem .65rem;width:auto;min-width:0;margin-left:auto}.primary-nav{width:auto;max-width:min(52vw,32rem);overflow-x:auto}.primary-nav ul{width:max-content;padding-bottom:.2rem}.theme-select-wrap--desktop{margin-left:auto}}@media (width<=640px){:root{--anchor-offset:3rem}.site-main{gap:1rem;width:100%;padding:.85rem}.site-main--projects>.section{background:0 0;border:0;border-radius:0;padding:0}.site-header{flex-wrap:nowrap;padding:.75rem .85rem}.header-controls{flex-wrap:nowrap;justify-content:flex-end;width:auto;margin-left:auto}.brand{letter-spacing:.02em;font-size:clamp(1.15rem,6vw,1.45rem)}.about-frameworks{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-action{flex-basis:100%;justify-content:center}.footer-main{text-align:left}.footer-actions{justify-content:space-between}.primary-nav--desktop,.theme-select-wrap--desktop{display:none}.mobile-menu-toggle{display:inline-flex}.mobile-nav{z-index:1120;display:none;position:fixed;inset:0}.mobile-nav.is-open{display:block}.mobile-nav-backdrop{cursor:pointer;background:#0006;border:0;position:absolute;inset:0}.mobile-nav-panel{top:calc(.7rem + env(safe-area-inset-top,0px));border:1px solid var(--border);background:color-mix(in srgb, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);border-radius:.9rem;gap:.75rem;padding:.75rem;display:grid;position:absolute;left:.75rem;right:.75rem}.mobile-nav ul{grid-template-columns:1fr;gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.mobile-nav a{min-height:2.55rem;color:var(--text-h);border:1px solid #0000;border-radius:.6rem;justify-content:flex-start;align-items:center;padding:0 .75rem;font-size:.9rem;font-weight:600;text-decoration:none;display:flex}.mobile-nav a:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.theme-select-wrap--mobile{gap:.35rem;width:100%;display:grid;position:relative}.theme-select-wrap--mobile .theme-menu-trigger{justify-content:space-between;width:100%;min-width:0}.theme-select-wrap--mobile .theme-menu{width:100%;min-width:0;box-shadow:none;position:static}.project-carousel-button{min-width:2.5rem;min-height:2.5rem}.project-carousel-dot{width:.8rem;height:.8rem}.project-carousel-frame{min-height:0}.project-lightbox{padding:.5rem}.project-lightbox-inner{gap:.6rem;min-width:0;padding:.65rem}.project-lightbox-frame,.project-lightbox-media,.project-lightbox .project-media{max-height:min(70vh,620px)}.project-carousel-nav{width:2.4rem;height:2.4rem}.project-carousel-nav--prev{left:.4rem}.project-carousel-nav--next{right:.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
