.cmdk[data-astro-cid-wozhyvwc]{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center}.cmdk[data-astro-cid-wozhyvwc][hidden]{display:none}.cmdk-backdrop[data-astro-cid-wozhyvwc]{position:absolute;inset:0;background:#00000073;backdrop-filter:blur(2px)}.cmdk-panel[data-astro-cid-wozhyvwc]{position:relative;margin-top:10vh;width:min(600px,92vw);max-height:70vh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 24px 64px #00000059;animation:cmdk-in .12s ease}@keyframes cmdk-in{0%{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}.cmdk-inputwrap[data-astro-cid-wozhyvwc]{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.cmdk-icon[data-astro-cid-wozhyvwc]{font-size:1.05rem;opacity:.7}#cmdk-input[data-astro-cid-wozhyvwc]{flex:1 1 auto;border:none;background:none;color:var(--fg);font-size:1.05rem;outline:none;padding:0}.cmdk-esc[data-astro-cid-wozhyvwc]{font-size:.72rem;color:var(--muted);border:1px solid var(--border);border-radius:5px;padding:.1rem .4rem}.cmdk-list[data-astro-cid-wozhyvwc]{list-style:none;margin:0;padding:.4rem;overflow-y:auto}.cmdk-opt[data-astro-cid-wozhyvwc]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .7rem;border-radius:8px;cursor:pointer}.cmdk-opt[data-astro-cid-wozhyvwc][aria-selected=true]{background:var(--code-bg)}.cmdk-opt-t[data-astro-cid-wozhyvwc]{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-opt-k[data-astro-cid-wozhyvwc]{flex:none;font-size:.72rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem}.cmdk-empty[data-astro-cid-wozhyvwc]{padding:1.25rem;text-align:center;color:var(--muted);font-size:.9rem}.cmdk-foot[data-astro-cid-wozhyvwc]{display:flex;gap:1rem;padding:.55rem 1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.75rem}.cmdk-foot[data-astro-cid-wozhyvwc] kbd[data-astro-cid-wozhyvwc]{border:1px solid var(--border);border-radius:4px;padding:0 .3rem}@media(prefers-reduced-motion:reduce){.cmdk-panel[data-astro-cid-wozhyvwc]{animation:none}}.hrail{position:fixed;z-index:1100}.hrail [hidden]{display:none!important}.hrail-launch{position:fixed;right:0;bottom:1.3rem;z-index:1100;display:inline-flex;align-items:center;gap:.45rem;font-family:SF Pro Rounded,ui-rounded,Segoe UI,system-ui,sans-serif;font-weight:800;font-size:.85rem;color:#fff;background:#3f5bf5;border:none;border-radius:12px 0 0 12px;padding:.6rem .85rem;cursor:pointer;box-shadow:0 8px 24px #141a3247}.hrail-launch-ic{color:#ffd166}.hrail.is-open .hrail-launch{display:none}@media(prefers-color-scheme:dark){.hrail-launch{background:#4f6bff}}.hrail-panel{--p-card:#fff;--p-ink:#1a2148;--p-mut:#5b6790;--p-line:#e1e7f5;--p-brand:#3f5bf5;--p-soft:#eef1ff;--p-bg:#f5f7ff;position:fixed;top:0;right:0;bottom:0;width:min(340px,92vw);z-index:1101;background:var(--p-bg);border-left:1px solid var(--p-line);box-shadow:-14px 0 40px #141a3229;display:flex;flex-direction:column;font-family:system-ui,Segoe UI,Roboto,sans-serif;color:var(--p-ink)}@media(prefers-color-scheme:dark){.hrail-panel{--p-card:#191f3c;--p-ink:#eef1fb;--p-mut:#98a4cb;--p-line:#29325a;--p-brand:#7f95ff;--p-soft:#232c55;--p-bg:#0f1430}}:root[data-theme=light] .hrail-panel{--p-card:#fff;--p-ink:#1a2148;--p-mut:#5b6790;--p-line:#e1e7f5;--p-brand:#3f5bf5;--p-soft:#eef1ff;--p-bg:#f5f7ff}:root[data-theme=dark] .hrail-panel{--p-card:#191f3c;--p-ink:#eef1fb;--p-mut:#98a4cb;--p-line:#29325a;--p-brand:#7f95ff;--p-soft:#232c55;--p-bg:#0f1430}.hrail-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .7rem;border-bottom:1px solid var(--p-line)}.hrail-tabs{display:inline-flex;background:var(--p-soft);border-radius:10px;padding:.2rem}.hrail-tab{font-family:inherit;font-weight:800;font-size:.85rem;color:var(--p-mut);background:transparent;border:none;border-radius:8px;padding:.35rem .85rem;cursor:pointer}.hrail-tab.is-on{background:var(--p-card);color:var(--p-brand);box-shadow:0 1px 3px #141a321f}.hrail-close{font-size:1.4rem;line-height:1;color:var(--p-mut);background:transparent;border:none;cursor:pointer;padding:.1rem .4rem;border-radius:8px}.hrail-close:hover{color:var(--p-ink);background:var(--p-soft)}.hrail-body{flex:1 1 auto;overflow-y:auto;padding:.9rem}.hrail-pane{display:flex;flex-direction:column;gap:.8rem}.hrail-lvl{display:flex;align-items:center;gap:.7rem}.hrail-lvl-badge{flex:none;font-family:SF Pro Rounded,ui-rounded,system-ui,sans-serif;font-weight:800;font-size:.9rem;color:#3a2a06;background:#cf9a34;border-radius:999px;padding:.3rem .7rem}.hrail-lvl-txt{flex:1 1 auto;min-width:0}.hrail-lvl-name{font-weight:800;font-size:.95rem}.hrail-bar{height:8px;border-radius:999px;background:color-mix(in srgb,var(--p-ink) 10%,transparent);overflow:hidden;margin:.25rem 0}.hrail-bar span{display:block;height:100%;width:0;background:var(--p-brand);border-radius:999px;transition:width .4s ease}.hrail-lvl-xp{font-size:.74rem;color:var(--p-mut)}.hrail-lvl-xp b{color:var(--p-brand)}.hrail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.hrail-stat{text-align:center;background:var(--p-card);border:1px solid var(--p-line);border-radius:12px;padding:.55rem .3rem}.hrail-stat b{display:block;font-family:SF Pro Rounded,ui-rounded,system-ui,sans-serif;font-weight:800;font-size:1.2rem;color:var(--p-ink)}.hrail-stat span{font-size:.66rem;color:var(--p-mut)}.hrail-continue,.hrail-lab,.hrail-share{display:block;text-decoration:none;font-weight:700;font-size:.85rem;border-radius:10px;padding:.6rem .8rem}.hrail-continue{color:#fff;background:var(--p-brand)}.hrail-lab{color:#38f5a6;background:#0b1a13;border:1px solid #1f8a63;font-family:ui-monospace,Menlo,monospace}.hrail-link{font-size:.82rem;color:var(--p-brand);text-decoration:none;font-weight:700}.hrail-class-lead{margin:0;font-size:.85rem;color:var(--p-mut)}.hrail-feed{display:flex;flex-direction:column;gap:.55rem}.hrail-muted{color:var(--p-mut);font-size:.82rem}.hrail-post{background:var(--p-card);border:1px solid var(--p-line);border-radius:12px;padding:.6rem .7rem}.hrail-post-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.hrail-post-top b{font-size:.85rem;color:var(--p-ink)}.hrail-post-t{font-size:.68rem;color:var(--p-mut)}.hrail-post-body{margin-top:.2rem;font-size:.86rem;line-height:1.45;color:var(--p-ink);white-space:pre-wrap;word-break:break-word}.hrail-tag,.hrail-post-link{color:var(--p-brand);font-weight:700}.hrail-post-meta{margin-top:.3rem;font-size:.7rem;color:var(--p-mut)}.hrail-post-from{color:var(--p-mut)}.hrail-share{color:#fff;background:var(--p-ink);text-align:center}.hrail-note{margin:0;font-size:.72rem;color:var(--p-mut);line-height:1.4}@media(max-width:620px){.hrail-panel{width:100vw}.hrail-launch-tx{display:none}.hrail-launch{padding:.7rem;border-radius:12px;right:.6rem}}[data-embed="1"] .hrail,[data-embed="1"] .hrail-launch,[data-embed="1"] .hrail-panel{display:none!important}body.kidzone{padding-left:64px}.arail[data-astro-cid-buocpzol]{position:fixed;left:0;top:0;bottom:0;width:64px;z-index:1200;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.7rem 0 .8rem;background:#211d3f;color:#cfc9ee;font-family:SF Pro Rounded,ui-rounded,Segoe UI,system-ui,sans-serif}:root[data-theme=dark] .arail[data-astro-cid-buocpzol]{background:#171331}.arail-mark[data-astro-cid-buocpzol]{display:grid;place-items:center;width:42px;height:42px;margin-bottom:.3rem;border-radius:14px;background:linear-gradient(135deg,#6c5ce7,#c86bfa);text-decoration:none;flex:none}.arail-mark-g[data-astro-cid-buocpzol]{font-weight:900;font-size:1.35rem;color:#fff;line-height:1}.arail-items[data-astro-cid-buocpzol]{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100%;overflow-y:auto}.arail-items[data-astro-cid-buocpzol]::-webkit-scrollbar{width:0}.arail-item[data-astro-cid-buocpzol],.arail-exit[data-astro-cid-buocpzol]{display:flex;flex-direction:column;align-items:center;gap:2px;width:52px;padding:.45rem 0 .4rem;border-radius:13px;color:#b7b0e0;text-decoration:none;flex:none}.arail-item[data-astro-cid-buocpzol] svg[data-astro-cid-buocpzol],.arail-exit[data-astro-cid-buocpzol] svg[data-astro-cid-buocpzol]{width:21px;height:21px}.arail-item[data-astro-cid-buocpzol] span[data-astro-cid-buocpzol],.arail-exit[data-astro-cid-buocpzol] span[data-astro-cid-buocpzol]{font-size:.58rem;font-weight:700;letter-spacing:.01em}.arail-item[data-astro-cid-buocpzol]:hover{color:#fff;background:#ffffff17}.arail-item[data-astro-cid-buocpzol].is-on{color:#fff;background:#6c5ce7}.arail-exit[data-astro-cid-buocpzol]{margin-top:auto;color:#6f6a93}.arail-exit[data-astro-cid-buocpzol]:hover{color:#cfc9ee;background:#ffffff0f}@media(max-width:800px){body.kidzone{padding-left:0;padding-bottom:56px}.arail[data-astro-cid-buocpzol]{top:auto;right:0;width:auto;height:56px;flex-direction:row;gap:0;padding:0 .3rem;justify-content:space-around;border-top:1px solid rgba(255,255,255,.08)}.arail-mark[data-astro-cid-buocpzol]{display:none}.arail-items[data-astro-cid-buocpzol]{flex-direction:row;width:auto;gap:0;overflow:visible;justify-content:space-around;flex:1 1 auto}.arail-item[data-astro-cid-buocpzol],.arail-exit[data-astro-cid-buocpzol]{width:48px;padding:.3rem 0}.arail-item[data-astro-cid-buocpzol] svg[data-astro-cid-buocpzol],.arail-exit[data-astro-cid-buocpzol] svg[data-astro-cid-buocpzol]{width:20px;height:20px}.arail-exit[data-astro-cid-buocpzol]{margin-top:0}}.aplan-tab{position:fixed;left:64px;top:96px;z-index:1150;display:flex;flex-direction:column;align-items:center;gap:3px;background:#6c5ce7;color:#fff;border:none;cursor:pointer;border-radius:0 14px 14px 0;padding:.7rem .5rem .75rem;box-shadow:2px 4px 14px #6c5ce759;font-family:SF Pro Rounded,ui-rounded,Segoe UI,system-ui,sans-serif}.aplan-tab svg{width:20px;height:20px}.aplan-tab-tx{font-size:.58rem;font-weight:800;letter-spacing:.04em;writing-mode:vertical-rl}.aplan-tab-n{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:999px;background:#ff6b9d;color:#fff;font-size:.66rem;font-weight:800;display:grid;place-items:center;padding:0 4px}.aplan-tab:hover{filter:brightness(1.07)}.aplan{--p-card:#fff;--p-ink:#2a2350;--p-mut:#7b76a3;--p-line:#eceafe;--p-paper:#f4f3ff;--p-brand:#6c5ce7}@media(prefers-color-scheme:dark){.aplan{--p-card:#211d3f;--p-ink:#eeeaff;--p-mut:#9a92c4;--p-line:#2e2850;--p-paper:#141127;--p-brand:#8b7cf0}}:root[data-theme=light] .aplan{--p-card:#fff;--p-ink:#2a2350;--p-mut:#7b76a3;--p-line:#eceafe;--p-paper:#f4f3ff;--p-brand:#6c5ce7}:root[data-theme=dark] .aplan{--p-card:#211d3f;--p-ink:#eeeaff;--p-mut:#9a92c4;--p-line:#2e2850;--p-paper:#141127;--p-brand:#8b7cf0}.aplan[hidden]{display:none}.aplan{position:fixed;inset:0;z-index:2600;font-family:SF Pro Rounded,ui-rounded,Segoe UI,system-ui,sans-serif}.aplan-scrim{position:absolute;inset:0;background:#1411276b}.aplan-panel{position:absolute;left:0;top:0;bottom:0;width:min(340px,88vw);background:var(--p-paper);border-right:1px solid var(--p-line);box-shadow:8px 0 40px #1411274d;display:flex;flex-direction:column;animation:aplan-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes aplan-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.aplan-head{display:flex;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--p-line)}.aplan-head b{font-size:1.1rem;font-weight:900;color:var(--p-ink)}.aplan-x{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1.5rem;line-height:1;color:var(--p-mut)}.aplan-body{flex:1 1 auto;overflow-y:auto;padding:.9rem 1rem}.aplan-sec{margin-bottom:1.2rem}.aplan-sech{font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--p-mut);margin-bottom:.5rem}.aplan-list{display:flex;flex-direction:column;gap:.5rem}.aplan-card{display:flex;align-items:stretch;background:var(--p-card);border:1px solid var(--p-line);border-left:4px solid var(--cc);border-radius:12px;overflow:hidden}.aplan-cmain{flex:1 1 auto;min-width:0;text-decoration:none;padding:.6rem .7rem}.aplan-cmain:hover{background:color-mix(in srgb,var(--cc) 7%,transparent)}.aplan-course{display:block;font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cc)}.aplan-title{display:block;font-size:.88rem;font-weight:700;color:var(--p-ink);line-height:1.25;margin:.1rem 0}.aplan-meta{display:block;font-size:.72rem;color:var(--p-mut);font-weight:600}.aplan-bar{display:block;height:5px;border-radius:999px;background:var(--p-line);overflow:hidden;margin-top:.35rem}.aplan-bar i{display:block;height:100%;border-radius:999px;background:var(--cc)}.aplan-rm{flex:none;width:34px;background:none;border:none;border-left:1px solid var(--p-line);cursor:pointer;font-size:1.2rem;line-height:1;color:var(--p-mut)}.aplan-rm:hover{color:#ff6b9d;background:color-mix(in srgb,#ff6b9d 10%,transparent)}.aplan-empty{margin:0;font-size:.82rem;line-height:1.5;color:var(--p-mut)}.aplan-foot{display:block;text-align:center;text-decoration:none;font-weight:800;font-size:.84rem;color:var(--p-brand);padding:.9rem;border-top:1px solid var(--p-line)}@media(max-width:800px){.aplan-tab{left:0;top:auto;bottom:66px;border-radius:0 12px 12px 0}}.assignbtn{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-family:SF Pro Rounded,ui-rounded,Segoe UI,system-ui,sans-serif;font-weight:700;font-size:.82rem;color:#6c5ce7;background:#efeafe;border:1px solid #ddd4fb;border-radius:999px;padding:.4rem .85rem}.assignbtn .assignbtn-ic{font-weight:900;font-size:1rem;line-height:1}.assignbtn:hover{background:#e6dffb}.assignbtn.is-on{color:#fff;background:#6c5ce7;border-color:#6c5ce7}.fs-assign{margin:0 0 1.3rem}@media(prefers-color-scheme:dark){.assignbtn{color:#b7a9f5;background:#2a2450;border-color:#3a3170}.assignbtn.is-on{color:#fff;background:#8b7cf0;border-color:#8b7cf0}}:root[data-theme=dark] .assignbtn{color:#b7a9f5;background:#2a2450;border-color:#3a3170}:root[data-theme=dark] .assignbtn.is-on{color:#fff;background:#8b7cf0;border-color:#8b7cf0}:root[data-theme=light] .assignbtn{color:#6c5ce7;background:#efeafe;border-color:#ddd4fb}.copy-enabled code{cursor:pointer}.copy-enabled code:hover{outline:1px solid var(--accent);outline-offset:1px;border-radius:3px}.copy-enabled code.copied-flash{background:var(--accent-success);color:#fff;outline:none}.copy-toast{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%) translateY(.5rem);background:#111827;color:#fff;padding:.45rem .8rem;border-radius:6px;font-size:.85rem;max-width:90vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:1000;box-shadow:0 4px 16px #00000040}.copy-toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(prefers-reduced-motion:reduce){.copy-toast{transition:none}}:root{--bg: #ffffff;--surface: #f4f3ff;--fg: #1a1a1a;--muted: #6b6b6b;--accent: #6c5ce7;--accent-hover: #5a4bd4;--on-accent: #ffffff;--accent-warm: #c2410c;--accent-success: #15803d;--accent-error: #dc2626;--border: #eceafe;--code-bg: #f3f1fb;--font-display: "SF Pro Rounded", ui-rounded, "Segoe UI", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #141127;--surface: #211d3f;--fg: #eeeaff;--muted: #a9a3c9;--accent: #a99cf7;--accent-hover: #b9aef9;--on-accent: #191f3c;--accent-warm: #fb923c;--accent-success: #4ade80;--accent-error: #f87171;--border: #2a2650;--code-bg: #1b1836}}[data-theme=light]{--bg: #ffffff;--surface: #f4f3ff;--fg: #1a1a1a;--muted: #6b6b6b;--accent: #6c5ce7;--accent-hover: #5a4bd4;--on-accent: #ffffff;--accent-warm: #c2410c;--accent-success: #15803d;--accent-error: #dc2626;--border: #eceafe;--code-bg: #f3f1fb}[data-theme=dark]{--bg: #141127;--surface: #211d3f;--fg: #eeeaff;--muted: #a9a3c9;--accent: #a99cf7;--accent-hover: #b9aef9;--on-accent: #191f3c;--accent-warm: #fb923c;--accent-success: #4ade80;--accent-error: #f87171;--border: #2a2650;--code-bg: #1b1836}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}header.site{max-width:960px;margin:0 auto;padding:1rem;border-bottom:1px solid var(--border);display:flex;gap:1rem;align-items:center}header.site-academy{max-width:none;padding:.7rem clamp(.8rem,2vw,1.4rem)}.brand-sub{margin-left:.35rem;font-size:.8em;font-weight:800;font-variant:small-caps;letter-spacing:.12em;color:#6c5ce7}.header-search{flex:1;max-width:320px;margin:0}.header-search input{width:100%;font-size:.95rem;padding:.4rem .7rem}.header-nav{display:flex;gap:.75rem;align-items:center;margin-left:auto}#theme-toggle{display:grid;place-items:center;width:38px;height:38px;padding:0;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}#theme-toggle:hover{background:var(--code-bg);border-color:var(--accent);color:var(--accent)}#theme-toggle svg{width:19px;height:19px}.th-sun{display:none}.th-moon{display:block}@media(prefers-color-scheme:dark){.th-sun{display:block}.th-moon{display:none}}[data-theme=dark] .th-sun{display:block}[data-theme=dark] .th-moon,[data-theme=light] .th-sun{display:none}[data-theme=light] .th-moon{display:block}.install-btn{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);padding:.35rem .7rem;font-size:.85rem;line-height:1;border-radius:9px;cursor:pointer;white-space:nowrap;font-weight:600}.install-btn:hover{opacity:.92}.install-btn[hidden]{display:none}.ios-install{position:fixed;left:.75rem;right:.75rem;bottom:.75rem;z-index:900;display:flex;align-items:center;gap:.75rem;max-width:460px;margin:0 auto;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem;font-size:.9rem;box-shadow:0 10px 30px #0000002e}.ios-install[hidden]{display:none}.ios-install-txt{flex:1 1 auto;line-height:1.4}.ios-install-x{flex:none;background:none;border:none;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;padding:.1rem .3rem}.ios-install-x:hover{color:var(--fg)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:640px){header.site{flex-wrap:wrap;gap:.5rem}.header-search{order:3;max-width:100%;flex-basis:100%}}[data-embed="1"] header.site{display:none}.skip-link{position:absolute;top:-40px;left:0;background:var(--accent);color:var(--on-accent);padding:.5rem .75rem;text-decoration:none;border-radius:0 0 9px;z-index:100}.skip-link:focus{top:0}@media print{header.site,footer.site,.share-bar,.ad-slot,.embed-section,.cite-section,.skip-link,.header-search,.header-nav,#theme-toggle{display:none!important}body{background:#fff!important;color:#000!important}a{color:#000;text-decoration:underline}a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em;color:#555}main{max-width:100%;padding:0}h1,h2,h3{page-break-after:avoid}.tool-card{break-inside:avoid}}footer.site{max-width:960px;margin:3rem auto 0;padding:2rem 1rem 1rem;border-top:1px solid var(--border);font-size:.9rem;color:var(--muted)}footer.site-academy-foot{max-width:none;margin-top:2rem;padding:1.4rem clamp(.9rem,3vw,1.6rem);text-align:center}.foot-marquee{display:block;height:46px;width:auto;margin:0 auto .9rem;opacity:.92}.foot-learn{display:inline-flex;gap:1.1rem;flex-wrap:wrap;justify-content:center;margin:0 0 1rem}.foot-learn a{color:#6c5ce7;text-decoration:none;font-weight:700;font-size:.92rem}.foot-learn a:hover{text-decoration:underline}.foot-legal{display:inline-flex;gap:1rem;flex-wrap:wrap}.foot-legal a{color:var(--muted);text-decoration:none;font-weight:600}.foot-legal a:hover{color:#6c5ce7}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem}@media(max-width:700px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1 / -1}}.footer-col h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg);margin:0 0 .5rem}.footer-col ul{list-style:none;margin:0;padding:0}.footer-col ul li{margin:.25rem 0}.footer-brand p{margin:.5rem 0;max-width:32ch}.footer-bar{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.85rem}.brand{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--fg);text-decoration:none;letter-spacing:-.01em}.brand-mark{display:block;width:30px;height:30px;flex:none}.brand:hover{text-decoration:none;color:var(--accent)}main{max-width:760px;margin:0 auto;padding:1rem}h1{font-family:var(--font-display);font-size:1.7rem;font-weight:800;letter-spacing:-.015em;margin:1rem 0 .25rem;text-wrap:balance}.subtitle{color:var(--muted);margin:0 0 1.5rem}h2{font-family:var(--font-display);font-size:1.25rem;font-weight:800;letter-spacing:-.01em;margin-top:2rem;text-wrap:balance}pre,code{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace}pre{background:var(--code-bg);padding:.75rem;border-radius:8px;overflow-x:auto}code{background:var(--code-bg);padding:.1em .3em;border-radius:5px}textarea,input,button,select{font:inherit;padding:.5rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg)}button{cursor:pointer;background:var(--accent);color:var(--on-accent);border:none;font-weight:600;transition:background .15s ease,transform 80ms ease}button:hover:not(:disabled){background:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.status-ok{color:var(--accent-success)}.status-warn{color:var(--accent-warm)}.status-error{color:var(--accent-error)}.hero{padding:3rem 0 2rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.hero-h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0 0 1rem}.hero-subtitle{font-size:1.1rem;color:var(--muted);margin:0;max-width:50ch}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem;margin-top:.75rem}.tool-card{display:block;padding:1rem;border:1.5px solid var(--border);border-radius:16px;color:var(--fg);text-decoration:none;background:var(--bg);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.tool-card:hover{border-color:var(--card-accent, var(--accent));text-decoration:none;transform:translateY(-3px);box-shadow:0 10px 22px -8px color-mix(in srgb,var(--card-accent, var(--accent)) 45%,transparent)}.tool-card h3{margin:0 0 .25rem;font-size:1rem;font-weight:600}.tool-card p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.45}.card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:var(--card-accent, var(--accent));font-size:1.4rem;line-height:1;margin-bottom:.55rem;transition:transform .16s ease}.tool-card:hover .card-icon{transform:scale(1.1) rotate(-5deg)}@keyframes ci-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ci-pulse{0%,to{transform:scale(1)}45%{transform:scale(1.24)}}@keyframes ci-flip{0%{transform:perspective(240px) rotateY(0)}to{transform:perspective(240px) rotateY(360deg)}}@keyframes ci-shake{0%,to{transform:translate(0)}15%{transform:translate(-3px)}30%{transform:translate(3px)}45%{transform:translate(-3px)}60%{transform:translate(2px)}75%{transform:translate(-1px)}}@keyframes ci-bob{0%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}@keyframes ci-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes ci-hue{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.tool-card:hover .card-icon[data-anim=spin]{animation:ci-spin .7s ease}.tool-card:hover .card-icon[data-anim=pulse]{animation:ci-pulse .55s ease}.tool-card:hover .card-icon[data-anim=flip]{animation:ci-flip .8s ease}.tool-card:hover .card-icon[data-anim=shake]{animation:ci-shake .55s ease}.tool-card:hover .card-icon[data-anim=bob]{animation:ci-bob .6s ease}.tool-card:hover .card-icon[data-anim=blink]{animation:ci-blink .7s ease}.tool-card:hover .card-icon[data-anim=hue]{animation:ci-hue .9s linear}@media(prefers-reduced-motion:reduce){.tool-card:hover,.tool-card:hover .card-icon{transform:none}.tool-card:hover .card-icon[data-anim]{animation:none}}.related-tools{margin-top:2rem;padding:1.15rem;background:var(--code-bg);border-radius:16px}.related-tools h2{margin-top:0;font-size:1rem}.related-tools ul{margin:0;padding-left:1.25rem}.ad-slot{margin:2rem 0;padding:1rem;text-align:center;color:var(--muted);font-size:.85rem;border:1px dashed var(--border);border-radius:14px}.disclaimer{margin-top:1rem;font-size:.85rem;color:var(--muted);font-style:italic}.breadcrumb-bar{font-size:.85rem;color:var(--muted);margin:0 0 .75rem}.breadcrumb-bar ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.breadcrumb-bar li:after{content:" / ";color:var(--border);margin-left:.4rem}.breadcrumb-bar li:last-child:after{content:""}.breadcrumb-bar a{color:var(--muted)}.breadcrumb-bar a:hover{color:var(--accent);text-decoration:underline}[aria-current=page]{color:var(--fg);font-weight:500}[data-embed="1"] .breadcrumb-bar{display:none}.share-bar{display:flex;justify-content:flex-end;margin:-.25rem 0 .25rem}.share-btn{background:transparent;color:var(--accent);border:1px solid var(--border);padding:.35rem .75rem;font-size:.85rem;line-height:1;border-radius:6px;transition:border-color .15s ease,background .15s ease}.share-btn:hover:not(:disabled){background:var(--code-bg);border-color:var(--accent)}.embed-attr{display:none}[data-embed="1"] header.site,[data-embed="1"] footer.site,[data-embed="1"] .share-bar,[data-embed="1"] .ad-slot,[data-embed="1"] .related-tools,[data-embed="1"] .related-concepts,[data-embed="1"] .faqs,[data-embed="1"] .embed-section{display:none}[data-embed="1"] main{padding:.75rem}[data-embed="1"] h1{font-size:1.2rem;margin-top:0}[data-embed="1"] .subtitle{font-size:.9rem}[data-embed="1"] .embed-attr{display:block;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted);text-align:right}
