@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");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}:root{--paper:#faf8f4;--ink:#1c1b18;--ink-soft:#5c5952;--ink-faint:#8a867d;--rule:#1c1b1824;--accent:#b3273a;--accent-soft:#b3273a17;--ok:#2e8b57;--li:#0a66c2;--grain-op:.5;--logo-plate:#faf8f4;--font-serif:"Newsreader Variable", "Newsreader", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}[data-theme=dark]{--paper:#161513;--ink:#e8e4dc;--ink-soft:#a8a49a;--ink-faint:#767268;--rule:#e8e4dc24;--accent:#ff6b5e;--accent-soft:#ff6b5e1f;--ok:#4fce7f;--li:#58a6e8;--grain-op:.55}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-optical-sizing:auto;margin:0;transition:background .3s,color .3s}img{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:3px;text-decoration:underline 1px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{z-index:20;background:var(--paper);color:var(--accent);border:1px solid var(--rule);font-family:var(--font-mono);border-radius:6px;padding:8px 12px;font-size:13px;text-decoration:none;transition:top .2s;position:absolute;top:-48px;left:8px}.skip-link:focus{top:8px}.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}body:before{content:"";z-index:0;pointer-events:none;opacity:var(--grain-op);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.5 0 0 0 0 0.48 0 0 0 0 0.44 0 0 0 0.10 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}[data-texture=none] body:before{background-image:none}[data-texture=laid] body:before{background-image:repeating-linear-gradient(0deg,#7873692e 0 1px,#0000 1px 4px)}[data-texture=dots] body:before{background-image:radial-gradient(#78736952 1.2px,#0000 1.2px);background-size:18px 18px}[data-texture=fibers] body:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='turbulence' baseFrequency='0.012 0.25' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.48 0 0 0 0 0.46 0 0 0 0 0.42 0 0 0 0.16 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23f)'/%3E%3C/svg%3E")}[data-texture=grid] body:before{background-image:linear-gradient(#78736929 1px,#0000 1px),linear-gradient(90deg,#78736929 1px,#0000 1px);background-size:28px 28px}[data-texture=wash] body:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.5 0 0 0 0 0.47 0 0 0 0 0.42 0 0 0 0.14 0'/%3E%3C/filter%3E%3Crect width='600' height='600' filter='url(%23w)'/%3E%3C/svg%3E")}.container{z-index:1;max-width:780px;margin:0 auto;padding:0 24px 64px;position:relative}.section{margin-bottom:96px;scroll-margin-top:84px}.tilde{color:var(--accent)}.topbar{z-index:10;background:color-mix(in srgb, var(--paper) 86%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin:0 -24px 88px;padding:16px 24px;transition:transform .35s;display:flex;position:sticky;top:0}[data-nav=hidden] .topbar{transform:translateY(-105%)}[data-nav=hidden] .topbar:focus-within{transform:none}.brand{font-family:var(--font-mono);color:var(--ink-soft);font-size:13px;text-decoration:none}.nav-right{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.nav,.lang{font-family:var(--font-mono);gap:6px;font-size:12.5px;display:flex}.nav-a{color:var(--ink-soft);border-radius:5px;padding:5px 8px;text-decoration:none;transition:color .2s,background .25s;position:relative}.nav-a:hover{color:var(--accent);background:var(--accent-soft)}.nav-a:before,.nav-a:after{content:"";opacity:0;pointer-events:none;width:4px;height:4px;transition:width .3s,height .3s,opacity .2s;position:absolute}.nav-a:before{border-top:1.5px solid var(--accent);border-left:1.5px solid var(--accent);border-top-left-radius:5px;top:0;left:0}.nav-a:after{border-bottom:1.5px solid var(--accent);border-right:1.5px solid var(--accent);border-bottom-right-radius:5px;bottom:0;right:0}.nav-a:hover:before,.nav-a:hover:after{opacity:1;width:13px;height:13px}.tt{background:var(--paper);border:1px solid var(--rule);width:38px;height:38px;color:var(--ink-soft);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.tt:hover{border-color:var(--accent);color:var(--accent)}.tt svg{transition:transform .55s cubic-bezier(.45,.05,.25,1.3);display:block}[data-theme=dark] .tt svg{transform:rotate(-100deg)}.tt .core{r:4.5px;transition:r .45s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .tt .core{r:8.5px}.tt .cut{cx:28px;cy:-6px;transition:cx .45s cubic-bezier(.4,0,.2,1),cy .45s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .tt .cut{cx:16.5px;cy:6.5px}.tt .rays{transform-origin:12px 12px;transition:transform .5s cubic-bezier(.45,.05,.25,1.3),opacity .3s}[data-theme=dark] .tt .rays{opacity:0;transform:rotate(45deg)scale(.25)}.hero{margin-bottom:96px}.hero-name{letter-spacing:-.01em;margin:0 0 20px;font-size:clamp(34px,6vw,46px);font-weight:600;line-height:1.15}.pitch{color:var(--ink-soft);text-wrap:pretty;max-width:56ch;margin:0 0 32px;font-size:clamp(18px,2.5vw,21px);line-height:1.55}.profile{color:var(--ink-soft);text-wrap:pretty;max-width:58ch;margin:0;font-size:17.5px;line-height:1.9}.chip{font-family:var(--font-mono);background:var(--accent-soft);color:var(--ink);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:.82em}.section-title{font-family:var(--font-mono);color:var(--ink);margin:0 0 var(--title-gap,24px);font-size:14px;font-weight:500}.projects{flex-direction:column;gap:40px;display:flex}.proj{--cc:var(--cc-light,var(--accent));border-radius:8px;align-items:flex-start;gap:20px;margin:-14px -16px;padding:14px 16px;transition:background .35s;display:flex;position:relative}[data-theme=dark] .proj{--cc:var(--cc-dark,var(--accent))}.proj:hover{background:color-mix(in srgb, var(--cc) 8%, transparent)}.proj:before,.proj:after{content:"";opacity:0;pointer-events:none;width:10px;height:10px;transition:width .35s,height .35s,opacity .25s;position:absolute}.proj:before{border-top:1.5px solid var(--cc);border-left:1.5px solid var(--cc);border-top-left-radius:8px;top:0;left:0}.proj:after{border-bottom:1.5px solid var(--cc);border-right:1.5px solid var(--cc);border-bottom-right-radius:8px;bottom:0;right:0}.proj:hover:before,.proj:hover:after{opacity:1;width:32px;height:32px}.proj-logo{object-fit:contain;border-radius:10px;flex:none;width:64px;height:64px;margin-top:4px;transition:transform .3s,background .3s}.proj-logo--themed{background:var(--logo-plate)}.proj:hover .proj-logo{transform:scale(1.07)rotate(-2deg)}.proj-body{min-width:0}.proj-title{margin:0 0 8px;font-size:21px;font-weight:600;line-height:1.3}.proj-desc{color:var(--ink-soft);text-wrap:pretty;max-width:60ch;margin:0 0 10px;font-size:17px;line-height:1.6}.proj-path{flex-direction:column;gap:0;max-width:60ch;margin:4px 0 14px;padding:0;list-style:none;display:flex}.proj-step{padding:0 0 16px 18px;position:relative}.proj-step:last-child{padding-bottom:0}.proj-step:not(:last-child):before{content:"";background:color-mix(in srgb, var(--cc) 35%, var(--rule));width:1px;transition:background .35s;position:absolute;top:10px;bottom:-2px;left:3.5px}.proj-step-dot{border:1.5px solid color-mix(in srgb, var(--cc) 55%, var(--ink-faint));background:var(--paper);border-radius:50%;width:8px;height:8px;transition:border-color .3s,background .3s,transform .3s;position:absolute;top:6px;left:0}.proj-step:last-child .proj-step-dot{background:color-mix(in srgb, var(--cc) 70%, var(--paper));border-color:var(--cc)}.proj:hover .proj-step-dot{border-color:var(--cc);transform:scale(1.15)}.proj:hover .proj-step:last-child .proj-step-dot{background:var(--cc)}.proj-step-period{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.01em;margin:0 0 3px;font-size:11.5px}.proj-step-role{color:var(--ink);margin:0 0 3px;font-size:15.5px;font-weight:600;line-height:1.35}.proj-step-detail{color:var(--ink-soft);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.5}.stack{font-family:var(--font-mono);color:var(--ink-faint);flex-wrap:wrap;gap:6px;margin:0;font-size:12.5px;display:flex}.stack .t{transition:color .25s}.stack .t:before{content:"·";color:var(--ink-faint);margin-right:6px}.proj:hover .stack .t{color:var(--cc)}.proj:hover .stack .t:nth-of-type(2){transition-delay:90ms}.proj:hover .stack .t:nth-of-type(3){transition-delay:.18s}.proj:hover .stack .t:nth-of-type(4){transition-delay:.27s}.education{margin:0;padding:0;list-style:none}.edu{--cc:var(--cc-light,var(--accent));border-bottom:1px solid var(--rule);grid-template-columns:84px 1fr;align-items:start;padding:18px 0;transition:padding-left .25s;display:grid}[data-theme=dark] .edu{--cc:var(--cc-dark,var(--accent))}.edu:hover{padding-left:10px}.edu-mark{object-fit:contain;filter:grayscale(.55);border-radius:8px;width:56px;height:56px;margin-top:2px;transition:filter .3s}.edu-mark--themed{background:var(--logo-plate)}.edu:hover .edu-mark{filter:none}.edu-body{min-width:0}.edu-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:6px;display:flex}.edu-school{margin:0;font-size:18.5px;font-weight:600;line-height:1.3;transition:color .25s}.edu:hover .edu-school{color:var(--cc)}.edu-when{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;letter-spacing:.01em;margin:0;font-size:12.5px;transition:color .25s}.edu:hover .edu-when{color:var(--cc)}.edu-degree{color:var(--ink-soft);text-wrap:pretty;max-width:60ch;margin:0 0 5px;font-size:16px;line-height:1.55}.edu-note{color:var(--ink-soft);text-wrap:pretty;max-width:62ch;margin:0;font-size:14.5px;line-height:1.55}.posts{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.writing-soon{position:relative}.skeleton{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skeleton li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.sk-bar{background:var(--rule);border-radius:6px;height:12px;position:relative;overflow:hidden}.sk-date{flex:none;width:44px}.sk-bar:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 9%, transparent), transparent);animation:1.8s ease-in-out infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton li:nth-child(2) .sk-bar:after{animation-delay:.15s}.skeleton li:nth-child(3) .sk-bar:after{animation-delay:.3s}.coming-soon{pointer-events:none;justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:0}.coming-soon span{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:color-mix(in srgb, var(--paper) 82%, transparent);border:1px solid var(--rule);backdrop-filter:blur(3px);border-radius:999px;padding:6px 14px;font-size:12px}.wr{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;transition:padding-left .25s,background .25s;display:flex}.wr:hover{padding-left:10px}.wr-title{color:var(--ink);text-decoration-color:var(--rule);font-size:17.5px}.wr:hover .wr-title{color:var(--accent);text-decoration-color:var(--accent)}.wd{font-family:var(--font-mono);color:var(--ink-faint);white-space:nowrap;font-size:12.5px;transition:color .25s}.wr:hover .wd{color:var(--accent)}.about-prose p{text-wrap:pretty;max-width:62ch;margin:0 0 18px;font-size:17.5px;line-height:1.7}.about-prose p:last-child{margin-bottom:0}.ew{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.card{--cc:var(--accent);text-align:center;border:1px solid var(--rule);min-width:0;font-family:var(--font-mono);border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:16px;text-decoration:none;transition:transform .25s,background .25s;display:flex;position:relative}button.card{cursor:pointer;width:100%;color:inherit;background:0 0}.card:hover{background:color-mix(in srgb, var(--cc) 8%, transparent);transform:translateY(-3px)}.card:before,.card:after{content:"";opacity:0;pointer-events:none;width:10px;height:10px;transition:width .35s,height .35s,opacity .25s;position:absolute}.card:before{border-top:1.5px solid var(--cc);border-left:1.5px solid var(--cc);border-top-left-radius:8px;top:-1px;left:-1px}.card:after{border-bottom:1.5px solid var(--cc);border-right:1.5px solid var(--cc);border-bottom-right-radius:8px;bottom:-1px;right:-1px}.card:hover:before,.card:hover:after{opacity:1;width:34px;height:34px}.card-icon{color:var(--cc)}.lab{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;transition:color .25s}.card:hover .lab{color:var(--cc)}.card-value{color:var(--ink-soft);overflow-wrap:anywhere;font-size:13px;transition:opacity .2s}.card-value.fading{opacity:0}.card.copied .card-value{color:var(--ok);animation:.3s copiedPop}.card.copied .card-icon{color:var(--ok);animation:.4s copiedPulse}.arr{color:var(--cc);opacity:0;font-size:14px;transition:opacity .25s,transform .25s;position:absolute;top:10px;right:12px;transform:translate(-4px,4px)}.card:hover .arr{opacity:1;transform:none}.colophon{border-top:1px solid var(--rule);padding-top:28px}.colophon p{font-family:var(--font-mono);color:var(--ink-faint);text-align:center;margin:0;font-size:12px;line-height:1.8}.colophon .version{margin-top:12px}.version span{border:1px solid var(--rule);letter-spacing:.04em;color:var(--ink-soft);border-radius:999px;padding:3px 10px;font-size:11px;display:inline-block}@media (prefers-reduced-motion:no-preference){@supports (background-clip:text){.version span{background-image:linear-gradient(100deg, var(--ink-soft) 0%, var(--ink-soft) 34%, var(--accent) 50%, var(--ink-soft) 66%, var(--ink-soft) 100%);-webkit-text-fill-color:transparent;color:#0000;background-size:200% 100%;background-clip:text;animation:4.5s linear infinite badgeSweep}}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes typing{0%{width:0}to{width:var(--tw)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.15}}@keyframes caretOut{to{opacity:0}}@keyframes copiedPop{0%{opacity:0;transform:translateY(3px)scale(.96)}to{opacity:1;transform:none}}@keyframes copiedPulse{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes badgeSweep{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:no-preference){.hero>*{animation:.65s both fadeUp}.hero>:nth-child(2){animation-delay:.12s}.hero>:nth-child(3){animation-delay:.24s}.hero>:nth-child(4){animation-delay:.36s}.js .rev{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.js .rev.vis{opacity:1;transform:none}.js .rev .type{white-space:nowrap;vertical-align:bottom;width:0;display:inline-block;overflow:hidden}.js .rev.vis .type{animation:.9s steps(14,end) .15s forwards typing}.js .rev.vis .type:after{content:"";background:var(--accent);width:8px;height:.75em;margin-left:6px;animation:.8s steps(2,start) 4 blink,.2s 3.4s forwards caretOut;display:inline-block}.js .rev .ew .card{opacity:0}.js .rev.vis .ew .card{animation:.5s both fadeUp}.js .rev.vis .ew .card:first-child{animation-delay:.25s}.js .rev.vis .ew .card:nth-child(2){animation-delay:.37s}.js .rev.vis .ew .card:nth-child(3){animation-delay:.49s}.js .rev.vis .ew .card:nth-child(4){animation-delay:.61s}.js .rev .edu{opacity:0}.js .rev.vis .edu{animation:.5s both fadeUp}.js .rev.vis .edu:first-child{animation-delay:.25s}.js .rev.vis .edu:nth-child(2){animation-delay:.35s}.js .rev.vis .edu:nth-child(3){animation-delay:.45s}.js .rev.vis .edu:nth-child(4){animation-delay:.55s}.js .rev .wr{opacity:0}.js .rev.vis .wr{animation:.5s both fadeUp}.js .rev.vis .wr:first-child{animation-delay:.25s}.js .rev.vis .wr:nth-child(2){animation-delay:.35s}.js .rev.vis .wr:nth-child(3){animation-delay:.45s}.js .rev.vis .wr:nth-child(4){animation-delay:.55s}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
