@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-vietnamese-wdth-normal.rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-ext-wdth-normal.7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-wdth-normal.DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font: "Archivo Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--bg: #eceef0;--surface: #f8f9fa;--surface-sunk: #e2e5e8;--line: #c9ced3;--ink: #1b2127;--muted: #5b6570;--accent: #c9963f;--accent-strong: #a87a2c;--on-accent: #1b2127;--danger: #b3261e;--danger-bg: #fbe9e7;--ok-bg: #e6f2e8;--ok: #24663a;--focus: #2f5bea;--qr-dark: #000000;--qr-light: #ffffff;--radius-s: 6px;--radius-m: 10px;--space: 1rem;--measure: 70ch;--material: color-mix(in srgb, var(--surface) 72%, transparent);--hairline: color-mix(in srgb, var(--ink) 12%, transparent);--scrim: rgb(14 18 22 / .55);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-press: 40ms;--dur-release: .18s;--dur-reveal: .22s;--reveal-shift: -6px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #14181c;--surface: #1c2126;--surface-sunk: #252b31;--line: #36404a;--ink: #e4e8ec;--muted: #9aa4ae;--accent: #d6a54b;--accent-strong: #e2b866;--on-accent: #14181c;--danger: #f2867e;--danger-bg: #3a1f1d;--ok-bg: #1d3324;--ok: #8fd3a3;--focus: #8aa8ff;--scrim: rgb(0 0 0 / .62);color-scheme:dark}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--material: var(--surface);--hairline: var(--line)}}@media(prefers-contrast:more){:root{--line: #8a939c;--muted: #3f4852}}@media(prefers-contrast:more)and (prefers-color-scheme:dark){:root{--line: #6b7783;--muted: #c3cbd3}}@media(prefers-reduced-motion:reduce){:root{--reveal-shift: 0px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.55;font-variant-numeric:tabular-nums}a{color:inherit;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3{font-stretch:115%;line-height:1.15;margin:0}h2{letter-spacing:-.01em}.muted{color:var(--muted)}.site-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;max-width:72rem;margin:0 auto;padding:1.25rem 1rem 1rem}.brand{font-weight:800;font-stretch:125%;font-size:1.15rem;text-decoration:none;letter-spacing:-.01em}.site-header nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1.25rem}.site-header nav a{text-decoration:none;color:var(--muted);padding:.2rem 0;border-bottom:2px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.badge{display:inline-block;min-width:1.3rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700;line-height:1.3rem;letter-spacing:.02em;text-align:center}.site-main{max-width:72rem;margin:0 auto;padding:1rem 1rem 4rem}.narrow{max-width:40rem}.page-title{font-size:clamp(1.6rem,3vw + 1rem,2.4rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin-bottom:.4rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:1.25rem;margin-top:1.5rem}.panel h2{font-size:1.1rem;margin-bottom:1rem}.stack{display:flex;flex-direction:column;gap:1rem}@media(pointer:coarse){.stack>.button,.stack>button,.stack>div>.button:only-child{width:100%}}.field{display:flex;flex-direction:column;gap:.3rem}.field>span{font-weight:600;font-size:.9rem}.field small{color:var(--muted);font-size:.82rem}.field .error{color:var(--danger);font-size:.85rem}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:.55rem .65rem;width:100%;min-width:0}.button,.action{transition:transform var(--dur-release) var(--ease-out),filter var(--dur-release) var(--ease-out),opacity var(--dur-release) var(--ease-out)}.button:active:not(:disabled),.action:active:not(:disabled){transition-duration:var(--dur-press)}.button:active:not(:disabled){transform:scale(.97);filter:brightness(.92)}.action:active:not(:disabled){opacity:.55}@media(pointer:coarse){.action:active:not(:disabled){opacity:1;transform:scale(.97);filter:brightness(.92)}}@media(prefers-reduced-motion:reduce){.button:active:not(:disabled),.action:active:not(:disabled){transform:none}}@keyframes reveal{0%{opacity:0;transform:translateY(var(--reveal-shift))}}details[open]>summary~*{animation:reveal var(--dur-reveal) var(--ease-out)}@media(pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=color]),select{min-height:2.75rem}}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}textarea{resize:vertical}input[type=checkbox]{width:auto;accent-color:var(--accent-strong)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:.55rem 1rem;cursor:pointer;text-decoration:none;white-space:nowrap}.button:hover{border-color:var(--muted)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button.danger{color:var(--danger);border-color:currentColor}.button:disabled{opacity:.6;cursor:progress}@media(pointer:coarse){.button{min-height:2.75rem}}.link-button{font:inherit;color:var(--muted);background:none;border:none;padding:.2rem 0;cursor:pointer}.link-button:hover{color:var(--ink)}.action{display:inline-flex;align-items:center;gap:.3rem;font:inherit;font-size:.92rem;color:var(--muted);background:none;border:none;padding:.15rem 0;cursor:pointer;text-decoration:none}.action:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}.action.danger:hover{color:var(--danger);text-decoration-color:var(--danger)}.action:disabled{opacity:.5;cursor:default;text-decoration:none}@media(pointer:coarse){.action{justify-content:center;min-height:2.75rem;padding:.55rem 1rem;font-size:1rem;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);flex-shrink:0;max-width:100%;text-align:center}.action:hover{text-decoration:none;border-color:var(--muted)}.action.danger{color:var(--danger);border-color:currentColor}.mouse-only{display:none!important}}@media not all and (pointer:coarse){.touch-only{display:none!important}}summary.button,summary.action{list-style:none}summary.button::-webkit-details-marker,summary.action::-webkit-details-marker{display:none}summary .opened,details[open]>summary .closed{display:none}details[open]>summary .opened{display:inline}.alert,.notice{margin:0;padding:.6rem .8rem;border-radius:var(--radius-s);font-size:.92rem}.alert{background:var(--danger-bg);color:var(--danger)}.notice{background:var(--ok-bg);color:var(--ok)}.auth{max-width:24rem;margin:12vh auto 0}.auth-title{font-size:clamp(2rem,6vw,2.8rem);font-weight:800;font-stretch:125%;line-height:1.05;letter-spacing:-.025em;-webkit-hyphens:manual;hyphens:manual}.auth-lead{color:var(--muted);margin:.5rem 0 2rem}.auth .button{width:100%}.auth-switch{margin-top:1.5rem;color:var(--muted);font-size:.92rem}.tour.svelte-1irbmle{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none}.scrim.svelte-1irbmle{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim)}.spotlight.svelte-1irbmle{position:absolute;border-radius:var(--radius-m);outline:2px solid var(--accent);box-shadow:0 0 0 200vmax var(--scrim);transition:top var(--dur-reveal) var(--ease-out),left var(--dur-reveal) var(--ease-out),width var(--dur-reveal) var(--ease-out),height var(--dur-reveal) var(--ease-out)}.card.svelte-1irbmle{position:absolute;width:min(22rem,calc(100vw - 2rem));padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);box-shadow:0 8px 28px color-mix(in srgb,var(--ink) 22%,transparent);pointer-events:auto;transition:top var(--dur-reveal) var(--ease-out),left var(--dur-reveal) var(--ease-out)}@media(prefers-reduced-motion:reduce){.spotlight.svelte-1irbmle,.card.svelte-1irbmle{transition:none}}.progress.svelte-1irbmle{margin:0 0 .25rem;font-size:.8rem}h2.svelte-1irbmle{margin:0 0 .4rem;font-size:1.15rem}h2.svelte-1irbmle:focus{outline:none}#tour-text.svelte-1irbmle{margin:0 0 1rem}.example.svelte-1irbmle{display:flex;align-items:center;gap:.85rem;margin:-.25rem 0 1rem;padding:.7rem .8rem;border:1px dashed var(--line);border-radius:var(--radius-m);background:var(--bg);font-size:.92rem}.example.svelte-1irbmle p:where(.svelte-1irbmle){margin:0}.example-name.svelte-1irbmle{font-weight:700;font-stretch:105%}.tag.svelte-1irbmle{display:inline-block;margin-left:.25rem;padding:0 .4rem;border-radius:var(--radius-s);background:var(--surface-sunk);color:var(--muted);font-size:.78rem;font-weight:400}.buttons.svelte-1irbmle{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.nav.svelte-1irbmle{display:flex;gap:.5rem;margin-left:auto}.tabbar.svelte-12qhfyh{position:fixed;z-index:10;left:0;right:0;bottom:0;display:flex;justify-content:space-around;align-items:stretch;padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom));background:var(--material);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--hairline);transition:transform .32s var(--ease-out),opacity .2s var(--ease-out)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.tabbar.svelte-12qhfyh{background:var(--surface)}}.tabbar.typing.svelte-12qhfyh{transform:translateY(calc(100% + 1.5rem))}@media(prefers-reduced-motion:reduce){.tabbar.typing.svelte-12qhfyh{transform:none;opacity:0;pointer-events:none}}.tabbar.svelte-12qhfyh a:where(.svelte-12qhfyh){flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.15rem;min-height:3.25rem;padding:.25rem 0;border-radius:var(--radius-m);color:var(--muted);font-size:.75rem;font-weight:600;text-decoration:none}.tabbar.svelte-12qhfyh svg:where(.svelte-12qhfyh){width:1.6rem;height:1.6rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tabbar.svelte-12qhfyh a[aria-current=page]:where(.svelte-12qhfyh){color:var(--ink);background:color-mix(in srgb,var(--accent) 16%,transparent)}.tabbar.svelte-12qhfyh a:where(.svelte-12qhfyh):active{background:color-mix(in srgb,var(--ink) 8%,transparent)}.tabbar.svelte-12qhfyh a.add:where(.svelte-12qhfyh):active .add-circle:where(.svelte-12qhfyh){transform:scale(.93);transition-duration:var(--dur-press)}@media(prefers-reduced-motion:reduce){.tabbar.svelte-12qhfyh a.add:where(.svelte-12qhfyh):active .add-circle:where(.svelte-12qhfyh){transform:none;filter:brightness(.92)}}.tabbar.svelte-12qhfyh a[aria-current=page]:where(.svelte-12qhfyh) svg:where(.svelte-12qhfyh){stroke:var(--accent-strong)}.add-circle.svelte-12qhfyh{display:grid;place-items:center;width:2.6rem;height:2.6rem;margin-top:-1.1rem;border-radius:50%;background:var(--accent);box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 18%,transparent),0 4px 12px color-mix(in srgb,var(--accent-strong) 35%,transparent);transition:transform var(--dur-release) var(--ease-out)}.tabbar.svelte-12qhfyh a.add:where(.svelte-12qhfyh) .add-circle:where(.svelte-12qhfyh) svg:where(.svelte-12qhfyh){stroke:var(--on-accent);stroke-width:2.4}.tabbar.svelte-12qhfyh a.add[aria-current=page]:where(.svelte-12qhfyh){background:none}@media(pointer:coarse){.site-main.with-tabbar.svelte-12qhfyh{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}}.nav-top.svelte-12qhfyh .tabbar:where(.svelte-12qhfyh){position:sticky;top:0;bottom:auto;padding-bottom:.35rem;border-top:none;border-bottom:1px solid var(--hairline)}.nav-top.svelte-12qhfyh .tabbar.typing:where(.svelte-12qhfyh){transform:none;opacity:1;pointer-events:auto}.nav-top.svelte-12qhfyh .add-circle:where(.svelte-12qhfyh){width:2.1rem;height:2.1rem;margin-top:0;box-shadow:none}@media not all and (display-mode:standalone){.nav-auto.svelte-12qhfyh .tabbar:where(.svelte-12qhfyh){position:sticky;top:0;bottom:auto;padding-bottom:.35rem;border-top:none;border-bottom:1px solid var(--hairline)}.nav-auto.svelte-12qhfyh .tabbar.typing:where(.svelte-12qhfyh){transform:none;opacity:1;pointer-events:auto}.nav-auto.svelte-12qhfyh .add-circle:where(.svelte-12qhfyh){width:2.1rem;height:2.1rem;margin-top:0;box-shadow:none}}.tabbar.svelte-12qhfyh .icon:where(.svelte-12qhfyh){position:relative;display:grid;place-items:center}.tabbar.svelte-12qhfyh .icon:where(.svelte-12qhfyh) .badge:where(.svelte-12qhfyh){position:absolute;top:-.35rem;right:-.75rem;box-shadow:0 0 0 2px var(--surface)}.header-icons.svelte-12qhfyh{display:flex;align-items:center;align-self:center;margin:-.6rem -.5rem -.6rem 0}.bell.svelte-12qhfyh{position:relative;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;color:var(--muted)}.bell[aria-current=page].svelte-12qhfyh{color:var(--ink);background:color-mix(in srgb,var(--accent) 16%,transparent)}.bell.svelte-12qhfyh:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}.bell.svelte-12qhfyh svg:where(.svelte-12qhfyh){width:1.6rem;height:1.6rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-bell.svelte-12qhfyh{display:inline-flex;align-items:center;gap:.25rem;align-self:center}.nav-bell.svelte-12qhfyh svg:where(.svelte-12qhfyh){width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bell.svelte-12qhfyh .badge:where(.svelte-12qhfyh){position:absolute;top:.1rem;right:.05rem;box-shadow:0 0 0 2px var(--bg)}.install-hint.svelte-12qhfyh{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;padding:.75rem .9rem;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-m);background:var(--surface);font-size:.92rem}.install-hint.svelte-12qhfyh p:where(.svelte-12qhfyh){margin:0}@media(display-mode:standalone){.install-hint.svelte-12qhfyh{display:none!important}}.hint-actions.svelte-12qhfyh{display:flex;flex-wrap:wrap;gap:.5rem}.hint-actions.svelte-12qhfyh>*{flex:1 1 0}.hint-actions.svelte-12qhfyh>details[open]:where(.svelte-12qhfyh){flex-basis:100%}.hint-actions.svelte-12qhfyh .button:where(.svelte-12qhfyh),.hint-actions.svelte-12qhfyh .action:where(.svelte-12qhfyh){width:100%}.hint-howto.svelte-12qhfyh ul:where(.svelte-12qhfyh){margin:.5rem 0 0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.4rem}
