@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.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}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh}img,svg,video,canvas{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}p,h1,h2,h3,h4,li{overflow-wrap:break-word}ul[role=list],ol[role=list]{padding:0;list-style:none}}@layer tokens{:root{color-scheme:light;--color-bg:#faf6ee;--color-surface:#fffdf8;--color-sunken:#f2ebdd;--color-track:#eae1cf;--color-text:#1e1b16;--color-text-2:#5a5246;--color-text-3:#6e655a;--color-border:#e3d9c6;--color-border-strong:#8a7f70;--color-accent:#c23a1e;--color-accent-hover:#a8351b;--color-accent-subtle:#f8e4dc;--color-on-accent:#fff;--color-indigo:#233e77;--color-ok:#2e7d4f;--color-warn:#8a5e00;--color-danger:#a8351b;--color-focus:#233e77;--color-scrim:#1e1b1673;--paper-grain:radial-gradient(120% 90% at 30% 20%, #fffdf8, #faf6ee 55%, #f2ebdd);--wheel-1:#c23a1e;--wheel-2:#f1b9c7;--wheel-3:#233e77;--wheel-4:#e2a325;--wheel-5:#5e7d2e;--wheel-6:#faf6ee;--wheel-line:#1e1b16;--wheel-label-ink:#1e1b16;--wheel-label-white:#fff;--wheel-line-w:1.25px;--wheel-rim-w:2px;--font-latin:"DM Sans Variable";--font-sans:var(--font-latin), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-ko:var(--font-latin), -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif;--font-ja:var(--font-latin), -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", Meiryo, "Noto Sans JP", sans-serif;--font-zh-tw:var(--font-latin), -apple-system, "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-reveal:clamp(2.5rem, 6vw + 1rem, 4rem);--leading-body:1.55;--leading-title:1.2;--leading-body-cjk:1.75;--leading-title-cjk:1.4;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--tracking-tight:-.011em;--tracking-wordmark:-.01em;--tracking-stamp:.12em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:4px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--shadow-1:0 1px 2px #1e1b1614;--shadow-2:0 4px 12px #1e1b161a;--shadow-3:0 10px 24px #1e1b1629;--shadow-press:inset 0 -3px 0 #0000002e;--z-base:0;--z-header:10;--z-menu:100;--z-banner:200;--z-dialog:300;--dur-1:80ms;--dur-2:.14s;--dur-3:.22s;--dur-4:.36s;--dur-reveal:.6s;--dur-celebrate:1.2s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-overshoot:cubic-bezier(.34, 1.56, .64, 1);--frame-max:1120px;--measure:68ch;--gutter:16px;--header-h:56px;--target-min:44px;--target-s:36px;--focus-ring:2px;--focus-offset:2px;--border-w:1px;--icon-s:16px;--icon-m:20px;--icon-l:24px;--icon-xl:40px;--wheel-max:560px;--wheel-min:240px;--wheel-reserve:276px;--wheel-reserve-wide:248px;--wheel-hub:44px;--wheel-pointer-h:30px;--stamp-size:72px;--spin-min-w:180px;--spin-h:56px;--list-w:320px}@media (width>=600px){:root{--gutter:24px}}@media (width>=1200px){:root{--gutter:32px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg:#17140f;--color-surface:#211d17;--color-sunken:#1b1813;--color-track:#2c271f;--color-text:#f3ede2;--color-text-2:#c9bfae;--color-text-3:#a79c8a;--color-border:#3a342a;--color-border-strong:#7a7060;--color-accent:#f07a5c;--color-accent-hover:#ff8f7a;--color-accent-subtle:#3a2219;--color-on-accent:#17140f;--color-indigo:#8fa8e0;--color-ok:#5bc28a;--color-warn:#e9b54a;--color-danger:#ff8f7a;--color-focus:#8fa8e0;--color-scrim:#0009;--paper-grain:radial-gradient(120% 90% at 30% 20%, #211d17, #17140f 60%);--wheel-6:#f3ede2;--wheel-line:#f3ede2;--shadow-1:none;--shadow-2:none;--shadow-3:none}}:root[data-theme=dark]{color-scheme:dark;--color-bg:#17140f;--color-surface:#211d17;--color-sunken:#1b1813;--color-track:#2c271f;--color-text:#f3ede2;--color-text-2:#c9bfae;--color-text-3:#a79c8a;--color-border:#3a342a;--color-border-strong:#7a7060;--color-accent:#f07a5c;--color-accent-hover:#ff8f7a;--color-accent-subtle:#3a2219;--color-on-accent:#17140f;--color-indigo:#8fa8e0;--color-ok:#5bc28a;--color-warn:#e9b54a;--color-danger:#ff8f7a;--color-focus:#8fa8e0;--color-scrim:#0009;--paper-grain:radial-gradient(120% 90% at 30% 20%, #211d17, #17140f 60%);--wheel-6:#f3ede2;--wheel-line:#f3ede2;--shadow-1:none;--shadow-2:none;--shadow-3:none}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s;--dur-3:0s;--dur-4:.2s;--dur-reveal:.25s;--dur-celebrate:0s}}}@layer base{html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:100%;line-height:var(--leading-body);scroll-padding-top:calc(var(--header-h) + var(--space-4));-webkit-font-smoothing:antialiased}:lang(ko){font-family:var(--font-ko);line-height:var(--leading-body-cjk);word-break:keep-all}:lang(ja){font-family:var(--font-ja);line-height:var(--leading-body-cjk);line-break:strict}:lang(zh-Hant){font-family:var(--font-zh-tw);line-height:var(--leading-body-cjk);line-break:strict}body{background-color:var(--color-bg);background-image:var(--paper-grain);font-size:var(--text-md);background-repeat:no-repeat;background-size:100% 100vh}h1,h2,h3{line-height:var(--leading-title);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);text-wrap:balance}:lang(ko) :is(h1,h2,h3),:lang(ja) :is(h1,h2,h3),:lang(zh-Hant) :is(h1,h2,h3){line-height:var(--leading-title-cjk);letter-spacing:0}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-lg);font-weight:var(--weight-semibold)}@media (width>=900px){h1{font-size:var(--text-4xl)}}p{text-wrap:pretty}a{color:var(--color-indigo);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:var(--focus-ring) solid var(--color-focus);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}::selection{background:var(--color-accent-subtle);color:var(--color-text)}code,kbd{font-family:var(--font-mono);font-size:.92em}kbd{padding:0 var(--space-1);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);white-space:nowrap}.num,[data-num]{font-variant-numeric:tabular-nums}.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}.skip-link{left:var(--space-4);top:calc(-1 * var(--space-9));z-index:var(--z-dialog);padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border:var(--border-w) solid var(--color-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);position:absolute}.skip-link:focus{top:var(--space-2)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}}@layer components{.frame{width:100%;max-width:var(--frame-max);padding-inline:var(--gutter);margin-inline:auto}.measure{max-width:var(--measure)}.site-header{z-index:var(--z-header);background:color-mix(in srgb, var(--color-bg) 92%, transparent);-webkit-backdrop-filter:blur(var(--space-2));border-bottom:var(--border-w) solid var(--color-text);position:sticky;top:0}.site-header__inner{align-items:center;gap:var(--space-3);min-height:var(--header-h);display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--color-text);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wordmark);font-size:var(--text-lg);min-height:var(--target-min);white-space:nowrap;flex:none;text-decoration:none;display:inline-flex}.brand:hover{color:var(--color-text)}.brand__mark{width:var(--icon-l);height:var(--icon-l);transition:transform var(--dur-2) var(--ease-out);flex:none;transform:rotate(-12deg)}.brand:hover .brand__mark{transform:rotate(-12deg)scale(.94)}.site-header__spacer{flex:1}.header-actions{align-items:center;gap:var(--space-2);display:flex}@media (width<=399px){.btn.header-menu-btn{width:var(--btn-h);padding:0}.header-menu-btn__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.theme-switch{height:var(--target-s);padding:var(--space-1);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-sunken);color:var(--color-text-3);cursor:pointer;grid-template-columns:1fr 1fr;align-items:center;gap:0;display:inline-grid;position:relative}.theme-switch:before{content:"";inset-block:var(--space-1);left:var(--space-1);width:calc(50% - var(--space-1));border-radius:calc(var(--radius-sm) - 1px);background:var(--color-surface);box-shadow:var(--shadow-1);border:var(--border-w) solid var(--color-border);transition:transform var(--dur-3) var(--ease-in-out);position:absolute}.theme-switch[aria-checked=true]:before{transform:translate(100%)}.theme-switch__icon{width:calc(var(--target-s) - var(--space-2));place-items:center;height:100%;display:grid;position:relative}.theme-switch__icon svg{width:var(--icon-s);height:var(--icon-s)}.theme-switch[aria-checked=false] .theme-switch__icon--sun,.theme-switch[aria-checked=true] .theme-switch__icon--moon{color:var(--color-text)}.theme-switch:hover{border-color:var(--color-text)}.btn{--btn-h:var(--target-min);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--btn-h);padding:0 var(--space-5);border:var(--border-w) solid transparent;border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:var(--weight-semibold);white-space:nowrap;user-select:none;transition:background-color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);line-height:1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-press)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-on-accent)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-text)}.btn--secondary:hover:not(:disabled){background:var(--color-sunken);color:var(--color-text)}.btn--ghost{color:var(--color-text);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-sunken);color:var(--color-text)}.btn--danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-sunken)}.btn--s{--btn-h:var(--target-s);padding:0 var(--space-3);font-size:var(--text-sm)}.btn--lg{padding:0 var(--space-6);font-size:var(--text-lg)}.btn--icon{width:var(--btn-h);padding:0}.btn svg{width:var(--icon-m);height:var(--icon-m);flex:none}.btn[aria-busy=true]:after{content:"";width:var(--icon-s);height:var(--icon-s);border-radius:var(--radius-full);animation:busy-turn var(--dur-celebrate) linear infinite;border:2px solid;border-right-color:#0000}@keyframes busy-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn[aria-busy=true]:after{animation:none}}.segmented{padding:var(--space-1);gap:var(--space-1);background:var(--color-sunken);border-radius:var(--radius-sm);border:var(--border-w) solid var(--color-border-strong);max-width:100%;display:inline-flex;overflow-x:auto}.segmented__item{min-height:var(--target-s);min-width:var(--target-min);padding:0 var(--space-3);border:var(--border-w) solid transparent;border-radius:calc(var(--radius-sm) - 1px);color:var(--color-text-2);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;font-variant-numeric:tabular-nums;background:0 0}.segmented__item:hover{color:var(--color-text)}.segmented__item[aria-checked=true]{background:var(--color-surface);color:var(--color-text);border-color:var(--color-text)}.field{gap:var(--space-1);display:grid}.field__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-2)}.input,.select,.textarea{min-height:var(--target-min);padding:0 var(--space-3);background:var(--color-surface);color:var(--color-text);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);max-width:100%}.textarea{padding:var(--space-2) var(--space-3);line-height:var(--leading-body);resize:vertical;width:100%}.select{padding-right:var(--space-6)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline-offset:0;border-color:var(--color-text)}.input--num{font-variant-numeric:tabular-nums}.range{width:100%;accent-color:var(--color-accent);min-height:var(--target-min)}.toggle{align-items:center;gap:var(--space-3);min-height:var(--target-min);color:var(--color-text);font-size:var(--text-sm);text-align:left;background:0 0;border:0;padding:0;display:inline-flex}.toggle__track{width:calc(var(--space-7) - var(--space-2));height:var(--space-5);border-radius:var(--radius-full);background:var(--color-track);border:var(--border-w) solid var(--color-border-strong);transition:background-color var(--dur-2) var(--ease-out);flex:none;position:relative}.toggle__track:after{content:"";width:calc(var(--space-5) - var(--space-1));height:calc(var(--space-5) - var(--space-1));border-radius:var(--radius-full);background:var(--color-surface);box-shadow:var(--shadow-1);border:var(--border-w) solid var(--color-border-strong);transition:transform var(--dur-2) var(--ease-out);position:absolute;top:1px;left:1px}.toggle[aria-checked=true] .toggle__track{background:var(--color-accent);border-color:var(--color-accent)}.toggle[aria-checked=true] .toggle__track:after{transform:translateX(var(--space-4));border-color:var(--color-accent)}.tool-panel{background:var(--color-surface);border:var(--border-w) solid var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-1);padding:var(--space-4);container:tool/inline-size}@media (width>=600px){.tool-panel{padding:var(--space-6)}}.tool-panel__toolbar{gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.tool-panel__body{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.tool-panel__actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.tool-panel__hint{font-size:var(--text-sm);color:var(--color-text-2)}.slip{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);border:var(--border-w) solid var(--color-text);box-shadow:var(--shadow-2);grid-template-columns:minmax(0,1fr);display:grid;position:relative}.slip:after{content:"";width:var(--space-5);height:var(--space-5);background:linear-gradient(225deg, var(--color-bg) 50%, var(--color-sunken) 50%);border-left:var(--border-w) solid var(--color-text);border-bottom:var(--border-w) solid var(--color-text);border-bottom-left-radius:var(--radius-sm);position:absolute;top:-1px;right:-1px}.slip__title{font-size:var(--text-xl);font-weight:var(--weight-bold)}.slip__text{color:var(--color-text-2)}.slip__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.slip__actions .btn{white-space:normal;text-align:center;max-width:100%}.stamp{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:var(--border-w) solid currentColor;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-stamp);text-transform:uppercase;color:var(--color-text);background:var(--color-surface);display:inline-flex}.stamp--accent{color:var(--color-accent)}:lang(ko) .stamp,:lang(ja) .stamp,:lang(zh-Hant) .stamp{letter-spacing:0}.state-panel{text-align:center;justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);display:grid}.state-panel__icon{width:calc(var(--space-8) - var(--space-2));height:calc(var(--space-8) - var(--space-2));border-radius:var(--radius-full);border:var(--border-w) solid var(--color-border-strong);background:var(--color-sunken);color:var(--color-text-2);place-items:center;display:grid}.state-panel__icon svg{width:var(--icon-l);height:var(--icon-l)}.state-panel[data-tone=danger] .state-panel__icon{color:var(--color-danger)}.state-panel[data-tone=accent] .state-panel__icon{color:var(--color-accent);background:var(--color-accent-subtle)}.state-panel__title{font-size:var(--text-xl);font-weight:var(--weight-semibold)}.state-panel__text{color:var(--color-text-2);max-width:44ch}.state-panel__actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.inline-alert{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-sunken);color:var(--color-text);border:var(--border-w) solid var(--color-border-strong);font-size:var(--text-sm);align-items:flex-start;display:flex}.inline-alert svg{width:var(--icon-m);height:var(--icon-m);flex:none;margin-top:1px}.inline-alert[data-tone=ok] svg{color:var(--color-ok)}.inline-alert[data-tone=warn] svg{color:var(--color-warn)}.inline-alert[data-tone=danger] svg{color:var(--color-danger)}.inline-alert[data-tone=info] svg{color:var(--color-indigo)}.page-head{padding-block:var(--space-5);gap:var(--space-2);display:grid}@media (width>=900px){.page-head{padding-block:var(--space-6) var(--space-5)}}.page-head__lede{font-size:var(--text-lg);color:var(--color-text-2);max-width:60ch}.privacy-line{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-2);display:inline-flex}.privacy-line svg{width:var(--icon-s);height:var(--icon-s);color:var(--color-ok);flex:none}.breadcrumbs{font-size:var(--text-sm);color:var(--color-text-2)}.breadcrumbs ol{gap:var(--space-1);flex-wrap:wrap;padding:0;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"›";margin-left:var(--space-1);color:var(--color-text-3)}.breadcrumbs a{color:var(--color-text-2);text-decoration:none}.breadcrumbs a:hover{color:var(--color-text);text-decoration:underline}.doc{gap:var(--space-7);padding-block:var(--space-7);display:grid}.doc-section{gap:var(--space-4);display:grid}.content-body{padding-block:var(--space-3) var(--space-8)}.prose{gap:var(--space-4);max-width:var(--measure);color:var(--color-text);display:grid}.prose h2{margin-top:var(--space-4)}.prose h3{margin-top:var(--space-2)}.prose :is(ul,ol){padding-left:var(--space-5);gap:var(--space-2);display:grid}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.prose :is(th,td){text-align:left;padding:var(--space-2) var(--space-3);border-bottom:var(--border-w) solid var(--color-border);vertical-align:top}.prose th{color:var(--color-text-2);font-weight:var(--weight-medium);border-bottom-color:var(--color-text)}.prose .table-wrap{overflow-x:auto}.card-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));padding:0;list-style:none;display:grid}.tool-card{gap:var(--space-1) var(--space-3);padding:var(--space-4);background:var(--color-surface);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);height:100%;color:var(--color-text);transition:border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);grid-template-columns:auto 1fr;align-items:start;text-decoration:none;display:grid;position:relative}.tool-card:hover{border-color:var(--color-text);color:var(--color-text);transform:translateY(-2px)}.tool-card__icon{width:var(--icon-xl);height:var(--icon-xl);border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent);grid-row:span 2;place-items:center;display:grid}.tool-card__icon svg{width:var(--icon-m);height:var(--icon-m)}.tool-card__name{font-weight:var(--weight-semibold)}.tool-card__desc{font-size:var(--text-sm);color:var(--color-text-2)}.chips{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chip{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);border-radius:var(--radius-sm);border:var(--border-w) solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-medium);text-decoration:none;display:inline-flex}.chip:hover{background:var(--color-sunken);border-color:var(--color-text);color:var(--color-text)}.chip svg{width:var(--icon-s);height:var(--icon-s);color:var(--color-accent)}.trust-row{gap:var(--space-2) var(--space-5);color:var(--color-text-2);font-size:var(--text-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.trust-row li{align-items:center;gap:var(--space-2);display:inline-flex}.trust-row svg{width:var(--icon-s);height:var(--icon-s);color:var(--color-ok)}.section{padding-block:var(--space-7);gap:var(--space-5);display:grid}.section__head{gap:var(--space-2);display:grid}.section__head p{color:var(--color-text-2);max-width:60ch}.related{gap:var(--space-4);display:grid}.menu-dialog{margin:var(--space-8) auto auto;width:min(100% - var(--space-5), 40rem);max-height:min(100dvh - var(--space-8), 44rem);border:var(--border-w) solid var(--color-text);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-3);padding:0}.menu-dialog::backdrop{background:var(--color-scrim)}.menu-dialog[open]{animation:sheet-in var(--dur-3) var(--ease-out)}@keyframes sheet-in{0%{opacity:0;transform:translateY(var(--space-3))}}@media (width<=599px){.menu-dialog{border-radius:var(--radius-md) var(--radius-md) 0 0;width:100%;max-width:100%;max-height:85dvh;margin:auto 0 0}}.menu-dialog__head{gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-w) solid var(--color-border);background:var(--color-surface);align-items:center;display:flex;position:sticky;top:0}.menu-dialog__head .input{flex:1;min-width:0}.menu-dialog__body{padding:var(--space-4);gap:var(--space-5);display:grid;overflow-y:auto}@media (width>=600px){.menu-dialog__body{grid-template-columns:1fr 1fr;align-items:start}.menu-empty{grid-column:1/-1}}.menu-group h2{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-stamp);color:var(--color-text-3);margin-bottom:var(--space-2)}:lang(ko) .menu-group h2,:lang(ja) .menu-group h2,:lang(zh-Hant) .menu-group h2{letter-spacing:0}.menu-group ul{gap:var(--space-1);padding:0;list-style:none;display:grid}.menu-group a{align-items:center;gap:var(--space-3);min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;display:flex}.menu-group a:hover{background:var(--color-sunken)}.menu-empty{color:var(--color-text-2)}.site-footer{margin-top:var(--space-8);border-top:var(--border-w) solid var(--color-text);padding-block:var(--space-7) var(--space-6);font-size:var(--text-sm);color:var(--color-text-2)}.site-footer__grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));display:grid}.site-footer__brand{gap:var(--space-2);justify-items:start;display:grid}.site-footer h2{font-size:var(--text-sm);color:var(--color-text);margin-bottom:var(--space-3);letter-spacing:0}.site-footer ul{gap:var(--space-2);padding:0;list-style:none;display:grid}.site-footer a{color:var(--color-text-2);text-decoration:none}.site-footer a:hover{color:var(--color-text);text-decoration:underline}.site-footer a[aria-current=true]{color:var(--color-text);font-weight:var(--weight-semibold)}.site-footer__base{margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--border-w) solid var(--color-border);gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.home{gap:var(--space-4);padding-block:var(--space-4) var(--space-8);grid-template-columns:minmax(0,1fr);grid-template-areas:"title""wheel""lede""list""more";display:grid}.home__title{font-size:var(--text-2xl);grid-area:title}.home__lede{color:var(--color-text-2);max-width:var(--measure);grid-area:lede}.home .wheel-stage{grid-area:wheel}.home .name-list{grid-area:list}.home__more{gap:var(--space-7);margin-top:var(--space-6);grid-area:more;display:grid}@media (width>=600px){.home__title{font-size:var(--text-3xl)}}@media (width>=900px){.home{grid-template-columns:minmax(0, 1fr) var(--list-w);column-gap:var(--space-7);row-gap:var(--space-3);padding-top:var(--space-6);grid-template-rows:auto auto 1fr auto;grid-template-areas:"wheel title""wheel lede""wheel list""more more";align-items:start}.home__title{font-size:var(--text-2xl)}.home__lede{font-size:var(--text-sm)}}.wheel-stage{--reserve:var(--wheel-reserve);align-items:center;gap:var(--space-3);min-width:0;padding-top:var(--space-5);flex-direction:column;display:flex;position:relative;overflow:clip}@media (width>=900px){.wheel-stage{--reserve:var(--wheel-reserve-wide);padding-top:var(--space-6)}}.wheel-disc-wrap{width:clamp(var(--wheel-min), min(100%, 100vh - var(--reserve)), var(--wheel-max));width:clamp(var(--wheel-min), min(100%, 100svh - var(--reserve)), var(--wheel-max));max-width:100%;position:relative}.wheel-disc{aspect-ratio:1;border-radius:var(--radius-full);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:100%;position:relative;overflow:hidden}.wheel-disc.is-empty{cursor:default}.wheel-canvas{transform-origin:50%;pointer-events:none;width:100%;max-width:none;height:100%;display:block}.wheel-disc.is-spinning .wheel-canvas{will-change:transform}.wheel-pointer{z-index:1;left:50%;top:calc(var(--space-5) * -1);width:var(--space-1);height:var(--wheel-pointer-h);margin-left:calc(var(--space-1) / -2);background:var(--color-text);border-radius:var(--radius-sm);position:absolute}.wheel-pointer:after{content:"";left:50%;bottom:calc(var(--space-2) * -1);width:var(--space-3);height:var(--space-3);margin-left:calc(var(--space-3) / -2);border-radius:var(--radius-full);background:var(--color-accent);box-shadow:0 0 0 2px var(--color-surface);position:absolute}.wheel-hub{width:var(--wheel-hub);height:var(--wheel-hub);border-radius:var(--radius-full);background:var(--color-surface);border:1.5px solid var(--color-text);box-shadow:inset 0 0 0 calc(var(--space-1) + 2px) var(--color-bg), inset 0 0 0 var(--space-2) var(--color-accent);pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wheel-ticker{max-width:100%;min-height:calc(var(--text-xl) * var(--leading-title-cjk));font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-title-cjk);text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wheel-state{justify-items:center;gap:var(--space-2);text-align:center;color:var(--color-text-2);max-width:36ch;display:grid}.wheel-notes{gap:var(--space-1);text-align:center;font-size:var(--text-sm);color:var(--color-text-2);max-width:44ch;display:grid}.link-btn{min-height:var(--space-5);color:var(--color-indigo);font-weight:var(--weight-semibold);text-underline-offset:.18em;background:0 0;border:0;align-items:center;padding:0;text-decoration:underline;display:inline-flex}.spin-btn{--btn-h:var(--spin-h);min-width:var(--spin-min-w);padding:0 var(--space-6);font-size:var(--text-xl);font-weight:var(--weight-bold)}.spin-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.spin-btn.is-stop,.spin-btn.is-stop:hover:not(:disabled){background:var(--color-text);color:var(--color-bg)}.wheel-confetti{z-index:4;pointer-events:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.wheel-reveal{z-index:3;pointer-events:none;perspective:calc(var(--wheel-max) * 1.6);place-items:center;display:grid;position:absolute;inset:0}.wheel-slip{pointer-events:auto;justify-items:center;gap:var(--space-2);max-width:88%;padding:var(--space-4) var(--space-5);background-color:var(--color-surface);background-image:linear-gradient(to bottom, transparent calc(50% - .5px), var(--color-border) calc(50% - .5px), var(--color-border) calc(50% + .5px), transparent calc(50% + .5px));border:var(--border-w) solid var(--color-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);text-align:center;transform-origin:50% 0;animation:slip-unfold var(--dur-reveal) var(--ease-out) both;display:grid;position:relative}.wheel-slip__kicker{color:var(--color-indigo);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-stamp);text-transform:uppercase}:lang(ko) .wheel-slip__kicker,:lang(ja) .wheel-slip__kicker,:lang(zh-Hant) .wheel-slip__kicker{letter-spacing:0}.wheel-slip__name{max-width:100%;font-size:var(--text-reveal);font-weight:var(--weight-heavy);line-height:var(--leading-title);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.wheel-slip__actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.wheel-slip__id{font-size:var(--text-xs);color:var(--color-text-2)}.wheel-slip__id summary{align-items:center;gap:var(--space-1);min-height:var(--space-5);cursor:pointer;list-style:none;display:inline-flex}.wheel-slip__id summary::-webkit-details-marker{display:none}.wheel-slip__id summary:after{content:"?";width:var(--icon-s);height:var(--icon-s);border:var(--border-w) solid currentColor;border-radius:var(--radius-full);font-weight:var(--weight-bold);place-items:center;display:grid}.wheel-slip__id .num{font-family:var(--font-mono);color:var(--color-text)}.wheel-slip__id p{max-width:28ch;margin-top:var(--space-1)}.wheel-stamp{right:calc(var(--space-5) * -1);top:calc(var(--space-5) * -1);width:var(--stamp-size);height:var(--stamp-size);border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font-size:var(--text-sm);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-stamp);box-shadow:inset 0 0 0 2px var(--color-accent), inset 0 0 0 calc(var(--space-1) + 1px) color-mix(in srgb, var(--color-on-accent) 70%, transparent);pointer-events:none;animation:stamp-in var(--dur-4) var(--ease-overshoot) var(--dur-4) both;place-items:center;display:grid;position:absolute;transform:rotate(-14deg)}.wheel-reveal.is-instant .wheel-slip,.wheel-reveal.is-instant .wheel-stamp{animation:none}@keyframes slip-unfold{0%{opacity:0;transform:rotateX(-88deg) translateY(calc(var(--space-5) * -1))}30%{opacity:1}to{opacity:1;transform:none}}@keyframes stamp-in{0%{opacity:0;transform:rotate(-14deg)scale(2.1)}60%{opacity:1;transform:rotate(-14deg)scale(.92)}to{opacity:.94;transform:rotate(-14deg)scale(1)}}@keyframes reveal-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.wheel-slip{animation:reveal-fade var(--dur-reveal) var(--ease-out) both}.wheel-stamp{opacity:.94;animation:none}}.name-list{gap:var(--space-2);min-width:0;padding:var(--space-4);background:var(--color-surface);border:var(--border-w) solid var(--color-border);border-radius:var(--radius-md);align-content:start;display:grid}.name-list__head{align-items:center;gap:var(--space-2);display:flex}.name-list__label{font-weight:var(--weight-semibold)}.name-list__count{font-size:var(--text-sm);color:var(--color-text-3);margin-right:auto}.name-list__tools{gap:var(--space-1);display:flex}.icon-btn{width:var(--target-s);height:var(--target-s);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);transition:transform var(--dur-1) var(--ease-out);background:0 0;place-items:center;padding:0;display:grid}.icon-btn:hover:not(:disabled){border-color:var(--color-text);background:var(--color-sunken)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn svg{width:var(--icon-m);height:var(--icon-m);fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}@media (pointer:coarse){.icon-btn{width:var(--target-min);height:var(--target-min)}}.name-editor{--lh:calc(var(--leading-body) * 1rem);--rows:8;height:calc(var(--lh) * var(--rows) + var(--space-3) * 2);border:var(--border-w) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);grid-template-columns:auto minmax(0,1fr);display:grid;overflow:hidden}@media (width>=900px){.name-editor{--rows:12}}.name-editor:focus-within{border-color:var(--color-text);outline:var(--focus-ring) solid var(--color-focus);outline-offset:var(--focus-offset)}.name-editor.is-locked{background:var(--color-sunken)}.name-editor.is-locked .name-editor__text{color:var(--color-text-2)}.name-editor__gutter{min-width:calc(var(--space-6) + var(--space-2));padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3);border-right:var(--border-w) dashed var(--color-border);color:var(--color-text-3);font-size:var(--text-sm);line-height:var(--lh);text-align:right;user-select:none;overflow:hidden}.name-editor__gutter span{height:var(--lh);display:block}.name-editor__text{width:100%;height:100%;min-height:0;padding:var(--space-3);color:var(--color-text);font-size:var(--text-md);line-height:var(--lh);white-space:pre;resize:none;background:0 0;border:0;border-radius:0;overflow:auto}.name-editor__text:focus-visible{outline:none}.name-list__hint,.name-list__notes{font-size:var(--text-sm);color:var(--color-text-3)}.name-list__notes{gap:var(--space-1);color:var(--color-text-2);display:grid}.name-list__settings{align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:var(--border-w) dashed var(--color-border);font-size:var(--text-sm);color:var(--color-text-2);flex-wrap:wrap;display:flex}.seconds-input{width:calc(var(--space-8) + var(--space-2));min-height:var(--target-s);padding:0 var(--space-2);text-align:center}.home__more h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}.tool-card--soon{grid-template-columns:minmax(0,1fr) auto;align-items:center}.tool-card--soon:hover{border-color:var(--color-border-strong);transform:none}.tool-card--soon .stamp{color:var(--color-text-2)}.home__fair{color:var(--color-text-2);max-width:var(--measure);margin-top:var(--space-3)}}@layer utilities{.stack{gap:var(--space-4);display:grid}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.muted{color:var(--color-text-2)}.small{font-size:var(--text-sm)}.center{text-align:center}[hidden]{display:none!important}}
