@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.umPtaa_className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.umPtaa_variable{--font-sans:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1zakzi6q17d4o.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.3skwie1wjplzh.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.3zhbgtelpa5ua.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3vf5yzuqk3fsd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1wmoa0e_blxrz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1zakzi6q17d4o.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.2htf8h-pf57mm.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.3skwie1wjplzh.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.3zhbgtelpa5ua.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3vf5yzuqk3fsd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1wmoa0e_blxrz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.nVyzkG_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.nVyzkG_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#f3f4ef;--card:#fff;--ink:#1f2a24;--muted:#5f6b64;--body:#33403a;--sub:#4d5a52;--faint:#647068;--accent:#3f7a59;--mint:#e3ede6;--mintInk:#2f5e45;--sand:#f6e6d6;--sandInk:#8a4f2a;--sandInk2:#6e4a33;--quote:#4f2f1b;--quoteMark:#c07a4c;--dark:#1f2a24;--darkInk:#f3f4ef;--darkSub:#a9c4b2;--darkLine:#3e5045;--darkHover:#2e3d34;--darkP:#c5d3c9;--line:#e3e7e2;--ph1:#eef1ec;--ph2:#e6ebe5;--nav:#f3f4efd9;--glass:#ffffffeb;--ghost:#dfe6df;--shadow:#1f2a2414}:root[data-theme=dark]{--bg:#111713;--card:#1a221d;--ink:#e6ece8;--muted:#9eaba3;--body:#cdd6d0;--sub:#b4c0b9;--faint:#8a978f;--accent:#82c7a0;--mint:#1d3127;--mintInk:#a9d6ba;--sand:#2c231b;--sandInk:#e2b58f;--sandInk2:#d2ad8c;--quote:#f1dcc8;--quoteMark:#d69a6e;--dark:#1f3027;--darkInk:#eef3ef;--darkSub:#a9cdb6;--darkLine:#3a5144;--darkHover:#2a3f33;--darkP:#c2d2c7;--line:#2a352e;--ph1:#212a24;--ph2:#1c241f;--nav:#111713d1;--glass:#1a221deb;--ghost:#243029;--shadow:#00000059}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans), sans-serif;-webkit-font-smoothing:antialiased;margin:0;transition:background-color .3s,color .3s}a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}.mono{font-family:var(--font-mono), monospace}main [id]{scroll-margin-top:88px}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding:0 8px;display:flex}.section-header-text{flex-direction:column;gap:12px;display:flex}.section-tag{color:var(--accent);font-size:13px}.section-title{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(30px,4.4vw,44px);font-weight:700;line-height:1.08}.section-title .word{vertical-align:top;margin-bottom:-.1em;padding-bottom:.1em;display:inline-block;overflow:hidden}.section-title .word>span{transition:transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * 55ms);display:inline-block}.js .reveal.section-header{opacity:1;transform:none}.js .section-header:not(.in) .section-title .word>span{transform:translateY(110%)}.js .section-header .section-tag,.js .section-header>:not(.section-header-text){transition:opacity .6s .2s}.js .section-header:not(.in) .section-tag,.js .section-header:not(.in)>:not(.section-header-text){opacity:0}@media (prefers-reduced-motion:reduce){.section-title .word>span,.js .section-header .section-tag,.js .section-header>:not(.section-header-text){transition:none}}.timeline-dot{border:3px solid var(--accent);background:var(--card);border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:5px}.timeline-line{background:var(--line);flex:1;width:2px;margin-top:4px;position:relative}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.timeline-dot{animation:linear both timeline-dot;animation-timeline:view(50%)}.timeline-line:after{content:"";background:var(--accent);transform-origin:top;animation:linear both timeline-fill;animation-timeline:view(50%);position:absolute;inset:0}}}@keyframes timeline-dot{0%{border-color:var(--line);background:var(--card)}to{border-color:var(--accent);background:var(--accent)}}@keyframes timeline-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.nav-links{position:relative}.nav-links a{z-index:1;position:relative}.nav-links a[aria-current=true]{color:var(--accent)}.nav-indicator{background:var(--mint);border-radius:999px;transition:transform .4s cubic-bezier(.34,1.2,.64,1),width .4s;position:absolute;top:5px;bottom:5px;left:0}@media (prefers-reduced-motion:reduce){.nav-indicator{transition:none}}.now-line{grid-area:1/1;transition:opacity .4s,visibility .4s}@media (prefers-reduced-motion:reduce){.now-line{transition:none}}.js .reveal{opacity:0;will-change:opacity, transform;transition:opacity .45s,transform .45s cubic-bezier(.2,.7,.2,1);transform:translateY(16px)}.js .reveal.in{opacity:1;will-change:auto;transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-toggle{font:inherit;text-align:left;cursor:pointer;color:var(--accent);background:0 0;border:0;margin-top:4px;padding:0;font-size:13px;font-weight:600}.card-toggle:after{content:"";border-radius:28px;position:absolute;inset:0}.card-toggle:focus-visible{outline:none}.card-toggle:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}@media (hover:hover){.hv-mint:hover{background:var(--mint)!important;color:var(--ink)!important}.hv-accent:hover{background:var(--accent)!important;color:var(--bg)!important}.hv-card:hover{box-shadow:0 14px 36px var(--shadow);transform:translateY(-4px)}.hv-dark:hover{background:var(--darkHover)!important}}.site-header:before{content:"";background:var(--bg);height:10px;position:absolute;top:-10px;left:0;right:0}.pill-group{border-radius:999px;gap:4px;max-width:100%;padding:5px;display:flex}.pill{cursor:pointer;font:inherit;white-space:nowrap;color:var(--ink);background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s,color .2s}.pill[aria-pressed=true]{background:var(--ink);color:var(--bg)}@media (hover:hover){.pill:not([aria-pressed=true]):hover{background:var(--mint)}}@media (max-width:760px){.pill-group{border-radius:22px;flex-wrap:wrap}}.journey-tabs{flex:260px;grid-template-columns:1fr;align-content:space-between;gap:10px;display:grid}@media (max-width:760px){.journey-tabs{grid-template-columns:1fr 1fr}}.journey-land{fill:var(--ghost)}.journey-route-base{fill:none;stroke:var(--faint);stroke-opacity:.45;stroke-width:2px;stroke-dasharray:5 7;stroke-linecap:round}.journey-route{fill:none;stroke:var(--accent);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .7s cubic-bezier(.65,0,.35,1)}.journey-route[data-drawn=false],.js .reveal:not(.in) .journey-route{stroke-dashoffset:1px}.journey-city{cursor:pointer}.journey-dot{fill:var(--card);stroke:var(--faint);stroke-width:3px;transition:r .3s,fill .3s}.journey-dot.reached{fill:var(--accent);stroke:var(--bg)}.journey-pulse{fill:var(--accent);transform-box:fill-box;transform-origin:50%;animation:2.2s ease-out infinite journey-pulse}@keyframes journey-pulse{0%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.journey-label{font-family:var(--font-sans), sans-serif;fill:var(--muted);stroke:var(--bg);stroke-width:5px;stroke-linejoin:round;paint-order:stroke;font-size:19px;font-weight:600}.journey-label.active{fill:var(--ink);font-weight:700}@media (prefers-reduced-motion:reduce){.journey-route,.journey-dot{transition:none}.journey-pulse{opacity:0;animation:none}}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.lang-toggle{background:var(--card);isolation:isolate;border-radius:999px;padding:4px;display:flex;position:relative}.lang-thumb{background:var(--ink);z-index:0;border-radius:999px;width:calc(50% - 4px);transition:transform .35s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;bottom:4px;left:4px;transform:translate(0)}.lang-toggle[data-active=en] .lang-thumb{transform:translate(100%)}.lang-btn{z-index:1;cursor:pointer;font:inherit;min-width:38px;color:var(--ink);background:0 0;border:0;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:600;transition:color .25s,transform .2s;position:relative}.lang-btn.active{color:var(--bg)}.lang-btn:active{transform:scale(.92)}.theme-toggle{cursor:pointer;background:var(--card);width:40px;height:40px;color:var(--ink);border:0;border-radius:50%;justify-content:center;align-items:center;transition:background .25s;display:flex;position:relative;overflow:hidden}.theme-toggle:active{transform:scale(.9)}.theme-icon{justify-content:center;align-items:center;font-size:17px;transition:opacity .4s,transform .5s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;inset:0}.theme-icon-moon{opacity:1;transform:rotate(0)scale(1)}.theme-icon-sun{opacity:0;transform:rotate(-90deg)scale(.4)}:root[data-theme=dark] .theme-icon-sun{opacity:1;transform:rotate(0)scale(1)}:root[data-theme=dark] .theme-icon-moon{opacity:0;transform:rotate(90deg)scale(.4)}@media (prefers-reduced-motion:reduce){.lang-thumb,.lang-btn,.theme-icon,.theme-toggle{transition:none}}html.theme-vt::view-transition-old(root){mix-blend-mode:normal;animation:none}html.theme-vt::view-transition-new(root){mix-blend-mode:normal;animation:none}html.theme-vt::view-transition-new(root){z-index:1}html.theme-vt body{transition:none}html.theme-vt .lang-thumb{view-transition-name:none}html.theme-fade,html.theme-fade *,html.theme-fade :before,html.theme-fade :after{transition:background-color .4s,color .4s,border-color .4s,fill .4s,stroke .4s!important}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}.lang-thumb{view-transition-name:lang-thumb}::view-transition-old(root){animation:.22s both vt-fade-out}::view-transition-new(root){animation:.35s 50ms both vt-fade-in}::view-transition-group(lang-thumb){animation-duration:.45s;animation-timing-function:cubic-bezier(.34,1.3,.64,1)}}@keyframes vt-fade-out{to{opacity:0;filter:blur(3px)}}@keyframes vt-fade-in{0%{opacity:0;filter:blur(3px)}}.bottom-nav{display:none}@media (max-width:760px){.nav-links{display:none!important}.page-shell{padding-bottom:calc(140px + env(safe-area-inset-bottom,0px))!important}.bottom-nav{z-index:50;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--nav);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);display:block;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{justify-content:space-around;align-items:stretch;gap:2px;max-width:520px;margin:0 auto;display:flex}.bottom-nav-item{color:var(--faint);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:16px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:11px;font-weight:500;transition:color .25s,background .25s;display:flex}.bottom-nav-item svg{transition:transform .25s cubic-bezier(.2,.7,.2,1)}.bottom-nav-item.active{color:var(--accent);background:var(--mint)}.bottom-nav-item.active svg{transform:translateY(-1px)scale(1.08)}.bottom-nav-label{letter-spacing:.01em;line-height:1}}@media (max-width:760px) and (prefers-reduced-motion:reduce){.bottom-nav-item,.bottom-nav-item svg{transition:none}}:root{--mascot-body:#1f2a24;--mascot-line:#1f2a24;--mascot-screen:#2e3d34;--mascot-face:#f3f4ef;--mascot-accent:#82c7a0;--mascot-prompt:#82c7a0}:root[data-theme=dark] .mascot,.mascot-inverse{--mascot-body:#dfe9e2;--mascot-line:#dfe9e2;--mascot-screen:#1f2a24;--mascot-prompt:#1f2a24}.mascot{pointer-events:none}.mascot-body{fill:var(--mascot-body)}.mascot-outline{stroke:var(--mascot-line);stroke-width:2px}.mascot-outline-thin{stroke:var(--mascot-line);stroke-width:1.5px}.mascot-screen{fill:var(--mascot-screen)}.mascot-face{fill:var(--mascot-face)}.mascot-accent{fill:var(--mascot-accent)}.mascot-face-stroke,.mascot-accent-stroke,.mascot-prompt,.mascot-limb{fill:none;stroke-linecap:round;stroke-linejoin:round}.mascot-face-stroke{stroke:var(--mascot-face)}.mascot-accent-stroke{stroke:var(--mascot-accent)}.mascot-prompt{stroke:var(--mascot-prompt)}.mascot-prompt-fill{fill:var(--mascot-prompt)}.mascot-limb{stroke:var(--mascot-body)}.mascot-mark{font-family:var(--font-mono), monospace;fill:var(--mascot-accent);font-size:14px;font-weight:500}.footer-world{border-bottom:1px dashed var(--line);flex:200px;min-width:160px;height:64px;margin:0 12px;position:relative}.footer-walker{transition-property:transform;transition-timing-function:linear;position:absolute;bottom:-1px;left:0}@media (max-width:760px){.footer-world{flex-basis:100%;order:-1;margin:0}}.mascot-ball-fill{fill:#f3f4ef;stroke:#1f2a24;stroke-width:1.5px}.mascot-ball-patch{fill:#1f2a24}.mascot-laptop-lid{fill:#c9d6cd;stroke:#6b776f;stroke-width:1.2px}.mascot-laptop-base{fill:#8a978f}.mascot-cup{fill:#f3f4ef;stroke:#6b776f;stroke-width:1.2px}.mascot-cup-handle{fill:none;stroke:#6b776f;stroke-linecap:round}.mascot-steam{fill:none;stroke:var(--faint);stroke-linecap:round}.journey-traveler{transition:transform .9s cubic-bezier(.45,0,.25,1)}@media (prefers-reduced-motion:no-preference){.mascot-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s infinite mascot-blink}.mascot-caret{animation:1.1s step-end infinite mascot-caret}.mascot-bob{animation:2.6s ease-in-out infinite mascot-bob}.mascot-arm{transform-box:fill-box;transform-origin:0 100%;animation:1.4s ease-in-out infinite mascot-wave}.mascot-cheer{animation:.5s ease-in-out infinite alternate mascot-cheer}.mascot-z{animation:2.4s ease-in-out infinite mascot-z}.mascot-z-late{animation-delay:1.2s}.mascot-leg,.mascot-swing-l,.mascot-swing-r{transform-box:fill-box;transform-origin:50% 0}.mascot-walking .mascot-leg-l,.mascot-walking .mascot-swing-r{animation:.42s ease-in-out infinite alternate mascot-step}.mascot-walking .mascot-leg-r,.mascot-walking .mascot-swing-l{animation:.42s ease-in-out infinite alternate-reverse mascot-step}.mascot-kicking .mascot-leg-r{animation:.9s ease-in-out infinite mascot-kick}.mascot-ball{animation:.9s ease-in-out infinite mascot-ball}.mascot-typing{animation:.18s steps(2,end) infinite mascot-type}.mascot-steam{animation:1.8s ease-in-out infinite mascot-steam}}@media (prefers-reduced-motion:reduce){.footer-walker{transition:none!important}}@keyframes mascot-step{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@keyframes mascot-kick{0%,45%,to{transform:rotate(0)}20%{transform:rotate(-35deg)}}@keyframes mascot-ball{0%,15%,to{transform:translate(0)}45%{transform:translate(9px,-12px)}70%{transform:translate(14px)}}@keyframes mascot-type{50%{transform:translateY(1px)}}@keyframes mascot-steam{0%{opacity:0;transform:translateY(2px)}40%{opacity:1}to{opacity:0;transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){.journey-traveler{transition:none}}@keyframes mascot-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes mascot-caret{50%{opacity:0}}@keyframes mascot-bob{50%{transform:translateY(-2px)}}@keyframes mascot-wave{0%,to{transform:rotate(-10deg)}50%{transform:rotate(16deg)}}@keyframes mascot-cheer{to{transform:translateY(-3px)}}.mascot-mic{fill:#c9d6cd}.mascot-mic-handle{fill:#6b776f}.mascot-mic-grille{fill:none;stroke:#8a978f}@media (prefers-reduced-motion:no-preference){.mascot-talk{transform-box:fill-box;transform-origin:50%;animation:.32s ease-in-out infinite alternate mascot-talk}}@keyframes mascot-talk{to{transform:scaleY(.35)}}.speech{background:var(--card);color:var(--ink);border:1px solid var(--line);max-width:220px;box-shadow:0 8px 24px var(--shadow);border-radius:16px;padding:10px 14px;font-size:14px;font-weight:600;line-height:1.35;position:relative}.speech:after{content:"";background:inherit;border-top:1px solid var(--line);border-right:1px solid var(--line);width:12px;height:12px;position:absolute;bottom:14px;right:-7px;transform:rotate(45deg)}.speech-down:after{bottom:-7px;left:28px;right:auto;transform:rotate(135deg)}.mascot-stage{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:12px;min-height:280px;padding-bottom:24px;display:flex;position:relative}.mascot-stage:before{content:"";background:var(--mint);border-radius:50%;width:62%;height:26px;position:absolute;bottom:18px}.mascot-stage .speech{align-self:center;margin-left:120px}#stage-mascot{transition:opacity .2s;position:relative}html[data-companion=out] #stage-mascot{opacity:0}.companion{z-index:45;opacity:0;transform-origin:100% 100%;pointer-events:none;align-items:flex-end;gap:10px;transition:opacity .3s,transform .3s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px)scale(.9)}.companion.is-visible{opacity:1;pointer-events:auto;cursor:pointer;transform:none}.companion.is-returning{opacity:1;transition:none;transform:none}.companion-body{transform-origin:0 0}.companion-speech{opacity:0;transform-origin:100% 100%;margin-bottom:30px;transition:opacity .25s,transform .25s;transform:translateY(6px)scale(.96)}.companion-speech.is-shown{opacity:1;transform:none}@media (max-width:760px){.mascot-stage{display:none}.companion{right:10px;bottom:calc(64px + env(safe-area-inset-bottom,0px))}.companion-body svg{width:48px;height:auto}.companion .speech{max-width:180px;padding:8px 12px;font-size:13px}.companion-speech{margin-bottom:22px}}@media (prefers-reduced-motion:reduce){.companion,.companion-speech,#stage-mascot{transition:none}}@media (max-width:760px){.contact-mascot{display:none}.companion{transform:translateY(40px)scale(.9)}}.intro-splash{z-index:100;background:var(--bg);pointer-events:none;justify-content:center;align-items:center;animation:.32s .6s forwards intro-out;display:flex;position:fixed;inset:0}.intro-mascot{flex-direction:column;align-items:center;gap:10px;animation:.38s cubic-bezier(.34,1.56,.64,1) both intro-pop;display:flex}.intro-speech{animation:.25s .16s both intro-speech}.intro-speech:after{margin-left:-6px;left:50%}html.intro-seen .intro-splash{display:none}@media (prefers-reduced-motion:reduce){.intro-splash{display:none}}@keyframes intro-out{to{opacity:0;visibility:hidden}}@keyframes intro-pop{0%{opacity:0;transform:translateY(16px)scale(.6)}}@keyframes intro-speech{0%{opacity:0;transform:translateY(6px)scale(.9)}}@keyframes mascot-z{0%{opacity:0;transform:translateY(4px)}30%,70%{opacity:1}to{opacity:0;transform:translate(4px,-6px)}}
