@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a342834df7752944-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.LE2TAW_className{font-family:Manrope,Manrope Fallback;font-style:normal}.LE2TAW_variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--ink-900:#1d1d1f;--ink-700:#424245;--ink-600:#6e6e73;--ink-500:#86868b;--ink-400:#aeaeb2;--line-300:#d2d2d7;--line-200:#e8e8ed;--paper-100:#f5f5f7;--paper-050:#fbfbfd;--paper-000:#fff;--night-000:#000;--night-050:#161617;--night-100:#1d1d1f;--night-200:#2a2a2c;--blue-600:#06c;--blue-500:#0071e3;--blue-400:#0077ed;--blue-link-dark:#2997ff;--green-500:#1d9d56;--amber-500:#c77b1f;--red-500:#d33636;--text-primary:var(--ink-900);--text-secondary:var(--ink-600);--text-tertiary:var(--ink-500);--text-disabled:var(--ink-400);--text-on-dark:var(--paper-100);--text-on-dark-dim:#a1a1a6;--text-link:var(--blue-500);--text-link-dark:var(--blue-link-dark);--text-on-accent:var(--paper-000);--bg-page:var(--paper-000);--bg-wash:var(--paper-050);--surface:var(--paper-100);--surface-raised:var(--paper-000);--surface-dark:var(--night-000);--surface-dark-soft:var(--night-050);--border:var(--line-300);--border-subtle:var(--line-200);--border-on-dark:#ffffff29;--accent:var(--blue-500);--accent-hover:var(--blue-400);--accent-press:var(--blue-600);--focus-ring:#0071e373}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-primary:var(--paper-100);--text-secondary:#a1a1a6;--text-tertiary:#8e8e93;--text-disabled:var(--ink-600);--text-link:var(--blue-link-dark);--bg-page:#000;--bg-wash:#0b0b0c;--surface:#242426;--surface-raised:#161617;--border:#ffffff29;--border-subtle:#ffffff1a;--glass-bg:#161617b8}
:root{--font-display:-apple-system, BlinkMacSystemFont, var(--font-manrope,"Manrope"), "Segoe UI", system-ui, sans-serif;--font-text:-apple-system, BlinkMacSystemFont, var(--font-manrope,"Manrope"), "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--fs-display-xl:clamp(3rem, 6vw, 5rem);--fs-display-lg:clamp(2.5rem, 4.5vw, 3.5rem);--fs-display-md:clamp(2rem, 3.4vw, 2.75rem);--fs-title-lg:1.75rem;--fs-title-md:1.375rem;--fs-title-sm:1.1875rem;--fs-body-lg:1.3125rem;--fs-body:1.0625rem;--fs-body-sm:.9375rem;--fs-caption:.8125rem;--fs-eyebrow:.75rem;--lh-tight:1.05;--lh-snug:1.14;--lh-normal:1.47;--lh-relaxed:1.6;--tracking-display:-.022em;--tracking-title:-.014em;--tracking-body:0em;--tracking-eyebrow:.08em;--tracking-caps:.04em}
:root{--space-0:0;--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-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;--gap-inline:var(--space-3);--gap-stack:var(--space-4);--gap-card:var(--space-6);--section-pad-y:clamp(72px, 10vw, 160px);--page-gutter:clamp(20px, 5vw, 48px);--content-max:1120px}
:root{--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:40px;--radius-pill:980px;--radius-full:9999px}
:root{--shadow-none:none;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 2px 8px #0000000d;--shadow-card:0 4px 16px #0000000f;--shadow-md:0 10px 30px #00000014;--shadow-lg:0 20px 50px #0000001a;--shadow-pop:0 12px 40px #00000024;--shadow-focus:0 0 0 4px var(--focus-ring);--glass-bg:#ffffffb8;--glass-blur:saturate(180%) blur(20px)}
:root{--dur-fast:.12s;--dur-base:.24s;--dur-slow:.4s;--dur-reveal:.7s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--t-color:color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);--t-transform:transform var(--dur-base) var(--ease-out);--t-all:all var(--dur-base) var(--ease-out)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-reveal:0s}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--line-300) transparent}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}body{font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;animation:pageEnter .7s var(--ease-out) both;margin:0}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--lh-snug);letter-spacing:var(--tracking-title);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}a{color:var(--text-link);transition:var(--t-color);text-decoration:none}a:hover{text-decoration:underline}img,svg,video{max-width:100%;display:block}button{font-family:inherit}::selection{background:#0071e329}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-xs);outline:none}.ap-container{width:100%;max-width:var(--content-max);padding-inline:var(--page-gutter);margin-inline:auto}
html{scroll-padding-top:88px}.section{padding-block:var(--section-pad-y)}.section-wash{background:var(--bg-wash)}.section-dark{background:var(--surface-dark);position:relative;overflow:hidden}.section-dark:before{content:"";pointer-events:none;filter:blur(60px);background:radial-gradient(#2997ff0f 0%,#0000 70%);width:600px;height:400px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.section-wash-skills{background:linear-gradient(180deg, var(--bg-wash) 0%, #0071e304 50%, var(--bg-wash) 100%)}.section-wash-learning{background:linear-gradient(180deg, var(--bg-wash) 0%, #1d9d5604 50%, var(--bg-wash) 100%)}.section-wash-contact{background:linear-gradient(180deg, var(--bg-wash) 0%, #0071e305 100%)}.rv{opacity:0;filter:blur(6px);transform:translateY(32px)}.rv.rv-in{opacity:1;filter:none;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out), filter 1s var(--ease-out);transition-delay:var(--rv-delay,0s);transform:none}.fx-stagger>*{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(22px)}.fx-stagger.fx-in>*{opacity:1;transform:none}::placeholder{color:var(--text-tertiary);opacity:1}.tl-header{z-index:50;pointer-events:none;position:fixed;top:14px;left:0;right:0}.tl-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.tl-glass{pointer-events:auto;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius-pill);background:#ffffffd1;border:1px solid #00000017;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f}.tl-brand{justify-self:start;align-items:center;gap:10px;padding:8px 16px 8px 8px;text-decoration:none;display:inline-flex}.tl-brand:hover{text-decoration:none}.tl-brand img{display:block}.tl-brand-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap;font-size:16px;font-weight:600}.tl-nav{align-items:center;gap:2px;padding:4px;display:flex;position:relative}.tl-link{z-index:1;border-radius:var(--radius-pill);font-size:var(--fs-body-sm);white-space:nowrap;color:var(--text-secondary);transition:color var(--dur-base) var(--ease-out);justify-content:center;align-items:center;padding:8px 16px;font-weight:500;line-height:20px;text-decoration:none;display:inline-flex;position:relative}.tl-link:hover{color:var(--text-primary);text-decoration:none}.tl-link.is-active{color:var(--text-primary)}.tl-icon{display:none}.tl-lamp{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 10%, transparent);opacity:0;pointer-events:none;width:0;transition:transform .55s cubic-bezier(.34, 1.3, .64, 1), width .55s cubic-bezier(.34, 1.3, .64, 1), opacity .3s var(--ease-out);position:absolute;top:4px;bottom:4px;left:0}.tl-lamp.is-on{opacity:1}.tl-lamp:before{content:"";background:var(--accent);width:28px;height:3px;box-shadow:0 0 10px 1px color-mix(in srgb, var(--accent) 60%, transparent), 0 4px 18px 6px color-mix(in srgb, var(--accent) 22%, transparent);clip-path:inset(0 -40px -40px);border-radius:0 0 3px 3px;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.tl-controls{justify-self:end;align-items:center;gap:6px;padding:5px;display:flex}.tl-controls .theme-toggle{width:34px;height:34px}@media (max-width:860px){.tl-header{top:10px}.tl-nav{width:max-content;max-width:calc(100vw - 24px);box-shadow:var(--shadow-pop);position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.tl-link{flex-shrink:0;padding:12px 16px}.tl-label{display:none}.tl-icon{flex-shrink:0;display:block}}@media (max-width:360px){.tl-link{padding:12px 13px}}.lang-toggle{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-subtle);padding:3px;display:inline-flex;position:relative}.lang-thumb{border-radius:var(--radius-pill);background:var(--surface-raised);width:34px;height:26px;box-shadow:var(--shadow-xs), 0 0 0 1px var(--border-subtle);transition:transform .35s cubic-bezier(.34,1.3,.64,1);position:absolute;top:3px;left:3px}.lang-toggle[data-lang=id] .lang-thumb{transform:translate(34px)}.lang-opt{z-index:1;border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.04em;width:34px;height:26px;color:var(--text-tertiary);transition:color var(--dur-fast);background:0 0;border:none;padding:0;font-size:12px;font-weight:600;position:relative}.lang-opt:hover,.lang-opt.is-active{color:var(--text-primary)}html.lang-leaving:after{content:"";z-index:9999;background:var(--bg-page);animation:langCover .24s var(--ease-out) forwards;position:fixed;inset:0}@keyframes langCover{0%{opacity:0}to{opacity:1}}.theme-toggle{border:1px solid var(--border-subtle);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease-out);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--surface);color:var(--text-primary)}.theme-toggle:active{transform:scale(.92)}.tt-solar{display:block;overflow:visible}.tt-solar path{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;transform-box:fill-box;transform-origin:50%;transition:transform .7s var(--ease-out), stroke-dashoffset .45s var(--ease-out) .25s}:root[data-theme=dark] .tt-sun path,:root:not([data-theme=dark]) .tt-moon{stroke-dashoffset:1px;transition:transform .7s var(--ease-out), stroke-dashoffset .3s var(--ease-out);transform:scale(0)}.hero{isolation:isolate;text-align:center;background:radial-gradient(120% 90% at 50% 0%, var(--surface-raised) 0%, var(--bg-wash) 55%, var(--surface) 100%);padding-top:clamp(116px,13vw,168px);padding-bottom:clamp(56px,8vw,110px);position:relative;overflow:hidden}.hero>.ap-container{z-index:1;position:relative}.hero-avatar{width:120px;height:120px;box-shadow:0 4px 24px #0000001a, 0 0 0 3px var(--bg-wash);border-radius:50%;flex-shrink:0;margin-bottom:4px;overflow:hidden}.hero-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-display-xl);line-height:var(--lh-tight);letter-spacing:var(--tracking-display);max-width:1040px;margin:0}.hero-lede{font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--text-secondary);max-width:640px;margin:0}.hero-roles{flex-direction:column;align-items:center;gap:12px;margin-top:14px;display:flex}.hero-roles-label{font-size:var(--fs-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-tertiary)}.hero-roles-list{flex-wrap:wrap;justify-content:center;gap:10px;max-width:840px;display:flex}@media (max-width:800px){.hero-roles-list{grid-template-columns:repeat(2,auto);justify-content:center;justify-items:center;display:grid}}@media (max-width:480px){.hero-roles-list{gap:8px}.hero-roles-list>*{font-size:var(--fs-caption)!important;padding:5px 11px!important}}.fx-enter{opacity:0;filter:blur(6px);transform:translateY(22px)}.fx-enter.is-in{opacity:1;filter:none;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out), filter .8s var(--ease-out);transform:none}.fx-word{opacity:0;filter:blur(8px);display:inline-block;transform:translateY(20px)scale(.98)}.fx-word.is-in{opacity:1;filter:none;transition:opacity .65s var(--ease-out), transform .65s var(--ease-out), filter .65s var(--ease-out);transform:none}.fx-gradient-text{background:linear-gradient(135deg, var(--accent) 0%, #5ac8fa 50%, var(--accent) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:5s ease-in-out infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}#fx-stars{z-index:0;pointer-events:none;position:absolute;inset:0}#fx-aurora{z-index:0;pointer-events:none;filter:blur(36px);background:radial-gradient(38% 48% at 22% 28%,#0071e31a,#0000 70%),radial-gradient(34% 44% at 80% 22%,#5ac8fa17,#0000 70%),radial-gradient(44% 42% at 62% 82%,#0071e30f,#0000 72%);animation:26s ease-in-out infinite alternate auroraDrift;position:absolute;inset:-25%}@keyframes auroraDrift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(2.2%,1.6%)scale(1.07)}to{transform:translate(-1.8%,1%)scale(1.03)}}#fx-grid{z-index:1;pointer-events:none;background-image:radial-gradient(circle,#0000000e 1px,#0000 1.5px);background-size:26px 26px;animation:26s linear infinite fxGridDrift;position:absolute;inset:-40px;-webkit-mask-image:radial-gradient(68% 58% at 50% 36%,#000 0%,#0000 76%);mask-image:radial-gradient(68% 58% at 50% 36%,#000 0%,#0000 76%)}@keyframes fxGridDrift{to{background-position:26px 26px}}:root[data-theme=dark] #fx-grid{background-image:radial-gradient(circle,#ffffff0d 1px,#0000 1.5px)}.hero:before,.hero:after{content:"";pointer-events:none;filter:blur(80px);z-index:0;border-radius:50%;position:absolute}.hero:before{background:radial-gradient(#0071e312 0%,#0000 70%);width:560px;height:400px;animation:22s ease-in-out infinite alternate nebulaDrift;top:-60px;left:-80px}.hero:after{background:radial-gradient(#5ac8fa0d 0%,#0000 70%);width:480px;height:360px;animation:28s ease-in-out infinite alternate-reverse nebulaDrift;bottom:0;right:-60px}@keyframes nebulaDrift{0%{transform:translate(0)scale(1)}to{transform:translate(40px,24px)scale(1.08)}}.pcard{aspect-ratio:4/5;perspective:1600px;justify-self:center;width:100%;max-width:400px;position:relative}.pcard-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.2,.7,.2,1);position:relative}.pcard[data-flipped=true] .pcard-inner{transform:rotateY(180deg)}@media (hover:hover) and (pointer:fine){.pcard:hover .pcard-inner{transform:rotateY(180deg)}}.pcard-face{border-radius:var(--radius-lg);transform-style:preserve-3d;backface-visibility:hidden;box-shadow:var(--shadow-card);position:absolute;inset:0}.pcard-photo{border-radius:inherit;background:var(--surface);position:absolute;inset:0;overflow:hidden}.pcard-photo img{object-fit:cover;object-position:50% 36%;width:100%;height:100%;display:block}.pcard-photo:after{content:"";background:linear-gradient(#0000 45%,#00000040 68%,#000000b8 100%);position:absolute;inset:0}.pcard-caption{color:#fff;position:absolute;bottom:22px;left:24px;right:24px;transform:translateZ(40px)}.pcard-front .pcard-name{color:#fff}.pcard-front .pcard-role{color:#ffffffd1}.pcard-hint{font-size:var(--fs-caption);color:#ffffffb3;align-items:center;gap:6px;margin-top:12px;display:inline-flex}.pcard-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-title-md);color:var(--text-primary);letter-spacing:-.01em}.pcard-role{font-size:var(--fs-body-sm);color:var(--text-secondary);margin-top:4px}.pcard-back{background:var(--surface-raised);border:1px solid var(--border-subtle);text-align:center;justify-content:center;align-items:center;padding:36px 32px;display:flex;transform:rotateY(180deg)}.pcard-back-content{flex-direction:column;gap:20px;width:100%;display:flex;transform:translateZ(40px)}.pcard-divider{background:var(--border-subtle);width:100%;height:1px}.pcard-corner{color:var(--text-tertiary);position:absolute;top:18px;right:18px}.pcard-toggle{z-index:2;cursor:pointer;border-radius:var(--radius-lg);background:0 0;border:0;padding:0;position:absolute;inset:0}.pcard-toggle:focus-visible{box-shadow:var(--shadow-focus);outline:none}.profile-facts{flex-direction:column;gap:10px;width:100%;margin:0;display:flex}.profile-fact{font-size:var(--fs-body-sm);text-align:left;justify-content:space-between;gap:16px;display:flex}.profile-fact dt{color:var(--text-tertiary)}.profile-fact dd{color:var(--text-primary);text-align:right;margin:0;font-weight:500}.xp-list{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;margin-top:48px;display:flex;overflow:hidden}.xp-item{grid-template-columns:220px 1fr;gap:32px;padding:32px;display:grid}.xp-item+.xp-item{border-top:1px solid var(--border-subtle)}.xp-meta{flex-direction:column;gap:6px;display:flex}.xp-period{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-tertiary)}.xp-context{font-size:var(--fs-body-sm);color:var(--text-secondary);line-height:var(--lh-normal)}.xp-role{font-family:var(--font-display);font-weight:600;font-size:var(--fs-title-md);letter-spacing:-.01em;color:var(--text-primary);margin:0}.xp-org{font-size:var(--fs-body-sm);color:var(--accent);margin-top:4px;font-weight:500}.xp-org a{color:inherit;align-items:center;gap:2px;margin-block:-4px;padding-block:4px;display:inline-flex}.xp-points{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--text-secondary);flex-direction:column;gap:8px;margin:14px 0 0;padding-left:18px;display:flex}.xp-points li::marker{color:var(--text-tertiary)}.xp-tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.xp-paper{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border-subtle));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, var(--surface-raised)), var(--surface-raised) 60%);grid-template-columns:auto 1fr;gap:20px;margin-top:20px;padding:28px 32px;display:grid}.xp-paper-icon{border-radius:var(--radius-md);background:var(--accent);color:#fff;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.xp-paper-top{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.cs{outline:none;margin-top:40px}.cs-stage{perspective:1200px;touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow-x:clip}.cs-stage:before{content:"";background:radial-gradient(50% 60% at 50% 100%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);pointer-events:none;height:45%;position:absolute;bottom:0;left:12%;right:12%}.cs-card{transform-origin:50% 85%;transition:transform .75s cubic-bezier(.3, 1.2, .5, 1), opacity .45s var(--ease-out);will-change:transform;position:absolute;bottom:28px;left:50%}.cs-stage.is-still .cs-card{transition:none}.cs-hit{z-index:2;border-radius:var(--radius-lg);cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.cs-hit:focus-visible{box-shadow:0 0 0 3px var(--bg-page), 0 0 0 6px var(--accent);outline:none}.cs-controls{justify-content:center;align-items:center;gap:14px;margin-top:18px;display:flex}.cs-arrow{border:1px solid var(--border-subtle);background:var(--surface-raised);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.cs-arrow:hover{background:var(--surface);color:var(--text-primary)}.cs-dots{align-items:center;gap:4px;display:flex}.cs-dot{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:inline-flex}.cs-dot:after{content:"";border-radius:var(--radius-pill);background:color-mix(in srgb, var(--text-primary) 25%, transparent);width:7px;height:7px;transition:width .3s var(--ease-out), background-color .3s var(--ease-out)}.cs-dot:hover:after{background:color-mix(in srgb, var(--text-primary) 50%, transparent)}.cs-dot[aria-current=true]:after{background:var(--accent);width:20px}.cs-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.pj-card{border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--border-subtle);flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:0 2px 6px #0000000a,0 18px 44px #0000001a}:root[data-theme=dark] .pj-card{box-shadow:0 24px 60px #0009}.cs-card.is-active .pj-card{border-color:color-mix(in srgb, var(--accent) 35%, var(--border-subtle))}.pj-cover{aspect-ratio:2;background:var(--surface);flex-shrink:0;position:relative;overflow:hidden}.pj-cover img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.pj-cover-fallback{background:radial-gradient(120% 120% at 0% 0%, hsl(var(--hue) 90% 62% / .55), transparent 60%), linear-gradient(135deg, hsl(var(--hue) 65% 24%), hsl(calc(var(--hue) + 40) 55% 12%));place-items:center;width:100%;height:100%;display:grid}.pj-cover-fallback span{font-family:var(--font-display);letter-spacing:-.04em;color:#ffffffe6;font-size:clamp(2.5rem,7vw,4rem);font-weight:600}.pj-status,.pj-visit{border-radius:var(--radius-pill);font-size:var(--fs-caption);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;align-items:center;gap:4px;padding:5px 10px;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:12px}.pj-status{left:12px}.pj-visit{background:var(--accent);opacity:0;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);right:12px;transform:translateY(-4px)}.cs-card.is-active .pj-visit{opacity:1;transform:none}.pj-body{flex-direction:column;flex:1;min-height:0;padding:18px 20px 20px;display:flex}.pj-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-title-md);letter-spacing:-.02em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pj-role{font-size:var(--fs-body-sm);color:var(--accent);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-weight:500;overflow:hidden}.pj-summary{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:10px 0 0;display:-webkit-box;overflow:hidden}.pj-stack{gap:6px;margin-top:auto;padding-top:12px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.pj-stack span{border-radius:var(--radius-pill);border:1px solid var(--border-subtle);font-size:var(--fs-caption);color:var(--text-secondary);white-space:nowrap;flex-shrink:0;padding:4px 10px}.pj-hint{text-align:center;font-size:var(--fs-caption);color:var(--text-tertiary);margin:10px 0 0}.pj-detail{max-width:880px;margin:40px auto 0}.pj-detail-in{border-radius:var(--radius-xl);background:var(--surface);animation:pjDetailIn .45s var(--ease-out);padding:28px 30px}@keyframes pjDetailIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.pj-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.pj-detail-index{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-tertiary)}.pj-detail-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-title-lg);letter-spacing:-.02em;color:var(--text-primary);margin:6px 0 0}.pj-detail-role{font-size:var(--fs-body-sm);color:var(--text-secondary);margin-top:4px}.pj-visit-btn{border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-primary);font-size:var(--fs-body-sm);white-space:nowrap;transition:background var(--dur-fast), border-color var(--dur-fast);align-items:center;gap:6px;padding:9px 16px;font-weight:500;text-decoration:none;display:inline-flex}.pj-visit-btn:hover{background:var(--surface-raised);border-color:var(--accent);text-decoration:none}.pj-detail-grid{grid-template-columns:1fr 1fr;gap:22px 32px;margin-top:24px;display:grid}.pj-detail-grid p{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--text-primary);margin:8px 0 0}.ed-stage{perspective:1400px;margin-top:48px}.ed-window{--p:1;transform-origin:50% 0;max-width:920px;transform:rotateX(calc((1 - var(--p)) * 24deg)) scale(calc(.93 + var(--p) * .07));border-radius:var(--radius-lg);color:#e6e6e6;background:#1d1d1f;border:1px solid #ffffff14;margin:0 auto;overflow:hidden;box-shadow:0 9px 20px #0000002e,0 37px 37px #00000024,0 84px 50px #00000014}.ed-titlebar{background:#161617;border-bottom:1px solid #ffffff0f;align-items:center;height:40px;padding:0 14px;display:flex;position:relative}.ed-lights{gap:8px;display:flex}.ed-lights i{background:#ff5f57;border-radius:50%;width:12px;height:12px}.ed-lights i:nth-child(2){background:#febc2e}.ed-lights i:nth-child(3){background:#28c840}.ed-title{font-family:var(--font-mono);color:#8e8e93;white-space:nowrap;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}.ed-tabs{scrollbar-width:none;background:#161617;border-bottom:1px solid #ffffff0f;display:flex;overflow-x:auto}.ed-tabs::-webkit-scrollbar{display:none}.ed-tab{font-family:var(--font-mono);white-space:nowrap;color:#8e8e93;cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;border-right:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:8px;padding:11px 18px;font-size:12.5px;display:inline-flex;position:relative}.ed-tab:hover{color:#e6e6e6}.ed-tab[aria-selected=true]{color:#fff;background:#1d1d1f}.ed-tab[aria-selected=true]:after{content:"";background:var(--accent);height:2px;position:absolute;top:0;left:0;right:0}.ed-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:none;border-radius:0}.ed-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ed-body{font-family:var(--font-mono);min-height:calc(16.2em + 44px);padding:20px 0 24px;font-size:14px;line-height:1.8}.ed-code-in{animation:edIn .28s var(--ease-out)}@keyframes edIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.ed-line{grid-template-columns:3ch 1fr;column-gap:2.5ch;padding:0 24px 0 16px;display:grid}.ed-ln{text-align:right;color:#4b4b50;-webkit-user-select:none;user-select:none}.ed-code{font:inherit;color:inherit;white-space:pre-wrap;overflow-wrap:anywhere;text-indent:-4ch;background:0 0;padding-left:4ch}.tok-kw{color:#ff7ab2}.tok-decl{color:#5dd8ff}.tok-key{color:#67b7a4}.tok-str{color:#fc6a5d}.tok-com{color:#7f8c98}.tok-pun{color:#a1a1a6}.ed-status{font-family:var(--font-mono);color:#8e8e93;background:#161617;border-top:1px solid #ffffff0f;justify-content:space-between;gap:12px;padding:7px 16px;font-size:12px;display:flex}.ed-status span{align-items:center;gap:6px;display:inline-flex}.fx-card-glow{position:relative}.fx-card-glow:before{content:"";z-index:-1;border-radius:inherit;filter:blur(12px);opacity:0;transition:opacity .4s var(--ease-out);background:linear-gradient(135deg,#0071e326,#5ac8fa1a,#0071e30d);position:absolute;inset:-1px}.fx-card-glow:hover:before{opacity:1}.fx-dark-card-glow{transition:border-color .4s var(--ease-out), box-shadow .4s var(--ease-out), transform .3s var(--ease-out)}.fx-dark-card-glow:hover{transform:translateY(-3px);box-shadow:0 0 28px #2997ff14,0 8px 20px #0000004d;border-color:#2997ff4d!important}.fx-spot{position:relative}.fx-spot:after{content:"";z-index:2;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(240px circle at var(--mx,50%) var(--my,-40%), #0071e31a, transparent 60%);transition:opacity .4s var(--ease-out);position:absolute;inset:0}.fx-spot:hover:after{opacity:1}.fx-spot-dark:after{background:radial-gradient(280px circle at var(--mx,50%) var(--my,-40%), #2997ff33, transparent 62%)}.fx-tilt{transform-style:preserve-3d;will-change:transform}.teamwork-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contact-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fx-contact-row{border-radius:var(--radius-sm);transition:background .3s var(--ease-out);margin-inline:-12px;padding:12px!important}.fx-contact-row:hover{background:var(--surface);text-decoration:none}.fx-contact-icon{transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out)}.fx-contact-row:hover .fx-contact-icon{transform:scale(1.1);box-shadow:0 0 0 3px #0071e31f}#fx-toast{z-index:80;border-radius:var(--radius-pill);background:var(--night-100);color:var(--paper-000);font-family:var(--font-text);font-size:var(--fs-body-sm);box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);align-items:center;gap:8px;padding:10px 18px;font-weight:500;display:inline-flex;position:fixed;bottom:36px;left:50%;transform:translate(-50%)translateY(12px)}#fx-toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}#fx-toast .fx-toast-dot{background:var(--green-500);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.site-footer{padding:40px 0}.fx-social-bounce:hover{animation:socialWiggle .5s var(--ease-out)}@keyframes socialWiggle{0%{transform:scale(1)rotate(0)}20%{transform:scale(1.18)rotate(-8deg)}40%{transform:scale(.92)rotate(5deg)}60%{transform:scale(1.1)rotate(-3deg)}80%{transform:scale(.98)rotate(1deg)}to{transform:scale(1)rotate(0)}}#fx-progress{z-index:60;transform-origin:0;background:linear-gradient(90deg, var(--accent), #5ac8fa);height:2px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.fx-shine{isolation:isolate;position:relative;overflow:hidden}.fx-shine:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 0%,#ffffff73 50%,#0000 100%);width:55%;position:absolute;top:0;bottom:0;left:-130%;transform:skew(-20deg)}.fx-shine:hover:after{animation:shineSweep .85s var(--ease-out)}.fx-shine:hover{box-shadow:0 8px 24px #0071e352}@keyframes shineSweep{0%{left:-130%}to{left:130%}}.fx-magnetic{display:inline-flex}#fx-cursor-glow{z-index:9999;pointer-events:none;opacity:0;background:radial-gradient(circle,#0071e30a 0%,#0000 60%);border-radius:50%;width:400px;height:400px;transition:opacity .5s;position:fixed;transform:translate(-50%,-50%)}body:hover #fx-cursor-glow{opacity:1}#fx-chat-launcher{z-index:45;background:var(--accent);width:56px;height:56px;color:var(--text-on-accent);cursor:pointer;transition:transform .28s var(--ease-out), box-shadow .28s var(--ease-out), background .2s;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 8px 26px #0071e361}.fx-chat-launcher-img{object-fit:cover;object-position:center 22%;width:100%;height:100%}#fx-chat-launcher:hover{background:var(--accent-hover);transform:translateY(-2px)scale(1.05);box-shadow:0 14px 32px #0071e37a}#fx-chat-launcher:active{transform:scale(.94)}.fx-chat-panel{z-index:46;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:min(380px,100vw - 32px);height:min(560px,100dvh - 150px);box-shadow:var(--shadow-pop);transform-origin:100% 100%;animation:chatIn .28s var(--ease-out);flex-direction:column;display:flex;position:fixed;bottom:92px;right:24px;overflow:hidden}@keyframes chatIn{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:none}}.fx-chat-head{border-bottom:1px solid var(--border-subtle);background:var(--surface);align-items:center;gap:10px;padding:14px 14px 14px 16px;display:flex}.fx-chat-avatar{background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex;overflow:hidden}.fx-chat-avatar img{object-fit:cover;object-position:center 22%;width:100%;height:100%}.fx-chat-head-text{flex-direction:column;flex:1;min-width:0;display:flex}.fx-chat-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-body-sm);color:var(--text-primary)}.fx-chat-sub{font-size:var(--fs-caption);color:var(--text-tertiary)}.fx-chat-close{cursor:pointer;width:30px;height:30px;color:var(--text-tertiary);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.fx-chat-close:hover{background:var(--surface-raised);color:var(--text-primary)}.fx-chat-body{background:var(--bg-page);flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.fx-chat-row{display:flex}.fx-chat-row.user{justify-content:flex-end}.fx-chat-row.bot{justify-content:flex-start}.fx-chat-bubble{max-width:82%;font-size:var(--fs-body-sm);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px;padding:10px 13px;line-height:1.5}.fx-chat-bubble.bot{background:var(--surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-bottom-left-radius:4px}.fx-chat-bubble.user{background:var(--accent);color:var(--text-on-accent);border-bottom-right-radius:4px}.fx-chat-chips{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.fx-chat-chip{border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-caption);text-align:left;cursor:pointer;padding:7px 12px;transition:border-color .2s,color .2s}.fx-chat-chip:hover{border-color:var(--accent);color:var(--accent)}.fx-chat-typing{align-items:center;gap:4px;padding:2px 0;display:inline-flex}.fx-chat-typing i{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chatDot}.fx-chat-typing i:nth-child(2){animation-delay:.2s}.fx-chat-typing i:nth-child(3){animation-delay:.4s}@keyframes chatDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.fx-chat-foot{border-top:1px solid var(--border-subtle);background:var(--surface-raised);gap:8px;padding:12px;display:flex}.fx-chat-input{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-raised);min-width:0;color:var(--text-primary);font-family:var(--font-text);font-size:var(--fs-body-sm);outline:none;flex:1;padding:10px 14px;transition:border-color .2s,box-shadow .2s}.fx-chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.fx-chat-send{background:var(--accent);width:40px;height:40px;color:var(--text-on-accent);cursor:pointer;transition:background .2s, transform .15s var(--ease-out), opacity .2s;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fx-chat-send:hover:not(:disabled){background:var(--accent-hover)}.fx-chat-send:active:not(:disabled){transform:scale(.9)}.fx-chat-send:disabled{opacity:.45;cursor:default}.fx-chat-hint{text-align:center;color:var(--text-tertiary);background:var(--surface-raised);padding:0 0 8px;font-size:10.5px}:root[data-theme=dark] .tl-glass{background:var(--glass-bg);border-color:var(--border-subtle);box-shadow:0 4px 18px #00000073}:root[data-theme=dark]{scrollbar-color:#ffffff2e transparent}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff2e}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (max-width:860px){html{scroll-padding-top:76px}.collapse-2{grid-template-columns:1fr!important}.xp-item{grid-template-columns:1fr;gap:10px;padding:24px}.xp-paper{padding:24px}.site-footer{padding-bottom:104px}#fx-cursor-glow,.fx-card-glow:before{display:none}.fx-dark-card-glow:hover{transform:none}#fx-chat-launcher{width:52px;height:52px;bottom:84px;right:16px}.fx-chat-panel{bottom:146px;right:16px}#fx-toast{bottom:84px}}@media (max-width:600px){.teamwork-grid,.contact-fields,.pj-detail-grid{grid-template-columns:1fr}.pj-detail-in{padding:22px 20px}.pj-detail{margin-top:28px}.xp-paper{grid-template-columns:1fr;gap:14px}.ed-body{font-size:12.5px}.ed-line{column-gap:1.5ch;padding:0 14px 0 8px}.ed-title{display:none}}@media (max-width:480px){.fx-chat-panel{width:auto;height:min(62dvh,520px);left:12px;right:12px}}@media (pointer:coarse){.fx-chat-input{font-size:16px}}@media (prefers-reduced-motion:reduce){.hero:before,.hero:after,#fx-grid,#fx-aurora,.fx-gradient-text{animation:none}.pcard-inner{transition:none}#fx-progress,#fx-cursor-glow,.fx-shine:after,.fx-card-glow:before{display:none}.rv{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.cs-card,.pj-visit,.cs-dot:after{transition:none!important}.pj-detail-in{animation:none}.fx-enter,.fx-word{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.fx-stagger>*{opacity:1!important;transition:none!important;transform:none!important}.fx-dark-card-glow,.fx-contact-row,.fx-contact-icon{transition:none!important}.fx-dark-card-glow:hover{transform:none}.fx-spot:after{transition:none}.ed-window{transform:none}.ed-code-in,.fx-social-bounce:hover{animation:none}.tl-lamp,.lang-thumb{transition:none}.theme-toggle,.tt-solar path{transition:none!important}.fx-chat-panel{animation:none}#fx-chat-launcher,#fx-chat-launcher:hover{transition:none;transform:none}.fx-chat-typing i{opacity:.6;animation:none}}

