@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-ext-wght-normal-DiMfzA-V.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-cyrillic-wght-normal-D5lnP6kL.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-ext-wght-normal-Byk3UhVp.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-wght-normal-C1hSzPvX.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");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}.home-glass-artwork{justify-self:center;width:min(100%,460px);min-width:0}.home-glass-stage{isolation:isolate;aspect-ratio:4/3;touch-action:pan-y pinch-zoom;width:100%;position:relative}.home-glass-canvas{opacity:0;width:100%;height:100%;display:block;position:absolute;inset:0}.home-glass-fallback{object-fit:contain;width:81%;height:72.9%;position:absolute;top:13.5%;left:9.5%}.home-glass-wordmark{color:var(--home-accent);letter-spacing:-.08em;place-items:center;font-size:clamp(64px,12vw,120px);font-weight:750;display:grid;position:absolute;inset:0}.home-glass-artwork[data-glass-state=ready] .home-glass-canvas{opacity:1}.home-glass-artwork[data-glass-state=ready] .home-glass-fallback,.home-glass-artwork[data-glass-state=ready] .home-glass-wordmark{visibility:hidden}@media (width<=760px){.home-glass-artwork{width:min(100%,390px)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(97.01% .007 268.55);--paper:oklch(100% 0 0);--ink:oklch(21.22% .0178 279.8);--ink-2:oklch(38.56% .0277 274.03);--muted:oklch(55.16% .0283 275.53);--border:oklch(92.25% .0139 272.68);--blue:oklch(49.39% .2262 267.22);--on-blue:white;--blue-soft:oklch(93.68% .0242 267.93);--orange:oklch(67.76% .1774 41.95);--hl:oklch(93.6% .0913 92.69);--p-purple:oklch(92.93% .03 296.22);--p-teal:oklch(94.5% .0221 179.19);--p-yellow:oklch(96.09% .047 92.6);--p-pink:oklch(94.21% .0267 350.88);--sticky-bg:var(--p-yellow);--card-hover:oklch(98.23% .0083 271.33);--shadow:0 10px 30px oklch(31.77% .0893 271.91/.1);--shadow-lift:0 16px 40px oklch(31.77% .0893 271.91/.16);--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-ui-display:"Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-hand:"Caveat Variable", "Comic Sans MS", cursive;--font-body:"Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, Menlo, monospace;--s-1:4px;--s-2:8px;--s-3:16px;--s-4:24px;--s-5:40px;--s-6:clamp(40px, 6vw, 64px);--s-7:clamp(64px, 9vw, 112px);--r-chip:999px;--r-card:18px;--r-code:14px;--r-note:6px;--r-btn:12px;--dur:.16s;--ease:cubic-bezier(.25, .6, .3, 1);--brand-orbit-glow-duration:5.6s;--brand-orbit-one-duration:14s;--brand-orbit-two-duration:18s;--brand-orbit-three-duration:22s;--brand-core-duration:4.8s;--brand-core-ring-duration:4.2s;--brand-core-sweep-duration:5.8s;--brand-mark-duration:3.8s;--brand-node-duration:3.4s;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(10.5% .022 270);--paper:oklch(13.5% .033 270);--ink:oklch(97% .008 270);--ink-2:oklch(79% .025 270);--muted:oklch(60% .035 270);--border:oklch(27% .045 270);--blue:oklch(70% .19 270);--on-blue:oklch(18% .04 270);--blue-soft:oklch(70% .19 270/.15);--orange:oklch(76% .17 72);--hl:oklch(89% .13 92/.2);--p-purple:oklch(68% .2 296/.18);--p-teal:oklch(75% .14 175/.16);--p-yellow:oklch(85% .15 92/.16);--p-pink:oklch(74% .17 350/.16);--sticky-bg:oklch(85% .15 92/.3);--card-hover:oklch(17% .04 270);--shadow:0 14px 36px oklch(0% 0 0/.5);--shadow-lift:0 22px 52px oklch(0% 0 0/.7)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(10.5% .022 270);--paper:oklch(13.5% .033 270);--ink:oklch(97% .008 270);--ink-2:oklch(79% .025 270);--muted:oklch(60% .035 270);--border:oklch(27% .045 270);--blue:oklch(70% .19 270);--on-blue:oklch(18% .04 270);--blue-soft:oklch(70% .19 270/.15);--orange:oklch(76% .17 72);--hl:oklch(89% .13 92/.2);--p-purple:oklch(68% .2 296/.18);--p-teal:oklch(75% .14 175/.16);--p-yellow:oklch(85% .15 92/.16);--p-pink:oklch(74% .17 350/.16);--sticky-bg:oklch(85% .15 92/.3);--card-hover:oklch(17% .04 270);--shadow:0 14px 36px oklch(0% 0 0/.5);--shadow-lift:0 22px 52px oklch(0% 0 0/.7)}}*,:before,:after{box-sizing:border-box;margin:0}html{background-color:var(--paper);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.7;overflow-x:clip}a{color:var(--blue);text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.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}.wrap{max-width:1160px;padding:0 clamp(var(--s-4), 4vw, var(--s-5));margin:0 auto}.nav{z-index:20;background-color:var(--paper);padding-top:var(--safe-area-top);transition:transform var(--dur) var(--ease);will-change:transform;position:sticky;top:0;transform:translateY(0)}.nav.is-hidden{transform:translateY(calc(-100% + var(--safe-area-top)))}.nav.is-hidden:focus-within{transform:translateY(0)}.nav-in{align-items:center;gap:var(--s-4);padding-right:max(clamp(var(--s-4), 4vw, var(--s-5)), var(--safe-area-right));padding-left:max(clamp(var(--s-4), 4vw, var(--s-5)), var(--safe-area-left));display:flex}.ywj-mark{aspect-ratio:630/425;background-color:currentColor;display:inline-block;-webkit-mask-image:url(/assets/logo-ywj-DR3CVN1R.png);mask-image:url(/assets/logo-ywj-DR3CVN1R.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.brand{color:var(--blue);padding:var(--s-2) var(--s-1) var(--s-2) 0;align-items:center;min-height:44px;display:inline-flex}.brand .ywj-mark{width:58px;transition:transform var(--dur) var(--ease)}.brand:hover .ywj-mark{transform:rotate(-3deg)scale(1.06)}.brand:active .ywj-mark{transform:rotate(-1deg)scale(1)}.nav-links{align-items:center;gap:var(--s-3);margin-left:auto;display:flex}.nav-links a{min-height:46px;padding:0 var(--s-2);color:var(--ink-2);transition:color var(--dur) var(--ease);align-items:center;font-size:15px;font-weight:550;display:inline-flex;position:relative}.nav-links a:hover{color:var(--ink)}.nav-links a.active{color:var(--blue)}.nav-links a.active:after{content:"";left:var(--s-2);right:var(--s-2);background:var(--blue);border-radius:999px;width:auto;height:2px;position:absolute;bottom:2px}.tbtn{min-width:44px;min-height:44px;padding:0 var(--s-3);font-family:var(--font-body);color:var(--ink-2);background:var(--paper);border:1px solid var(--border);border-radius:var(--r-chip);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);justify-content:center;align-items:center;font-size:13px;font-weight:550;display:inline-flex}.tbtn:hover{color:var(--ink);border-color:var(--muted)}.hero{padding:var(--s-6) 0 var(--s-7);position:relative}.projects-hero{padding:clamp(var(--s-4), 4vw, var(--s-6)) 0 var(--s-2)}.projects-hero h1{line-height:1.2}.projects-hero .hand-note{margin-top:var(--s-1)}.section.projects-section{padding-top:var(--s-2)}.hero-grid{gap:var(--s-6);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;display:grid}h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(38px,5vw,60px);font-weight:700;line-height:1.08}.u-hand{white-space:nowrap;position:relative}.u-hand svg{width:100%;height:.22em;color:var(--blue);position:absolute;bottom:-.12em;left:0;right:0}.hand-line{font-family:var(--font-hand);color:var(--blue);margin-top:var(--s-2);font-size:clamp(30px,3.6vw,44px);font-weight:600;line-height:1.15}.hand-line .dot{color:var(--orange)}.bio{margin-top:var(--s-4);color:var(--ink-2);max-width:62ch;font-size:17px}.bio a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue);text-underline-offset:3px;text-decoration-thickness:2px}.bio a:hover{color:var(--blue)}.hl{background:var(--hl);color:var(--ink);border-radius:4px;padding:0 .25em}.cta-row{align-items:center;gap:var(--s-3);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.btn{align-items:center;gap:var(--s-2);min-height:46px;padding:0 var(--s-4);border-radius:var(--r-btn);cursor:pointer;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:1.5px solid #0000;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex}.btn svg{width:17px;height:17px;transition:transform var(--dur) var(--ease)}.btn:hover svg{transform:translate(3px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--blue);color:oklch(100% 0 0);box-shadow:var(--shadow);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease)}.btn-primary:hover{box-shadow:var(--shadow-lift);filter:brightness(1.12);transform:translateY(-2px)}.btn-outline{background:var(--paper);border-color:var(--blue);color:var(--blue);transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.btn-outline:hover{background:var(--blue-soft);box-shadow:var(--shadow);transform:translateY(-2px)}.hi-doodle{font-family:var(--font-hand);color:var(--blue);border:2px solid var(--blue);border-radius:50% 45% 55% 48%;justify-content:center;align-items:center;width:52px;height:48px;font-size:26px;display:inline-flex;transform:rotate(-6deg)}.pills{gap:var(--s-2) var(--s-3);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.pill{align-items:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-3);border-radius:var(--r-chip);color:var(--ink-2);font-size:13px;font-weight:550;display:inline-flex}.pill svg{width:15px;height:15px}.pill.purple{background:var(--p-purple)}.pill.teal{background:var(--p-teal)}.pill.yellow{background:var(--p-yellow)}.pill.pink{background:var(--p-pink)}.pill.blue{background:var(--blue-soft)}@property --tiltX{syntax:"<angle>";inherits:false;initial-value:0deg}@property --tiltY{syntax:"<angle>";inherits:false;initial-value:0deg}.hero-art{min-height:420px;transform:perspective(1400px) rotateX(var(--tiltY)) rotateY(var(--tiltX));transition:transform .5s cubic-bezier(.22,.7,.2,1);position:relative}@media (width<=960px),(prefers-reduced-motion:reduce){.hero-art{transition:none;transform:none}}.hero-art>*{position:absolute}.blob{background:var(--blue-soft);z-index:0;border-radius:48% 52% 55% 45%/50% 46% 54% 50%}.blob.b1{width:78%;height:82%;top:2%;right:-4%}.blob.b2{background:var(--p-purple);width:34%;height:36%;bottom:-2%;left:2%}.badge-circle{aspect-ratio:1;background:var(--blue);width:60%;box-shadow:var(--shadow);z-index:1;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;top:14%;left:5%}.badge-circle .ywj{color:oklch(100% 0 0);width:62%}.donut{border:14px solid var(--p-purple);z-index:2;filter:saturate(1.4);border-radius:50%;width:54px;height:54px;top:-4%;right:34%}.ball{background:var(--blue);opacity:.75;z-index:2;border-radius:50%;width:26px;height:26px;top:58%;left:8%}.sticky{background:var(--sticky-bg);border-radius:var(--r-note);padding:var(--s-3) var(--s-4);font-family:var(--font-hand);color:var(--ink);box-shadow:var(--shadow);z-index:3;font-size:22px;font-weight:600;line-height:1.25;transform:rotate(2deg)}.sticky:before{content:"";background:var(--blue);opacity:.55;border-radius:2px;width:44px;height:14px;position:absolute;top:-8px;left:50%;transform:translate(-50%)rotate(-2deg)}.hero-art .sticky{max-width:190px;top:0;right:0}.code-card{border-radius:var(--r-code);padding:var(--s-3) var(--s-4);font-family:var(--font-mono);box-shadow:var(--shadow-lift);z-index:3;background:oklch(22.53% .0216 276.51);border:1px solid oklch(31.44% .0363 275.38);font-size:13.5px;line-height:1.9;bottom:6%;right:0;transform:rotate(-2deg)}.code-card .c-kw{color:oklch(75.11% .1742 352.89)}.code-card .c-fn{color:oklch(83.62% .1258 156.83)}.code-card .c-p{color:oklch(84.83% .0281 276.78)}.code-card .c-line{white-space:pre;border-radius:4px;display:block}.code-card .c-caret{vertical-align:-2px;background:oklch(83.62% .1258 156.83);width:7px;height:15px;margin-left:6px;animation:1s step-end infinite caretBlink;display:inline-block}@keyframes caretBlink{50%{opacity:0}}@keyframes execStep{0%,to{background-color:#0000}18%,30%{background-color:oklch(83.62% .1258 156.83/.16)}}.doodle-arrow{width:64px;color:var(--ink);z-index:3;bottom:58%;right:17%}@keyframes marchAnts{to{stroke-dashoffset:-22px}}.doodle-star{width:22px;color:var(--ink);z-index:3;top:44%;right:2%}.doodle-scribble{width:30px;color:var(--ink);z-index:3;bottom:10%;left:16%}@keyframes wobble{0%,to{transform:rotate(-8deg)scale(.96)}50%{transform:rotate(8deg)scale(1.05)}}.section{padding:var(--s-7) 0}.sec-head{align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-5);display:flex}.sec-head h2{font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:var(--s-2);font-size:30px;font-weight:700;display:flex}.sec-head .spark{width:20px;height:20px;color:var(--blue)}.hand-note{font-family:var(--font-hand);color:var(--blue);font-size:23px;font-weight:600;line-height:1.2}.sec-head .hand-note{margin-top:var(--s-2)}.sec-aside{text-align:right;align-items:flex-end;gap:var(--s-1);flex-direction:column;margin-left:auto;display:flex}.sec-aside .doodle-arrow{position:static;transform:scaleX(-1)rotate(-20deg)}.wgrid{gap:var(--s-4);grid-template-columns:repeat(4,1fr);display:grid}.wgrid.cols-3{grid-template-columns:repeat(3,1fr)}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-wrap{max-width:1160px}.wcard{gap:var(--s-2);background:var(--paper);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-3);color:var(--ink);box-shadow:var(--shadow);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex}.wcard.t-purple{--tone:var(--p-purple)}.wcard.t-teal{--tone:var(--p-teal)}.wcard.t-yellow{--tone:var(--p-yellow)}.wcard.t-pink{--tone:var(--p-pink)}.wcard.t-blue{--tone:var(--blue-soft)}.wcard:hover{box-shadow:var(--shadow-lift);border-color:color-mix(in oklch, var(--blue) 74%, var(--border));transform:translateY(-3px)}.wcard:active{transform:translateY(-1px)}.wcard:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.wcard .wart{transition:transform var(--dur) var(--ease)}.wcard:hover .wart,.wcard:focus-visible .wart{transform:scale(1.015)}.wart{border-radius:calc(var(--r-card) - 6px);padding:var(--s-3);aspect-ratio:10/7;justify-content:center;align-items:center;display:flex;overflow:hidden}.wart.has-image{aspect-ratio:16/9;padding:0;overflow:hidden}.wart-image{object-fit:cover;object-position:center;background:oklch(10% .04 270);width:100%;height:100%;display:block}.wart-image.fit-contain{object-fit:contain}.wart.has-image.blue,.wart.has-image.teal,.wart.has-image.yellow,.wart.has-image.blue .wart-image,.wart.has-image.teal .wart-image,.wart.has-image.yellow .wart-image{background:#fff}.wart.has-image.light,.wart.has-image.light .wart-image{background:#f5f7ff}.wart svg{width:100%;max-height:96px}.wart.purple{background:var(--p-purple)}.wart.teal{background:var(--p-teal)}.wart.yellow{background:var(--p-yellow)}.wart.pink{background:var(--p-pink)}.wart.blue{background:var(--blue-soft)}.wcard h3{margin-top:var(--s-1);font-size:17px;font-weight:650}.wcard p{color:var(--ink-2);flex:1;font-size:14.5px;line-height:1.55}.wcard-foot{justify-content:space-between;align-items:center;gap:var(--s-2);margin-top:var(--s-1);flex-wrap:wrap;display:flex}.wtag{max-width:100%;min-height:28px;padding:0 var(--s-3);border-radius:var(--r-chip);color:var(--ink-2);align-items:center;font-size:12.5px;font-weight:550;display:inline-flex}.wtag.purple{background:var(--p-purple)}.wtag.teal{background:var(--p-teal)}.wtag.yellow{background:var(--p-yellow)}.wtag.pink{background:var(--p-pink)}.wtag.blue{background:var(--blue-soft)}.wcard-foot .go{width:18px;height:18px;color:var(--ink-2);transition:transform var(--dur) var(--ease), color var(--dur) var(--ease)}.wcard:hover .go,.wcard:focus-visible .go{color:var(--blue);transform:translate(2px)}.wcard-action{color:var(--ink-2);white-space:nowrap;transition:color var(--dur) var(--ease), transform var(--dur) var(--ease);flex:none;align-items:center;gap:5px;margin-left:auto;font-size:13px;font-weight:650;display:inline-flex}.wcard:hover .wcard-action,.wcard:focus-visible .wcard-action{color:var(--blue);transform:translate(2px)}@media (width<=560px){.projects-grid{gap:var(--s-3)}.projects-grid .wcard h3,.projects-grid .wcard-foot{margin-top:0}}.chat-page{background:radial-gradient(circle at 12% 14%, color-mix(in oklch, var(--blue) 11%, transparent), transparent 25rem), radial-gradient(circle at 92% 10%, oklch(66% .22 296/.12), transparent 28rem), var(--bg);min-height:calc(100vh - 80px)}.chat-hero{padding:clamp(30px,6vw,76px) 0 clamp(48px,8vw,104px)}.chat-wrap{grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);align-items:center;gap:clamp(28px,7vw,96px);display:grid}.chat-intro{max-width:510px}.chat-back{min-height:44px;margin-bottom:var(--s-5);color:var(--ink-2);align-items:center;gap:6px;font-size:14px;font-weight:650;display:inline-flex}.chat-back svg{width:16px;transform:rotate(180deg)}.chat-back:hover{color:var(--blue)}.chat-eyebrow{min-height:36px;color:var(--blue);background:var(--blue-soft);border:1px solid color-mix(in oklch, var(--blue) 28%, var(--border));border-radius:var(--r-chip);align-items:center;gap:8px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-flex}.chat-eyebrow svg{width:17px;height:17px}.chat-intro h1{max-width:10ch;margin-top:var(--s-3);color:var(--ink);font-family:var(--font-ui-display);letter-spacing:-.065em;font-size:clamp(46px,6.5vw,82px);font-weight:800;line-height:.98}.chat-intro h1 span{color:var(--blue)}.chat-description{max-width:40ch;margin-top:var(--s-4);color:var(--ink-2);font-size:clamp(17px,2vw,21px);line-height:1.55}.chat-note{max-width:42ch;margin-top:var(--s-3);color:var(--muted);font-size:13px;line-height:1.55}.chat-card{background:color-mix(in oklch, var(--paper) 94%, transparent);border:1px solid var(--border);min-height:min(690px,100vh - 150px);max-height:760px;box-shadow:var(--shadow-lift);border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.chat-card-head{justify-content:space-between;align-items:center;gap:var(--s-3);border-bottom:1px solid var(--border);padding:18px 20px;display:flex}.chat-card-head strong,.chat-card-head span{display:block}.chat-card-head strong{color:var(--ink);font-size:15px}.chat-card-head span{color:var(--muted);margin-top:2px;font-size:12px}.chat-card-head i{vertical-align:1px;background:oklch(68% .2 145);border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block;box-shadow:0 0 0 4px oklch(68% .2 145/.12)}.chat-icon-button,.chat-send{min-width:44px;min-height:44px;color:var(--ink-2);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.chat-icon-button:hover{color:var(--blue);background:var(--blue-soft);border-color:var(--blue)}.chat-icon-button svg,.chat-send svg{width:18px;height:18px}.chat-messages{overscroll-behavior:contain;flex:1;min-height:240px;padding:22px 20px;overflow-y:auto}.chat-message{max-width:88%;margin-bottom:18px}.chat-message.user{margin-left:auto}.chat-message-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px;font-size:10px;display:block}.chat-message-content{color:var(--ink-2);background:var(--bg);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:4px 16px 16px;padding:12px 14px;font-size:14px;line-height:1.6}.chat-message.user .chat-message-content{color:var(--on-blue);background:var(--blue);border-color:var(--blue);border-radius:16px 4px 16px 16px}.chat-message-content p+p,.chat-message-content ul,.chat-message-content ol{margin-top:9px}.chat-message-content ul,.chat-message-content ol{padding-left:20px}.chat-message-content a{text-underline-offset:3px;text-decoration:underline}.chat-message-image{border:1px solid color-mix(in oklch, currentColor 18%, transparent);object-fit:contain;border-radius:10px;max-width:min(100%,280px);max-height:240px;margin-top:9px;display:block}.chat-message.user .chat-message-content a{color:inherit}.chat-suggestions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 20px 16px;display:grid}.chat-suggestions button{min-height:44px;color:var(--ink-2);text-align:left;background:var(--paper);border:1px solid var(--border);cursor:pointer;font-family:var(--font-body);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:8px 11px;font-size:12px;font-weight:600;display:flex}.chat-suggestions button:hover{color:var(--blue);border-color:var(--blue)}.chat-suggestions svg{flex:none;width:14px}.chat-error{color:oklch(48% .16 28);background:oklch(95% .035 28);border:1px solid oklch(82% .08 28);border-radius:10px;margin:0 20px 12px;padding:9px 12px;font-size:12px}:root[data-theme=dark] .chat-error{color:oklch(82% .12 28);background:oklch(25% .05 28);border-color:oklch(45% .09 28)}.chat-composer{background:var(--paper);border:1px solid var(--border);border-radius:15px;align-items:flex-end;gap:8px;margin:0 20px;padding:8px 8px 8px 14px;display:flex}.chat-attach{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.chat-attach:hover:not(:disabled){color:var(--blue);background:var(--blue-soft);border-color:var(--border)}.chat-attach:disabled{cursor:not-allowed;opacity:.45}.chat-attach svg{width:19px;height:19px}.chat-image-preview{color:var(--muted);background:var(--paper);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;margin:0 20px 8px;padding:7px 9px;font-size:12px;display:flex}.chat-image-preview img{object-fit:cover;border-radius:7px;width:52px;height:42px}.chat-image-preview span{flex:1}.chat-image-preview button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.chat-image-preview button:hover:not(:disabled){color:var(--ink);background:var(--bg);border-color:var(--border)}.chat-image-preview button:disabled{cursor:not-allowed;opacity:.45}.chat-image-preview button svg{width:16px;height:16px}.chat-composer textarea{resize:vertical;min-width:0;max-height:120px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:8px 0;font-size:14px;line-height:1.45}.chat-composer textarea::placeholder{color:var(--muted)}.chat-send{color:var(--on-blue);background:var(--blue);border-color:var(--blue);flex:none}.chat-send:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.chat-send:disabled{cursor:not-allowed;opacity:.45}.chat-send.stop{color:var(--ink);background:var(--hl);border-color:var(--hl)}.chat-disclaimer{color:var(--muted);text-align:center;padding:10px 20px 17px;font-size:11px}@media (width<=820px){.chat-wrap{grid-template-columns:1fr}.chat-intro{max-width:620px}.chat-intro h1{max-width:none}.chat-card{min-height:620px;max-height:none}}@media (width<=560px){.chat-hero{padding-top:22px}.chat-back{margin-bottom:28px}.chat-intro h1{font-size:clamp(44px,14vw,62px)}.chat-card{border-radius:18px;min-height:calc(100svh - 150px)}.chat-messages{padding-inline:14px}.chat-message{max-width:94%}.chat-suggestions{grid-template-columns:1fr;padding-inline:14px}.chat-error,.chat-composer{margin-inline:14px}.chat-disclaimer{padding-inline:14px;padding-bottom:max(14px, var(--safe-area-bottom))}}@media (width>=1536px){.projects-wrap{max-width:1240px}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.band{background:var(--paper);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.band-in{gap:var(--s-5);padding-block:var(--s-6);grid-template-columns:170px repeat(3,1fr) 190px;align-items:start;display:grid}.band-label,.band .sticky{align-self:center}.band-label{font-family:var(--font-display);font-size:20px;font-weight:700}.band-label .u-hand svg{color:var(--blue)}.band-label .hand-note{margin-top:var(--s-2);font-size:19px;display:block}.value{gap:var(--s-3);align-items:flex-start;display:flex}.value .vic{border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;margin-top:2px;display:flex}.value .vic svg{width:20px;height:20px}.value:nth-child(2) .vic{background:var(--p-purple);color:var(--blue)}.value:nth-child(3) .vic{background:var(--p-teal);color:var(--ink-2)}.value:nth-child(4) .vic{background:var(--p-pink);color:var(--orange)}.value h4{text-wrap:balance;font-size:15.5px;font-weight:650;line-height:1.35}.value p{color:var(--ink-2);max-width:34ch;margin-top:6px;font-size:14.5px;line-height:1.6}.band .sticky{font-size:20px;position:relative;transform:rotate(-2deg)}.band .sticky:before{background:var(--orange)}.site-footer{padding:var(--s-5) 0}.site-footer .inner{align-items:center;gap:var(--s-4);flex-direction:column;display:flex}.footer-note{align-items:center;gap:var(--s-2);font-family:var(--font-hand);color:var(--blue);font-size:22px;font-weight:600;display:inline-flex}.footer-note .spark{width:18px;height:18px;color:var(--blue)}.site-version{justify-content:center;align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--r-chip);min-height:32px;color:var(--muted);background:color-mix(in oklch, var(--paper) 88%, transparent);flex-wrap:wrap;padding:4px 12px;font-size:12px;line-height:1.35;display:inline-flex}.site-version code{color:var(--ink-2);font:600 11px/1.35 var(--font-mono)}.pwa-update-prompt{left:max(var(--s-3), var(--safe-area-left));bottom:max(var(--s-3), var(--safe-area-bottom));z-index:60;align-items:center;gap:var(--s-2) var(--s-3);width:min(440px, calc(100vw - 2 * var(--s-3)));padding:var(--s-3);border:1px solid color-mix(in oklch, var(--blue) 34%, var(--border));border-radius:var(--r-card);color:var(--ink);background:color-mix(in oklch, var(--paper) 96%, transparent);box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-columns:44px minmax(0,1fr);display:grid;position:fixed}.pwa-update-icon{width:44px;height:44px;color:var(--blue);background:var(--blue-soft);border-radius:50%;place-items:center;display:grid}.pwa-update-icon svg{width:20px;height:20px}.pwa-update-icon.is-applying svg{animation:.9s linear infinite pwa-update-spin}.pwa-update-copy{min-width:0}.pwa-update-copy strong,.pwa-update-copy span{display:block}.pwa-update-copy strong{font-size:14px;line-height:1.35}.pwa-update-copy span{overflow-wrap:anywhere;color:var(--muted);font:500 11px/1.45 var(--font-mono);margin-top:2px}.pwa-update-prompt button{border-radius:var(--r-btn);min-height:44px;padding:8px var(--s-3);overflow-wrap:anywhere;color:var(--on-blue);background:var(--blue);cursor:pointer;font:700 13px/1.3 var(--font-body);transition:transform var(--dur) var(--ease), filter var(--dur) var(--ease);border:0;grid-column:1/-1}.pwa-update-prompt button:hover{filter:brightness(1.08)}.pwa-update-prompt button:active{transform:translateY(1px)}.pwa-update-prompt button:disabled{cursor:wait;opacity:.72}@keyframes pwa-update-spin{to{transform:rotate(360deg)}}.footer-links{gap:var(--s-3) var(--s-6);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=1024px){.footer-links{align-items:center;gap:var(--s-3);flex-direction:column}}@media (width<=480px){.pwa-update-prompt{right:max(var(--s-3), var(--safe-area-right));width:auto}}@media (prefers-reduced-motion:reduce){.pwa-update-icon.is-applying svg{animation:none}.pwa-update-prompt button{transition:none}}.contact{align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-2);border-radius:var(--r-chip);color:var(--ink-2);transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease);font-size:14.5px;font-weight:550;display:inline-flex}.contact:hover{color:var(--blue);background:var(--blue-soft)}.contact .cic{background:var(--blue);color:oklch(100% 0 0);width:34px;height:34px;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.contact:hover .cic{box-shadow:var(--shadow);transform:scale(1.12)rotate(-6deg)}.contact .cic svg{width:16px;height:16px}@keyframes floatY{50%{transform:translateY(-14px)}}@keyframes floatCard{50%{transform:rotate(-2deg)translateY(-10px)}}@keyframes floatNote{50%{transform:rotate(2deg)translateY(-8px)}}@keyframes spinDrift{50%{transform:translateY(-16px)rotate(28deg)}}@keyframes twinkle{0%,to{opacity:.45;transform:scale(.85)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(18deg)}}@keyframes blobDrift{50%{transform:translate(10px,-12px)scale(1.04)}}@media (width>=961px){.hero-art .badge-circle{animation:7s ease-in-out infinite floatY}.hero-art .donut{animation:9s ease-in-out infinite spinDrift}.hero-art .ball{animation:5.5s ease-in-out .6s infinite floatY}.hero-art .sticky{animation:8s ease-in-out .3s infinite floatNote}.hero-art .code-card{animation:6.5s ease-in-out 1.1s infinite floatCard}.hero-art .doodle-star{animation:4s ease-in-out infinite twinkle}.hero-art .doodle-arrow{animation:1.1s linear infinite marchAnts}.hero-art .doodle-scribble{animation:3.2s ease-in-out .4s infinite wobble}.hero-art .blob.b1{animation:14s ease-in-out infinite blobDrift}.hero-art .blob.b2{animation:11s ease-in-out 1.5s infinite blobDrift}.code-card .c-line:nth-child(2){animation:4.8s ease-in-out infinite execStep}.code-card .c-line:nth-child(3){animation:4.8s ease-in-out 1.1s infinite execStep}.code-card .c-line:nth-child(4){animation:4.8s ease-in-out 2.2s infinite execStep}.hero-art:hover .badge-circle,.hero-art:hover .donut,.hero-art:hover .ball,.hero-art:hover .sticky,.hero-art:hover .code-card,.hero-art:hover .doodle-arrow,.hero-art:hover .doodle-scribble,.hero-art:hover .code-card .c-line{animation-play-state:paused}}.hero-art .badge-circle,.hero-art .sticky,.hero-art .code-card{transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.hero-art .badge-circle:hover{box-shadow:var(--shadow-lift);transform:scale(1.04)}.hero-art .badge-circle .ywj{transition:transform .26s var(--ease)}.hero-art .badge-circle:hover .ywj{transform:rotate(-2deg)scale(1.06)}.hero-art .sticky:hover{box-shadow:var(--shadow-lift);transform:rotate(0)scale(1.04)}.hero-art .code-card:hover{box-shadow:var(--shadow-lift);transform:rotate(0)scale(1.03)}.page-blob{z-index:-1;pointer-events:none;border-radius:48% 52% 55% 45%/50% 46% 54% 50%;position:absolute}.hero .page-blob.left{background:var(--p-purple);opacity:.7;width:220px;height:200px;bottom:-40px;left:-120px}@media (width<=1280px){.band-in{gap:var(--s-5);grid-template-columns:repeat(3,1fr)}.band-label{align-self:end;align-items:baseline;gap:var(--s-4);grid-area:1/1/auto/3;display:flex}.band-label .hand-note{margin-top:0}.band .sticky{grid-area:1/3;place-self:center end}.value{grid-row:2}}@media (width<=960px){.hero-grid{grid-template-columns:1fr}.hero-art{max-width:480px;min-height:360px}.hero-art .doodle-arrow{display:none}.wgrid,.wgrid.cols-3{grid-template-columns:repeat(2,1fr)}.band-in{grid-template-columns:1fr 1fr}.band-label{grid-area:1/1}.band .sticky{grid-area:1/2;justify-self:end}.value{grid-row:auto}}@media (width<=560px){.wgrid,.wgrid.cols-3{grid-template-columns:1fr}.band-in{gap:var(--s-4);grid-template-columns:1fr}.band-label,.band .sticky,.value{grid-area:auto/1;justify-self:start}.band-label{display:block}.band-label .hand-note{margin-top:var(--s-2)}.hero-art{min-height:320px}.hero-art .sticky{right:0}.nav-links{gap:var(--s-2)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.blog-hero{padding:clamp(32px, 5vw, 56px) 0 var(--s-3)}.blog-hero-inner{align-items:center;gap:clamp(var(--s-4), 5vw, var(--s-7));grid-template-columns:minmax(0,1.1fr) minmax(220px,.65fr);display:grid}.blog-hero-copy{min-width:0}.blog-kicker{color:var(--blue);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.blog-hero h1{margin-top:var(--s-2);font-family:var(--font-ui-display);letter-spacing:-.065em;font-size:clamp(42px,6.2vw,74px);font-weight:800;line-height:.98}.blog-hero .hand-note{max-width:28ch;margin-top:var(--s-2);font-family:var(--font-hand);letter-spacing:.01em;font-size:clamp(24px,3vw,34px);font-weight:600;line-height:1.08}.blog-hero-stats{gap:.5rem var(--s-3);margin-top:var(--s-4);color:var(--muted);flex-wrap:wrap;font-size:.82rem;display:flex}.blog-hero-stats span+span:before{content:"•";color:var(--blue);margin-right:var(--s-3)}.brand-orbital{aspect-ratio:1;isolation:isolate;position:relative}.brand-orbital>*{pointer-events:none;position:absolute}.brand-orbital-stage{inset:0}.brand-orbital-stage>*{pointer-events:none;position:absolute}.blog-hero-orbit{pointer-events:none;justify-self:end;width:min(100%,300px)}.blog-hero-orbit:before{content:"";z-index:-1;background:radial-gradient(circle, color-mix(in oklch, var(--blue) 22%, transparent), transparent 68%);filter:blur(12px);border-radius:50%;position:absolute;inset:14%}.brand-orbit-ring{border:1px solid color-mix(in oklch, var(--blue) 54%, transparent);box-shadow:0 0 18px color-mix(in oklch, var(--blue) 16%, transparent);border-radius:50%}.brand-orbit-ring-one{inset:15% -1%;transform:rotate(24deg)scaleY(.5)}.brand-orbit-ring-two{border-color:color-mix(in oklch, var(--p-purple) 70%, transparent);inset:3% 8%;transform:rotate(-32deg)scaleY(.38)}.brand-orbit-ring-three{border-color:color-mix(in oklch, var(--p-teal) 68%, transparent);inset:22% 17%;transform:rotate(72deg)scaleY(.72)}.brand-orbit-core{border:1px solid color-mix(in oklch, var(--blue) 72%, var(--border));box-shadow:0 0 0 10px oklch(17% .07 270/.46), 0 0 34px color-mix(in oklch, var(--blue) 42%, transparent), inset 0 -18px 32px oklch(0% 0 0/.42);background:radial-gradient(circle at 34% 28%,oklch(67% .2 267),oklch(31% .18 286) 42%,oklch(12% .05 270) 78%);border-radius:50%;place-items:center;display:grid;inset:29%}.brand-orbit-core:after{content:"";background:conic-gradient(from 220deg, transparent 0 62%, color-mix(in oklch, var(--blue) 66%, oklch(100% 0 0)) 72%, transparent 84% 100%);opacity:.34;pointer-events:none;mix-blend-mode:screen;border-radius:50%;position:absolute;inset:7%}.brand-orbit-core-ring{border:1px solid oklch(92% .04 270/.2);border-radius:50%;position:absolute;inset:12%}.brand-orbit-mark{z-index:1;color:oklch(86% .08 270);width:54%;filter:drop-shadow(0 0 9px color-mix(in oklch, var(--blue) 66%, transparent));position:relative}.brand-orbit-node{--node-drift-x:8px;--node-drift-y:-7px;z-index:1;width:16px;height:16px}.brand-orbit-node svg{width:100%;height:100%;display:block}.brand-orbit-node-one{--node-drift-x:10px;--node-drift-y:-7px;top:50%;left:-1%}.brand-orbit-node-two{--node-drift-x:-8px;--node-drift-y:9px;top:1%;left:50%}.brand-orbit-node-three{--node-drift-x:8px;--node-drift-y:-8px;top:50%;right:-1%}.blog-content{padding-top:var(--s-4)}.blog-toolbar{gap:var(--s-3);margin-bottom:var(--s-5);display:grid}.blog-search{align-items:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-3);background:var(--paper);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow);color:var(--muted);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);display:flex}.blog-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in oklch, var(--blue) 18%, transparent)}.blog-search svg{flex:none;width:18px;height:18px}.blog-search input{width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0}.blog-search input::placeholder{color:var(--muted)}.blog-filters{gap:var(--s-2);flex-wrap:wrap;display:flex}.blog-filter{border:1px solid var(--border);border-radius:var(--r-chip);min-width:44px;min-height:44px;color:var(--ink-2);font:inherit;cursor:pointer;transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);background:0 0;flex:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8rem;display:inline-flex}.blog-filter:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}.blog-filter:active{transform:translateY(0)}.blog-filter.is-active{background:var(--blue);border-color:var(--blue);color:#fff}.blog-results-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.blog-results-head h2{font-family:var(--font-ui-display);letter-spacing:-.04em;font-size:1.35rem;font-weight:750}.blog-results-head span{color:var(--muted);font-size:.8rem}.blog-list{gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.blog-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);overflow:hidden}.blog-card:hover{border-color:color-mix(in oklch, var(--blue) 62%, var(--border));box-shadow:var(--shadow-lift);transform:translateY(-3px)}.blog-card:active{transform:translateY(-1px)scale(.995)}.blog-card.is-featured{border-color:var(--border);background:var(--paper);grid-column:1/-1;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);display:grid}.blog-cover{aspect-ratio:16/9;background:var(--bg);position:relative;overflow:hidden}.blog-card:not(.is-featured) .blog-cover{border-bottom:1px solid var(--border)}.blog-cover img{object-fit:cover;width:100%;height:100%;display:block}.blog-card.is-featured .blog-cover{aspect-ratio:auto;height:100%;min-height:100%}.blog-cover-art{isolation:isolate;height:100%;padding:var(--s-4);background:radial-gradient(circle at 82% 18%, color-mix(in oklch, var(--blue) 65%, transparent), transparent 22%), radial-gradient(circle at 18% 82%, color-mix(in oklch, var(--p-purple) 80%, transparent), transparent 28%), linear-gradient(135deg, var(--paper), var(--bg));flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.blog-cover-art:before,.blog-cover-art:after{content:"";z-index:-1;border:1px solid color-mix(in oklch, var(--blue) 42%, transparent);border-radius:50%;position:absolute;transform:rotate(-18deg)}.blog-cover-art:before{width:72%;height:150%;top:-25%;right:-14%}.blog-cover-art:after{border-color:color-mix(in oklch, var(--p-purple) 55%, transparent);width:120%;height:70%;bottom:-30%;left:-22%}.blog-cover-art>span{color:var(--blue);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.blog-cover-art strong{max-width:16ch;color:var(--ink);font-family:var(--font-display);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:clamp(1.25rem,2.2vw,2rem);line-height:1.06;display:-webkit-box;overflow:hidden}.blog-cover-art small{color:var(--muted);font-size:.75rem}.blog-card-body{min-width:0;padding:clamp(var(--s-4), 2.6vw, 32px);flex-direction:column;align-items:flex-start;display:flex}.blog-card-label{align-items:center;gap:.5rem;min-height:22px;margin-bottom:.55rem;display:flex}.blog-featured-label,.blog-topic{border-radius:var(--r-chip);align-items:center;min-height:22px;padding:0 .55rem;font-size:.68rem;font-weight:700;display:inline-flex}.blog-featured-label{background:var(--blue);color:#fff}.blog-topic{background:var(--blue-soft);color:var(--blue)}.blog-card h2{font-family:var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.4rem 0 .55rem;font-size:1.35rem;line-height:1.3;display:-webkit-box;overflow:hidden}.blog-card.is-featured h2{-webkit-line-clamp:3;font-size:clamp(1.55rem,2.8vw,2.25rem)}.blog-card h2 a{min-height:44px;color:var(--ink);text-decoration:none;display:block}.blog-card h2 a:hover{color:var(--blue)}.blog-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.blog-meta span+span:before,.blog-meta time+span:before{content:"·";color:var(--blue);margin-right:.5rem}.blog-tag{border:1px solid var(--border);border-radius:var(--r-chip);padding:.12rem .6rem;font-size:.75rem}.blog-summary{-webkit-line-clamp:3;color:var(--ink-2);margin:0 0 var(--s-4);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.blog-more{min-height:44px;color:var(--blue);align-items:center;gap:.35rem;margin-top:auto;font-weight:500;text-decoration:none;display:inline-flex}.blog-more:hover{text-decoration:underline}.blog-more .go{width:1em;height:1em}.blog-empty{color:var(--muted)}.blog-empty a{color:var(--blue)}@media (width<=760px){.blog-hero{padding-top:32px}.blog-hero-inner{gap:var(--s-3);grid-template-columns:1fr}.blog-hero .hand-note{font-size:clamp(27px,8.5vw,36px)}.blog-hero-stats{gap:.35rem .75rem}.blog-hero-stats span+span:before{margin-right:.75rem}.blog-hero-orbit{justify-self:center;width:min(58vw,220px)}.blog-filters{gap:var(--s-2);flex-wrap:wrap}.blog-list{grid-template-columns:1fr}.blog-card.is-featured{display:block}.blog-card.is-featured .blog-cover{aspect-ratio:16/9;height:auto;min-height:0}.blog-card-body{padding:var(--s-4)}.blog-card.is-featured h2{font-size:1.7rem}}.reading-progress{top:var(--safe-area-top);z-index:40;background:color-mix(in oklch, var(--border) 72%, transparent);pointer-events:none;height:3px;position:fixed;left:0;right:0;overflow:hidden}.reading-progress-fill{transform-origin:0;background:linear-gradient(90deg, var(--blue), var(--orange));width:100%;height:100%;box-shadow:0 0 12px color-mix(in oklch, var(--blue) 68%, transparent);will-change:transform;transition:transform .12s linear;display:block;transform:scaleX(0)}.article-scroll-nav{right:max(var(--s-3), var(--safe-area-right));bottom:max(var(--s-3), var(--safe-area-bottom));z-index:30;gap:var(--s-1);padding:var(--s-1);border:1px solid var(--border);border-radius:var(--r-btn);background:color-mix(in oklch, var(--paper) 94%, transparent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;position:fixed}.article-scroll-button{border-radius:calc(var(--r-btn) - 4px);width:44px;height:44px;color:var(--blue);cursor:pointer;font:650 12px/1 var(--font-body);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.article-scroll-button:hover{background:var(--blue-soft)}.article-scroll-button:active{transform:translateY(1px)}.scroll-button-icon{font-size:1.3rem;line-height:1}.section.blog-post-page{padding:clamp(32px,5vw,56px) 0 clamp(56px,8vw,96px)}.blog-post-layout{grid-template-columns:minmax(0,760px) 220px;align-items:start;gap:clamp(32px,5vw,56px);display:grid}.blog-post{min-width:0;max-width:none}.blog-meta-primary{margin-bottom:var(--s-2)}.blog-tags{gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.blog-tag-more{color:var(--muted);background:color-mix(in oklch, var(--bg) 76%, transparent)}.blog-author{margin:0 0 var(--s-5);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.4rem .65rem;font-size:.9rem;display:flex}.blog-author strong{color:var(--ink);font-weight:700}.blog-podcast-player{align-items:center;gap:var(--s-3) var(--s-4);margin:0 0 var(--s-5);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-card);background:radial-gradient(circle at 100% 0, color-mix(in oklch, var(--p-purple) 12%, transparent), transparent 46%), var(--paper);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr) auto;display:grid}.blog-podcast-heading{align-items:center;gap:var(--s-3);min-width:0;display:flex}.blog-podcast-icon{color:#fff;background:linear-gradient(135deg, var(--blue), var(--p-purple));width:44px;height:44px;box-shadow:0 8px 24px color-mix(in oklch, var(--blue) 25%, transparent);border-radius:50%;flex:0 0 44px;place-items:center;display:grid}.blog-podcast-heading h2{color:var(--ink);font:750 1rem/1.25 var(--font-ui-display);letter-spacing:-.02em;margin:0}.blog-podcast-heading p{color:var(--muted);flex-wrap:wrap;gap:.25rem .75rem;margin:.25rem 0 0;font-size:.75rem;display:flex}.blog-podcast-heading p span+span:before{content:"·";color:var(--blue);margin-right:.75rem}.blog-podcast-ai-label{color:var(--blue);font-weight:700}.blog-podcast-player audio{grid-column:1/-1;width:100%;min-height:44px}.blog-podcast-download{min-height:44px;color:var(--blue);align-self:start;align-items:center;font-size:.82rem;font-weight:650;text-decoration:none;display:inline-flex}.blog-podcast-download:hover,.blog-podcast-download:focus-visible{text-decoration:underline}.blog-post-summary{margin:0 0 var(--s-5);padding:var(--s-3) var(--s-4);border-left:3px solid var(--blue);border-radius:0 var(--r-btn) var(--r-btn) 0;background:color-mix(in oklch, var(--blue) 6%, transparent)}.blog-post-summary-label{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.75rem;font-weight:750;display:block}.blog-post-summary p{color:var(--ink-2);margin:0}.article-toc{top:calc(76px + var(--safe-area-top));overscroll-behavior:contain;height:80vh;max-height:80vh;padding:var(--s-3) 0;border-left:1px solid var(--border);align-self:start;position:sticky;overflow-y:auto}.article-toc-title{margin:0 0 var(--s-2);padding-left:var(--s-3);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:750}.article-toc ol{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.article-toc li.is-subsection{padding-left:var(--s-3)}.article-toc a{min-height:44px;padding:.35rem var(--s-3);color:var(--muted);align-items:center;font-size:.84rem;line-height:1.35;text-decoration:none;display:flex}.article-toc a:hover,.article-toc a:focus-visible{color:var(--blue);background:var(--blue-soft)}.article-toc a.is-active{color:var(--blue);background:var(--blue-soft);box-shadow:inset 2px 0 0 var(--blue);font-weight:700}@media (width<=1100px){.blog-post-layout{display:block}.article-toc{display:none}}.blog-post>h1,.blog-body h1{max-width:760px;font-family:var(--font-display);color:var(--ink);letter-spacing:-.025em;margin:0 0 var(--s-4);overflow-wrap:anywhere;font-size:clamp(2.25rem,3vw,3rem);line-height:1.18}.blog-body{color:var(--ink-2);font-size:1.0625rem;line-height:1.8}.blog-body h1,.blog-body h2,.blog-body h3{font-family:var(--font-display);color:var(--ink)}.blog-body h2{margin:var(--s-6) 0 var(--s-3);scroll-margin-top:calc(84px + var(--safe-area-top));font-size:1.4rem}.blog-body h3{margin:var(--s-5) 0 var(--s-2);scroll-margin-top:calc(84px + var(--safe-area-top));font-size:1.15rem}.blog-body p,.blog-body ul,.blog-body ol{margin:0 0 var(--s-4)}.blog-body ul,.blog-body ol{padding-left:1.4rem}.blog-body li{margin:.3rem 0}.blog-body strong{color:var(--ink)}.blog-body a{color:var(--blue);overflow-wrap:anywhere}.blog-body li>a{max-width:100%;min-height:44px;display:inline-block}.blog-body code{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-code,6px);padding:.12em .35em;font-size:.88em}.blog-image-unavailable{overflow-wrap:anywhere;border:1px dashed;border-radius:12px;gap:.5rem;width:100%;padding:1.25rem;font-size:.875rem;display:grid}.blog-image-unavailable>span{opacity:.75}.blog-body pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-4);overflow-x:auto}.blog-body pre code{background:0 0;border:0;min-width:0;max-width:100%;padding:0;display:block}.blog-body blockquote{margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);border-left:3px solid var(--blue);color:var(--ink-2);border-radius:0 var(--r-btn) var(--r-btn) 0;background:color-mix(in oklch, var(--blue) 5%, transparent)}.blog-body table{table-layout:fixed;border-collapse:collapse;width:100%;margin:0 0 var(--s-4)}.blog-body th,.blog-body td{border:1px solid var(--border);text-align:left;overflow-wrap:anywhere;word-break:break-word;padding:.5rem .7rem}.blog-body th{color:var(--ink)}.blog-body img{border-radius:var(--r-card);width:auto;max-width:100%;height:auto;margin-inline:auto;display:block}@media (width<=760px){.section.blog-post-page{padding-top:28px}.blog-post-layout{display:block}.article-toc{display:none}.blog-body{font-size:1rem;line-height:1.75}.blog-podcast-player{padding:var(--s-3);grid-template-columns:1fr}.blog-podcast-download{grid-row:3;justify-self:start}.blog-post>h1,.blog-body h1{font-size:clamp(2rem,9vw,2.5rem)}.article-scroll-button{width:44px}.blog-body pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}}.blog-back{margin-top:var(--s-6)}.blog-back-top{margin-top:0;margin-bottom:var(--s-5)}.blog-back a{min-height:44px;color:var(--blue);align-items:center;text-decoration:none;display:inline-flex}.blog-back a:hover{text-decoration:underline}.nav{border-bottom:1px solid color-mix(in oklch, var(--border) 72%, transparent);box-shadow:0 8px 24px oklch(0% 0 0/.1)}.nav-in{min-height:60px}.nav-desktop{gap:clamp(4px,1.2vw,16px)}.nav-desktop a{letter-spacing:-.01em}.nav-actions{align-items:center;gap:var(--s-2);margin-left:var(--s-3);display:flex}.theme-btn,.menu-btn{width:44px;height:44px;color:var(--ink-2);background:color-mix(in oklch, var(--paper) 78%, transparent);border-radius:14px;padding:0}.theme-btn svg,.menu-btn svg{width:19px;height:19px}.theme-btn:hover,.menu-btn:hover{color:var(--ink);border-color:var(--blue);background:var(--blue-soft)}.menu-btn{border:1px solid var(--border);cursor:pointer;display:none}.nav.menu-open{transform:translateY(0)}.mobile-menu{top:calc(100% - 1px);right:clamp(var(--s-3), 4vw, var(--s-5));left:clamp(var(--s-3), 4vw, var(--s-5));z-index:30;background:color-mix(in oklch, var(--paper) 96%, transparent);border:1px solid var(--border);box-shadow:var(--shadow-lift);border-radius:18px;gap:4px;padding:10px;display:grid;position:absolute}.mobile-menu a{min-height:48px;color:var(--ink-2);border-radius:12px;align-items:center;padding:0 14px;font-size:15px;font-weight:600;display:flex}.mobile-menu a:hover,.mobile-menu a.active{color:var(--ink);background:var(--blue-soft)}.home-page{--home-accent:var(--blue);--home-violet:oklch(66% .22 296);--home-cyan:oklch(77% .15 190);min-height:100%;color:var(--ink);background:radial-gradient(circle at 84% 7%, color-mix(in oklch, var(--home-violet) 15%, transparent), transparent 25rem), radial-gradient(circle at 5% 33%, color-mix(in oklch, var(--home-accent) 9%, transparent), transparent 22rem), var(--bg);overflow-x:clip}.home-page .home-hero{padding:clamp(28px,5vw,64px) 0 clamp(30px,5vw,56px);position:relative;overflow:visible}.home-hero-glow{background:radial-gradient(circle, color-mix(in oklch, var(--home-violet) 13%, transparent), transparent 68%);pointer-events:none;border-radius:50%;width:min(52vw,520px);height:min(52vw,520px);position:absolute;top:-12vw;right:0}:root[data-theme=light] .home-page{background:radial-gradient(circle at 5% 33%, color-mix(in oklch, var(--home-accent) 7%, transparent), transparent 22rem), var(--bg)}:root[data-theme=light] .home-hero-glow{opacity:0}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .home-page{background:radial-gradient(circle at 5% 33%, color-mix(in oklch, var(--home-accent) 7%, transparent), transparent 22rem), var(--bg)}:root:not([data-theme=dark]) .home-hero-glow{opacity:0}}.home-hero-grid{z-index:1;grid-template-columns:minmax(0,1.15fr) minmax(210px,.85fr);align-items:center;gap:clamp(18px,4vw,58px);display:grid;position:relative}.home-copy{min-width:0}.home-eyebrow{width:fit-content;color:var(--ink-2);background:color-mix(in oklch, var(--home-accent) 14%, transparent);border:1px solid color-mix(in oklch, var(--home-accent) 28%, transparent);letter-spacing:.01em;border-radius:999px;margin-bottom:18px;padding:6px 12px;font-size:12px;line-height:1.4}.home-page h1{max-width:10ch;color:var(--ink);font-family:var(--font-ui-display);letter-spacing:-.065em;font-size:clamp(42px,6.2vw,74px);font-weight:800;line-height:.98}.home-title-accent{color:var(--home-accent);display:inline-block;position:relative}.home-title-accent svg{width:calc(100% + 4px);height:.18em;color:var(--home-violet);position:absolute;bottom:-.2em;left:-2px;right:-2px}.home-role{max-width:38ch;color:var(--ink-2);margin-top:16px;font-size:clamp(15px,1.5vw,18px);font-weight:600;line-height:1.45}.home-role strong{color:var(--home-accent);font-weight:750}.home-handline{color:var(--home-accent);font-family:var(--font-hand);letter-spacing:.01em;margin-top:14px;font-size:clamp(24px,3vw,34px);font-weight:600;line-height:1.05}.home-bio{max-width:45ch;color:var(--ink-2);margin-top:16px;font-size:clamp(14px,1.5vw,16px);line-height:1.75}.home-bio strong{color:var(--home-accent);font-weight:650}.home-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.home-button{min-height:46px;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:0 16px;font-size:14px;font-weight:650;display:inline-flex}.home-button svg{width:17px;height:17px;transition:transform var(--dur) var(--ease)}.home-button:hover svg{transform:translate(3px)}.home-button:hover{transform:translateY(-2px)}.home-button-primary{color:#fff;background:linear-gradient(135deg, var(--home-accent), var(--home-violet));box-shadow:0 10px 28px color-mix(in oklch, var(--home-accent) 27%, transparent)}.home-button-primary:hover{box-shadow:0 14px 34px color-mix(in oklch, var(--home-accent) 40%, transparent)}.home-button-secondary{color:var(--ink);border-color:color-mix(in oklch, var(--home-accent) 62%, var(--border));background:0 0}.home-button-secondary:hover{background:var(--blue-soft);border-color:var(--home-accent)}.home-meta{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:20px;font-size:12px;display:flex}.home-meta span{align-items:center;gap:7px;display:inline-flex}.home-meta svg{width:15px;height:15px;color:var(--muted)}.availability-dot{background:oklch(70% .2 145);border-radius:50%;width:8px;height:8px;box-shadow:0 0 12px oklch(70% .2 145/.8)}.home-skills{flex-wrap:wrap;gap:9px;margin-top:24px;display:flex}.home-skill{min-height:36px;color:var(--ink-2);background:color-mix(in oklch, var(--paper) 88%, transparent);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.home-skill svg{width:15px;height:15px}.home-skill.purple svg{color:var(--home-violet)}.home-skill.blue svg{color:var(--home-accent)}.home-skill.pink svg{color:oklch(72% .2 350)}.home-skill.teal svg{color:var(--home-cyan)}.home-skill.yellow svg{color:oklch(82% .16 92)}.home-skill.orange svg{color:var(--orange)}.home-orbital{aspect-ratio:1;justify-self:center;width:min(100%,360px);min-height:300px;position:relative}.home-webgl-orbital{isolation:isolate;touch-action:pan-y pinch-zoom}.home-webgl-orbital[data-brand-visual=light]{aspect-ratio:4/3;min-height:0;transform:translate(-2%)}.home-orbital-fallback,.home-light-circuit-artwork,.home-webgl-canvas{width:100%;height:100%;position:absolute;inset:0}.home-orbital-fallback{z-index:1;opacity:1;visibility:visible;transition:opacity .32s var(--ease), visibility 0s linear 0s}.home-light-circuit-artwork{z-index:1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s var(--ease), visibility 0s linear .32s;display:block;overflow:visible}.home-webgl-canvas{z-index:2;opacity:0;pointer-events:none;filter:drop-shadow(0 0 12px color-mix(in oklch, var(--home-accent) 24%, transparent));transition:opacity .32s var(--ease);display:block}.home-webgl-orbital[data-brand-visual=light] .home-orbital-fallback{opacity:0;visibility:hidden;transition:opacity .32s var(--ease), visibility 0s linear .32s}.home-webgl-orbital[data-brand-visual=light] .home-orbital-fallback,.home-webgl-orbital[data-brand-visual=light] .home-orbital-fallback *{animation-play-state:paused}.home-webgl-orbital[data-brand-visual=light] .home-light-circuit-artwork{opacity:1;visibility:visible;transition:opacity .32s var(--ease), visibility 0s linear 0s}.home-webgl-orbital.is-webgl-ready .home-orbital-fallback{opacity:0;visibility:hidden;transition:opacity .32s var(--ease), visibility 0s linear .32s}.home-webgl-orbital.is-webgl-ready .home-orbital-fallback,.home-webgl-orbital.is-webgl-ready .home-orbital-fallback *{animation-play-state:paused}.home-webgl-orbital.is-webgl-ready .home-webgl-canvas{opacity:1}.home-webgl-orbital[data-brand-visual=light] .home-webgl-canvas{filter:drop-shadow(0 0 5px color-mix(in oklch, var(--home-accent) 24%, transparent))}.home-light-circuit-logo-tint{opacity:.23;transition:opacity .36s var(--ease)}.home-light-circuit-logo-outline{opacity:.98}.home-light-circuit-halo{opacity:.48;transition:opacity .42s var(--ease)}.home-light-circuit-internal-glow path,.home-light-circuit-external-glow,.home-light-circuit-rail-signal path,.home-light-circuit-energy-traces path{fill:none;stroke-linecap:round;stroke-linejoin:round}.home-light-circuit-internal-glow path,.home-light-circuit-external-glow{stroke:var(--home-accent)}.home-light-circuit-internal-glow path{stroke-width:3.2px;opacity:.052}.home-light-circuit-external-glow{stroke-width:4.4px;opacity:.09}.home-light-circuit-internal-routes path,.home-light-circuit-external-route{fill:none;stroke-linecap:round;stroke-linejoin:round}.home-light-circuit-internal-routes path{stroke-width:1.55px;opacity:.3}.home-light-circuit-internal-routes path[data-circuit-group=w]{stroke-width:1.8px;opacity:.48}.home-light-circuit-internal-routes path[data-circuit-group=j]{opacity:.32}.home-light-circuit-rail{transform-box:view-box;transform-origin:50%;transition:filter .36s var(--ease)}.home-light-circuit-external-route{stroke-width:1.9px;opacity:.32;transition:opacity .36s var(--ease), stroke-width .36s var(--ease)}.home-light-circuit-rail[data-rail-role=input-secondary] .home-light-circuit-external-route{stroke-width:1.45px;opacity:.18}.home-light-circuit-rail[data-rail-role=output] .home-light-circuit-external-route{opacity:.3}.home-light-circuit-rail[data-rail-role=input-primary] .home-light-circuit-external-route{stroke-dasharray:18 6 3 9 12 52;stroke-dashoffset:-4px}.home-light-circuit-rail[data-rail-role=input-secondary] .home-light-circuit-external-route{stroke-dasharray:10 7 22 8 5 48;stroke-dashoffset:-13px}.home-light-circuit-rail[data-rail-role=output] .home-light-circuit-external-route{stroke-dasharray:26 8 5 12 18 31;stroke-dashoffset:-9px}.home-light-circuit-rail-base-glow{opacity:.08}.home-light-circuit-rail-signal{opacity:0}.home-light-circuit-rail-tail,.home-light-circuit-rail-core{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .36s var(--ease)}.home-light-circuit-rail-tail{opacity:.44;stroke-width:calc(4.8px * var(--circuit-energy-emphasis,1))}.home-light-circuit-rail-core{opacity:.98;stroke-width:calc(2.55px * var(--circuit-energy-emphasis,1));stroke:color-mix(in oklch, white 68%, var(--home-cyan))}.home-light-circuit-energy-tail,.home-light-circuit-energy-core{opacity:0;transition:stroke-width .36s var(--ease)}.home-light-circuit-energy-tail{stroke-width:calc(7.4px * var(--circuit-energy-emphasis,1))}.home-light-circuit-energy-core{stroke-width:calc(2.45px * var(--circuit-energy-emphasis,1));stroke:color-mix(in oklch, white 72%, var(--home-cyan))}.home-light-circuit-energy-traces path[data-motion-stage=feed]{stroke:color-mix(in oklch, var(--home-cyan) 62%, var(--home-accent))}.home-light-circuit-energy-traces path[data-motion-stage=bridge],.home-light-circuit-energy-traces path[data-motion-stage=center]{stroke:color-mix(in oklch, var(--home-cyan) 42%, var(--home-accent))}.home-light-circuit-energy-traces path[data-motion-stage=j-transfer],.home-light-circuit-energy-traces path[data-motion-stage=j-stem]{stroke:color-mix(in oklch, var(--home-violet) 58%, var(--home-accent))}.home-light-circuit-energy-traces path[data-motion-stage=j-hook]{stroke:color-mix(in oklch, var(--home-cyan) 48%, var(--home-accent))}.home-light-circuit-center-bloom,.home-light-circuit-center-core,.home-light-circuit-center-ring{opacity:.1;transform-box:fill-box;transform-origin:50%}.home-light-circuit-center-core{opacity:.62}.home-light-circuit-center-ring{opacity:.18}.home-webgl-orbital[data-brand-visual=light]:before{display:none}@media (hover:hover) and (pointer:fine){.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-halo{opacity:.54}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-logo-tint{opacity:.255}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-rail{filter:brightness(1.12)}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-external-route{stroke-width:2.02px}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-rail-tail{stroke-width:calc(5.15px * var(--circuit-energy-emphasis,1))}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-rail-core{stroke-width:calc(2.72px * var(--circuit-energy-emphasis,1))}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-energy-tail{stroke-width:calc(7.85px * var(--circuit-energy-emphasis,1))}.home-webgl-orbital[data-brand-visual=light]:hover .home-light-circuit-energy-core{stroke-width:calc(2.6px * var(--circuit-energy-emphasis,1))}}@media (prefers-reduced-motion:no-preference){.home-light-circuit-external-route,.home-light-circuit-rail-signal,.home-light-circuit-rail-signal path{animation-duration:var(--light-circuit-flow-cycle);animation-timing-function:linear;animation-iteration-count:infinite}.home-light-circuit-external-route,.home-light-circuit-rail-signal{will-change:opacity}.home-light-circuit-rail-signal path{will-change:stroke-dashoffset}.home-light-circuit-rail[data-rail-role=input-primary] .home-light-circuit-external-route{animation-name:lightRailInputPrimaryBase}.home-light-circuit-rail[data-rail-role=input-primary] .home-light-circuit-rail-signal{animation-name:lightRailInputPrimaryVisibility}.home-light-circuit-rail[data-rail-role=input-primary] .home-light-circuit-rail-signal path{animation-name:lightRailInputPrimaryTravel}.home-light-circuit-rail[data-rail-role=input-secondary] .home-light-circuit-external-route{animation-name:lightRailInputSecondaryBase}.home-light-circuit-rail[data-rail-role=input-secondary] .home-light-circuit-rail-signal{animation-name:lightRailInputSecondaryVisibility}.home-light-circuit-rail[data-rail-role=input-secondary] .home-light-circuit-rail-signal path{animation-name:lightRailInputSecondaryTravel}.home-light-circuit-rail[data-rail-role=output] .home-light-circuit-external-route{animation-name:lightRailOutputBase}.home-light-circuit-rail[data-rail-role=output] .home-light-circuit-rail-signal{animation-name:lightRailOutputVisibility}.home-light-circuit-rail[data-rail-role=output] .home-light-circuit-rail-signal path{animation-name:lightRailOutputTravel}.home-light-circuit-energy-tail,.home-light-circuit-energy-core{animation-duration:var(--light-circuit-flow-cycle);will-change:opacity, stroke-dashoffset;animation-timing-function:linear;animation-iteration-count:infinite}.home-light-circuit-energy-traces path[data-motion-stage=feed]{animation-name:lightEnergyFeed}.home-light-circuit-energy-traces path[data-motion-stage=bridge]{animation-name:lightEnergyBridge}.home-light-circuit-energy-traces path[data-motion-stage=center]{animation-name:lightEnergyCenter}.home-light-circuit-energy-traces path[data-motion-stage=j-transfer]{animation-name:lightEnergyJTransfer}.home-light-circuit-energy-traces path[data-motion-stage=j-stem]{animation-name:lightEnergyJStem}.home-light-circuit-energy-traces path[data-motion-stage=j-hook]{animation-name:lightEnergyJHook}.home-light-circuit-rail[data-motion-easing=gentle] .home-light-circuit-rail-signal path,.home-light-circuit-energy-traces [data-motion-easing=gentle] path{animation-timing-function:cubic-bezier(.25,.58,.32,1)}.home-light-circuit-energy-traces [data-motion-easing=ease-in-out] path{animation-timing-function:cubic-bezier(.42,0,.28,1)}.home-light-circuit-rail[data-motion-easing=accelerate] .home-light-circuit-rail-signal path,.home-light-circuit-energy-traces [data-motion-easing=accelerate] path{animation-timing-function:cubic-bezier(.42,0,.9,.72)}.home-light-circuit-center-bloom{animation:lightCenterBloom var(--light-circuit-flow-cycle) ease-out infinite;will-change:opacity, transform}.home-light-circuit-center-core{animation:lightCenterCore var(--light-circuit-flow-cycle) ease-out infinite;will-change:opacity, transform}.home-light-circuit-center-ring{animation:lightCenterRing var(--light-circuit-flow-cycle) ease-out infinite;will-change:opacity, transform}.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-halo,.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-energy-tail,.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-energy-core,.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-center-bloom,.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-center-core,.home-webgl-orbital[data-brand-visual=light][data-webgl-active=false] .home-light-circuit-center-ring,.home-webgl-orbital[data-brand-visual=light][data-motion-active=false] .home-light-circuit-external-route,.home-webgl-orbital[data-brand-visual=light][data-motion-active=false] .home-light-circuit-rail-signal,.home-webgl-orbital[data-brand-visual=light][data-motion-active=false] .home-light-circuit-rail-signal path{animation-play-state:paused}.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-halo,.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-energy-tail,.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-energy-core,.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-center-bloom,.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-center-core,.home-webgl-orbital[data-brand-visual=light][data-webgl-state=fallback] .home-light-circuit-center-ring{animation:none}}@keyframes lightRailInputPrimaryBase{0%,18%,to{opacity:.3}5%{opacity:.38}14%{opacity:.42}}@keyframes lightRailInputSecondaryBase{0%,24%,to{opacity:.16}8%{opacity:.22}19%{opacity:.26}}@keyframes lightRailOutputBase{0%,67%,87%,to{opacity:.28}75%{opacity:.36}83%{opacity:.42}}@keyframes lightRailInputPrimaryVisibility{0%,.5%,17%,to{opacity:0}1.5%{opacity:.72}5%,14%{opacity:1}}@keyframes lightRailInputSecondaryVisibility{0%,2%,23%,to{opacity:0}3.5%{opacity:.48}9%,20%{opacity:.72}}@keyframes lightRailOutputVisibility{0%,71%,86%,to{opacity:0}72.5%{opacity:.68}76%,83%{opacity:1}}@keyframes lightRailInputPrimaryTravel{0%,.5%{stroke-dashoffset:100px}15%{stroke-dashoffset:-24px}to{stroke-dashoffset:-24px}}@keyframes lightRailInputSecondaryTravel{0%,2%{stroke-dashoffset:100px}21%{stroke-dashoffset:-24px}to{stroke-dashoffset:-24px}}@keyframes lightRailOutputTravel{0%,71%{stroke-dashoffset:100px}83.5%{stroke-dashoffset:-24px}to{stroke-dashoffset:-24px}}@keyframes lightEnergyFeed{0%,9%{opacity:0;stroke-dashoffset:100px}11%{opacity:.46}20%{opacity:1}29%{opacity:0;stroke-dashoffset:-22px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightEnergyBridge{0%,22%{opacity:0;stroke-dashoffset:100px}24%{opacity:.48}30%{opacity:.98}36%{opacity:0;stroke-dashoffset:-20px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightEnergyCenter{0%,28%{opacity:0;stroke-dashoffset:100px}30%{opacity:.58}37%{opacity:1}45%{opacity:0;stroke-dashoffset:-20px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightEnergyJTransfer{0%,38%{opacity:0;stroke-dashoffset:100px}40%{opacity:.48}46%{opacity:.98}53%{opacity:0;stroke-dashoffset:-20px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightEnergyJStem{0%,47%{opacity:0;stroke-dashoffset:100px}49%{opacity:.52}62%{opacity:1}70%{opacity:0;stroke-dashoffset:-22px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightEnergyJHook{0%,63%{opacity:0;stroke-dashoffset:100px}65%{opacity:.52}75%{opacity:1}83%{opacity:0;stroke-dashoffset:-22px}to{opacity:0;stroke-dashoffset:-24px}}@keyframes lightCenterBloom{0%,21%,42%,to{opacity:.08;transform:scale(.9)}24%{opacity:.24;transform:scale(.96)}29%{opacity:.68;transform:scale(1.06)}36%{opacity:.18;transform:scale(1.01)}}@keyframes lightCenterCore{0%,21%,42%,to{opacity:.54;transform:scale(.88)}25%{opacity:.8;transform:scale(.98)}29%{opacity:1;transform:scale(1.12)}36%{opacity:.66;transform:scale(1)}}@keyframes lightCenterRing{0%,21%,42%,to{opacity:.12;transform:scale(.78)}25%{opacity:.34;transform:scale(.88)}29%{opacity:.7;transform:scale(1)}37%{opacity:.12;transform:scale(1.16)}}:root[data-theme=dark] .home-webgl-canvas{filter:drop-shadow(0 0 16px color-mix(in oklch, var(--home-accent) 46%, transparent))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .home-webgl-canvas{filter:drop-shadow(0 0 16px color-mix(in oklch, var(--home-accent) 46%, transparent))}}@media (hover:hover) and (pointer:fine){.home-webgl-orbital.is-webgl-ready{cursor:crosshair}}.home-orbital .brand-orbital-stage{transform:perspective(900px) rotateX(var(--tiltY)) rotateY(var(--tiltX));transition:transform .5s cubic-bezier(.22,.7,.2,1)}.home-orbital:before{content:"";background:radial-gradient(circle, color-mix(in oklch, var(--home-violet) 24%, transparent), transparent 68%);filter:blur(10px);border-radius:50%;position:absolute;inset:18%}.brand-orbit-particle{background:var(--home-accent);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);width:5px;height:5px;filter:drop-shadow(0 0 5px color-mix(in oklch, var(--home-accent) 72%, transparent));opacity:.68;pointer-events:none;border-radius:50%}.home-orbital .particle-one{background:var(--home-violet);top:8%;left:31%}.home-orbital .particle-two{background:var(--home-cyan);width:4px;height:4px;top:20%;right:4%}.home-orbital .particle-three{background:var(--home-accent);top:43%;left:4%}.home-orbital .particle-four{background:oklch(80% .16 92);width:4px;height:4px;bottom:13%;left:15%}.home-orbital .particle-five{background:var(--home-violet);bottom:8%;left:43%}.home-orbital .particle-six{background:var(--home-cyan);width:6px;height:6px;bottom:22%;right:17%}.home-orbital .particle-seven{background:oklch(93% .04 270);width:3px;height:3px;top:35%;right:27%}.home-orbital .particle-eight{background:var(--home-violet);width:4px;height:4px;bottom:39%;right:5%}.home-orbital .particle-nine{background:var(--home-accent);width:3px;height:3px;top:6%;right:34%}@media (prefers-reduced-motion:no-preference){.home-orbital:before,.blog-hero-orbit:before{animation:brandOrbitalGlow var(--brand-orbit-glow-duration) ease-in-out infinite;will-change:transform, opacity}.brand-orbit-ring{transform-origin:50%;will-change:transform}.brand-orbit-ring-one{animation:brandOrbitOne var(--brand-orbit-one-duration) linear infinite}.brand-orbit-ring-two{animation:brandOrbitTwo var(--brand-orbit-two-duration) linear infinite reverse}.brand-orbit-ring-three{animation:brandOrbitThree var(--brand-orbit-three-duration) linear infinite}.brand-orbit-core{animation:brandCorePulse var(--brand-core-duration) ease-in-out infinite;will-change:transform}.brand-orbit-core-ring{animation:brandCoreRing var(--brand-core-ring-duration) ease-in-out infinite;will-change:transform, opacity}.brand-orbit-core:after{animation:brandCoreSweep var(--brand-core-sweep-duration) linear infinite;will-change:transform, opacity}.brand-orbit-mark{animation:brandMarkFloat var(--brand-mark-duration) ease-in-out infinite;will-change:transform, filter}.brand-orbit-node{animation:brandNodePulse var(--brand-node-duration) ease-in-out infinite;will-change:transform, opacity}.home-orbital .brand-orbit-particle{will-change:transform, opacity;animation:5.6s ease-in-out infinite brandStarDrift}.brand-orbit-node-one{animation-duration:4.6s;animation-delay:-.8s}.brand-orbit-node-two{animation-duration:5.4s;animation-delay:-1.7s}.brand-orbit-node-three{animation-duration:6.2s;animation-delay:-2.5s}.home-orbital .particle-one{animation-duration:4.6s;animation-delay:-1.2s}.home-orbital .particle-two{animation-duration:6.4s;animation-delay:-4.1s}.home-orbital .particle-three{animation-duration:5.2s;animation-delay:-2.6s}.home-orbital .particle-four{animation-duration:7.1s;animation-delay:-5.5s}.home-orbital .particle-five{animation-duration:4.9s;animation-delay:-.4s}.home-orbital .particle-six{animation-duration:6.8s;animation-delay:-3.2s}.home-orbital .particle-seven{animation-duration:5.8s;animation-delay:-1.8s}.home-orbital .particle-eight{animation-duration:7.6s;animation-delay:-6.2s}.home-orbital .particle-nine{animation-duration:5.4s;animation-delay:-4.8s}}@keyframes brandOrbitalGlow{0%,to{opacity:.72;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes brandOrbitOne{0%{transform:rotate(24deg)scaleY(.5)}to{transform:rotate(384deg)scaleY(.5)}}@keyframes brandOrbitTwo{0%{transform:rotate(-32deg)scaleY(.38)}to{transform:rotate(328deg)scaleY(.38)}}@keyframes brandOrbitThree{0%{transform:rotate(73deg)scaleY(.7)}to{transform:rotate(433deg)scaleY(.7)}}@keyframes brandCorePulse{0%,to{transform:scale(.98)}50%{transform:scale(1.02)}}@keyframes brandCoreRing{0%,to{opacity:.42;transform:scale(.94)}50%{opacity:.95;transform:scale(1.04)}}@keyframes brandCoreSweep{0%{opacity:.22;transform:rotate(0)}50%{opacity:.62}to{opacity:.22;transform:rotate(360deg)}}@keyframes brandMarkFloat{0%,to{filter:drop-shadow(0 0 8px color-mix(in oklch, var(--home-accent) 58%, transparent));transform:translateY(2px)scale(.98)}50%{filter:drop-shadow(0 0 16px color-mix(in oklch, var(--home-accent) 84%, transparent));transform:translateY(-3px)scale(1.03)}}@keyframes brandNodePulse{0%,to{opacity:.68;transform:translate(0,0)scale(.84)}25%{opacity:.86;transform:translate3d(calc(var(--node-drift-x) * .6), calc(var(--node-drift-y) * .6), 0) scale(1)}50%{opacity:1;transform:translate3d(var(--node-drift-x), var(--node-drift-y), 0) scale(1.3)}75%{opacity:.78;transform:translate3d(calc(var(--node-drift-x) * .45), calc(var(--node-drift-y) * -.35), 0) scale(.92)}}@keyframes brandStarDrift{0%,to{opacity:.22;transform:translate(0,0)scale(.55)rotate(0)}35%{opacity:.92;transform:translate(5px,-6px)scale(1)rotate(35deg)}60%{opacity:.64;transform:translate(-5px,4px)scale(.72)rotate(90deg)}80%{opacity:1;transform:translate(4px,3px)scale(1.1)rotate(135deg)}}.home-stats{padding:0 0 clamp(34px,5vw,58px)}.home-stats-card,.home-values-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow)}.home-stats-card{grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.home-stat{text-align:center;flex-direction:column;align-items:center;min-width:0;padding:18px 14px 20px;display:flex}.home-stat+.home-stat{border-left:1px solid color-mix(in oklch, var(--border) 82%, transparent)}.home-stat-icon{height:26px;color:var(--home-accent)}.home-stat-icon svg{width:24px;height:24px}.home-stat strong{color:var(--ink);margin-top:7px;font-size:clamp(20px,2.6vw,28px);line-height:1.05}.home-stat span{color:var(--ink-2);margin-top:6px;font-size:12px;line-height:1.35}.home-section{padding:clamp(30px,5vw,58px) 0}.home-section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;display:flex}.home-section-head h2{color:var(--ink);font-family:var(--font-ui-display);letter-spacing:-.04em;font-size:clamp(22px,3vw,28px);font-weight:750}.home-section-head a{min-height:44px;color:var(--home-accent);align-items:center;gap:4px;padding-block:10px;font-size:12px;font-weight:600;display:inline-flex}.home-section-head a svg{width:15px;height:15px;transition:transform var(--dur) var(--ease)}.home-section-head a:hover svg{transform:translate(3px)}.home-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.home-project-card{min-width:0;color:var(--ink);background:color-mix(in oklch, var(--paper) 88%, transparent);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease);flex-direction:column;padding:10px;display:flex;position:relative}.home-project-card.purple{--home-accent:var(--home-violet)}.home-project-card.teal{--home-accent:var(--home-cyan)}.home-project-card.blue{--home-accent:oklch(76% .17 92)}.home-project-card:hover{border-color:color-mix(in oklch, var(--home-accent) 74%, var(--border));box-shadow:var(--shadow-lift);transform:translateY(-3px)}.home-project-card:focus-visible{outline:3px solid var(--home-accent);outline-offset:4px}.home-project-badge{z-index:1;color:#fff;background:var(--home-accent);border-radius:999px;padding:3px 8px;font-size:9px;font-weight:700;position:absolute;top:17px;left:17px}.home-project-card.blue .home-project-badge{color:oklch(16% .03 270);background:oklch(72% .16 92)}.home-project-card.teal .home-project-badge{color:oklch(14% .03 190);background:oklch(72% .15 170)}.home-project-card.purple .home-project-badge{color:oklch(14% .03 270);background:oklch(78% .16 296)}.home-project-thumb{background:radial-gradient(circle at 50% 30%, color-mix(in oklch, var(--home-accent) 19%, transparent), transparent 62%), oklch(10% .04 270);border:1px solid color-mix(in oklch, var(--home-accent) 24%, var(--border));border-radius:9px;place-items:center;min-height:130px;padding:24px 12px 12px;display:grid;overflow:hidden}.home-project-card.purple .home-project-thumb{--home-accent:var(--home-violet)}.home-project-card.teal .home-project-thumb{--home-accent:var(--home-cyan)}.home-project-thumb.has-image{aspect-ratio:16/9;background:oklch(10% .04 270);min-height:0;padding:0}.home-project-image{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform var(--dur) var(--ease), filter var(--dur) var(--ease);background:oklch(10% .04 270);display:block}.home-project-card:hover .home-project-image,.home-project-card:focus-visible .home-project-image{filter:saturate(1.02)contrast(1.01);transform:scale(1.015)}.home-project-card:is(.blue,.teal) .home-project-thumb.has-image,.home-project-card:is(.blue,.teal) .home-project-image{background:#fff}.home-project-thumb svg{width:100%;height:auto;color:var(--ink-2);filter:drop-shadow(0 6px 12px oklch(0% 0 0/.35));transition:transform var(--dur) var(--ease)}.home-project-card:hover .home-project-thumb svg{transform:scale(1.05)}.home-project-card h3{color:var(--ink);margin-top:10px;font-size:14px;font-weight:700;line-height:1.35}.home-project-card p{min-height:54px;color:var(--ink-2);margin-top:4px;font-size:12px;line-height:1.5}.home-project-foot{color:var(--home-accent);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:11px;font-weight:600;display:flex}.home-project-card.teal .home-project-foot{color:var(--home-cyan)}.home-project-card.blue .home-project-foot{color:oklch(78% .16 92)}.home-project-arrow{color:#fff;background:var(--home-accent);width:28px;height:28px;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.home-project-card:hover .home-project-arrow,.home-project-card:focus-visible .home-project-arrow{box-shadow:0 0 0 3px color-mix(in oklch, var(--home-accent) 16%, transparent), 0 3px 8px color-mix(in oklch, var(--home-accent) 22%, transparent);transform:translate(2px)}.home-project-card:active .home-project-arrow{transform:translate(1px)scale(.97)}.home-project-card.teal .home-project-arrow{background:oklch(68% .16 170)}.home-project-card.blue .home-project-arrow{background:oklch(70% .16 72)}.home-project-arrow svg{width:15px;height:15px}.home-values{padding-top:0;padding-bottom:clamp(36px,6vw,72px);scroll-margin-top:90px}.home-values-card{grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.home-value{align-items:flex-start;gap:14px;min-width:0;padding:22px 20px;display:flex}.home-value+.home-value{border-left:1px solid color-mix(in oklch, var(--border) 82%, transparent)}.home-value-icon{width:40px;height:40px;color:var(--home-violet);background:color-mix(in oklch, var(--home-violet) 13%, transparent);border-radius:11px;flex:none;place-items:center;display:grid}.home-value:nth-child(2) .home-value-icon{color:oklch(72% .18 350);background:oklch(72% .18 350/.12)}.home-value:nth-child(3) .home-value-icon{color:oklch(77% .15 190);background:oklch(77% .15 190/.12)}.home-value-icon svg{width:22px;height:22px}.home-value h3{color:var(--ink);font-size:14px;font-weight:700}.home-value p{color:var(--ink-2);margin-top:5px;font-size:12px;line-height:1.5}@media (width<=760px){.nav-in{min-height:68px}.nav-desktop{gap:2px}.nav-desktop a{padding-inline:7px;font-size:13px}}@media (width<=620px){.menu-btn{justify-content:center;align-items:center;display:inline-flex}.nav-desktop{display:none}.nav-actions{margin-left:auto}.home-page .home-hero{padding-top:24px}.home-hero-grid{gap:8px}}@media (width<=560px){.home-hero-grid{grid-template-columns:1fr}.home-page h1{max-width:9ch;font-size:clamp(42px,12vw,58px)}.home-orbital{width:min(78vw,320px);min-height:250px;margin-top:0}.home-webgl-orbital[data-brand-visual=light]{width:min(84vw,328px);min-height:0;margin-bottom:-24px}.home-light-circuit-rail[data-mobile-visibility=hidden],.home-light-circuit-internal-routes path[data-mobile-visibility=hidden],.home-light-circuit-energy-traces [data-mobile-visibility=hidden]{display:none}.home-light-circuit-external-route{stroke-width:2.05px}.home-light-circuit-rail-tail{stroke-width:calc(5px * var(--circuit-energy-emphasis,1))}.home-light-circuit-rail-core{stroke-width:calc(2.7px * var(--circuit-energy-emphasis,1))}.home-light-circuit-internal-routes path{stroke-width:1.8px}.home-light-circuit-internal-routes path[data-circuit-group=w]{stroke-width:2.05px}.home-light-circuit-energy-tail{stroke-width:calc(6.8px * var(--circuit-energy-emphasis,1))}.home-light-circuit-energy-core{stroke-width:calc(2.7px * var(--circuit-energy-emphasis,1))}.home-stats-card,.home-values-card{border-radius:12px}.home-stats-card{grid-template-columns:repeat(2,1fr)}.home-stat:nth-child(3){border-top:1px solid color-mix(in oklch, var(--border) 82%, transparent);border-left:0}.home-stat:nth-child(4){border-top:1px solid color-mix(in oklch, var(--border) 82%, transparent)}.home-project-grid,.home-values-card{grid-template-columns:1fr}.home-project-grid{gap:12px}.home-project-card h3{margin-top:8px}.home-project-card p{margin-top:2px}.home-project-foot{padding-top:8px}.home-value+.home-value{border-top:1px solid color-mix(in oklch, var(--border) 82%, transparent);border-left:0}.home-section-head{flex-direction:column;align-items:flex-start;gap:8px}}@media (prefers-reduced-motion:reduce){.home-project-card,.home-project-card .home-project-image,.home-project-arrow{transition:none}.home-project-card:hover,.home-project-card:hover .home-project-image,.home-project-card:focus-visible .home-project-image,.home-project-card:hover .home-project-thumb svg,.home-project-card:focus-visible .home-project-thumb svg,.home-project-card:hover .home-project-arrow,.home-project-card:focus-visible .home-project-arrow{transform:none}.home-project-card:hover .home-project-image,.home-project-card:focus-visible .home-project-image{filter:none}.home-orbital .brand-orbital-stage,.home-orbital-fallback,.home-light-circuit-artwork,.home-webgl-canvas{transition:none}.home-webgl-canvas{display:none}.home-light-circuit-energy-tail,.home-light-circuit-energy-core{opacity:0;animation:none}.home-light-circuit-halo,.home-light-circuit-rail,.home-light-circuit-external-route,.home-light-circuit-rail-signal,.home-light-circuit-rail-signal path,.home-light-circuit-center-bloom,.home-light-circuit-center-core,.home-light-circuit-center-ring{animation:none;transform:none}.home-light-circuit-rail-signal{opacity:0}}
