@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-vietnamese-400-normal-65jA92mZ.woff2)format("woff2"),url(/assets/patrick-hand-vietnamese-400-normal-CZjY324Y.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:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-ext-400-normal-Dno5CMlI.woff2)format("woff2"),url(/assets/patrick-hand-latin-ext-400-normal-C2ywpnn3.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:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/patrick-hand-latin-400-normal-B7HHA2Vw.woff2)format("woff2"),url(/assets/patrick-hand-latin-400-normal-Df9_VoRQ.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{--line:32px;--paper:#fbf8ef;--paper-dark:#f2ecdc;--rule:#dce6f0;--margin:#e8a7a7;--ink:#23303d;--heading:#3d4955;--ink-soft:#5b6874;--blue:#2f5d8a;--blue-soft:#e3edf7;--green:#2e7d4f;--green-soft:#dcefe2;--red:#b23b3b;--red-soft:#f7e0e0;--amber:#b7791f;--amber-soft:#fbefd6;--out:#9aa3ab;--card:#fff;--radius:10px;--shadow:0 1px 2px #23303d14, 0 4px 14px #23303d0f;--hand:"Patrick Hand", "Comic Sans MS", cursive;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--rule) 1px, transparent 1px);background-size:100% var(--line);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.45}#app{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3{font-family:var(--hand);color:var(--heading);margin:0 0 .4em;font-weight:400;line-height:1.15}h1{font-size:2.6rem}h2{font-size:1.8rem}h3{font-size:1.35rem}a{color:var(--blue)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none}button:disabled{cursor:default;opacity:.5}.btn{border-radius:var(--radius);background:var(--blue);color:#fff;min-height:46px;box-shadow:var(--shadow);justify-content:center;align-items:center;gap:.4em;padding:.55em 1.2em;font-weight:600;text-decoration:none;transition:transform 50ms,filter .15s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.secondary{background:var(--card);color:var(--ink);border:1.5px solid #cfd6dc}.btn.green{background:var(--green)}.btn.danger{background:var(--card);color:var(--red);border:1.5px solid #e5b9b9}.btn.small{min-height:36px;padding:.3em .8em;font-size:.92rem}.btn.block{width:100%}.card{background:var(--card);box-shadow:var(--shadow);border:1px solid #ebe5d6;border-radius:14px;padding:1.2rem 1.3rem}input[type=text]{font:inherit;border-radius:var(--radius);color:var(--ink);background:#fff;border:1.5px solid #cfd6dc;width:100%;min-height:46px;padding:.6em .8em;font-size:1.1rem}input[type=text]:focus{outline:3px solid var(--blue-soft);border-color:var(--blue)}.page{width:100%;max-width:1080px;padding:var(--line) 1rem calc(var(--line) + env(safe-area-inset-bottom));flex:1;margin:0 auto}.page>:last-child{margin-bottom:0}.narrow{max-width:560px}.muted{color:var(--ink-soft)}.center{text-align:center}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.stack>*+*{margin-top:.8rem}.hand{font-family:var(--hand)}.toast{left:50%;bottom:max(1.2rem, env(safe-area-inset-bottom));background:var(--ink);color:#fff;box-shadow:var(--shadow);z-index:50;text-align:center;border-radius:999px;max-width:calc(100vw - 2rem);padding:.7em 1.1em;position:fixed;transform:translate(-50%)}.pill{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:.1em .65em;font-size:.85rem;font-weight:600;display:inline-block}.pill.green{background:var(--green-soft);color:var(--green)}.pill.amber{background:var(--amber-soft);color:var(--amber)}.pill.gray{color:var(--ink-soft);background:#eceff1}.dot{background:var(--green);border-radius:50%;width:9px;height:9px;margin-right:.35em;display:inline-block}.dot.off{background:var(--out)}.segmented{border-radius:var(--radius);background:#fff;border:1.5px solid #cfd6dc;flex:none;display:inline-flex;overflow:hidden}.segmented button{min-height:42px;color:var(--ink);background:0 0;padding:.5em .9em}.segmented button+button{border-left:1.5px solid #cfd6dc}.segmented button.active{background:var(--blue);color:#fff}.on-paper{line-height:var(--line);margin:0}h1.on-paper,h2.on-paper{font-size:1.8rem}.row.choose{gap:.6rem 1rem}select{font:inherit;color:var(--ink);border-radius:var(--radius);appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235b6874' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right .85em center no-repeat;border:1.5px solid #cfd6dc;min-height:42px;padding:.4em 2.4em .4em .8em}select:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.ink-link{z-index:0;color:var(--ink-soft);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 6' preserveAspectRatio='none'%3E%3Cpath d='M1 3.6 C 22 1.6, 45 4.9, 66 2.9 S 92 3.4, 99 2.2' fill='none' stroke='%232f5d8a' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") 0 100%/0% 6px no-repeat;padding-bottom:3px;text-decoration:none;transition:color .15s;position:relative}.ink-link:hover{color:var(--blue);background-size:100% 6px}@media (hover:none){.ink-link{opacity:.85;background-size:100% 6px}}.ink-link.router-link-active{color:var(--ink);opacity:1;background:0 0}.ink-link.router-link-active:before{content:"";z-index:-1;opacity:.75;transform-origin:0;background:#ffe27a;border-radius:3px 9px 4px 7px;animation:.4s ease-out highlight;position:absolute;inset:4% -6px 0;transform:rotate(-1.2deg)skew(-8deg)}@keyframes highlight{0%{transform:rotate(-1.2deg)skew(-8deg)scaleX(0)}}@media (prefers-reduced-motion:reduce){.ink-link.router-link-active:before{animation:none}}button.ink-link{background-color:#0000;padding:0 0 3px;font-size:.95rem}.topbar[data-v-2d7bcceb]{height:calc(var(--line) * 2);line-height:var(--line);justify-content:space-between;align-items:flex-end;gap:1rem;width:100%;max-width:1080px;margin:0 auto;padding:0 1rem;display:flex}.brand[data-v-2d7bcceb]{color:var(--blue);font-size:1.7rem;text-decoration:none}.links[data-v-2d7bcceb]{gap:1.4rem;font-size:.95rem;display:flex}.fade-enter-active[data-v-2d7bcceb],.fade-leave-active[data-v-2d7bcceb]{transition:opacity .2s}.fade-enter-from[data-v-2d7bcceb],.fade-leave-to[data-v-2d7bcceb]{opacity:0}.tagline[data-v-8a3fd28a]{font-size:1.1rem}.tagline+.card[data-v-8a3fd28a]{margin-top:var(--line)}.label[data-v-8a3fd28a]{margin-bottom:.35rem;font-weight:600;display:block}.choices[data-v-8a3fd28a]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;display:grid}.choice[data-v-8a3fd28a]{text-align:center;border:1.5px solid #e1dbcc;border-radius:12px;flex-direction:column;align-items:center;gap:.7rem;padding:1rem;display:flex}.choice.main[data-v-8a3fd28a]{border-color:var(--blue);background:var(--blue-soft)}.choice h3[data-v-8a3fd28a]{margin:0}.choice h3 label[data-v-8a3fd28a]{cursor:pointer}.choice .btn[data-v-8a3fd28a]{margin-top:auto}.tries select[data-v-8a3fd28a]{min-height:46px}.hint[data-v-8a3fd28a]{margin:-.2rem 0 0;font-size:.85rem}.codebox[data-v-8a3fd28a]{gap:6px;display:flex;position:relative}.box[data-v-8a3fd28a]{white-space:pre;background:#fff;border:1.5px solid #d6cfbd;border-radius:8px;justify-content:center;align-items:center;width:2.6rem;height:46px;font-size:1.25rem;font-weight:800;display:inline-flex}.box.cur[data-v-8a3fd28a]{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.codebox input[data-v-8a3fd28a]{opacity:0;caret-color:#0000;cursor:text;width:100%;height:100%;font-size:16px;position:absolute;inset:0}
