:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f6f4ef;--color-canvas-muted:#ebe7de;--color-surface:#faf8f4;--color-surface-raised:#fff;--color-text:#2b3a42;--color-text-muted:#465963;--color-text-subtle:#6e818c;--color-border:#e0dcd3;--color-border-strong:#c8c2b5;--color-accent:#4a7b9d;--color-accent-hover:#3b6582;--color-accent-soft:#e3edf4;--color-aqua:#709fb0;--color-aqua-soft:#e5eff3;--color-sand:#e4d5b7;--color-sand-soft:#f4eee2;--color-success:#488b6a;--color-warning:#b08238;--color-danger:#bd5950;--color-focus:#4a7b9d;--font-sans:"Segoe UI Variable", "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:clamp(1.0625rem, 1.5vw, 1.25rem);--text-xl:clamp(1.5rem, 3vw, 2.5rem);--text-display:clamp(3rem, 7.5vw, 7.25rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.125rem;--radius-md:.1875rem;--radius-lg:.25rem;--radius-pill:999px;--shadow-raised:0 12px 36px #2b3a420d;--shadow-focus:0 0 0 3px #4a7b9d38;--rail-width:clamp(10rem, calc(7rem + 7vw), 17rem);--rail-inline-start:clamp(5px, .8vw, 12px);--top-bar-height:4.5rem;--page-gutter:clamp(1rem, 2vw, 2rem);--content-gutter:clamp(1.5rem, 4vw, 4rem);--duration-fast:.14s;--duration-standard:.22s;--duration-slow:.42s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--z-sticky:20;--z-overlay:40;--z-bug:99999}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#151e24;--color-canvas-muted:#1c272e;--color-surface:#1e2c34;--color-surface-raised:#253640;--color-text:#f0f4f7;--color-text-muted:#c1d0d9;--color-text-subtle:#94a9b5;--color-border:#2d414e;--color-border-strong:#3d5768;--color-accent:#7faecb;--color-accent-hover:#9bc2dc;--color-accent-soft:#1d3342;--color-aqua:#83b6c7;--color-aqua-soft:#1f3945;--color-sand:#e4d5b7;--color-sand-soft:#383226;--color-success:#5eb88c;--color-warning:#e3b05b;--color-danger:#e8857d;--color-focus:#7faecb;--shadow-raised:0 16px 42px #00000040;--shadow-focus:0 0 0 3px #7faecb47}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;min-height:100%;scroll-padding-top:calc(var(--top-bar-height) + var(--space-6))}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}::selection{color:var(--color-text);background:var(--color-aqua-soft)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.app-shell{min-height:100vh}.top-bar{z-index:var(--z-sticky);min-height:var(--top-bar-height);justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--page-gutter);border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;position:sticky;top:0;overflow:hidden}.top-bar__ticker-track{pointer-events:none;height:36px;position:absolute;top:50%;left:240px;right:220px;overflow:hidden;transform:translateY(-50%);-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 5% 95%,#0000 100%)}@keyframes notice-bounce-marquee{0%{left:0%;transform:translate(0%)}to{left:100%;transform:translate(-100%)}}.header-bug-notice{white-space:nowrap;border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-text);letter-spacing:-.01em;align-items:center;gap:8px;padding:.3rem .85rem;font-size:.78125rem;font-weight:600;animation:14s ease-in-out infinite alternate notice-bounce-marquee-smooth;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}@keyframes notice-bounce-marquee-smooth{0%{left:0;transform:translateY(-50%)}to{left:100%;transform:translate(-100%,-50%)}}@keyframes alert-blink{0%{opacity:.4;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.roaming-bug{z-index:var(--z-bug);cursor:grab;width:2.5rem;height:2.5rem;color:var(--color-accent);opacity:.9;transition:transform var(--bug-travel-duration,2.4s) linear;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 3px 8px #0000004d);position:fixed;top:0;left:0}.roaming-bug__speech-bubble{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%)}.bug-leash-rope{width:40px;height:26px;animation:1.2s ease-in-out infinite alternate rope-wave;overflow:visible}.bug-leash-card{border:1px solid var(--color-danger);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-danger);white-space:nowrap;padding:4px 10px;font-size:.725rem;font-weight:700;animation:.8s ease-in-out infinite alternate card-drag-wobble;box-shadow:0 4px 12px #0000004d}@keyframes card-drag-wobble{0%{transform:translateY(0)rotate(-5deg)}to{transform:translateY(4px)rotate(5deg)}}@keyframes rope-wave{0%{transform:scaleX(.85)rotate(-4deg)}to{transform:scaleX(1.15)rotate(4deg)}}.roaming-bug:hover{opacity:1;color:var(--color-danger);transform:scale(1.1)}.roaming-bug.is-held{cursor:grabbing;opacity:1;color:var(--color-danger);transition:transform 50ms;animation:80ms infinite alternate bug-vibrate}.roaming-bug__icon{width:2.5rem;height:2.5rem}.roaming-bug__leg{transform-origin:50%}.roaming-bug.is-moving .roaming-bug__icon{animation:.72s ease-in-out infinite alternate bug-body-crawl}.roaming-bug.is-paused .roaming-bug__icon{animation:1.4s ease-in-out infinite alternate bug-body-breathe}.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--1,.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--3,.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--5{animation:.36s ease-in-out infinite alternate bug-leg-wiggle}.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--2,.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--4,.roaming-bug.is-moving:not(.is-held) .roaming-bug__leg--6{animation:.36s ease-in-out infinite alternate-reverse bug-leg-wiggle}.bug-floating-error{z-index:calc(var(--z-bug) + 1);color:var(--color-danger);letter-spacing:.08em;white-space:nowrap;pointer-events:none;filter:drop-shadow(0 3px 8px #e87d706b);font-size:1rem;font-weight:800;animation:1.4s cubic-bezier(.2,.8,.2,1) forwards error-word-jump;display:inline-flex;position:fixed}.bug-floating-error span{--error-shatter-x:0px;--error-shatter-y:22px;--error-shatter-rotate:0deg;animation:1.4s ease-in forwards error-letter-shatter;animation-delay:calc(var(--error-letter-index) * 24ms);display:inline-block}.bug-floating-error span:first-child{--error-shatter-x:-24px;--error-shatter-y:24px;--error-shatter-rotate:-38deg}.bug-floating-error span:nth-child(2){--error-shatter-x:-11px;--error-shatter-y:32px;--error-shatter-rotate:-18deg}.bug-floating-error span:nth-child(3){--error-shatter-x:2px;--error-shatter-y:38px;--error-shatter-rotate:10deg}.bug-floating-error span:nth-child(4){--error-shatter-x:15px;--error-shatter-y:30px;--error-shatter-rotate:24deg}.bug-floating-error span:nth-child(5){--error-shatter-x:28px;--error-shatter-y:22px;--error-shatter-rotate:42deg}@keyframes bug-vibrate{0%{transform:translate(0)scale(1.1)}25%{transform:translate(-3px,3px)scale(1.1)}50%{transform:translate(3px,-2px)scale(1.1)}75%{transform:translate(-2px,-3px)scale(1.1)}to{transform:translate(3px,2px)scale(1.1)}}@keyframes bug-leg-wiggle{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@keyframes bug-body-crawl{0%{translate:0 -.6px;scale:1 .98}to{translate:0 .8px;scale:1 1.02}}@keyframes bug-body-breathe{0%{opacity:.78;scale:.98}to{opacity:.95;scale:1.02}}@keyframes error-word-jump{0%{opacity:0;transform:translate(-50%)scale(.72)}18%{opacity:1;transform:translate(-50%,-34px)scale(1.08)}42%{opacity:1;transform:translate(-50%,-45px)scale(1)}64%{opacity:1;transform:translate(-50%,-18px)scale(.98)}78%{opacity:.92;transform:translate(-50%,10px)scale(.96)}to{opacity:0;transform:translate(-50%,35px)scale(.75)}}@keyframes error-letter-shatter{0%,68%{opacity:1;translate:0;rotate:0deg}to{opacity:0;translate:var(--error-shatter-x) var(--error-shatter-y);rotate:var(--error-shatter-rotate)}}.brand{z-index:1;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);min-width:0;display:inline-flex;position:relative}.brand__copy{gap:.1rem;min-width:0;display:grid}.brand__copy strong,.brand__copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.brand__copy strong{font-size:var(--text-sm);font-weight:650}.brand__copy small{color:var(--color-text-muted);font-size:var(--text-xs)}.mobile-menu-toggle,.mobile-menu-backdrop,.mobile-menu-heading{display:none}.mobile-menu-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);width:2.25rem;height:2.25rem;color:var(--color-text);background:var(--color-surface-raised);place-items:center}.mobile-menu-toggle svg,.mobile-menu-heading button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:1.15rem;height:1.15rem}.mobile-menu-heading{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:.35rem .25rem 1rem;font-size:.72rem;font-weight:800}.mobile-menu-heading button{border:1px solid var(--color-border);width:2.35rem;height:2.35rem;color:var(--color-text-muted);background:var(--color-surface-raised);border-radius:50%;place-items:center;display:grid}.top-bar__actions{z-index:1;align-items:center;gap:var(--space-4);display:flex;position:relative}.preference-actions{align-items:center;gap:var(--space-2);display:flex}.preference-actions .icon-button,.language-toggle{width:2.25rem;height:2.25rem}.preference-actions .icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.language-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-surface-raised);letter-spacing:.04em;transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);place-items:center;padding:0;font-size:.6875rem;font-weight:700;display:grid}.language-toggle:hover{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-canvas-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-action{border-radius:var(--radius-md);color:#fff;background:var(--color-accent);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-standard);padding:.625rem .9rem;font-weight:600}.contact-action:hover{background:var(--color-accent-hover)}.app-shell__body{width:100%;min-height:calc(100vh - var(--top-bar-height));grid-template-columns:var(--rail-width) minmax(0, 1fr);display:grid}.section-rail{top:var(--top-bar-height);height:calc(100vh - var(--top-bar-height));padding:var(--space-6) var(--space-3) var(--space-6) var(--rail-inline-start);border-right:1px solid var(--color-border);background:var(--color-canvas);flex-direction:column;justify-content:space-between;display:flex;position:sticky}.section-rail ol{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sidebar-cli-terminal{gap:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-canvas-muted);flex-direction:column;margin-top:auto;padding:10px 12px;display:flex;box-shadow:inset 0 1px 3px #00000026}.cli-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.cli-dots{gap:4px;display:flex}.cli-dot{border-radius:50%;width:6px;height:6px}.dot-r{background:#ff5f56}.dot-y{background:#ffbd2e}.dot-g{background:#27c93f}.cli-title{color:var(--color-text-subtle);font-size:.65rem;font-family:var(--font-sans);letter-spacing:.03em;font-weight:700}.cli-screen{flex-direction:column;gap:4px;padding:4px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.72rem;display:flex}.cli-prompt-line{align-items:center;gap:6px;display:flex}.prompt-symbol{color:var(--color-accent);font-weight:800}.prompt-cmd{color:var(--color-text);font-weight:700}.prompt-cursor{background:var(--color-accent);width:6px;height:12px;animation:1s step-end infinite cli-cursor-blink;display:inline-block}@keyframes cli-cursor-blink{0%,to{opacity:1}50%{opacity:0}}.cli-output{flex-direction:column;gap:3px;min-height:3.6rem;display:flex}.term-line{line-height:1.35}.term-green{color:var(--color-success);font-weight:600}.term-cyan{color:var(--color-accent);font-weight:600}.term-yellow{color:var(--color-warning);font-weight:600}.term-white{color:var(--color-text);font-weight:600}.term-dim{color:var(--color-text-subtle);font-size:.68rem}.cli-quick-cmds{border-top:1px dashed var(--color-border);flex-wrap:wrap;gap:4px;padding-top:6px;display:flex}.cmd-chip{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-subtle);background:var(--color-surface);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.65rem;font-weight:700}.cmd-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.cmd-chip.is-active{border-color:var(--color-accent);color:#fff;background:var(--color-accent)}.section-rail a{border-radius:var(--radius-md);color:var(--color-text-muted);font-family:var(--font-sans);letter-spacing:-.01em;transition:all var(--duration-fast) var(--ease-standard);border:1px solid #0000;align-items:center;gap:12px;padding:.65rem .85rem;font-size:.9375rem;font-weight:550;display:flex;position:relative}.nav-icon-wrap{color:var(--color-text-subtle);transition:color var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;display:inline-flex}.nav-line-icon{width:1.1rem;height:1.1rem}.nav-item-text{flex:1}.nav-active-indicator{border-radius:var(--radius-pill);width:3px;height:14px;transition:background var(--duration-fast) var(--ease-standard);background:0 0}.section-rail a:hover{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface-raised)}.section-rail a:hover .nav-icon-wrap{color:var(--color-accent)}.section-rail a.is-active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft);font-weight:700}.section-rail a.is-active .nav-icon-wrap{color:var(--color-accent)}.section-rail a.is-active .nav-active-indicator{background:var(--color-accent)}.rail-footer{gap:var(--space-2);padding-left:var(--space-2);flex-direction:column;display:flex}.rail-status-pill{color:var(--color-text-muted);align-items:center;gap:8px;font-size:.7rem;font-weight:650;display:inline-flex}.pulse-green{background:var(--color-success);width:7px;height:7px;box-shadow:0 0 0 2px color-mix(in srgb, var(--color-success) 30%, transparent);border-radius:50%}.rail-copyright{color:var(--color-text-subtle);font-size:.6875rem}.content-canvas{background:var(--color-surface);min-width:0}.hero,.section-placeholder{min-height:min(52rem, calc(100vh - var(--top-bar-height)));padding:var(--space-12) var(--content-gutter);border-bottom:1px solid var(--color-border)}.hero{align-content:space-between;gap:var(--space-16);isolation:isolate;display:grid;position:relative;overflow:hidden}.hero__meta,.hero__footer{justify-content:space-between;align-items:center;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-xs);display:flex}.hero__content{max-width:68rem}.hero__eyebrow,.section-placeholder__heading p{margin:0 0 var(--space-5);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.hero h1{letter-spacing:-.045em;max-width:24ch;margin:0;font-size:clamp(2rem,4vw,4.5rem);font-weight:620;line-height:1.05}.hero__summary{max-width:42rem;margin:var(--space-8) 0 0;color:var(--color-text-muted);font-size:var(--text-lg);line-height:1.65}.hero__footer a{color:var(--color-accent);font-weight:650}.hero__footer p{margin:0}.section-placeholder{align-content:center;gap:var(--space-12);grid-template-columns:minmax(0,.9fr) minmax(16rem,.55fr);display:grid}.section-placeholder__heading h2{max-width:13ch;font-size:var(--text-xl);letter-spacing:-.04em;margin:0;font-weight:620;line-height:1.05}.section-placeholder__description{max-width:34rem;color:var(--color-text-muted);font-size:var(--text-md);align-self:end;margin:0;line-height:1.7}.app-fallback{min-height:100vh;padding:var(--page-gutter);background:var(--color-canvas);place-content:center;display:grid}.app-fallback__eyebrow{margin:0 0 var(--space-4);color:var(--color-danger);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.app-fallback h1{max-width:14ch;font-size:var(--text-xl);letter-spacing:-.04em;margin:0}.app-fallback>p:not(.app-fallback__eyebrow){max-width:36rem;color:var(--color-text-muted);line-height:1.6}.app-fallback button{width:fit-content;margin-top:var(--space-4);border-radius:var(--radius-md);color:#fff;background:var(--color-accent);border:0;padding:.75rem 1rem}.button{border-radius:var(--radius-md);min-height:2.5rem;transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;font-weight:650;line-height:1;display:inline-flex}.button--small{min-height:2.125rem;font-size:var(--text-xs);padding:.5rem .75rem}.button--medium{font-size:var(--text-sm);padding:.7rem 1rem}.button--primary{color:#fff;background:var(--color-accent)}.button--primary:hover{background:var(--color-accent-hover)}.button--secondary{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-surface-raised)}.button--secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.button--quiet{color:var(--color-accent);background:0 0}.button--quiet:hover{background:var(--color-accent-soft)}.button:disabled{cursor:not-allowed;opacity:.5}.icon-button{border:1px solid var(--color-border);border-radius:var(--radius-md);width:2.5rem;height:2.5rem;color:var(--color-text-muted);background:var(--color-surface-raised);transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);place-items:center;padding:0;display:inline-grid}.icon-button:hover{border-color:var(--color-border-strong);color:var(--color-text);background:var(--color-canvas-muted)}.card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised)}.card--accent{background:var(--color-accent-soft);border-color:#2457d640}.card--sand{background:var(--color-sand-soft);border-color:#c9b9968c}.tag,.status-badge{border-radius:var(--radius-pill);width:fit-content;font-size:var(--text-xs);align-items:center;font-weight:600;display:inline-flex}.tag{color:var(--color-text-muted);background:var(--color-canvas-muted);padding:.35rem .6rem}.tag--accent{color:var(--color-accent);background:var(--color-accent-soft)}.tag--aqua{color:#2d7478;background:var(--color-aqua-soft)}.tag--sand{color:#77633c;background:var(--color-sand-soft)}.status-badge{gap:var(--space-2);color:var(--color-text-muted);background:var(--color-canvas-muted);padding:.35rem .6rem}.status-badge span{background:var(--color-text-subtle);border-radius:50%;width:.45rem;height:.45rem}.status-badge--success span{background:var(--color-success)}.status-badge--warning span{background:var(--color-warning)}.status-badge--danger span{background:var(--color-danger)}.section-heading p{margin:0 0 var(--space-3);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.section-heading h2{max-width:15ch;font-size:var(--text-xl);letter-spacing:-.04em;margin:0;font-weight:620;line-height:1.05}.section-heading span{max-width:38rem;margin-top:var(--space-4);color:var(--color-text-muted);line-height:1.65;display:block}@media (width>=90rem){.section-rail{padding-right:var(--space-5)}.section-rail a{padding-inline:var(--space-4);font-weight:470}.section-rail a.is-active{font-weight:650}}@media (width<=56rem){.app-shell,.app-shell__body,.content-canvas,.route-page,.projects-page,.overview-page,.about-page,.experience-page,.open-source-page,.contact-page{width:100%;min-width:0;max-width:none}.app-shell__body{grid-template-columns:none;display:block}body.mobile-menu-open{overflow:hidden}.mobile-menu-toggle{display:grid}.mobile-menu-backdrop{z-index:calc(var(--z-sticky) + 8);visibility:hidden;opacity:0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c192294;border:0;transition:opacity .18s,visibility .18s;display:block;position:fixed;inset:0}.mobile-menu-backdrop.is-visible{visibility:visible;opacity:1}.section-rail{z-index:calc(var(--z-sticky) + 9);width:min(20rem,86vw);height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));border-right:1px solid var(--color-border);background:var(--color-canvas);transition:transform .22s var(--ease-standard);border-bottom:0;flex-direction:column;justify-content:flex-start;gap:.5rem;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto;transform:translate(-105%);box-shadow:1rem 0 3rem #08182240}.section-rail.is-open{transform:translate(0)}.mobile-menu-heading{display:flex}.rail-nav{width:100%;margin-top:.25rem}.section-rail ol{flex-direction:column;gap:.4rem;width:100%;display:flex}.section-rail li{width:100%}.section-rail a{min-height:3rem;padding:.7rem .85rem;font-size:.92rem}.hero,.section-placeholder{min-height:auto;padding-block:var(--space-16)}.section-placeholder{grid-template-columns:1fr}}@media (width<=42rem){:root{--top-bar-height:3.75rem;--page-gutter:1rem;--content-gutter:1rem}.top-bar{min-height:var(--top-bar-height);padding:.65rem var(--page-gutter);gap:.55rem;overflow:visible}.brand{flex:1}.brand__copy strong{font-size:.9rem}.brand__copy small,.top-bar__ticker-track,.hero__meta span:last-child,.hero__footer p{display:none}.top-bar__actions{gap:.45rem}.preference-actions{gap:.35rem}.preference-actions .icon-button,.language-toggle{width:2.15rem;height:2.15rem}.contact-action{color:#0000;width:2.15rem;height:2.15rem;padding:0;font-size:0;overflow:hidden}.contact-action:before{content:"↗";color:#fff;place-items:center;width:100%;height:100%;font-size:1rem;display:grid}.mobile-menu-toggle{flex:none;width:2.15rem;height:2.15rem}.section-rail{width:min(19rem,88vw);padding-inline:.85rem}.section-rail a{white-space:nowrap;background:0 0;border-color:#0000;border-radius:.85rem;gap:.75rem;min-height:3.15rem;padding:.72rem .85rem;font-size:.92rem}.section-rail a.is-active{color:var(--color-accent);background:var(--color-accent-soft)}.section-rail a.is-active .nav-icon-wrap{color:var(--color-accent)}.nav-line-icon{width:1.1rem;height:1.1rem}.sidebar-cli-terminal,.roaming-bug,.bug-floating-error{display:none!important}.hero,.section-placeholder{padding-inline:var(--page-gutter)}.hero__footer{align-items:flex-start}}.style-guide{gap:var(--space-16);padding:var(--space-20) var(--content-gutter);border-bottom:1px solid var(--color-border);background:var(--color-canvas-muted);display:grid}.style-guide__group{gap:var(--space-5);display:grid}.style-guide__group>h3{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;font-weight:650}.style-guide__colors{gap:var(--space-3);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.color-swatch{gap:var(--space-2);min-width:0;display:grid}.color-swatch>span{border:1px solid var(--color-border);border-radius:var(--radius-md);height:5rem}.color-swatch strong{font-size:var(--text-xs)}.color-swatch code{color:var(--color-text-subtle);text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.style-guide__row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.style-guide__row+.style-guide__row{margin-top:var(--space-5)}.style-guide__cards{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.card__eyebrow{margin:0 0 var(--space-8);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.card h4{font-size:var(--text-lg);margin:0}.card h4+p{margin:var(--space-3) 0 0;color:var(--color-text-muted);line-height:1.6}@media (width<=64rem){.style-guide__colors{grid-template-columns:repeat(3,minmax(0,1fr))}.style-guide__cards{grid-template-columns:1fr}}@media (width<=36rem){.style-guide__colors{grid-template-columns:repeat(2,minmax(0,1fr))}}.route-page{min-height:calc(100vh - var(--top-bar-height));align-content:start;gap:var(--space-16);padding:var(--space-16) var(--content-gutter);isolation:isolate;display:grid;position:relative;overflow:hidden}.route-page__header{max-width:64rem}.route-page__header>p{margin:0 0 var(--space-5);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.route-page__header h1{max-width:13ch;font-size:var(--text-display);letter-spacing:-.065em;margin:0;font-weight:620;line-height:.92}.route-page__header>span{max-width:42rem;margin-top:var(--space-8);color:var(--color-text-muted);font-size:var(--text-lg);line-height:1.65;display:block}.route-page__placeholder{width:min(100%,42rem);margin-top:var(--space-8);padding:var(--space-6);border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface-raised) 88%, transparent)}.route-page__placeholder p{margin:0 0 var(--space-3);color:var(--color-text-subtle);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.route-page__placeholder strong{font-size:var(--text-lg);font-weight:550}.route-page--not-found{align-content:center}.route-page--not-found .button{width:fit-content}@media (width<=56rem){.route-page{min-height:auto;padding-block:var(--space-16)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.roaming-bug{display:none!important}}.overview-page{background:var(--color-surface);min-height:100%}.overview-bento-hero{padding:var(--space-8) var(--content-gutter) var(--space-12);border-bottom:1px solid var(--color-border)}.overview-bento-hero__meta{margin-bottom:var(--space-6);color:var(--color-text);letter-spacing:-.01em;justify-content:space-between;align-items:center;font-size:1.125rem;font-weight:750;display:flex}.overview-bento-grid{gap:var(--space-5);grid-template-columns:1.35fr 1fr;align-items:stretch;display:grid}.bento-card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);flex-direction:column;display:flex}.bento-card:hover{border-color:color-mix(in srgb, var(--color-accent) 60%, var(--color-border));box-shadow:0 8px 24px #0b13201a}.bento-card--main{padding:var(--space-8);background:linear-gradient(145deg, var(--color-surface-raised) 0%, color-mix(in srgb, var(--color-accent) 6%, var(--color-surface)) 100%);justify-content:space-between}.bento-card--main h1{margin:var(--space-3) 0 var(--space-5);letter-spacing:-.04em;color:var(--color-text);font-size:clamp(1.85rem,3vw,3rem);font-weight:650;line-height:1.08}.bento-card--main .hero__summary{max-width:38rem;margin:0 0 var(--space-8);color:var(--color-text-muted);font-size:clamp(.9375rem,1vw,1.0625rem);line-height:1.65}.bento-card--main__actions{align-items:center;gap:var(--space-5);display:flex}.bento-action-btn{border-radius:var(--radius-sm);color:var(--color-surface);background:var(--color-accent);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;transition:all var(--duration-fast) var(--ease-standard);align-items:center;padding:.65rem 1.25rem;font-weight:750;display:inline-flex}.bento-action-btn:hover{background:var(--color-accent-hover);box-shadow:0 4px 16px color-mix(in srgb, var(--color-accent) 40%, transparent)}.bento-action-note{color:var(--color-text-subtle);font-size:var(--text-xs);font-weight:500}.overview-bento-side{gap:var(--space-4);grid-template-rows:auto auto 1fr;display:grid}.bento-card__header{margin-bottom:var(--space-3);align-items:center;gap:8px;display:flex}.bento-card__icon{color:var(--color-accent);justify-content:center;align-items:center;display:inline-flex}.bento-card__icon svg{stroke-width:1.75px;width:14px;height:14px}.bento-card__tag{color:var(--color-text-subtle);letter-spacing:.06em;text-transform:uppercase;font-size:.725rem;font-weight:700}.bento-status-content{flex-direction:column;gap:4px;display:flex}.bento-status-row{color:var(--color-text);font-size:var(--text-xs);align-items:center;gap:8px;display:flex}.bento-status-detail{color:var(--color-text-muted);margin:0;font-size:.78125rem}.bento-card--metrics{gap:var(--space-3);padding:var(--space-4) var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.bento-metrics-item{flex-direction:column;display:flex}.bento-metrics-item .metric-val{color:var(--color-accent);font-size:1.35rem;font-weight:800;line-height:1.1}.bento-metrics-item .metric-lbl{color:var(--color-text-subtle);font-size:.7rem;font-weight:600}.bento-card--flagship{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface-raised));justify-content:space-between}.bento-flagship-body{flex-direction:column;gap:4px;display:flex}.flagship-title{color:var(--color-text);font-size:1rem;font-weight:700}.flagship-desc{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:.8125rem;line-height:1.45}.flagship-link{color:var(--color-accent);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.flagship-link:hover{text-decoration:underline}.overview-stats-grid{gap:var(--space-4);padding:0 var(--content-gutter) var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}.overview-stat-card{gap:var(--space-1);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);flex-direction:column;display:flex}.overview-stat-card .stat-num{color:var(--color-accent);font-size:var(--text-xl);letter-spacing:-.03em;font-weight:750;line-height:1.1}.overview-stat-card .stat-label{color:var(--color-text-subtle);font-size:var(--text-xs);letter-spacing:.02em;font-weight:600}.overview-section{padding:var(--space-10) var(--content-gutter);border-top:1px solid var(--color-border)}.overview-section__header{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.overview-section__title{color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.03em;margin:0;font-weight:650}.overview-section__link{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;transition:color var(--duration-fast) var(--ease-standard);font-weight:700}.overview-section__link:hover{color:var(--color-accent-hover);text-decoration:underline}.overview-featured-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(24rem,1fr));display:grid}.overview-capabilities{padding-bottom:var(--space-8)}.overview-skills-grid{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.overview-skill-card{min-height:10rem;padding:var(--space-5) var(--space-6);border-right:1px solid var(--color-border);text-align:center;background:0 0}.overview-skill-card:last-child{border-right:0}.overview-skill-card h3{margin:0 0 var(--space-3);color:var(--color-text);font-size:var(--text-sm);letter-spacing:-.01em;font-weight:700}.overview-skill-card ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.overview-skill-card li{color:var(--color-text-muted);font-size:.8125rem;font-weight:500}.overview-hub-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.overview-hub-card{gap:var(--space-2);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:all var(--duration-standard) var(--ease-standard);flex-direction:column;display:flex}.overview-hub-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 12px 28px #0b13201a}.overview-hub-card__top{justify-content:space-between;align-items:center;display:flex}.overview-hub-card__title{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:700}.overview-hub-card__arrow{color:var(--color-accent);transition:transform var(--duration-fast) var(--ease-standard);font-size:1rem}.overview-hub-card:hover .overview-hub-card__arrow{transform:translate(2px,-2px)}.overview-hub-card__desc{color:var(--color-text-muted);margin:0;font-size:.8125rem;line-height:1.55}@media (width<=68rem){.overview-stats-grid,.overview-skills-grid{grid-template-columns:repeat(2,1fr)}.overview-hub-grid{grid-template-columns:1fr}}@media (width<=48rem){.overview-bento-hero{padding:1.5rem var(--page-gutter) 2rem}.overview-bento-hero__meta{margin-bottom:1rem;font-size:.95rem}.overview-bento-grid,.overview-stats-grid,.overview-skills-grid{grid-template-columns:1fr}.bento-card,.bento-card--main{padding:1.15rem}.bento-card--main h1{font-size:clamp(1.9rem,9vw,2.65rem)}.bento-card--main__actions{flex-direction:column;align-items:flex-start;gap:.75rem}}.about-page{background:var(--color-surface)}.about-eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:700}.about-hero{align-content:start;align-items:start;column-gap:30px;row-gap:var(--space-12);min-height:auto;padding:20px var(--content-gutter) var(--space-8);isolation:isolate;grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);display:grid;position:relative;overflow:hidden}.about-hero__statement{padding-right:clamp(1rem,4vw,4.5rem)}.about-hero__statement h1{letter-spacing:-.045em;text-wrap:pretty;width:100%;max-width:none;margin:10px 0 0;font-size:clamp(2.15rem,3vw,3.75rem);font-weight:620;line-height:1}.about-hero__statement>.about-eyebrow{letter-spacing:.14em;font-size:.875rem}.about-hero__intro{width:100%;max-width:none;color:var(--color-text-muted);text-wrap:pretty;margin:5px 0 0;font-size:clamp(.875rem,.95vw,1rem);line-height:1.65}.profile-index{width:calc(100% - var(--space-6));align-self:start;margin-top:0;padding:0}.profile-index__label{margin:0 0 var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);letter-spacing:.13em;text-transform:uppercase;font-size:.82rem;font-weight:800}.profile-index dl{margin:0}.profile-index dl>div{gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);grid-template-columns:minmax(5rem,.7fr) minmax(0,1.3fr);display:grid}.profile-index dt{color:var(--color-text-muted);font-size:.84rem;font-weight:600;line-height:1.45}.profile-index dd{color:var(--color-text);margin:0;font-size:clamp(.94rem,1vw,1.04rem);font-weight:700;line-height:1.45}.beyond-code{gap:clamp(var(--space-12), 8vw, var(--space-24));padding:var(--space-24) var(--content-gutter);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,.8fr) minmax(20rem,1.2fr);display:grid}.journey header h2,.beyond-code h2,.about-cta h2{max-width:14ch;margin:var(--space-5) 0 0;font-size:var(--text-xl);letter-spacing:-.045em;font-weight:620;line-height:1.05}.skills-matrix{padding:20px var(--content-gutter) 5px;border-top:1px solid var(--color-border)}.journey{padding:var(--space-24) var(--content-gutter);border-top:1px solid var(--color-border)}.skills-matrix>.about-eyebrow{letter-spacing:.14em;margin-bottom:5px;font-size:1rem}.principles{padding:20px var(--content-gutter) 10px;border-top:1px solid var(--color-border);background:var(--color-canvas-muted);isolation:isolate;position:relative;overflow:hidden}.principles>.about-eyebrow{letter-spacing:.14em;font-size:1rem}.principles ol{margin:10px 0 0;padding:0;list-style:none}.principles li{padding:var(--space-6) 0;border-top:1px solid var(--color-border-strong);display:block}.principles li>span{color:var(--color-accent);font-size:var(--text-xs);padding-top:.4rem;font-weight:700}.principle-copy{gap:var(--space-3);display:grid}.principles strong{letter-spacing:-.025em;max-width:none;font-size:clamp(1.2rem,1.75vw,2rem);font-weight:600;line-height:1.2;display:block}.principles .principle-copy p{max-width:none;color:var(--color-text-muted);letter-spacing:-.01em;white-space:nowrap;margin:0;font-size:clamp(.75rem,.9vw,.9375rem);line-height:1.5}.skills-matrix>div{border-top:1px solid var(--color-border-strong);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.skill-group{min-height:16rem;padding:var(--space-5) var(--space-6);border-right:1px solid var(--color-border);text-align:center}.skill-group:last-child{border-right:0}.skill-group h2{margin:0 0 var(--space-5);color:var(--color-text);font-size:var(--text-sm);letter-spacing:-.01em;font-weight:700}.skill-group ul{color:var(--color-text-muted);letter-spacing:-.005em;gap:.625rem;margin:0;padding:0;font-size:.8125rem;font-weight:500;list-style:none;display:grid}.journey{gap:var(--space-8);padding:20px var(--content-gutter) var(--space-16);border-top:1px solid var(--color-border);display:grid}.journey>header>.about-eyebrow{letter-spacing:.14em;font-size:1rem}.journey header h2{max-width:none;margin:var(--space-3) 0 0;font-size:var(--text-xl);letter-spacing:-.045em;white-space:nowrap;font-weight:620;line-height:1.05}.journey__track{padding:var(--space-6) 0 0;background:0 0;position:relative;overflow:hidden}.journey__track ol{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.journey__track li{gap:var(--space-4);border-left:0;padding:0;display:grid;position:relative}.journey__node-wrap{justify-content:center;align-items:center;height:1.25rem;display:flex;position:relative}.journey__line{background:var(--color-border-strong);width:100%;height:1px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.journey__track li:last-child .journey__line{background:linear-gradient(90deg, var(--color-border-strong), transparent)}.journey__node{z-index:1;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface);flex:none;width:.65rem;height:.65rem;position:relative}.journey__card{gap:var(--space-1);text-align:center;justify-items:center;display:grid}.journey small{color:var(--color-text-subtle);font-size:var(--text-xs);font-weight:700}.journey__period{color:var(--color-accent);font-size:var(--text-lg);letter-spacing:-.02em;font-weight:700}.journey h3{font-size:var(--text-md);margin:0;font-weight:650;line-height:1.3}.journey p{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.6}@media (width<=68rem){.journey__track ol,.skills-matrix>div{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group:nth-child(2){border-right:0}.skill-group:nth-child(-n+2){border-bottom:1px solid var(--color-border)}}@media (width<=52rem){.principles .principle-copy p{white-space:normal}.about-hero{grid-template-columns:1fr;align-content:start}.profile-index{width:100%;max-width:44rem;margin-top:0}}@media (width<=48rem){.about-hero{padding-block:var(--space-16);padding-inline:var(--page-gutter)}.journey{padding:20px var(--page-gutter) var(--space-16)}.principles{padding:20px var(--page-gutter) 10px}.about-hero{min-height:auto;padding-top:20px}.skills-matrix{padding:20px var(--page-gutter) 5px}.about-hero__statement h1{max-width:none;font-size:clamp(2rem,9vw,3.25rem);line-height:1.02}.about-hero__intro{max-width:58ch;font-size:.9375rem}.about-hero__statement>.about-eyebrow{font-size:.8125rem}.skills-matrix>div{grid-template-columns:1fr}.skill-group,.skill-group:nth-child(2){border-right:0;border-bottom:1px solid var(--color-border);min-height:auto}.skill-group:last-child{border-bottom:0}.journey__track ol{grid-template-columns:1fr}.journey__track li{padding-left:var(--space-6);border-left:1px solid var(--color-border-strong)}.journey__card{text-align:left;justify-items:start}.journey__node-wrap{display:none}.profile-index dl>div{grid-template-columns:1fr;gap:.35rem;padding-block:.9rem}.profile-index dt{font-size:.8rem}.profile-index dd{font-size:.98rem}}.projects-page{background:var(--color-surface);min-height:100%}.projects-hero{padding:32px var(--content-gutter) 24px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:relative}.projects-hero__eyebrow-wrap{margin-bottom:var(--space-2);align-items:center;gap:10px;display:flex}.eyebrow-accent-line{background:var(--color-accent);width:18px;height:2px;display:inline-block}.projects-eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}.projects-title{max-width:none;margin:0 0 var(--space-3);letter-spacing:-.04em;white-space:nowrap;font-size:clamp(1.75rem,2.5vw,3rem);font-weight:620;line-height:1.1}.projects-description{max-width:none;margin:0 0 var(--space-6);color:var(--color-text-muted);white-space:nowrap;font-size:clamp(.9375rem,1.05vw,1.0625rem);line-height:1.65}.projects-filter-dock{align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas-muted);flex-wrap:wrap;display:flex}.filter-segment{align-items:center;gap:var(--space-3);display:flex}.filter-segment__label{color:var(--color-text-subtle);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:700}.segmented-control{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);gap:2px;padding:3px;display:inline-flex}.segment-btn{border-radius:var(--radius-sm);color:var(--color-text-muted);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);background:0 0;border:0;padding:.35rem .75rem;font-size:.78125rem;font-weight:600}.segment-btn:hover{color:var(--color-text);background:var(--color-canvas)}.segment-btn.is-active{color:var(--color-text);background:var(--color-surface);font-weight:700;box-shadow:0 2px 8px #0b13201a}.segment-btn--tech.is-active{color:var(--color-accent)}.filter-dock__summary{color:var(--color-text-subtle);white-space:nowrap;margin-left:auto;font-size:.75rem;font-weight:600}.projects-showcase{gap:var(--space-16);padding:var(--space-10) var(--content-gutter) var(--space-24);display:grid}.showcase-section{gap:var(--space-6);display:grid}.showcase-section__header{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-text);display:flex}.showcase-section__header .section-num{color:var(--color-accent);letter-spacing:.1em;font-size:.8125rem;font-weight:800}.showcase-section__header h2{color:var(--color-text);font-size:var(--text-lg);letter-spacing:-.03em;margin:0;font-weight:650}.showcase-section__header .section-count{color:var(--color-text-subtle);font-size:var(--text-xs);text-transform:uppercase;margin-left:auto;font-weight:600}.showcase-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(26rem,1fr));display:grid}.project-editorial-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:all var(--duration-standard) var(--ease-standard);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-editorial-card:hover{border-color:var(--color-accent);transform:translateY(-4px);box-shadow:0 16px 36px #0b13201f}.project-editorial-card:hover .project-preview-img{transform:scale(1.03)}.project-editorial-card__preview{border-bottom:1px solid var(--color-border);background:var(--color-canvas);width:100%;height:180px;position:relative;overflow:hidden}.project-preview-img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-standard);display:block}.project-preview-img.is-contain{object-fit:contain;padding:12px}.project-preview-placeholder{background:linear-gradient(135deg, var(--color-canvas-muted) 0%, var(--color-surface-raised) 100%);flex-direction:column;width:100%;height:100%;padding:12px;display:flex;position:relative}.project-preview-placeholder--ai{background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 15%, var(--color-canvas-muted)) 0%, var(--color-surface-raised) 100%)}.project-preview-placeholder--web{background:linear-gradient(135deg, color-mix(in srgb, var(--color-success) 15%, var(--color-canvas-muted)) 0%, var(--color-surface-raised) 100%)}.project-preview-placeholder--tools{background:linear-gradient(135deg, color-mix(in srgb, var(--color-warning) 15%, var(--color-canvas-muted)) 0%, var(--color-surface-raised) 100%)}.preview-decor-window{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 90%, transparent);align-items:center;gap:8px;padding:6px 10px;display:flex}.preview-window-dots{gap:4px;display:flex}.preview-window-dots .dot{border-radius:50%;width:7px;height:7px}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27c93f}.preview-window-title{color:var(--color-text-subtle);font-family:monospace;font-size:.6875rem;font-weight:600}.preview-watermark{opacity:.85;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.watermark-symbol{font-size:2rem}.watermark-text{color:var(--color-text-subtle);letter-spacing:.05em;text-transform:uppercase;font-size:.8125rem;font-weight:700}.project-editorial-card__body{padding:var(--space-5);flex-direction:column;flex:1;display:flex}.project-idx{color:var(--color-accent);letter-spacing:.05em;font-size:.75rem;font-weight:800}.project-editorial-card__top{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.project-editorial-card__meta{align-items:center;gap:8px;display:flex}.type-tag{border-radius:var(--radius-sm);letter-spacing:.04em;text-transform:uppercase;padding:.2rem .5rem;font-size:.6875rem;font-weight:700}.type-tag--ai{color:var(--color-accent);background:var(--color-accent-soft)}.type-tag--web{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.type-tag--tools{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent)}.domain-tag{color:var(--color-text-subtle);font-size:.725rem;font-weight:500}.project-editorial-card__title{color:var(--color-text);letter-spacing:-.02em;margin:0 0 2px;font-size:1.125rem;font-weight:650;line-height:1.3}.project-editorial-card__subtitle{margin:0 0 var(--space-3);color:var(--color-accent);font-size:var(--text-xs);font-weight:600}.project-editorial-card__desc{margin:0 0 var(--space-4);color:var(--color-text-muted);flex:1;font-size:.85rem;line-height:1.6}.project-attribution{margin:0 0 var(--space-4);border-left:2px solid var(--color-accent);color:var(--color-text-muted);background:var(--color-accent-soft);gap:.35rem;padding:.65rem .75rem;font-size:.72rem;line-height:1.5;display:grid}.project-attribution a{width:fit-content;color:var(--color-accent);align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.project-attribution a:hover{color:var(--color-accent-hover);text-underline-offset:3px;text-decoration:underline}.project-editorial-card__metric{margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-canvas-muted);align-items:center;gap:6px;padding:.35rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.metric-icon{color:var(--color-warning)}.metric-text{color:var(--color-text)}.project-editorial-card__footer{gap:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border);flex-direction:column;margin-top:auto;display:flex}.project-editorial-card__actions{align-items:center;gap:var(--space-2);display:flex}.project-card-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.private-repo-badge{border:1px solid color-mix(in srgb, var(--color-text-subtle) 42%, transparent);min-height:2rem;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-text-subtle) 8%, transparent);cursor:help;border-radius:.35rem;align-items:center;gap:.4rem;padding:.38rem .65rem;font-size:.7rem;font-weight:700;display:inline-flex}.private-repo-badge svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:.9rem;height:.9rem}.project-editorial-card__role{color:var(--color-text-subtle);font-size:var(--text-xs);font-style:italic;font-weight:500}.demo-badge-btn{border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:#fff;background:var(--color-accent);letter-spacing:.03em;transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);align-items:center;gap:6px;padding:.25rem .65rem;font-size:.71875rem;font-weight:750;text-decoration:none;display:inline-flex}.demo-badge-btn:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);transform:translateY(-1px)}.demo-badge-btn span:last-child{transition:transform var(--duration-fast) var(--ease-standard)}.demo-badge-btn:hover span:last-child{transform:translate(2px,-2px)}.os-badge-btn{border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent);background:var(--color-accent-soft);letter-spacing:.03em;transition:all var(--duration-fast) var(--ease-standard);align-items:center;gap:6px;padding:.25rem .6rem;font-size:.71875rem;font-weight:700;text-decoration:none;display:inline-flex}.os-badge-btn:hover{border-color:var(--color-accent-hover);color:#fff;background:var(--color-accent);box-shadow:0 2px 6px #24657533}.os-badge-btn .os-arrow{font-family:var(--font-sans);transition:transform var(--duration-fast) var(--ease-standard)}.os-badge-btn:hover .os-arrow{transform:translate(3px)}.store-badge-group{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.store-badge-btn{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-raised);letter-spacing:.01em;transition:all var(--duration-fast) var(--ease-standard);align-items:center;gap:6px;padding:.45rem .85rem;font-size:.8125rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 2px 6px #0000001f}.store-badge-btn .store-arrow{transition:transform var(--duration-fast) var(--ease-standard);font-size:.875rem}.store-badge-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface);transform:translateY(-1px);box-shadow:0 4px 12px #0003}.store-badge-btn:hover .store-arrow{transform:translate(2px,-2px)}.project-editorial-card__tags{flex-wrap:wrap;gap:5px;display:flex}.tech-pill{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:.15rem .45rem;font-size:.725rem;font-weight:500}.projects-empty{padding:var(--space-16) 0;color:var(--color-text-muted);font-size:var(--text-md);text-align:center}@media (width<=56rem){.projects-title{white-space:normal}.projects-filter-dock{flex-direction:column;align-items:flex-start}.filter-dock__summary{margin-left:0}}@media (width<=48rem){.projects-page,.projects-hero,.projects-showcase,.showcase-section,.showcase-grid,.project-editorial-card{width:100%;min-width:0;max-width:none}.projects-page{overflow-x:clip}.projects-hero{padding:1.35rem var(--page-gutter) 1rem}.projects-title{margin-bottom:.75rem;font-size:clamp(1.9rem,9vw,2.65rem);line-height:1.05}.projects-description{white-space:normal;margin-bottom:1.25rem;font-size:.92rem;line-height:1.55}.projects-filter-dock{gap:.85rem;width:100%;padding:.8rem;overflow:hidden}.filter-segment{flex-direction:column;align-items:stretch;gap:.4rem;width:100%;min-width:0}.segmented-control{scrollbar-width:none;width:100%;min-width:0;padding:.25rem;overflow-x:auto}.segmented-control::-webkit-scrollbar{display:none}.segment-btn{flex:none;min-height:2.35rem;padding-inline:.75rem}.filter-dock__summary{width:100%}.projects-showcase{padding:var(--space-6) var(--page-gutter) var(--space-12)}.showcase-grid,.project-editorial-card{grid-template-columns:minmax(0,1fr)}.project-editorial-card__idx{flex-direction:row;align-items:center}.showcase-section{gap:1rem}.showcase-section__header{gap:.6rem}.showcase-section__header h2{font-size:1.15rem}.project-editorial-card__preview{height:12rem}.project-editorial-card__body{padding:1rem}.project-editorial-card__actions,.project-editorial-card__footer,.project-card-actions,.store-badge-group{flex-wrap:wrap;min-width:0}.project-editorial-card__tags{overflow:hidden}}@media (width<=30rem){.projects-title{font-size:clamp(1.7rem,8.5vw,2.2rem)}.projects-showcase{gap:2.25rem}.showcase-section__header{flex-wrap:wrap;align-items:center}.showcase-section__header .section-count{width:100%;margin-left:0}.project-editorial-card__preview{height:10.5rem}}.opensource-page{background:var(--color-surface);min-height:100%}.os-filter-dock .segment-btn{align-items:center;gap:.4rem;display:inline-flex}.segment-icon{flex:none;width:.95rem;height:.95rem}.os-hero{padding:24px var(--content-gutter) 16px;border-bottom:1px solid var(--color-border);gap:12px;display:grid;position:relative}.os-hero__eyebrow-wrap{align-items:center;gap:10px;margin-bottom:0;display:flex}.os-eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}.os-title{letter-spacing:-.04em;white-space:nowrap;margin:0;font-size:clamp(1.4rem,2.3vw,2.1rem);font-weight:620;line-height:1.1}.os-description{max-width:48rem;color:var(--color-text-muted);margin:0;font-size:clamp(.9375rem,1.05vw,1.0625rem);line-height:1.65}.os-stats-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px;display:grid}.os-stat-card{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);flex-direction:column;justify-content:center;display:flex}.os-stat-card .stat-value{color:var(--color-accent);letter-spacing:-.03em;font-size:1.5rem;font-weight:750}.os-stat-card .stat-label{color:var(--color-text-subtle);font-size:var(--text-xs);margin-top:4px;font-weight:600}.os-stat-card--action{background:0 0;border:0;padding:0}.github-profile-btn{width:100%;height:100%;padding:var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:#fff;background:var(--color-accent);font-size:var(--text-xs);transition:all var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.github-profile-btn:hover{background:var(--color-accent-hover);box-shadow:0 4px 14px #2465754d}.github-profile-btn .gh-icon{flex:none;width:1.15rem;height:1.15rem}.github-profile-btn .gh-arrow{transition:transform var(--duration-fast) var(--ease-standard)}.github-profile-btn:hover .gh-arrow{transform:translate(2px,-2px)}.os-filter-dock{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas-muted);margin-top:5px;display:flex}.os-filter-label{color:var(--color-text-subtle);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:700}.os-grid-section{padding:var(--space-10) var(--content-gutter) var(--space-24)}.os-grid{align-items:stretch;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(28rem,1fr));grid-auto-rows:1fr;display:grid}.os-grid>div{min-width:0;height:100%;display:flex}.repo-contribution-label{width:fit-content;margin-bottom:var(--space-3);border:1px solid color-mix(in srgb, var(--color-accent) 38%, transparent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.68rem;font-weight:800;display:inline-flex}.repo-contribution-label svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:.9rem;height:.9rem}.os-repo-card{width:100%;min-width:0;height:100%;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:all var(--duration-standard) var(--ease-standard);flex-direction:column;display:flex;position:relative}.os-repo-card:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 16px 36px #0b13201f}.os-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.repo-title-group{align-items:baseline;gap:var(--space-2);display:flex}.repo-idx{color:var(--color-accent);font-size:var(--text-xs);font-weight:800}.repo-name{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}.repo-status-badge{border-radius:var(--radius-sm);letter-spacing:.03em;white-space:nowrap;align-items:center;gap:5px;padding:.25rem .55rem;font-size:.6875rem;font-weight:700;display:inline-flex}.repo-status-badge svg{width:.85rem;height:.85rem}.repo-status-badge--active{color:var(--color-accent);background:var(--color-accent-soft)}.repo-status-badge--maintained{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.repo-status-badge--experimental{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent)}.repo-headline{min-height:2.5em;margin:0 0 var(--space-3);color:var(--color-accent);font-size:var(--text-xs);font-weight:600;line-height:1.25}.repo-description{min-height:6.4em;margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.875rem;line-height:1.6}.repo-highlight-banner{min-height:2.75rem;margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-canvas-muted);color:var(--color-text);align-items:center;padding:.4rem .75rem;font-size:.75rem;font-weight:650;line-height:1.35;display:flex}.repo-features{gap:var(--space-2);min-height:10rem;margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-canvas);flex-direction:column;display:flex}.features-title{color:var(--color-text-subtle);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:700}.repo-features ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.repo-features li{color:var(--color-text-muted);align-items:baseline;gap:6px;font-size:.8125rem;line-height:1.45;display:flex}.feat-bullet{color:var(--color-accent);font-weight:800}.os-card-footer{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;margin-top:auto;display:flex}.repo-meta-strip{align-items:center;gap:var(--space-4);font-size:.75rem;font-weight:600;display:flex}.language-tag{color:var(--color-text);align-items:center;gap:5px;display:flex}.lang-dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px}.license-tag{color:var(--color-text-subtle)}.repo-tags-wrap{flex-wrap:wrap;gap:5px;display:flex}.repo-source-note{margin:var(--space-3) 0 0;color:var(--color-text-subtle);font-size:.72rem;line-height:1.5}.repo-source-pending{margin-top:var(--space-2);border:1px dashed var(--color-border-strong);color:var(--color-text-muted);background:var(--color-canvas-muted);text-align:center;padding:.55rem .85rem;font-size:.75rem;font-weight:600}.repo-github-link{text-align:center;margin-top:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-canvas);transition:all var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;padding:.55rem .85rem;font-size:.8125rem;font-weight:650;text-decoration:none;display:flex}.repo-github-link:hover{border-color:var(--color-accent);color:#fff;background:var(--color-accent)}.repo-github-link .link-arrow{transition:transform var(--duration-fast) var(--ease-standard)}.repo-github-link:hover .link-arrow{transform:translate(2px,-2px)}@media (width<=64rem){.os-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.os-grid{grid-template-columns:1fr}}@media (width<=48rem){.os-hero{padding:var(--space-6) var(--page-gutter)}.os-grid-section{padding:var(--space-6) var(--page-gutter) var(--space-12)}.os-stats-grid{grid-template-columns:1fr}.os-filter-dock{flex-direction:column;align-items:flex-start}}.experience-page{background:var(--color-surface);min-height:100%}.exp-hero{gap:var(--space-6);padding:32px var(--content-gutter) 24px;border-bottom:1px solid var(--color-border);background:var(--color-surface);display:grid;position:relative}.exp-hero__eyebrow-wrap{margin-bottom:var(--space-2);align-items:center;gap:10px;display:flex}.exp-eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}.exp-title{letter-spacing:-.04em;margin:0 0 10px;font-size:clamp(2rem,3.5vw,3.25rem);font-weight:620;line-height:1.1}.exp-description{max-width:none;color:var(--color-text-muted);white-space:nowrap;margin:0;font-size:clamp(.875rem,1vw,1.0625rem);line-height:1.65}.exp-stats-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px;display:grid}.exp-stat-card{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);flex-direction:column;display:flex}.exp-stat-card .stat-value{color:var(--color-accent);letter-spacing:-.03em;font-size:1.35rem;font-weight:750}.exp-stat-card .stat-label{color:var(--color-text-subtle);font-size:var(--text-xs);margin-top:4px;font-weight:600}.exp-filter-dock{align-items:center;gap:var(--space-4);margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas-muted);display:flex}.exp-filter-label{color:var(--color-text-subtle);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:700}.exp-timeline-section{padding:var(--space-12) var(--content-gutter) var(--space-24)}.timeline-centered-track{gap:var(--space-12);flex-direction:column;width:100%;max-width:88rem;margin:0 auto;display:flex;position:relative}.center-axis-line{background:var(--color-border);width:2px;position:absolute;top:10px;bottom:10px;left:50%;transform:translate(-50%)}.timeline-centered-node{grid-template-columns:minmax(0,1fr) 4rem minmax(0,1fr);align-items:center;width:100%;display:grid;position:relative}.node-card-wrapper{width:100%;min-width:0}.node--left .node-card-wrapper{grid-area:1/1}.node--left .node-center-pin{grid-area:1/2}.node--left .node-date-wrapper{padding-left:var(--space-6);text-align:left;grid-area:1/3}.node--right .node-card-wrapper{grid-area:1/3}.node--right .node-center-pin{grid-area:1/2}.node--right .node-date-wrapper{padding-right:var(--space-6);text-align:right;grid-area:1/1}.node-center-pin{z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.pin-dot{border:2px solid var(--color-accent);background:var(--color-surface);width:14px;height:14px;box-shadow:0 0 0 4px var(--color-surface);transition:all var(--duration-fast) var(--ease-standard);border-radius:50%}.timeline-centered-node:hover .pin-dot{background:var(--color-accent);transform:scale(1.3)}.node-date-wrapper{flex-direction:column;gap:2px;display:flex}.date-year{color:var(--color-accent);letter-spacing:-.02em;font-size:1.35rem;font-weight:800}.date-period{color:var(--color-text-subtle);font-size:.8125rem;font-weight:600}.timeline-card{width:100%;min-width:0;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:all var(--duration-standard) var(--ease-standard);flex-direction:column;display:flex}.timeline-card:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 14px 32px #0b13201a}.timeline-card__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.role-title-group{align-items:baseline;gap:var(--space-3);display:flex}.card-idx{color:var(--color-accent);font-size:.8125rem;font-weight:800}.role-title-group h3{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700}.m-type-badge{border-radius:var(--radius-sm);letter-spacing:.02em;white-space:nowrap;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.m-type-badge--work{color:var(--color-accent);background:var(--color-accent-soft)}.m-type-badge--education{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent)}.m-type-badge--freelance{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent)}.org-strip{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);color:var(--color-text-subtle);font-size:.8125rem;font-weight:600;display:flex}.card-desc{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.875rem;line-height:1.6}.card-highlights{gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-canvas);flex-direction:column;display:flex}.hl-title{color:var(--color-text-subtle);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:700}.card-highlights ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.card-highlights li{color:var(--color-text);white-space:nowrap;align-items:baseline;gap:6px;font-size:.8125rem;line-height:1.45;display:flex}.hl-bullet{color:var(--color-success);font-weight:800}.card-skills{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}@media (width<=64rem){.exp-description{white-space:normal}.center-axis-line{left:20px;transform:none}.timeline-centered-node{flex-direction:column;align-items:flex-start;padding-left:45px;display:flex}.node-center-pin{position:absolute;top:15px;left:14px}.node-date-wrapper{margin-bottom:var(--space-2);text-align:left!important;padding:0!important}.node-card-wrapper{width:100%}.card-highlights li{white-space:normal}.exp-stats-grid{grid-template-columns:1fr}.exp-filter-dock{flex-direction:column;align-items:flex-start}}@media (width<=48rem){.exp-hero{padding:var(--space-6) var(--page-gutter)}.exp-timeline-section{padding:var(--space-6) var(--page-gutter) var(--space-12)}}.contact-page{background:var(--color-surface);min-height:calc(100vh - var(--top-bar-height));padding-bottom:var(--space-20)}.contact-hero{padding:20px var(--content-gutter) 16px;border-bottom:1px solid var(--color-border)}.contact-hero__content{max-width:none}.contact-eyebrow-wrap{align-items:center;gap:var(--space-3);margin-bottom:8px;display:flex}.contact-eyebrow{color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:700}.contact-title{letter-spacing:-.035em;white-space:nowrap;margin:0 0 10px;font-size:clamp(1.2rem,2.1vw,2.1rem);font-weight:620;line-height:1.1}.contact-description{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.55}.contact-grid-section{padding:20px var(--content-gutter) var(--space-10)}.contact-grid{gap:var(--space-8);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;display:grid}.contact-info-column{gap:var(--space-6);flex-direction:column;display:flex}.contact-card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-raised)}.contact-card--form{border-color:var(--color-border-strong)}.contact-card__header{margin-bottom:var(--space-6)}.card-tag{border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-canvas-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-2);padding:.2rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.card-tag--accent{color:var(--color-accent);background:var(--color-accent-soft)}.contact-card__header h2{margin:0 0 var(--space-1);font-size:var(--text-lg);letter-spacing:-.02em;font-weight:650}.contact-card__header p{color:var(--color-text-subtle);font-size:var(--text-xs);margin:0}.contact-method-list{gap:var(--space-4);flex-direction:column;display:flex}.contact-method-item{align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas);display:flex}.method-icon{font-size:1.25rem;line-height:1}.method-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.method-label{color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.method-value{color:var(--color-text);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:650;text-decoration:none;overflow:hidden}.method-value:hover{color:var(--color-accent)}.copy-btn,.action-link-btn{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-raised);white-space:nowrap;transition:all var(--duration-fast) var(--ease-standard);cursor:pointer;padding:.35rem .65rem;font-size:.725rem;font-weight:650;text-decoration:none}.copy-btn:hover,.action-link-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.social-links-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.social-tile{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-canvas);transition:all var(--duration-fast) var(--ease-standard);text-decoration:none;display:flex}.social-tile:hover{border-color:var(--color-accent);background:var(--color-surface-raised);transform:translateY(-2px)}.social-tile__icon{width:1.5rem;height:1.5rem;color:var(--color-accent);justify-content:center;align-items:center;display:flex}.social-tile__icon svg{fill:currentColor;width:1.35rem;height:1.35rem}.social-tile__text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.social-tile__text strong{font-size:var(--text-sm);font-weight:650}.social-tile__text span{color:var(--color-text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.social-tile__arrow{color:var(--color-text-subtle);transition:transform var(--duration-fast) var(--ease-standard);font-size:.85rem}.social-tile:hover .social-tile__arrow{color:var(--color-accent);transform:translate(2px,-2px)}.availability-card{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-canvas-muted);font-size:var(--text-xs);font-weight:600;display:flex}.availability-dot{background:var(--color-success);width:.5rem;height:.5rem;box-shadow:0 0 8px var(--color-success);border-radius:50%}.contact-form{gap:var(--space-5);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{color:var(--color-text);font-size:var(--text-xs);letter-spacing:.02em;font-weight:650}.form-group input,.form-group textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-canvas);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-standard);padding:.7rem .9rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.form-alert{padding:.75rem var(--space-4);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;line-height:1.5}.form-alert--error{border:1px solid var(--color-danger);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent)}.form-alert--success{border:1px solid var(--color-success);color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent)}.form-submit-btn{justify-content:center;align-items:center;gap:var(--space-3);width:100%;margin-top:var(--space-2);display:inline-flex}@media (width<=64rem){.contact-grid{grid-template-columns:1fr}}@media (width<=48rem){.contact-hero,.contact-grid-section{padding-inline:var(--page-gutter)}.social-links-grid{grid-template-columns:1fr}}.chat-widget{z-index:90;font-family:var(--font-sans);justify-items:end;gap:.75rem;display:grid;position:fixed;bottom:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem)}.chat-launcher,.chat-close,.chat-composer button{cursor:pointer;border:0;justify-content:center;align-items:center;display:inline-flex}.chat-launcher{border:1px solid color-mix(in srgb, var(--color-accent) 38%, transparent);min-height:3.5rem;color:var(--color-on-accent,#fff);background:var(--color-accent);box-shadow:0 1rem 2.8rem color-mix(in srgb, var(--color-text) 22%, transparent);font:inherit;border-radius:999px;gap:.65rem;padding:.8rem 1rem;font-weight:750;transition:transform .16s,box-shadow .16s}.chat-launcher:hover{box-shadow:0 1.15rem 3rem color-mix(in srgb, var(--color-text) 28%, transparent);transform:translateY(-2px)}.chat-launcher svg,.chat-close svg,.chat-avatar svg,.chat-composer button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.35rem;height:1.35rem}.chat-panel{border:1px solid var(--color-border);width:min(25rem,100vw - 2rem);height:min(39rem,100vh - 7rem);min-height:28rem;color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 96%, transparent);box-shadow:0 1.5rem 4rem color-mix(in srgb, var(--color-text) 22%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform-origin:100% 100%;border-radius:1.35rem;grid-template-rows:auto minmax(0,1fr) auto auto;animation:.18s ease-out chat-panel-in;display:grid;overflow:hidden}.chat-header{border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 88%, var(--color-accent) 12%);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:1rem;display:grid}.chat-avatar{width:2.6rem;height:2.6rem;color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));border-radius:.9rem;place-items:center;display:grid}.chat-heading{gap:.18rem;min-width:0;display:grid}.chat-heading strong{font-size:.95rem}.chat-heading small{color:var(--color-text-muted);align-items:center;gap:.4rem;font-size:.72rem;display:flex}.chat-heading small span{background:#2f9e67;border-radius:50%;flex:none;width:.45rem;height:.45rem;box-shadow:0 0 0 .2rem #2f9e6729}.chat-close{width:2.35rem;height:2.35rem;color:var(--color-text-muted);background:0 0;border-radius:50%}.chat-close:hover{color:var(--color-text);background:var(--color-canvas-muted)}.chat-body{overscroll-behavior:contain;flex-direction:column;gap:.7rem;padding:1rem;display:flex;overflow-y:auto}.chat-message{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:1rem;max-width:88%;padding:.72rem .86rem;font-size:.88rem;line-height:1.52}.chat-message.assistant{color:var(--color-text);background:var(--color-canvas-muted);border-bottom-left-radius:.3rem;align-self:flex-start}.chat-message.user{color:var(--color-on-accent,#fff);background:var(--color-accent);border-bottom-right-radius:.3rem;align-self:flex-end}.chat-message.typing{color:var(--color-text-muted);font-style:italic}.chat-suggestions{gap:.5rem;margin-top:.15rem;display:grid}.chat-suggestions button{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:var(--color-surface);text-align:left;font:inherit;cursor:pointer;border-radius:.8rem;padding:.68rem .78rem;font-size:.8rem;line-height:1.35}.chat-suggestions button:hover{border-color:var(--color-accent);color:var(--color-accent)}.chat-error{color:#a73535;background:color-mix(in srgb, #c84c4c 8%, var(--color-surface));border:1px solid #c84c4c59;border-radius:.8rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.72rem;font-size:.78rem;display:flex}.chat-error button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-weight:750}.chat-composer{border:1px solid var(--color-border);background:var(--color-surface);border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.55rem;margin:0 .8rem;padding:.55rem;display:grid}.chat-composer:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 .2rem color-mix(in srgb, var(--color-accent) 12%, transparent)}.chat-composer textarea{resize:vertical;min-height:2.25rem;max-height:7rem;color:var(--color-text);font:inherit;background:0 0;border:0;outline:0;padding:.48rem .55rem;font-size:.86rem;line-height:1.4}.chat-composer textarea::placeholder{color:var(--color-text-muted)}.chat-composer button{width:2.4rem;height:2.4rem;color:var(--color-on-accent,#fff);background:var(--color-accent);border-radius:.75rem}.chat-composer button:disabled{opacity:.42;cursor:not-allowed}.chat-disclaimer{color:var(--color-text-muted);text-align:center;margin:0;padding:.55rem 1rem .75rem;font-size:.66rem;line-height:1.35}@keyframes chat-panel-in{0%{opacity:0;transform:translateY(.75rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=40rem){.chat-widget{right:.85rem;bottom:max(.85rem, env(safe-area-inset-bottom));left:.85rem}.chat-panel{border-radius:1.15rem;width:100%;height:min(35rem,100dvh - 7rem);min-height:0}.chat-header,.chat-body{padding:.8rem}.chat-message{max-width:92%;font-size:.84rem}.chat-launcher span{display:none}.chat-launcher{width:3.25rem;min-height:3.25rem;box-shadow:0 .75rem 2rem color-mix(in srgb, var(--color-text) 20%, transparent);padding:0}.chat-composer{margin-inline:.65rem}.chat-disclaimer{padding-bottom:max(.65rem, env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.chat-panel{animation:none}.chat-launcher{transition:none}}
