.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@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-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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]){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;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:where(:not(iframe)){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 components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-\[26px\]{height:26px}.h-\[34px\]{height:34px}.w-\[34px\]{width:34px}.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}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-\[2px\]{gap:2px}.rounded-full{border-radius:2147483647px}.border{border-style:var(--tw-border-style);border-width:1px}.border-transparent{border-color:#0000}.bg-\[var\(--accent-soft\)\]{background-color:var(--accent-soft)}.bg-transparent{background-color:#0000}.px-\[2px\]{padding-inline:2px}.px-\[9px\]{padding-inline:9px}.font-mono{font-family:var(--font-mono)}.text-\[11px\]{font-size:11px}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.text-wrap{text-wrap:wrap}.\[color\:var\(--text-accent\)\]{color:var(--text-accent)}.\[color\:var\(--text-body\)\]{color:var(--text-body)}.\[color\:var\(--text-heading\)\]{color:var(--text-heading)}.text-\[var\(--text-accent\)\]{color:var(--text-accent)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\]{transition-property:color,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:translate-y-\[3px\]:is(:where(.group):hover *){--tw-translate-y:3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:\!\[transform\:translateY\(-2px\)\]:hover{transform:translateY(-2px)!important}.hover\:\!\[border-color\:var\(--accent\)\]:hover{border-color:var(--accent)!important}.hover\:\!\[border-color\:var\(--border-default\)\]:hover{border-color:var(--border-default)!important}.hover\:\!\[background-color\:var\(--accent-hover\)\]:hover{background-color:var(--accent-hover)!important}.hover\:bg-\[color-mix\(in_oklch\,var\(--text-heading\)_8\%\,transparent\)\]:hover{background-color:var(--text-heading)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--text-heading\)_8\%\,transparent\)\]:hover{background-color:color-mix(in oklch,var(--text-heading) 8%,transparent)}}.hover\:\!\[color\:var\(--text-accent\)\]:hover{color:var(--text-accent)!important}.hover\:\[color\:var\(--text-heading\)\]:hover{color:var(--text-heading)}.hover\:text-\[var\(--text-accent\)\]:hover{color:var(--text-accent)}.hover\:text-\[var\(--text-heading\)\]:hover{color:var(--text-heading)}.hover\:\!\[box-shadow\:var\(--shadow-accent\)\]:hover{box-shadow:var(--shadow-accent)!important}.hover\:\!\[box-shadow\:var\(--shadow-md\)\]:hover{box-shadow:var(--shadow-md)!important}.hover\:\!\[box-shadow\:var\(--shadow-sm\)\]:hover{box-shadow:var(--shadow-sm)!important}}.active\:scale-\[0\.94\]:active{scale:.94}.active\:scale-\[0\.97\]:active{scale:.97}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline-block{display:inline-block}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}}@font-face{font-family:"Exo 2";src:url(/fonts/Exo2-Variable.ttf)format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Exo 2";src:url(/fonts/Exo2-Italic-Variable.ttf)format("truetype-variations");font-weight:100 900;font-style:italic;font-display:swap}:root{--orange-100:#ffe8db;--orange-300:#ffae81;--orange-400:#ff8551;--orange-500:#e4622f;--orange-600:#c24c1d;--sand-0:#fff;--sand-50:#fbfaf9;--sand-100:#f4f1ee;--sand-200:#e8e3de;--sand-300:#d6cfc8;--sand-400:#b0a79f;--sand-500:#8a817a;--sand-700:#463f3a;--sand-900:#1a1716;--sand-950:#100e0d;--bg-page:var(--sand-50);--surface-card:var(--sand-0);--surface-inset:var(--sand-100);--surface-hover:var(--sand-100);--text-heading:var(--sand-900);--text-body:var(--sand-700);--text-muted:var(--sand-500);--text-faint:var(--sand-400);--text-accent:var(--orange-600);--text-on-accent:#fff;--border-subtle:var(--sand-200);--border-default:var(--sand-300);--border-strong:var(--sand-400);--border-accent:var(--orange-500);--accent:var(--orange-500);--accent-hover:var(--orange-600);--accent-soft:var(--orange-100);--accent-glow:var(--orange-400)}@supports (color:color-mix(in lab, red, red)){:root{--accent-glow:color-mix(in oklch, var(--orange-400) 22%, transparent)}}:root{--focus-ring:var(--orange-500);--ring-focus:0 0 0 3px var(--focus-ring)}@supports (color:color-mix(in lab, red, red)){:root{--ring-focus:0 0 0 3px color-mix(in oklch, var(--focus-ring) 35%, transparent)}}:root{--green-400:#4fb477;--red-400:#e4574f;--status-success:var(--green-400);--status-danger:var(--red-400);color-scheme:light;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-24:96px;--content-max:720px;--content-wide:1300px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px;--radius-circle:50%;--radius-control:var(--radius-md);--radius-glass:var(--radius-pill);--font-core:"Exo 2", "Segoe UI", system-ui, sans-serif;--font-display:var(--font-core);--font-body:var(--font-core);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--text-lead:1.1875rem;--text-h2:clamp(1.75rem, 3vw, 2.25rem);--text-h4:1.125rem;--text-base:1rem;--text-sm:.875rem;--text-xs:.8125rem;--leading-snug:1.2;--leading-relaxed:1.65;--tracking-tightest:-.035em;--tracking-tight:-.02em;--tracking-wide:.04em;--tracking-label:.14em;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur-base:.75s;--transition-control:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);--transition-surface:background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);--shadow-sm:0 1px 2px var(--sand-900), 0 4px 12px -4px var(--sand-900)}@supports (color:color-mix(in lab, red, red)){:root{--shadow-sm:0 1px 2px color-mix(in oklch, var(--sand-900) 6%, transparent), 0 4px 12px -4px color-mix(in oklch, var(--sand-900) 12%, transparent)}}:root{--shadow-md:0 2px 4px var(--sand-900), 0 14px 28px -10px var(--sand-900)}@supports (color:color-mix(in lab, red, red)){:root{--shadow-md:0 2px 4px color-mix(in oklch, var(--sand-900) 8%, transparent), 0 14px 28px -10px color-mix(in oklch, var(--sand-900) 18%, transparent)}}:root{--shadow-accent:0 10px 24px -8px var(--accent-glow);--code-keyword:#0033b3;--code-class:#20999d;--code-property:#871094;--code-string:#067d17;--code-function:#00627a;--code-punctuation:var(--text-faint);--glass-tint:var(--sand-0)}@supports (color:color-mix(in lab, red, red)){:root{--glass-tint:color-mix(in oklch, var(--sand-0) 42%, transparent)}}:root{--glass-tint-strong:var(--sand-0)}@supports (color:color-mix(in lab, red, red)){:root{--glass-tint-strong:color-mix(in oklch, var(--sand-0) 80%, transparent)}}:root{--glass-border:var(--sand-900)}@supports (color:color-mix(in lab, red, red)){:root{--glass-border:color-mix(in oklch, var(--sand-900) 8%, transparent)}}:root{--glass-blur:14px;--glass-saturate:180%;--glass-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));--glass-shadow:0 1px 1px var(--sand-900), 0 8px 28px -8px var(--sand-900)}@supports (color:color-mix(in lab, red, red)){:root{--glass-shadow:0 1px 1px color-mix(in oklch, var(--sand-900) 4%, transparent), 0 8px 28px -8px color-mix(in oklch, var(--sand-900) 18%, transparent)}}:root{--glass-sheen:inset 0 1px 0 #ffffffbf, inset 0 -1px 0 #ffffff40;--glass-rim-warm:#ffd6aaa6;--glass-rim-cool:#96beff59;--grad-page:radial-gradient(120% 80% at 50% -10%, var(--orange-400) 0%, transparent 60%)}@supports (color:color-mix(in lab, red, red)){:root{--grad-page:radial-gradient(120% 80% at 50% -10%, color-mix(in oklch, var(--orange-400) 12%, transparent) 0%, transparent 60%)}}:root{--grad-bloom:radial-gradient(60% 55% at 50% 0%, var(--accent-glow) 0%, transparent 72%);--grad-hairline:linear-gradient(90deg, transparent, var(--border-default) 20%, var(--border-default) 80%, transparent)}:root[data-theme=dark]{--bg-page:var(--sand-950);--surface-card:#191615;--surface-inset:#141211;--surface-hover:#232020;--text-heading:#f7f4f2;--text-body:#c9c1bb;--text-muted:#9a918b;--text-faint:#6c645f;--text-accent:var(--orange-400);--text-on-accent:#1a0e07;--border-subtle:#282422;--border-default:#363130;--border-strong:#4b4442;--border-accent:var(--orange-400);--accent:var(--orange-400);--accent-hover:var(--orange-300);--accent-soft:var(--orange-400)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--accent-soft:color-mix(in oklch, var(--orange-400) 16%, transparent)}}:root[data-theme=dark]{--accent-glow:var(--orange-400)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--accent-glow:color-mix(in oklch, var(--orange-400) 26%, transparent)}}:root[data-theme=dark]{--focus-ring:var(--orange-400);color-scheme:dark;--shadow-sm:0 1px 2px #00000080, 0 4px 14px -4px #0009;--shadow-md:0 2px 4px #0000008c, 0 16px 32px -10px #000000b3;--shadow-accent:0 10px 26px -8px var(--accent-glow);--code-keyword:#cc7832;--code-class:#4e9fd1;--code-property:#9876aa;--code-string:#6a8759;--code-function:#ffc66d;--code-punctuation:var(--text-faint);--glass-tint:#1c191866;--glass-tint-strong:#1c1918cc;--glass-border:#ffffff1a;--glass-shadow:0 1px 1px #0006, 0 10px 30px -10px #000000b3;--glass-sheen:inset 0 1px 0 #ffffff17, inset 0 -1px 0 #ffffff08;--glass-rim-warm:#ffc89638;--glass-rim-cool:#8caaff24;--grad-page:radial-gradient(120% 80% at 50% -10%, var(--orange-400) 0%, transparent 62%)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=dark]{--grad-page:radial-gradient(120% 80% at 50% -10%, color-mix(in oklch, var(--orange-400) 15%, transparent) 0%, transparent 62%)}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s}}*,:before,:after{box-sizing:border-box;transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), fill var(--dur-base) var(--ease-out)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);font-weight:var(--weight-semibold);margin:0}p{text-wrap:pretty;margin:0}a{color:var(--text-accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){a{-webkit-text-decoration-color:color-mix(in oklch, var(--accent) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklch, var(--accent) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--accent) 40%, transparent)}}a{text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out), text-decoration-color var(--dur-fast) var(--ease-out)}a:hover{color:var(--accent-hover);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--text-heading)}section[id]{scroll-margin-top:96px}.section-stack{gap:var(--space-10);padding:calc(var(--space-16) * 2) 0 var(--space-16);flex-direction:column;display:flex;position:relative}.nav-glass,.glass-bar{background:var(--glass-tint);box-shadow:var(--glass-shadow), var(--glass-sheen);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));position:relative}.nav-glass{border:1px solid var(--glass-border);border-radius:var(--radius-glass)}.glass-bar{border-top:1px solid var(--glass-border)}.nav-glass:after,.glass-bar:after{content:"";border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 var(--glass-rim-warm), inset 0 -1px 0 var(--glass-rim-cool);position:absolute;inset:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}.logo-badge[data-astro-cid-zivhzrx4]{width:clamp(28px,3.6vw,46px);height:clamp(28px,3.6vw,46px);margin-right:var(--space-3);vertical-align:-.14em;transform-origin:50% 85%;justify-content:center;align-items:center;animation:6s ease-in-out infinite kotlin-wiggle;display:inline-flex;position:relative}.logo-compose-layer[data-astro-cid-zivhzrx4],.logo-morph-layer[data-astro-cid-zivhzrx4]{width:100%;height:100%;display:block;position:absolute;inset:0}.logo-compose-layer[data-astro-cid-zivhzrx4]{opacity:0}.logo-compose-layer[data-astro-cid-zivhzrx4] svg[data-astro-cid-zivhzrx4],.logo-morph-layer[data-astro-cid-zivhzrx4] svg[data-astro-cid-zivhzrx4]{width:100%;height:100%;display:block}@keyframes kotlin-wiggle{0%{transform:rotate(0)}10%{transform:rotate(-12deg)}20%{transform:rotate(10deg)}30%{transform:rotate(-8deg)}40%{transform:rotate(6deg)}50%,to{transform:rotate(0)}}.about-marquee[data-astro-cid-mwxxf73d]{padding:var(--space-6) 0;position:relative;overflow:hidden}.about-marquee__track[data-astro-cid-mwxxf73d]{width:max-content;animation:36s linear infinite about-marquee-scroll;display:flex}.about-marquee[data-astro-cid-mwxxf73d]:hover .about-marquee__track[data-astro-cid-mwxxf73d]{animation-play-state:paused}.about-marquee__list[data-astro-cid-mwxxf73d]{align-items:center;gap:var(--space-8);padding:0 var(--space-8) 0 0;margin:0;list-style:none;display:flex}.about-marquee__item[data-astro-cid-mwxxf73d]{align-items:center;gap:var(--space-8);font-family:var(--font-display);font-size:clamp(1.25rem,3vw,2rem);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);text-transform:uppercase;color:var(--text-heading);white-space:nowrap;display:flex}.about-marquee__delim[data-astro-cid-mwxxf73d]{color:var(--accent)}.about-marquee__mask[data-astro-cid-mwxxf73d]{z-index:1;pointer-events:none;width:96px;position:absolute;top:0;bottom:0}.about-marquee__mask--left[data-astro-cid-mwxxf73d]{background:linear-gradient(90deg, var(--bg-page), transparent);left:0}.about-marquee__mask--right[data-astro-cid-mwxxf73d]{background:linear-gradient(270deg, var(--bg-page), transparent);right:0}@keyframes about-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.about-marquee__track[data-astro-cid-mwxxf73d]{animation:none}}.project-card[data-astro-cid-m5hfbdk3]{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);height:100%;box-shadow:var(--shadow-sm);transition:var(--transition-surface);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card[data-astro-cid-m5hfbdk3]:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card__cover[data-astro-cid-m5hfbdk3]{aspect-ratio:16/10;background:var(--surface-inset);border-bottom:1px solid var(--border-subtle);position:relative;overflow:hidden}.project-card__cover[data-astro-cid-m5hfbdk3] img{transition:transform .42s var(--ease-out)}.project-card[data-astro-cid-m5hfbdk3]:hover .project-card__cover[data-astro-cid-m5hfbdk3] img{transform:scale(1.03)}.project-card__body[data-astro-cid-m5hfbdk3]{flex-direction:column;flex:auto;display:flex;position:relative}.project-card__bloom[data-astro-cid-m5hfbdk3]{background:var(--grad-bloom);opacity:.6;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out);position:absolute;inset:0}.project-card[data-astro-cid-m5hfbdk3]:hover .project-card__bloom[data-astro-cid-m5hfbdk3]{opacity:1}.project-link[data-astro-cid-m5hfbdk3]{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-accent);transition:var(--transition-control);text-decoration:none;display:inline-flex}.project-link[data-astro-cid-m5hfbdk3]:hover{color:var(--accent-hover)}.project-link__arrow[data-astro-cid-m5hfbdk3]{transition:transform var(--dur-fast) var(--ease-out)}.project-link[data-astro-cid-m5hfbdk3]:hover .project-link__arrow[data-astro-cid-m5hfbdk3]{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.project-card[data-astro-cid-m5hfbdk3]:hover,.project-card[data-astro-cid-m5hfbdk3]:hover .project-card__cover[data-astro-cid-m5hfbdk3] img,.project-link[data-astro-cid-m5hfbdk3]:hover .project-link__arrow[data-astro-cid-m5hfbdk3]{transform:none}}.project-grid[data-astro-cid-wbhp4wme]{gap:var(--space-8);grid-template-columns:repeat(auto-fit, minmax(min(100%, max(340px, calc((100% - var(--space-8)) / 2 - 1px))), 1fr));display:grid}
