.site-header[data-astro-cid-nen7h5rs]{z-index:30;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{align-items:center;gap:1.5rem;min-height:72px;display:flex;position:relative}.brand[data-astro-cid-nen7h5rs]{letter-spacing:-.04em;align-items:center;gap:.55rem;font-size:1.18rem;font-weight:600;display:flex}.brand-mark[data-astro-cid-nen7h5rs]{width:31px;height:36px;color:var(--brand);filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--brand) 24%,transparent));place-items:center;display:grid}.brand-accent[data-astro-cid-nen7h5rs]{color:var(--brand)}.site-nav[data-astro-cid-nen7h5rs]{color:var(--muted);align-items:center;gap:1rem;font-size:.93rem;font-weight:500;display:flex}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{white-space:nowrap}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--text)}.personal-nav-link[data-astro-cid-nen7h5rs]{align-items:center;gap:.32rem;display:inline-flex}.personal-nav-link[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{color:var(--brand)}.header-actions[data-astro-cid-nen7h5rs]{align-items:center;gap:.5rem;margin-left:auto;display:flex}.small-action[data-astro-cid-nen7h5rs],.icon-button[data-astro-cid-nen7h5rs]{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--text);border-radius:12px;place-items:center;padding:.5rem .75rem;display:inline-grid}.icon-button[data-astro-cid-nen7h5rs]{width:40px;padding:0}.mobile-menu-toggle[data-astro-cid-nen7h5rs],.language-short[data-astro-cid-nen7h5rs]{display:none}@media (width<=980px){.personal-nav-link[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{display:none}}@media (width<=600px){.header-inner[data-astro-cid-nen7h5rs]{gap:.5rem}.brand[data-astro-cid-nen7h5rs]{margin-right:auto}.site-nav[data-astro-cid-nen7h5rs]{border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow);border-radius:0 0 16px 16px;grid-template-columns:1fr;gap:4px;padding:10px;display:none;position:absolute;top:calc(100% + 1px);left:0;right:0}.site-nav[data-astro-cid-nen7h5rs].is-open{display:grid}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-radius:10px;padding:12px}.personal-nav-link[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{display:block}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand)}.mobile-menu-toggle[data-astro-cid-nen7h5rs],.language-short[data-astro-cid-nen7h5rs]{display:grid}.language-long[data-astro-cid-nen7h5rs]{display:none}.small-action[data-astro-cid-nen7h5rs]{width:40px;padding:0}.header-actions[data-astro-cid-nen7h5rs]{gap:6px;margin-left:0}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-strong) 72%,var(--bg));color:var(--text);margin-top:clamp(3rem,6vw,5rem)}.footer-callout[data-astro-cid-jo6i4kqk]{border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--brand) 10%,var(--surface-strong)),color-mix(in srgb,var(--accent) 7%,var(--surface-strong)));border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-top:-2rem;padding:1.05rem 1.15rem;display:grid;position:relative;box-shadow:0 16px 42px #1b1f3b14}.callout-icon[data-astro-cid-jo6i4kqk]{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));width:44px;height:44px;box-shadow:0 8px 22px color-mix(in srgb,var(--brand) 25%,transparent);border-radius:13px;place-items:center;display:grid}.footer-callout[data-astro-cid-jo6i4kqk] div[data-astro-cid-jo6i4kqk]>span[data-astro-cid-jo6i4kqk],.footer-callout[data-astro-cid-jo6i4kqk] div[data-astro-cid-jo6i4kqk]>strong[data-astro-cid-jo6i4kqk]{display:block}.footer-callout[data-astro-cid-jo6i4kqk] div[data-astro-cid-jo6i4kqk]>span[data-astro-cid-jo6i4kqk]{color:var(--muted);margin-bottom:.08rem;font-size:.72rem;font-weight:600}.footer-callout[data-astro-cid-jo6i4kqk] div[data-astro-cid-jo6i4kqk]>strong[data-astro-cid-jo6i4kqk]{letter-spacing:-.02em;font-size:1.05rem}.footer-callout[data-astro-cid-jo6i4kqk]>a[data-astro-cid-jo6i4kqk]{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));border-radius:11px;justify-content:center;align-items:center;gap:.45rem;min-height:42px;padding:.6rem .9rem;font-size:.82rem;font-weight:600;transition:transform .18s,box-shadow .18s;display:inline-flex}.footer-callout[data-astro-cid-jo6i4kqk]>a[data-astro-cid-jo6i4kqk]:hover{box-shadow:0 9px 22px color-mix(in srgb,var(--brand) 24%,transparent);transform:translateY(-1px)}.footer-main[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(280px,1.45fr) minmax(170px,.72fr) minmax(190px,.78fr);gap:clamp(1.5rem,5vw,4.5rem);padding:3rem 0 2.5rem;display:grid}.footer-logo[data-astro-cid-jo6i4kqk]{letter-spacing:-.035em;align-items:center;gap:.55rem;font-size:1.12rem;display:inline-flex}.footer-logo[data-astro-cid-jo6i4kqk]>span[data-astro-cid-jo6i4kqk]{width:32px;height:38px;color:var(--brand);filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--brand) 22%,transparent));place-items:center;display:grid}.footer-logo[data-astro-cid-jo6i4kqk] i[data-astro-cid-jo6i4kqk]{color:var(--brand);font-style:normal}.footer-brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{max-width:390px;color:var(--muted);margin:1rem 0;font-size:.84rem;line-height:1.65}.footer-status[data-astro-cid-jo6i4kqk]{color:var(--muted);align-items:center;gap:.45rem;margin-left:.3rem;font-size:.72rem;font-weight:600;display:inline-flex}.footer-status[data-astro-cid-jo6i4kqk] i[data-astro-cid-jo6i4kqk]{background:#16ad82;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #16ad821f}.footer-column[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:stretch;gap:.18rem;display:flex}.footer-column[data-astro-cid-jo6i4kqk] h2[data-astro-cid-jo6i4kqk]{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .65rem;font-size:.7rem;font-weight:600}.footer-column[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.footer-column[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]{min-height:35px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:.55rem;padding:.34rem 0;font-size:.8rem;display:flex}.footer-column[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]>svg[data-astro-cid-jo6i4kqk]:first-child{color:var(--brand)}.footer-column[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]>svg[data-astro-cid-jo6i4kqk]:last-child,.footer-column[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]>svg[data-astro-cid-jo6i4kqk]{color:var(--muted);margin-left:auto;transition:transform .18s}.footer-column[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.footer-column[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]:hover{color:var(--brand)}.footer-column[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover>svg[data-astro-cid-jo6i4kqk]:last-child,.footer-column[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]:hover>svg[data-astro-cid-jo6i4kqk]{transform:translate(2px)}.footer-bottom[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1.15rem 0;font-size:.69rem;display:grid}.footer-bottom[data-astro-cid-jo6i4kqk]>span[data-astro-cid-jo6i4kqk]:nth-child(2){text-align:center}.footer-bottom[data-astro-cid-jo6i4kqk]>div[data-astro-cid-jo6i4kqk]{justify-content:flex-end;gap:1rem;display:flex}.footer-bottom[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--brand)}@media (width<=900px){.footer-main[data-astro-cid-jo6i4kqk]{grid-template-columns:1.3fr 1fr 1fr}.footer-bottom[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr auto}.footer-bottom[data-astro-cid-jo6i4kqk]>span[data-astro-cid-jo6i4kqk]:nth-child(2){display:none}}@media (width<=620px){.site-footer[data-astro-cid-jo6i4kqk]{margin-top:3.5rem}.footer-callout[data-astro-cid-jo6i4kqk]{grid-template-columns:auto 1fr;margin-top:-1.4rem;padding:.85rem}.footer-callout[data-astro-cid-jo6i4kqk]>a[data-astro-cid-jo6i4kqk]{grid-column:1/-1;width:100%}.footer-main[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr;gap:2rem 1.25rem;padding:2.25rem 0 2rem}.footer-brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}.footer-brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{max-width:none}.footer-bottom[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr auto}.footer-bottom[data-astro-cid-jo6i4kqk]>div[data-astro-cid-jo6i4kqk]{gap:.7rem}}.ad-slot[data-astro-cid-ygkiugat]{width:100%;max-width:var(--ad-max-width);min-height:var(--ad-reserved-height);border:1px solid color-mix(in srgb,var(--brand) 12%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--brand) 7%,var(--surface-strong)),color-mix(in srgb,var(--accent) 5%,var(--surface-strong)));color:color-mix(in srgb,var(--brand) 68%,var(--muted));text-align:center;border-radius:14px;margin-inline:auto;display:grid;overflow:hidden}.ad-slot__placeholder[data-astro-cid-ygkiugat],.ad-slot__mount[data-astro-cid-ygkiugat]{grid-area:1/1}.ad-slot__placeholder[data-astro-cid-ygkiugat]{align-content:center;place-items:center;gap:.25rem;display:grid}.ad-slot[data-astro-cid-ygkiugat].is-loaded .ad-slot__placeholder[data-astro-cid-ygkiugat]{display:none}.ad-slot__mount[data-astro-cid-ygkiugat]{place-items:center;min-width:0;display:grid}.ad-slot[data-astro-cid-ygkiugat] span[data-astro-cid-ygkiugat]{font-size:.78rem;font-weight:600}.ad-slot[data-astro-cid-ygkiugat] small[data-astro-cid-ygkiugat]{color:var(--muted);font-size:.62rem}.advertising-rails[data-astro-cid-mbw3pqtm]{display:none}@media (width>=1680px){.advertising-rails[data-astro-cid-mbw3pqtm]{display:block}.advertising-rail[data-astro-cid-mbw3pqtm]{z-index:2;width:min(300px,50vw - 596px);max-height:calc(100vh - 136px);position:fixed;top:112px}.advertising-rail--left[data-astro-cid-mbw3pqtm]{right:calc(50% + 596px)}.advertising-rail--right[data-astro-cid-mbw3pqtm]{left:calc(50% + 596px)}.advertising-rail--left[data-astro-cid-mbw3pqtm] .ad-slot{margin-right:0}.advertising-rail--right[data-astro-cid-mbw3pqtm] .ad-slot{margin-left:0}}.consent-backdrop{z-index:100;backdrop-filter:blur(5px);background:#07090f6b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.consent-backdrop.is-notice{pointer-events:none;backdrop-filter:none;background:0 0;justify-content:flex-end;align-items:flex-end}.consent-dialog{border:1px solid var(--line);border-radius:var(--ui-radius-lg);background:var(--surface-strong);grid-template-columns:auto 1fr;gap:9px;width:min(540px,100%);padding:12px;display:grid;box-shadow:0 30px 90px #00000047}.is-notice .consent-dialog{pointer-events:auto;width:min(500px,100%);box-shadow:0 16px 46px #0000002e}.consent-icon{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-2));border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.consent-dialog h2{margin:0 0 3px;font-size:.95rem}.consent-dialog p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.4}.consent-dialog small{color:var(--muted);font-size:.64rem}.consent-choices{grid-column:1/-1;gap:6px;display:grid}.consent-choices label{border:1px solid var(--line);border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:7px 9px;display:flex}.consent-choices label span{display:grid}.consent-choices label b{font-size:.82rem}.consent-choices label small{margin-top:1px}.consent-choices input{width:18px;height:18px;accent-color:var(--brand)}.consent-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:6px;display:flex}.consent-actions .btn{min-height:34px;padding:.42rem .65rem;font-size:.74rem}.tool-control-panel{border:1px solid var(--line);border-radius:var(--ui-radius-lg);background:color-mix(in srgb, var(--surface-strong) 78%, transparent);align-content:start;padding:18px}.tool-check{align-items:center;gap:10px;min-height:40px;display:flex}.tool-check input{width:20px;height:20px;accent-color:var(--brand)}.tool-range{width:100%;accent-color:var(--brand)}.range-hints{color:var(--muted);justify-content:space-between;font-size:.76rem;font-weight:500;display:flex}.wheel-stage{grid-template-rows:auto 60px;align-content:start;place-items:center;gap:12px;min-height:620px;padding:72px 24px 48px;display:grid;position:relative;overflow:hidden}.wheel-disc-shell{place-items:center;width:min(430px,100%);display:grid;position:relative}.wheel-visual{filter:drop-shadow(0 22px 28px #1a1c3733);width:100%;height:auto;overflow:visible}.wheel-rim{fill:none;stroke:var(--surface-strong);stroke-width:12px}.wheel-label{fill:#fff;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#00000038;stroke-width:3px;stroke-linejoin:round;font-size:13px;font-weight:600}.wheel-slice{isolation:isolate}.wheel-slice.is-highlight path{stroke:#fff;stroke-width:5px;animation:.525s ease-in-out 2 wheel-winner-pulse}.wheel-slice.is-highlight text{animation:.525s ease-in-out 2 wheel-winner-label}.wheel-slice.is-removing path{stroke:#fff;stroke-width:5px;animation:1.25s ease-in forwards wheel-slice-dissolve}.wheel-slice.is-removing text{animation:1.25s ease-in forwards wheel-label-dissolve}.wheel-pointer{z-index:3;width:52px;height:52px;color:var(--text);filter:drop-shadow(0 3px 2px #0003);place-items:center;display:grid;position:absolute;top:-58px;left:50%;transform:translate(-50%)}.wheel-spin{z-index:3;border:8px solid var(--surface-strong);background:var(--text);width:96px;height:96px;color:var(--bg);border-radius:50%;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 28px #00000038}.wheel-result-slot{place-items:center;width:100%;min-height:60px;display:grid}.wheel-winner{z-index:5;border:1px solid var(--line);background:var(--surface-strong);min-width:210px;box-shadow:var(--shadow);text-align:center;border-radius:14px;padding:8px 14px;animation:.28s ease-out both wheel-winner-card;display:grid}.wheel-winner small{color:var(--muted);font-size:.7rem}.wheel-winner strong{color:var(--brand);font-size:1.2rem}.wheel-fullscreen{min-height:40px;color:var(--muted);background:0 0;border:0;align-items:center;gap:8px;padding:8px;display:inline-flex;position:absolute;bottom:0;left:0}.wheel-app .tool-control-panel{gap:11px}.wheel-options{overscroll-behavior:contain;gap:6px;max-height:520px;padding-right:4px;display:grid;overflow:auto}.wheel-options>strong{z-index:1;background:var(--surface-strong);padding-block:1px 5px;position:sticky;top:0}.wheel-option{grid-template-columns:1fr 38px;gap:6px;display:grid}.wheel-option .field{min-height:40px;padding:.5rem .72rem}.wheel-option button{border:1px solid var(--line);border-radius:var(--ui-radius-md);background:var(--surface-strong);color:var(--danger);place-items:center;display:grid}.wheel-app:fullscreen{background:var(--bg);padding:24px;overflow:auto}.wheel-app:fullscreen .tool-grid{align-items:center;min-height:calc(100vh - 48px)}@keyframes wheel-winner-pulse{0%,to{filter:brightness()drop-shadow(0 0 #0000)}50%{filter:brightness(1.28)saturate(1.2)drop-shadow(0 0 13px #ffffffeb)}}@keyframes wheel-winner-label{0%,to{opacity:1}50%{opacity:.72}}@keyframes wheel-slice-dissolve{0%{opacity:1;filter:brightness(1.25)drop-shadow(0 0 12px #ffffffe6)}35%{opacity:.82;filter:brightness(1.55)saturate(.6)blur(1px)}70%{opacity:.28;filter:brightness(1.8)saturate(.15)blur(5px)}to{opacity:0;filter:brightness(2)saturate(0)blur(12px)}}@keyframes wheel-label-dissolve{0%,28%{opacity:1}to{opacity:0}}@keyframes wheel-winner-card{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dice-app{gap:18px;display:grid}.dice-controls{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-strong) 72%,transparent);grid-template-columns:164px minmax(210px,250px) minmax(250px,1fr);justify-content:start;align-items:end;gap:18px 24px;padding:18px 22px;display:grid}.dice-controls .label{min-width:0}.dice-controls .tool-range{min-height:var(--ui-control-lg)}.dice-type-field{gap:8px;width:164px;display:grid}.dice-select-wrap{display:block;position:relative}.dice-select-wrap .field{appearance:none;min-height:46px;padding-right:42px}.dice-select-wrap svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.dice-quantity-field{gap:8px;display:grid}.dice-quantity-stepper{grid-template-columns:46px minmax(72px,auto) 46px;justify-content:start;align-items:center;gap:10px;display:grid}.dice-quantity-stepper button{border:1px solid var(--line);background:var(--surface-strong);width:46px;height:46px;color:var(--text);border-radius:50%;place-items:center;padding:0;display:grid;box-shadow:0 6px 18px #191c370f}.dice-quantity-stepper button:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 48%,var(--line));color:var(--brand)}.dice-quantity-stepper button:disabled{cursor:not-allowed;opacity:.42}.dice-quantity-stepper output{place-items:center;min-width:72px;line-height:1;display:grid}.dice-quantity-stepper output strong{font-size:1.35rem}.dice-quantity-stepper output small{color:var(--muted);margin-top:4px;font-size:.68rem;font-weight:600}.dice-skin-field{border:0;min-width:0;margin:0;padding:0}.dice-skin-field legend{color:var(--muted);margin-bottom:8px;padding:0;font-size:.78rem;font-weight:600}.dice-skin-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dice-skin-swatch{border:1px solid var(--line);background:var(--surface-strong);border-radius:50%;place-items:center;width:34px;height:34px;padding:4px;display:grid}.dice-skin-swatch span{border-radius:inherit;width:100%;height:100%;box-shadow:inset 0 0 0 1px #ffffff4d}.dice-skin-ivory span{background:#f3f0e9}.dice-skin-black span{background:#252832}.dice-skin-red span{background:#b8324a}.dice-skin-blue span{background:#1f5aa6}.dice-skin-green span{background:#27865a}.dice-skin-violet span{background:#6547d8}.dice-skin-gold span{background:#c58a24}.dice-skin-mix span{background:linear-gradient(135deg,#b8324a 0 25%,#1f5aa6 25% 50%,#27865a 50% 75%,#6547d8 75%)}.dice-skin-swatch[aria-pressed=true]{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.dice-skin-field:disabled{opacity:.55}.dice-presets{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.dice-presets>span{color:var(--muted);margin-right:2px;font-size:.78rem;font-weight:600}.dice-presets button{border:1px solid var(--line);background:var(--surface-strong);min-height:34px;color:var(--muted);font:inherit;border-radius:999px;padding:6px 11px;font-size:.78rem;font-weight:600}.dice-presets button[aria-pressed=true]{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:color-mix(in srgb,var(--brand) 10%,var(--surface-strong));color:var(--text)}.dice-stage{isolation:isolate;align-content:center;place-items:center;gap:18px;min-height:590px;padding:4px 0 34px;display:grid;position:relative;overflow:hidden}.dice-webgl{cursor:grab;touch-action:none;outline:none;width:100%;height:clamp(320px,36vw,420px);display:block}.dice-webgl:active{cursor:grabbing}.dice-camera-hint{z-index:2;border:1px solid var(--line);background:color-mix(in srgb,var(--surface-strong) 84%,transparent);color:var(--muted);pointer-events:none;border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:600;position:absolute;top:14px;right:20px}.dice-result-region{z-index:1;place-items:center;gap:8px;min-height:54px;padding-inline:16px;display:grid;position:relative}.dice-result-summary{z-index:1;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:10px;display:flex;position:relative}.dice-result-pending{color:var(--muted);font-size:.9rem;font-weight:600}.dice-values,.dice-total{border:1px solid var(--line);border-radius:var(--ui-radius-md);background:var(--surface-strong);align-items:center;gap:10px;min-height:54px;padding:8px 12px;display:flex;box-shadow:0 8px 24px #191c3712}.dice-values>span,.dice-total>span{color:var(--muted);font-size:.82rem;font-weight:600}.dice-value-list{flex-wrap:wrap;gap:6px;display:flex}.dice-value-list button{background:color-mix(in srgb,var(--brand) 12%,var(--surface-strong));min-width:34px;height:34px;color:var(--brand);border:1px solid #0000;border-radius:10px;place-items:center;padding:0 8px;display:grid}.dice-value-list button:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 45%,transparent)}.dice-value-list button.is-held{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--brand) 22%,transparent)}.dice-value-list strong{font-size:1.05rem}.dice-total strong{font-size:1.55rem}.dice-held-note,.dice-keyboard-hint{color:var(--muted);font-size:.75rem;font-weight:600}.dice-roll-button{z-index:1;min-width:170px;position:relative}.dice-roll-actions{z-index:1;justify-content:center;align-items:center;gap:10px;display:flex;position:relative}.dice-sound-toggle{border:1px solid var(--line);border-radius:var(--ui-radius-md);background:var(--surface-strong);width:46px;height:46px;color:var(--muted);place-items:center;padding:0;display:grid;box-shadow:0 8px 24px #191c3712}.dice-sound-toggle[aria-pressed=true]{color:var(--brand)}.dice-sound-toggle:hover{border-color:color-mix(in srgb,var(--brand) 42%,var(--line))}.dice-haptics-toggle[aria-pressed=true]{color:var(--accent)}.dice-history-panel{border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-strong) 60%,transparent);padding:20px 22px 22px}.dice-history-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.dice-history-actions{align-items:center;gap:12px;display:flex}.dice-history-clear{border:1px solid var(--line);background:var(--surface-strong);min-height:34px;color:var(--muted);font:inherit;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.dice-history-clear:hover{border-color:color-mix(in srgb,var(--danger) 38%,var(--line));color:var(--danger)}.dice-history{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.dice-history>div{background:color-mix(in srgb, var(--brand) 7%, transparent);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 12px;display:grid}.dice-history-number{color:var(--muted);font-size:.76rem;font-weight:600}.dice-history>p{grid-column:1/-1;margin:0}.password-app{display:grid}.password-main{align-content:start;min-height:0}.password-output{border:1px solid var(--line);background:var(--surface-strong);border-radius:18px;align-items:center;gap:12px;padding:16px;display:flex}.password-output code{overflow-wrap:anywhere;min-width:0;color:var(--brand);flex:1;font-size:1.15rem}.password-output-actions{flex:none;gap:8px;display:flex}.password-output-actions .btn{white-space:nowrap;min-height:46px}.password-output-actions .password-copy-button{width:46px;color:var(--brand);flex:0 0 46px;place-items:center;padding:0;display:grid}.password-copy-button.is-copied{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface-strong));color:var(--accent)}.password-settings{min-inline-size:0;box-shadow:none;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px 12px;margin:0;padding:14px 16px;display:grid}.password-settings .password-length{grid-template-columns:auto 1fr;align-items:center;column-gap:8px;margin:0}.password-settings .password-length .tool-range{grid-column:1/-1}.password-settings .tool-check{border:1px solid var(--line);background:color-mix(in srgb,var(--surface-strong) 82%,transparent);border-radius:12px;min-width:0;min-height:52px;padding:8px 10px;font-size:.84rem;line-height:1.25}.password-settings .tool-check input{flex:none}.random-number-app{display:grid}.random-number-main{align-content:start;min-height:0}.random-number-output{border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line));border-radius:var(--ui-radius-lg);background:color-mix(in srgb,var(--brand) 4%,var(--surface-strong));text-align:center;place-content:center;min-height:300px;padding:42px 28px 34px;display:grid;position:relative;overflow:visible}.random-number-caption{z-index:3;border:1px solid color-mix(in srgb,var(--brand) 12%,var(--line));background:var(--surface-strong);color:var(--muted);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:600;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 14px #23254c14}.random-number-list{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:min(100%,720px);display:flex;position:relative}.random-number-empty{color:var(--muted);margin:0;font-size:.92rem}.random-number-reel{--reel-height:clamp(64px,7vw,76px);min-width:clamp(88px,10vw,116px);max-width:100%;height:var(--reel-height);border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));background:var(--surface-strong);border-radius:14px;transition:border-color .2s,background-color .2s;position:relative;overflow:hidden;box-shadow:0 2px 8px #27235e12}.random-number-app[data-rolling=true] .random-number-reel{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:color-mix(in srgb,var(--brand) 3%,var(--surface-strong))}.random-number-reel-strip{font-size:clamp(1.7rem,4vw,2.7rem);font-weight:600;line-height:var(--reel-height);white-space:nowrap;animation:random-reel-roll .8s cubic-bezier(.18,.75,.22,1) var(--reel-delay) both;flex-direction:column;display:flex}.random-number-reel--delay-0{--reel-delay:0s}.random-number-reel--delay-1{--reel-delay:70ms}.random-number-reel--delay-2{--reel-delay:.14s}.random-number-reel--delay-3{--reel-delay:.21s}.random-number-reel--delay-4{--reel-delay:.28s}.random-number-reel--delay-5{--reel-delay:.35s}.random-number-reel--delay-6{--reel-delay:.42s}.random-number-reel--delay-7{--reel-delay:.49s}.random-number-reel--delay-8{--reel-delay:.56s}.random-number-reel-strip span{height:var(--reel-height);color:var(--brand);font-variant-numeric:tabular-nums;letter-spacing:-.025em;padding-inline:14px}@keyframes random-reel-roll{0%{filter:blur(2px);transform:translateY(0)}76%{filter:blur(1px)}to{filter:blur();transform:translateY(-80%)}}.random-number-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.random-number-actions .random-number-copy-button{width:46px;min-height:46px;color:var(--brand);flex:0 0 46px;place-items:center;padding:0;display:grid}.random-number-copy-button.is-copied{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface-strong));color:var(--accent)}.random-number-settings{box-shadow:none;grid-template-columns:minmax(150px,.85fr) minmax(150px,.85fr) minmax(240px,1.3fr);align-items:end;gap:14px;margin-top:4px;padding:16px 18px;display:grid}.random-number-settings .label{gap:7px;margin:0;display:grid}.random-number-count{grid-template-columns:auto 1fr;align-items:center;column-gap:9px}.random-number-count .tool-range,.random-number-count small{grid-column:1/-1}.random-number-count small{color:var(--muted);font-size:.7rem;font-weight:500}@media (prefers-reduced-motion:reduce){.random-number-reel-strip{animation:none;transform:translateY(-80%)}}.json-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.json-editor{resize:vertical;border:1px solid var(--line);color:#dbeafe;tab-size:2;background:#111827;border-radius:16px;width:100%;min-height:400px;padding:16px;font:14px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.json-editor.is-invalid{border-color:var(--danger)}.json-status{border-radius:12px;margin-top:12px;padding:12px 16px}.json-status.is-ok{color:var(--muted);background:color-mix(in srgb, var(--accent) 8%, transparent)}.json-status.is-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 9%, transparent)}.notify-region{z-index:1200;top:max(24px,env(safe-area-inset-top));pointer-events:none;width:min(360px,100vw - 32px);display:grid;position:fixed;right:24px}.notify-toast{border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--surface-strong) 94%,var(--accent) 6%);min-height:52px;color:var(--text);border-radius:14px;align-items:center;gap:10px;padding:12px 16px 12px 12px;font-size:.9rem;font-weight:600;animation:.2s ease-out both notify-enter;display:flex;box-shadow:0 16px 42px #171c3a2e}.notify-toast-icon{background:color-mix(in srgb,var(--accent) 14%,transparent);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.notify-toast.is-error{border-color:color-mix(in srgb,var(--danger) 34%,var(--line));background:color-mix(in srgb,var(--surface-strong) 94%,var(--danger) 6%)}.notify-toast.is-error .notify-toast-icon{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}@keyframes notify-enter{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.qr-preview{align-content:center;place-items:center;gap:16px;min-height:440px;padding:20px;display:grid}.qr-preview img{width:min(100%,360px);height:auto;image-rendering:pixelated;border:10px solid #fff;border-radius:18px}.qr-placeholder{aspect-ratio:1;border:2px dashed var(--line);width:min(240px,70vw);color:var(--muted);border-radius:18px;place-items:center;font-size:3rem;display:grid}.qr-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.qr-actions .btn:disabled{color:#5f6570;opacity:1}.qr-color{border:1px solid var(--line);background:var(--surface-strong);border-radius:12px;width:100%;min-height:52px;padding:5px}.qr-error{color:var(--danger)}@media (width>=761px){.wheel-options{max-height:400px}}@media (width<=900px){.notify-region{top:max(86px,env(safe-area-inset-top));right:16px}}@media (width<=760px){.wheel-stage{min-height:auto;padding:58px 4px 10px}.wheel-disc-shell{width:min(360px,100%)}.wheel-pointer{top:-48px}.wheel-options{max-height:none;padding-right:0;overflow:visible}.wheel-fullscreen{display:none}.password-output{flex-direction:column;align-items:stretch}.password-output-actions{grid-template-columns:minmax(0,1fr) 46px;display:grid}.password-output-actions .btn{min-width:0;padding-inline:.65rem;font-size:.78rem}.password-settings{grid-template-columns:1fr 1fr;align-items:stretch}.password-settings .password-length{grid-column:1/-1}.password-settings .tool-check{padding:9px 10px}.random-number-main{min-height:auto}.random-number-settings{grid-template-columns:1fr 1fr}.random-number-count{grid-column:1/-1}.json-toolbar .btn{flex:calc(50% - 5px)}.qr-preview{min-height:360px;padding-inline:0}.dice-controls{grid-template-columns:minmax(145px,.7fr) minmax(210px,1fr);gap:14px;padding:16px}.dice-type-field{width:min(164px,100%)}.dice-skin-field{grid-column:1/-1}.dice-stage{min-height:390px;padding:12px 0 24px}.dice-webgl{height:min(62vw,240px)}.dice-camera-hint{font-size:.7rem;top:8px;right:12px}.dice-history{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.consent-backdrop{padding:10px}.consent-dialog{grid-template-columns:auto 1fr;max-height:calc(100vh - 20px);padding:12px;overflow:auto}.consent-dialog.is-custom{grid-template-columns:1fr}.consent-dialog.is-custom .consent-icon{display:none}.consent-actions{justify-content:stretch}.consent-actions button{flex:auto}.wheel-spin{border-width:6px;width:70px;height:70px;font-size:.78rem}.wheel-label{font-size:12px}.tool-control-panel{padding:14px}.password-settings{grid-template-columns:1fr}.password-settings .password-length{grid-column:auto}.random-number-output{min-height:230px;padding:38px 14px 28px}.random-number-reel{min-width:min(100%,92px)}.json-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.json-toolbar .btn{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;padding-inline:.45rem;font-size:.78rem;line-height:1.15}.dice-controls{grid-template-columns:minmax(120px,.8fr) minmax(176px,1.2fr);gap:12px}.dice-type-field{width:100%}.dice-quantity-stepper{grid-template-columns:40px minmax(54px,auto) 40px;gap:6px}.dice-quantity-stepper button{width:40px;height:40px}.dice-quantity-stepper output{min-width:54px}.dice-skin-field,.dice-presets{grid-column:1/-1}.dice-skin-list{gap:7px}.dice-camera-hint{text-align:center;max-width:calc(100% - 24px)}.dice-history-heading{align-items:flex-start}.dice-history-actions{flex-direction:column;align-items:flex-end;gap:6px}.dice-history{grid-template-columns:1fr}.dice-result-summary{width:100%}.dice-values{flex:100%;justify-content:center}}@media (prefers-reduced-motion:reduce){.notify-toast{animation:none}}@media (hover:hover) and (pointer:fine){.dice-haptics-toggle{display:none}}.pinball-app{color:#f8fafc;background:#17102f;display:grid}.pinball-scorebar{background:linear-gradient(90deg,#251445,#16112d);border-bottom:1px solid #ffffff1f;grid-template-columns:repeat(4,minmax(0,1fr)) auto auto;align-items:center;gap:.55rem;padding:.75rem 1rem;display:grid}.pinball-scorebar>div{gap:.12rem;min-width:0;display:grid}.pinball-scorebar span{color:#b9b4d1;font-size:.64rem}.pinball-scorebar strong{text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.pinball-icon-button{color:#fff;background:#ffffff0f;border:1px solid #ffffff29;border-radius:11px;place-items:center;width:40px;height:40px;padding:0;display:grid}.pinball-icon-button:disabled{opacity:.35}.pinball-stage{background:radial-gradient(circle at 50% 42%,#34205f 0,#17102f 65%);min-height:640px;position:relative}.pinball-canvas{touch-action:none;width:100%;height:640px;display:block}.pinball-overlay{z-index:2;text-align:center;backdrop-filter:blur(4px);background:#110a2794;align-content:center;place-items:center;gap:.65rem;padding:2rem;display:grid;position:absolute;inset:0}.pinball-overlay-mark{background:linear-gradient(135deg,#6758ff,#a352f1);border:1px solid #ffffff3d;border-radius:50%;place-items:center;width:58px;height:58px;display:grid;box-shadow:0 15px 50px #5e48ff6b}.pinball-overlay h2{margin:.25rem 0 0;font-size:1.7rem}.pinball-overlay p{color:#d6d2e7;max-width:390px;margin:0 0 .45rem}.pinball-overlay .btn{justify-content:center;min-width:170px}.pinball-controls{background:#1e1539;border-top:1px solid #ffffff1c;grid-template-columns:1fr minmax(180px,.72fr) 1fr;gap:.65rem;padding:.75rem 1rem;display:grid}.pinball-controls button{color:#fff;min-height:52px;font:inherit;touch-action:none;background:#ffffff12;border:1px solid #ffffff24;border-radius:13px;justify-content:center;align-items:center;gap:.55rem;font-weight:600;display:flex}.pinball-controls button:active:not(:disabled),.pinball-controls button.is-active{background:linear-gradient(110deg,#5e54f5,#904ce3);transform:translateY(1px)}.pinball-controls button:disabled{opacity:.38}.pinball-controls kbd{color:#c9c4de;background:#0000002b;border:1px solid #ffffff30;border-radius:6px;padding:.12rem .4rem;font-size:.63rem}.pinball-launch-button{background:linear-gradient(110deg,#5d55ef,#8e4ee2)!important}.pinball-hint{text-align:center;color:#aaa4c2;background:#1e1539;margin:0;padding:0 1rem .85rem;font-size:.68rem}.pinball-launch-button{position:relative;overflow:hidden}.pinball-launch-button>*{z-index:1;position:relative}.pinball-power-meter{appearance:none;background:#0000003d;border:0;width:100%;height:5px;position:absolute;inset:auto 0 0;z-index:0!important}.pinball-power-meter::-webkit-progress-bar{background:#0000003d}.pinball-power-meter::-webkit-progress-value{background:linear-gradient(90deg,#45e4ff,#ffe05b,#ff6c8f);transition:width 40ms linear}.pinball-power-meter::-moz-progress-bar{background:linear-gradient(90deg,#45e4ff,#ffe05b,#ff6c8f)}.pinball-launch-button.is-charging{box-shadow:0 0 0 2px #59dcff59,0 8px 30px #6e4ce652}@media (width<=760px){.pinball-scorebar{grid-template-columns:repeat(4,minmax(0,1fr));padding:.6rem}.pinball-scorebar>button{grid-row:2}.pinball-scorebar>button:first-of-type{grid-column:2}.pinball-scorebar>button:last-of-type{grid-column:3}.pinball-stage{min-height:500px}.pinball-canvas{height:500px}.pinball-controls{grid-template-columns:1fr 1fr}.pinball-launch-button{grid-area:1/1/auto/-1}.pinball-flipper-button{grid-row:2}.pinball-controls kbd{display:none}.pinball-hint{font-size:.62rem}}@media (width<=480px){.pinball-stage{min-height:430px}.pinball-canvas{height:430px}.pinball-scorebar strong{font-size:.82rem}.pinball-scorebar span{font-size:.56rem}.pinball-controls{padding:.65rem}.pinball-controls button{min-height:48px}.pinball-overlay{padding:1rem}.pinball-overlay h2{font-size:1.45rem}}.pinball2d-app{color:#f8fafc;background:#050817;display:grid;overflow:hidden}.pinball2d-scorebar{background:linear-gradient(90deg,#0b1230,#171143 55%,#0a1738);border-bottom:1px solid #5de5ff2e;grid-template-columns:repeat(5,minmax(0,1fr)) auto auto;align-items:center;gap:.6rem;padding:.75rem 1rem;display:grid}.pinball2d-scorebar>div{gap:.1rem;min-width:0;display:grid}.pinball2d-scorebar span{color:#9cb1d9;font-size:.62rem}.pinball2d-scorebar strong{color:#fff;text-overflow:ellipsis;font-size:.96rem;font-weight:600;overflow:hidden}.pinball2d-icon-button{color:#fff;background:#1c275bc2;border:1px solid #5ce2ff3d;border-radius:11px;place-items:center;width:40px;height:40px;padding:0;display:grid}.pinball2d-icon-button:disabled{opacity:.35}.pinball2d-stage{background:radial-gradient(circle at 50% 18%,#4f30ad40,#0000 43%),linear-gradient(#060a1b,#030611);place-items:center;min-height:700px;padding:14px;display:grid;position:relative}.pinball2d-canvas{aspect-ratio:9/13;touch-action:none;border:1px solid #46e1ff33;border-radius:20px;width:min(100%,500px);height:auto;max-height:720px;display:block;box-shadow:0 24px 80px #0006,0 0 44px #3849ff26}.pinball2d-overlay{z-index:3;text-align:center;backdrop-filter:blur(5px);background:#030716b8;border-radius:20px;align-content:center;place-items:center;gap:.7rem;padding:2rem;display:grid;position:absolute;inset:14px}.pinball2d-overlay-mark{background:linear-gradient(135deg,#326bff,#c143e7);border:1px solid #68eeff5c;border-radius:50%;place-items:center;width:62px;height:62px;display:grid;box-shadow:0 0 38px #5365ff8a}.pinball2d-overlay h2{margin:.2rem 0 0;font-size:1.75rem}.pinball2d-overlay p{color:#c8d4ee;max-width:430px;margin:0 0 .4rem;line-height:1.55}.pinball2d-overlay .btn{justify-content:center;min-width:180px}.pinball2d-mission{z-index:2;color:#dce7ff;backdrop-filter:blur(6px);background:#04091ed1;border:1px solid #62e7ff33;border-radius:999px;align-items:center;gap:.55rem;padding:.45rem .7rem;font-size:.67rem;display:flex;position:absolute;top:26px;left:50%;transform:translate(-50%)}.pinball2d-target-lights{gap:.3rem;display:flex}.pinball2d-target-lights i{background:#293253;border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 0 1px #ffffff1f}.pinball2d-target-lights i.is-lit{background:#66f6ff;box-shadow:0 0 12px #43dcff}.pinball2d-controls{background:#09102a;border-top:1px solid #5de5ff24;grid-template-columns:1fr minmax(190px,.8fr) 1fr;gap:.65rem;padding:.75rem 1rem;display:grid}.pinball2d-controls button,.pinball2d-nudges button{color:#fff;min-height:50px;font:inherit;touch-action:none;background:#1c275ba3;border:1px solid #5be1ff33;border-radius:13px;justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:flex}.pinball2d-controls button:active:not(:disabled),.pinball2d-controls button.is-active,.pinball2d-nudges button:active:not(:disabled){background:linear-gradient(110deg,#3867ff,#a545e3);transform:translateY(1px)}.pinball2d-controls button:disabled,.pinball2d-nudges button:disabled{opacity:.38}.pinball2d-controls kbd,.pinball2d-nudges kbd{color:#c9d7f2;background:#0003;border:1px solid #ffffff2e;border-radius:6px;padding:.12rem .38rem;font-size:.62rem}.pinball2d-launch{position:relative;overflow:hidden;background:linear-gradient(110deg,#315cff,#a747e0)!important}.pinball2d-launch>*{z-index:1;position:relative}.pinball2d-power{appearance:none;background:#00000040;border:0;width:100%;height:5px;inset:auto 0 0;z-index:0!important;position:absolute!important}.pinball2d-power::-webkit-progress-bar{background:#00000040}.pinball2d-power::-webkit-progress-value{background:linear-gradient(90deg,#5cf2ff,#ffe760,#ff5caa)}.pinball2d-power::-moz-progress-bar{background:linear-gradient(90deg,#5cf2ff,#ffe760,#ff5caa)}.pinball2d-nudges{background:#09102a;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:0 1rem .75rem;display:grid}.pinball2d-nudges button{min-height:38px;font-size:.75rem}.pinball2d-hint{text-align:center;color:#8496bc;background:#09102a;margin:0;padding:0 1rem .85rem;font-size:.66rem}@media (width<=760px){.pinball2d-scorebar{grid-template-columns:repeat(3,minmax(0,1fr));padding:.6rem}.pinball2d-scorebar>button{grid-row:2}.pinball2d-stage{min-height:auto;padding:8px}.pinball2d-canvas{border-radius:15px;width:min(100%,460px);max-height:none}.pinball2d-overlay{inset:8px}.pinball2d-controls{grid-template-columns:1fr 1fr}.pinball2d-launch{grid-area:1/1/auto/-1}.pinball2d-flipper{grid-row:2}.pinball2d-controls kbd,.pinball2d-nudges kbd{display:none}.pinball2d-mission{white-space:nowrap;max-width:calc(100% - 30px);top:18px}.pinball2d-hint{font-size:.61rem}}@media (width<=480px){.pinball2d-scorebar strong{font-size:.8rem}.pinball2d-scorebar span{font-size:.55rem}.pinball2d-controls{padding:.65rem}.pinball2d-controls button{min-height:47px}.pinball2d-nudges{padding:0 .65rem .65rem}.pinball2d-overlay{padding:1rem}.pinball2d-overlay h2{font-size:1.4rem}}.pinball2d-mission{backdrop-filter:none;background:0 0;border:0;border-radius:0;gap:.1rem;padding:0;display:grid;position:static;transform:none}.pinball2d-nudges{grid-template-columns:minmax(110px,.5fr) 1fr minmax(110px,.5fr);align-items:center}.pinball2d-nudges p{color:#8496bc;text-align:center;margin:0;font-size:.66rem}@media (width<=760px){.pinball2d-nudges{grid-template-columns:1fr 1fr}.pinball2d-nudges p{grid-area:2/1/auto/-1}}.pinball2d-target-lights i.is-lit{animation:.8s ease-in-out infinite alternate pinball2d-target-pulse}.pinball2d-mission-notice{z-index:4;color:#fff;background:#081134eb;border:1px solid #69ecff6b;border-radius:999px;padding:.65rem 1rem;font-size:.82rem;font-weight:600;animation:1.2s both pinball2d-mission-pop;position:absolute;top:72px;left:50%;transform:translate(-50%);box-shadow:0 0 30px #4ad5ff47}.pinball2d-mission-notice.is-multiball{background:linear-gradient(100deg,#652db3f5,#d45280f5);border-color:#ffb845b8;font-size:1rem;animation-duration:1.8s;box-shadow:0 0 42px #ff66b86b}.pinball2d-score-notices{z-index:3;pointer-events:none;justify-items:end;gap:.35rem;display:grid;position:absolute;top:82px;right:max(24px,50% - 230px)}.pinball2d-score-notices output{color:#9ff6ff;background:#050f31d6;border:1px solid #6fefff52;border-radius:9px;padding:.34rem .58rem;font-size:.76rem;font-weight:600;animation:1.05s ease-out both pinball2d-score-float;box-shadow:0 8px 25px #00000038}@keyframes pinball2d-target-pulse{to{transform:scale(1.25);box-shadow:0 0 18px #43dcff}}@keyframes pinball2d-mission-pop{0%{opacity:0;transform:translate(-50%,12px)scale(.9)}18%,72%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-10px)scale(.96)}}@keyframes pinball2d-score-float{0%{opacity:0;transform:translateY(10px)scale(.85)}14%,65%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-22px)scale(.96)}}@media (width<=760px){.pinball2d-mission-notice{text-align:center;max-width:calc(100% - 32px);top:54px}.pinball2d-score-notices{top:64px;right:18px}.pinball2d-score-notices output{font-size:.7rem}}.breakout-app{color:#f8fafc;background:#050817;display:grid;overflow:hidden}.breakout-scorebar{background:linear-gradient(90deg,#0b1230,#171143 55%,#0a1738);border-bottom:1px solid #5de5ff2e;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:center;gap:.65rem;padding:.75rem 1rem;display:grid}.breakout-scorebar>div{gap:.1rem;min-width:0;display:grid}.breakout-scorebar span{color:#9cb1d9;font-size:.62rem}.breakout-scorebar strong{color:#fff;text-overflow:ellipsis;font-size:.96rem;font-weight:600;overflow:hidden}.breakout-icon-button{color:#fff;background:#1c275bc2;border:1px solid #5ce2ff3d;border-radius:11px;place-items:center;width:40px;height:40px;padding:0;display:grid}.breakout-icon-button:disabled{opacity:.35}.breakout-stage{background:radial-gradient(circle at 50% 18%,#4f30ad40,#0000 43%),linear-gradient(#060a1b,#030611);place-items:center;min-height:680px;padding:14px;display:grid;position:relative}.breakout-canvas{aspect-ratio:36/43;touch-action:none;border:1px solid #46e1ff33;border-radius:20px;width:min(100%,600px);height:auto;max-height:720px;display:block;box-shadow:0 24px 80px #0006,0 0 44px #3849ff26}.breakout-overlay{z-index:3;text-align:center;backdrop-filter:blur(5px);background:#030716b8;border-radius:20px;align-content:center;place-items:center;gap:.7rem;padding:2rem;display:grid;position:absolute;inset:14px}.breakout-overlay>span{background:linear-gradient(135deg,#326bff,#c143e7);border:1px solid #68eeff5c;border-radius:50%;place-items:center;width:62px;height:62px;display:grid;box-shadow:0 0 38px #5365ff8a}.breakout-overlay h2{margin:.2rem 0 0;font-size:1.75rem}.breakout-overlay p{color:#c8d4ee;max-width:430px;margin:0 0 .4rem;line-height:1.55}.breakout-overlay .btn{justify-content:center;min-width:180px}.breakout-controls{background:#09102a;grid-template-columns:1fr minmax(190px,.8fr) 1fr;gap:.65rem;padding:.75rem 1rem;display:grid}.breakout-controls button{color:#fff;min-height:50px;font:inherit;touch-action:none;background:#1c275ba3;border:1px solid #5be1ff33;border-radius:13px;justify-content:center;align-items:center;gap:.5rem;font-weight:600;display:flex}.breakout-controls button:active:not(:disabled){background:linear-gradient(110deg,#3867ff,#a545e3);transform:translateY(1px)}.breakout-controls button:disabled{opacity:.38}.breakout-launch{background:linear-gradient(110deg,#315cff,#a747e0)!important}.breakout-hint{text-align:center;color:#8496bc;background:#09102a;margin:0;padding:0 1rem .85rem;font-size:.68rem}.breakout-notice{z-index:4;color:#fff;text-align:center;background:#081134eb;border:1px solid #69ecff6b;border-radius:999px;max-width:calc(100% - 32px);padding:.65rem 1rem;font-size:.82rem;font-weight:600;animation:1.4s both pinball2d-mission-pop;position:absolute;top:42px;left:50%;transform:translate(-50%);box-shadow:0 0 30px #4ad5ff47}.breakout-score-notices{z-index:3;pointer-events:none;justify-items:end;gap:.35rem;display:grid;position:absolute;top:46px;right:max(24px,50% - 270px)}.breakout-score-notices output{color:#9ff6ff;background:#050f31d6;border:1px solid #6fefff52;border-radius:9px;padding:.34rem .58rem;font-size:.76rem;font-weight:600;animation:.9s ease-out both pinball2d-score-float;box-shadow:0 8px 25px #00000038}@media (width<=760px){.breakout-scorebar{grid-template-columns:repeat(3,minmax(0,1fr));padding:.6rem}.breakout-scorebar>button{grid-row:2}.breakout-stage{min-height:auto;padding:8px}.breakout-canvas{border-radius:15px;width:min(100%,520px);max-height:none}.breakout-overlay{padding:1rem;inset:8px}.breakout-controls{grid-template-columns:1fr 1fr;padding:.65rem}.breakout-launch{grid-area:1/1/auto/-1}.breakout-controls button:not(.breakout-launch){grid-row:2}.breakout-hint{padding-inline:.65rem;font-size:.61rem}.breakout-notice{top:24px}.breakout-score-notices{top:28px;right:16px}}.tetris-app{color:#f8fafc;background:#050817;display:grid;overflow:hidden}.tetris-scorebar{background:linear-gradient(90deg,#0b1230,#171143 55%,#0a1738);border-bottom:1px solid #6973ff3d;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:center;gap:.75rem;padding:.75rem 1rem;display:grid}.tetris-scorebar>div{gap:.08rem;display:grid}.tetris-scorebar span,.tetris-mini>span{color:#9cb1d9;font-size:.64rem}.tetris-scorebar strong{font-size:1rem;font-weight:600}.tetris-pause{color:#fff;background:#1c275bc2;border:1px solid #5ce2ff3d;border-radius:11px;place-items:center;width:40px;height:40px;padding:0;display:grid}.tetris-pause:disabled{opacity:.34}.tetris-layout{background:radial-gradient(circle at 50% 20%,#703ae142,#0000 42%),linear-gradient(#060a1b,#030611);grid-template-columns:minmax(110px,150px) minmax(270px,390px) minmax(110px,150px);justify-content:center;align-items:start;gap:1rem;padding:1.2rem;display:grid}.tetris-stage{justify-self:center;width:100%;max-width:390px;position:relative}.tetris-board{aspect-ratio:1/2;background:linear-gradient(#050c27c2,#0e092adb),repeating-linear-gradient(0deg,#0000 0 calc(5% - 1px),#5988ff1a calc(5% - 1px) 5%),repeating-linear-gradient(90deg,#0000 0 calc(10% - 1px),#5988ff1a calc(10% - 1px) 10%);border:2px solid #5ee3ff6b;border-radius:12px;grid-template-rows:repeat(20,1fr);grid-template-columns:repeat(10,1fr);width:100%;padding:6px;display:grid;box-shadow:0 22px 60px #00000073,0 0 38px #3f5bff2e}.tetris-board i{border:1px solid #677ed814;border-radius:3px;min-width:0;min-height:0;position:relative}.tetris-board i.is-filled,.tetris-mini-grid i.is-filled{border-color:color-mix(in srgb,var(--piece-color) 70%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--piece-color) 78%,#fff),var(--piece-color) 45%,color-mix(in srgb,var(--piece-color) 75%,#111));box-shadow:inset 2px 2px 0 #ffffff4d,inset -2px -2px 0 #00000029,0 0 9px color-mix(in srgb,var(--piece-color) 45%,transparent)}.tetris-board i.is-active{filter:saturate(1.15)brightness(1.08)}.tetris-board i.is-ghost{background:#8797ff14;border:2px solid #bcc9ff8a;margin:3px}.tetris-side{align-content:start;gap:.75rem;min-width:0;display:grid}.tetris-mini{background:#11183fb8;border:1px solid #6880d738;border-radius:14px;gap:.55rem;padding:.75rem;display:grid}.tetris-mini>span{text-transform:uppercase;letter-spacing:.08em}.tetris-mini-grid{aspect-ratio:1;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);width:100%;display:grid}.tetris-mini-grid i{border-radius:3px}.tetris-side p,.tetris-rules{color:#91a4cc;margin:0;font-size:.67rem;line-height:1.5}.tetris-rules{background:#0e143494;border:1px solid #6880d72e;border-radius:12px;gap:.35rem;padding:.75rem;display:grid}.tetris-rules strong{color:#fff;font-size:.76rem}.tetris-rules p{margin:0}.tetris-overlay{z-index:4;text-align:center;backdrop-filter:blur(4px);background:#030716c2;border-radius:8px;align-content:center;place-items:center;gap:.65rem;padding:1.3rem;display:grid;position:absolute;inset:6px}.tetris-overlay>span{background:linear-gradient(135deg,#326bff,#c143e7);border:1px solid #68eeff5c;border-radius:50%;place-items:center;width:60px;height:60px;display:grid;box-shadow:0 0 38px #5365ff8a}.tetris-overlay h2{margin:.2rem 0 0;font-size:1.7rem}.tetris-overlay p{color:#c8d4ee;max-width:290px;margin:0 0 .35rem;line-height:1.5}.tetris-overlay .btn{justify-content:center;min-width:160px}.tetris-notice{z-index:3;color:#bff8ff;pointer-events:none;background:#091039eb;border:1px solid #6ef1ff73;border-radius:999px;padding:.55rem .85rem;font-size:.82rem;font-weight:600;animation:1.4s both pinball2d-mission-pop;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 28px #55d5ff52}.tetris-controls{background:#09102a;grid-template-columns:repeat(3,1fr);gap:.55rem;padding:.8rem 1rem 1rem;display:grid}.tetris-controls button{color:#fff;min-height:48px;font:inherit;touch-action:manipulation;background:#1c275ba3;border:1px solid #5be1ff33;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.55rem;font-size:.78rem;font-weight:600;display:flex}.tetris-controls button:active:not(:disabled){background:linear-gradient(110deg,#3867ff,#a545e3);transform:translateY(1px)}.tetris-controls button.is-primary{background:linear-gradient(110deg,#315cff,#a747e0)}.tetris-controls button:disabled{opacity:.34}@media (width<=760px){.tetris-scorebar{grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:.35rem;padding:.6rem}.tetris-scorebar span{font-size:.54rem}.tetris-scorebar strong{font-size:.82rem}.tetris-pause{width:36px;height:36px}.tetris-layout{grid-template-columns:minmax(72px,92px) minmax(210px,330px);gap:.65rem;padding:.65rem}.tetris-stage{grid-area:1/2/3}.tetris-side-left{grid-area:1/1}.tetris-side-right{grid-area:2/1}.tetris-side p,.tetris-rules{font-size:.58rem}.tetris-rules{padding:.55rem}.tetris-controls{grid-template-columns:repeat(3,1fr);padding:.65rem}.tetris-controls button{min-height:44px;font-size:.7rem}.tetris-controls button svg{width:16px;height:16px}}@media (width<=430px){.tetris-layout{grid-template-columns:70px minmax(190px,1fr);gap:.45rem;padding:.45rem}.tetris-mini{padding:.45rem}.tetris-mini>span{font-size:.52rem}.tetris-rules p{display:none}.tetris-rules strong{font-size:.62rem}.tetris-board{padding:4px}.tetris-controls{gap:.4rem;padding:.5rem}.tetris-controls button{min-height:42px;padding:.35rem;font-size:.64rem}}.typing-app{border:1px solid var(--line);background:var(--surface-strong);border-radius:18px;outline:0;position:relative;overflow:hidden;box-shadow:0 20px 60px #232a4d1a}.typing-nav{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--brand) 3%,var(--surface-strong));justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.typing-tabs,.typing-layout-switch{gap:.35rem;display:flex}.typing-tabs button,.typing-layout-switch button{min-height:38px;color:var(--muted);font:inherit;background:0 0;border:0;border-radius:10px;padding:.5rem .9rem;font-size:.82rem;font-weight:600}.typing-tabs button.is-active,.typing-layout-switch button.is-active{background:var(--surface-strong);color:var(--brand);box-shadow:0 4px 16px #242b4b1a}.typing-layout-switch{border:1px solid var(--line);border-radius:11px;padding:.2rem}.typing-layout-switch button{min-height:32px;padding:.3rem .7rem}.typing-dashboard{gap:1rem;padding:1rem;display:grid}.typing-summary{border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--brand) 7%,var(--surface-strong)),var(--surface-strong));border-radius:14px;grid-template-columns:auto minmax(180px,1fr) minmax(260px,1.4fr);align-items:center;gap:1rem;padding:1rem;display:grid}.typing-summary>div:first-child{gap:.12rem;display:grid}.typing-summary span,.typing-session-bar span,.typing-stat-cards span{color:var(--muted);font-size:.68rem}.typing-summary strong{font-size:1.2rem}.typing-summary p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.typing-summary-progress,.typing-copy-progress{background:color-mix(in srgb,var(--brand) 10%,var(--bg));appearance:none;border:0;border-radius:999px;width:100%;height:7px;overflow:hidden}.typing-summary-progress::-webkit-progress-bar,.typing-copy-progress::-webkit-progress-bar{background:color-mix(in srgb,var(--brand) 10%,var(--bg))}.typing-summary-progress::-webkit-progress-value,.typing-copy-progress::-webkit-progress-value{background:linear-gradient(90deg,#4c65ef,#8a4fee);border-radius:999px}.typing-summary-progress::-moz-progress-bar,.typing-copy-progress::-moz-progress-bar{background:linear-gradient(90deg,#4c65ef,#8a4fee);border-radius:999px}.typing-lessons{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.typing-lessons button{border:1px solid var(--line);background:var(--surface-strong);min-height:74px;color:var(--text);text-align:left;font:inherit;border-radius:13px;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:.7rem;padding:.7rem .8rem;display:grid}.typing-lessons button:hover{border-color:color-mix(in srgb,var(--brand) 42%,var(--line));transform:translateY(-1px);box-shadow:0 8px 24px #262d5014}.typing-lessons button>span{background:color-mix(in srgb,var(--brand) 10%,var(--surface-strong));width:36px;height:36px;color:var(--brand);border-radius:10px;place-items:center;font-weight:600;display:grid}.typing-lessons button.is-complete>span{color:#128260;background:#def7ed}.typing-lessons strong,.typing-lessons small{display:block}.typing-lessons strong{font-size:.82rem}.typing-lessons small{color:var(--muted);margin-top:.2rem;font-size:.66rem}.typing-lessons b{color:var(--muted);text-align:right;font-size:.62rem}.typing-practice-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.typing-practice-grid article{border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 6%,var(--surface-strong)),var(--surface-strong));border-radius:15px;flex-direction:column;min-height:260px;padding:1.2rem;display:flex}.typing-practice-grid article>span{background:color-mix(in srgb,var(--brand) 11%,var(--surface-strong));width:48px;height:48px;color:var(--brand);border-radius:13px;place-items:center;display:grid}.typing-practice-grid h2,.typing-heatmap h2,.typing-history h2{margin:1rem 0 .4rem;font-size:1rem}.typing-practice-grid p,.typing-heatmap p,.typing-history p{color:var(--muted);font-size:.78rem;line-height:1.5}.typing-practice-grid label{color:var(--muted);gap:.35rem;margin:auto 0 .7rem;font-size:.68rem;display:grid}.typing-practice-grid select{border:1px solid var(--line);background:var(--surface-strong);min-height:40px;color:var(--text);border-radius:9px;padding:.45rem .7rem}.typing-practice-grid .btn{justify-content:center;margin-top:auto}.typing-stats{gap:1rem;display:grid}.typing-stat-cards{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.typing-stat-cards article{border:1px solid var(--line);border-radius:13px;gap:.2rem;padding:1rem;display:grid}.typing-stat-cards strong{font-size:1.35rem}.typing-heatmap,.typing-history{border:1px solid var(--line);border-radius:14px;padding:1rem}.typing-heatmap h2,.typing-history h2{margin-top:0}.typing-heatmap>div{flex-wrap:wrap;gap:.5rem;display:flex}.typing-heatmap>div span{--heat-color:#ef5d73;border:1px solid color-mix(in srgb,var(--heat-color) 35%,var(--line));background:color-mix(in srgb,var(--heat-color) 9%,var(--surface-strong));border-radius:10px;place-items:center;min-width:54px;padding:.55rem;display:grid}.typing-heatmap>div span.is-medium{--heat-color:#e9aa2c}.typing-heatmap>div span.is-good{--heat-color:#27bd82}.typing-heatmap b{font-size:1rem}.typing-heatmap small{color:var(--heat-color);font-size:.62rem}.typing-history ol{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.typing-history li{border-top:1px solid var(--line);grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:.65rem .2rem;font-size:.72rem;display:grid}.typing-history li span,.typing-history time{color:var(--muted)}.typing-session{background:linear-gradient(#f8f9ff,#fff);min-height:610px;padding-bottom:1.2rem;position:relative}.typing-session-bar{color:#fff;background:#11193f;border-bottom:1px solid #dfe4f2;grid-template-columns:minmax(120px,1fr) repeat(3,minmax(80px,.5fr)) auto;align-items:center;gap:.8rem;padding:.7rem 1rem;display:grid}.typing-session-bar>div{gap:.12rem;display:grid}.typing-session-bar span{color:#aebbe0}.typing-session-bar strong{font-size:.85rem}.typing-back,.typing-pause{color:#fff;min-height:38px;font:inherit;background:#ffffff12;border:1px solid #9eb1ee33;border-radius:10px;align-items:center;gap:.35rem;padding:.45rem .65rem;font-size:.72rem;font-weight:600;display:flex}.typing-pause{place-items:center;width:40px;padding:0;display:grid}.typing-copy{background:#fff;border:1px solid #dfe4f2;border-radius:15px;max-width:900px;margin:1.4rem auto 1rem;padding:1.3rem 1.5rem;box-shadow:0 12px 32px #252c5012}.typing-copy p{color:#79849b;letter-spacing:.015em;min-height:90px;margin:1rem 0 .7rem;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.85}.typing-copy .is-done{color:#1f2937}.typing-copy mark{color:#fff;background:#6b5bf5;border-radius:4px;min-width:.6ch;padding:0 .08em;display:inline-block}.typing-copy mark.is-error{background:#ed5268;animation:.18s linear typing-shake}.typing-copy small{color:#7a8498;font-size:.7rem}.typing-finger-guide{color:#34405b;justify-content:center;align-items:center;gap:.7rem;margin:.5rem auto 1rem;display:flex}.typing-hand{color:#6258e8;background:#e8e9ff;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.typing-finger-guide div{grid-template-columns:auto auto;align-items:baseline;gap:.1rem .55rem;display:grid}.typing-finger-guide small{color:#7a8498;grid-column:1/-1;font-size:.62rem}.typing-finger-guide strong{font-size:1rem}.typing-finger-guide div>span{color:#69758b;font-size:.7rem}.typing-keyboard{background:#e9edf7;border:1px solid #d9e0f1;border-radius:16px;max-width:850px;margin:0 auto;padding:1rem;box-shadow:inset 0 2px 7px #2a325014}.typing-key-row{justify-content:center;gap:.35rem;margin:.35rem 0;display:flex}.typing-key-row i{color:#26324b;background:#fff;border:1px solid #d4dbea;border-bottom-width:3px;border-radius:8px;place-items:center;width:51px;height:43px;font-size:.8rem;font-style:normal;font-weight:600;transition:all .12s;display:grid}.typing-key-row i.is-next{color:#fff;background:#6559ed;border-color:#6559ed;transform:translateY(-2px);box-shadow:0 0 0 4px #6559ed26,0 7px 16px #4b41cd40}.typing-key-row i.is-error{color:#b92b43;background:#ffe9ed;border-color:#ed5268}.typing-key-row i.finger-left-pinky,.typing-key-row i.finger-right-pinky{box-shadow:inset 0 3px #f19bad}.typing-key-row i.finger-left-ring,.typing-key-row i.finger-right-ring{box-shadow:inset 0 3px #e9bf61}.typing-key-row i.finger-left-middle,.typing-key-row i.finger-right-middle{box-shadow:inset 0 3px #5ecdb6}.typing-key-row i.finger-left-index,.typing-key-row i.finger-right-index{box-shadow:inset 0 3px #79a6f2}.typing-key-row.is-space i{width:42%;height:37px}.typing-session-overlay{z-index:5;color:#1f2942;backdrop-filter:blur(5px);background:#f6f8ffdb;align-content:center;place-items:center;gap:.7rem;display:grid;position:absolute;inset:55px 0 0}.typing-session-overlay h2{margin:0}.typing-result{text-align:center;background:#fff;border:1px solid #dfe4f2;border-radius:18px;place-items:center;gap:1rem;max-width:690px;margin:3rem auto;padding:2rem;display:grid;box-shadow:0 18px 50px #232a4d1a}.typing-result-icon{color:#15966f;background:#e1f8ee;border-radius:50%;place-items:center;width:64px;height:64px;display:grid}.typing-result h2{margin:0}.typing-result p{color:#6f7990;max-width:520px;margin:0}.typing-result-grid{grid-template-columns:repeat(4,1fr);gap:.55rem;width:100%;display:grid}.typing-result-grid div{background:#f3f5fc;border-radius:12px;gap:.15rem;padding:1rem .5rem;display:grid}.typing-result-grid strong{font-size:1.35rem}.typing-result-grid span{color:#6f7990;font-size:.65rem}.typing-result-actions{gap:.6rem;display:flex}.typing-result-actions .btn{justify-content:center}.typing-result-actions kbd{color:#45506a;background:#ffffffb8;border:1px solid #616a8747;border-bottom-width:2px;border-radius:5px;min-width:24px;padding:.18rem .35rem;font-family:inherit;font-size:.62rem;font-weight:600;line-height:1}.typing-result-actions .primary kbd{color:#fff;background:#ffffff29;border-color:#ffffff61}.typing-result-actions .primary,.typing-practice-grid .primary,.typing-session-overlay .primary{color:#fff;background:linear-gradient(110deg,#5368ee,#864fee);border-color:#0000}@keyframes typing-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (width<=760px){.typing-dashboard{padding:.7rem}.typing-summary,.typing-lessons,.typing-practice-grid,.typing-stat-cards{grid-template-columns:1fr}.typing-session{min-height:540px}.typing-session-bar{grid-template-columns:auto repeat(3,1fr) auto;padding:.55rem}.typing-back{justify-content:center;width:38px;padding:0}.typing-back svg+*{display:none}.typing-copy{margin:1rem .65rem;padding:1rem}.typing-copy p{min-height:80px;font-size:1.05rem}.typing-keyboard{margin-inline:.5rem;padding:.55rem}.typing-key-row{gap:.2rem;margin:.22rem 0}.typing-key-row i{width:calc(8.33333vw - 5.41667px);max-width:45px;height:36px;font-size:.65rem}.typing-key-row.is-space i{width:45%}.typing-history li{grid-template-columns:1fr auto auto}.typing-history time{display:none}.typing-result{margin:1.3rem .7rem;padding:1.2rem}.typing-result-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=430px){.typing-nav{padding:.55rem}.typing-tabs button{padding:.42rem .55rem;font-size:.72rem}.typing-layout-switch button{padding:.25rem .5rem}.typing-lessons button{grid-template-columns:34px 1fr auto;padding:.55rem}.typing-lessons button>b,.typing-lessons button>svg{display:none}.typing-session-bar{gap:.25rem}.typing-session-bar span{font-size:.5rem}.typing-session-bar strong{font-size:.66rem}.typing-finger-guide{margin-bottom:.55rem}.typing-keyboard{padding:.35rem}.typing-key-row i{border-radius:5px;width:calc(8.33333vw - 4px);height:31px;font-size:.57rem}.typing-result-actions{width:100%;display:grid}}.compound-app{gap:1rem;display:grid}.compound-mode-tabs{border:1px solid var(--line);background:var(--surface-strong);border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;padding:.35rem;display:grid}.compound-mode-tab{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:.65rem .8rem;font-weight:600}.compound-mode-tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.compound-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.compound-controls{gap:.8rem;padding:1rem;display:grid;position:sticky;top:1rem}.compound-controls .label{gap:.35rem;display:grid}.compound-controls .field{width:100%}.compound-target-kind{border:0;margin:0;padding:0}.compound-target-kind legend{margin-bottom:.4rem;font-size:.8rem;font-weight:600}.compound-target-kind>div{border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;display:grid}.compound-target-kind button{min-height:38px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;font-size:.82rem;font-weight:600}.compound-target-kind button.is-active{background:var(--brand);color:#fff}.compound-calculate{justify-content:center;width:100%}.compound-results{gap:1rem;min-width:0;display:grid}.compound-empty{text-align:center;border:1px dashed var(--line);background:var(--surface-strong);border-radius:18px;place-items:center;min-height:290px;padding:2rem;display:grid}.compound-empty strong{font-size:1.15rem}.compound-empty p{max-width:390px;color:var(--muted);margin:.5rem 0 0}.compound-solution{background:linear-gradient(135deg,#ece9ff,#e8f7ff);border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;display:flex}.compound-solution span{color:var(--muted);font-size:.83rem}.compound-solution strong{color:var(--brand);font-size:1.5rem}.compound-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.compound-summary article{border:1px solid var(--line);background:var(--surface);border-radius:15px;gap:.3rem;min-height:88px;padding:.9rem;display:grid}.compound-summary article.is-primary{background:linear-gradient(145deg,#f0edff,#fff);border-color:#cfc7ff}.compound-summary span{color:var(--muted);font-size:.72rem;line-height:1.35}.compound-summary strong{overflow-wrap:anywhere;font-size:1.05rem}.compound-chart{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:1rem}.compound-chart h2,.compound-schedule-head h2{margin:0;font-size:1rem}.compound-chart svg{width:100%;height:190px;margin-top:.75rem;display:block;overflow:visible}.compound-chart line{stroke:var(--line);stroke-width:1px}.compound-chart polyline{fill:none;stroke:var(--brand);stroke-width:4px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.compound-schedule-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.compound-table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:auto}.compound-table-wrap table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.78rem}.compound-table-wrap th,.compound-table-wrap td{text-align:right;border-bottom:1px solid var(--line);padding:.72rem .8rem}.compound-table-wrap th:first-child,.compound-table-wrap td:first-child{text-align:left}.compound-table-wrap th{color:var(--muted);text-transform:uppercase;font-size:.66rem;font-weight:600}.compound-table-wrap tbody tr:last-child td{border-bottom:0}.compound-disclaimer{color:#765715;background:#fff8e8;border-left:3px solid #dc9d28;border-radius:10px;margin:0;padding:.85rem 1rem;font-size:.78rem;line-height:1.5}@media (width<=760px){.compound-mode-tabs,.compound-layout{grid-template-columns:1fr}.compound-controls{position:static}.compound-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.compound-chart svg{height:150px}.compound-schedule-head{flex-direction:column;align-items:flex-start}.compound-schedule-head .btn{justify-content:center;width:100%}}.twister-app{background:linear-gradient(145deg,#f8fbff,#f5f1ff);grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1rem;padding:1rem;display:grid}.twister-stage,.twister-panel{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#ffffffe0;border-radius:20px}.twister-stage{align-content:start;justify-items:center;gap:.75rem;padding:1rem 1rem 1.2rem;display:grid;position:relative;overflow:hidden}.twister-stage:before{content:"";pointer-events:none;background:radial-gradient(circle at 18% 18%,#fe4c7f1c,#0000 28%),radial-gradient(circle at 82% 22%,#2ca9ff1f,#0000 26%),radial-gradient(circle at 20% 82%,#32c4751c,#0000 27%),radial-gradient(circle at 82% 82%,#ffcf3d24,#0000 26%);position:absolute;inset:0}.twister-turn{z-index:1;border:1px solid var(--line);background:#fff;border-radius:13px;justify-content:space-between;align-items:center;width:100%;padding:.72rem .85rem;display:flex;position:relative}.twister-turn span{color:var(--muted);font-size:.76rem}.twister-turn strong{font-size:.92rem}.twister-wheel-wrap{z-index:1;aspect-ratio:1;width:min(100%,340px);padding:18px;position:relative}.twister-pointer{z-index:3;color:#fff;background:#151c42;border:4px solid #fff;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:absolute;top:-5px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #211d4a40}.twister-wheel{background:conic-gradient(#f34f70 0 22.5deg,#2a9ff2 22.5deg 45deg,#31bd71 45deg 67.5deg,#f6ca34 67.5deg 90deg,#f34f70 90deg 112.5deg,#2a9ff2 112.5deg 135deg,#31bd71 135deg 157.5deg,#f6ca34 157.5deg 180deg,#f34f70 180deg 202.5deg,#2a9ff2 202.5deg 225deg,#31bd71 225deg 247.5deg,#f6ca34 247.5deg 270deg,#f34f70 270deg 292.5deg,#2a9ff2 292.5deg 315deg,#31bd71 315deg 337.5deg,#f6ca34 337.5deg 360deg);border:9px solid #fff;border-radius:50%;width:100%;height:100%;position:relative;box-shadow:0 20px 55px #342b6f38,inset 0 0 0 2px #ffffff73}.twister-wheel:after{content:"";background:repeating-conic-gradient(transparent 0 21.8deg,#ffffff94 21.8deg 22.5deg);pointer-events:none;border-radius:50%;position:absolute;inset:0}.twister-wheel-label{z-index:2;color:#fff;letter-spacing:.02em;background:#0e1436a6;border:1px solid #ffffff75;border-radius:7px;place-items:center;width:36px;height:24px;margin-top:-12px;font-size:.62rem;font-weight:600;display:grid;position:absolute;top:50%;left:calc(50% - 18px);box-shadow:0 3px 10px #00000021}.twister-wheel-center{z-index:3;color:#fff;background:#171d44;border:8px solid #fffc;border-radius:50%;place-items:center;width:78px;height:78px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 8px 20px #16193d47}.twister-spin{z-index:1;justify-content:center;min-width:190px;position:relative}.twister-key-hint{z-index:1;color:var(--muted);font-size:.7rem;position:relative}.twister-panel{align-content:start;gap:.85rem;padding:1rem;display:grid}.twister-result{border:1px solid var(--line);text-align:center;background:linear-gradient(135deg,#f2f0ff,#fff);border-radius:17px;align-content:center;gap:.3rem;min-height:150px;padding:1rem 1.1rem;display:grid}.twister-result-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:600}.twister-result strong{font-size:1.45rem}.twister-result-color{color:var(--muted);justify-content:center;align-items:center;gap:.45rem;display:flex}.twister-result-color i{background:currentColor;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px #0000000d}.twister-result.is-red .twister-result-color i,.twister-history li.is-red i{color:#ef4768}.twister-result.is-blue .twister-result-color i,.twister-history li.is-blue i{color:#2a9ff2}.twister-result.is-green .twister-result-color i,.twister-history li.is-green i{color:#31b970}.twister-result.is-yellow .twister-result-color i,.twister-history li.is-yellow i{color:#e5b616}.twister-settings{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.twister-settings label{color:var(--muted);gap:.35rem;font-size:.72rem;display:grid}.twister-select{display:block;position:relative}.twister-select select{border:1px solid var(--line);width:100%;height:43px;color:var(--text);font:inherit;appearance:none;background:#fff;border-radius:11px;padding:0 2.2rem 0 .75rem;font-size:.82rem}.twister-select svg{pointer-events:none;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.twister-auto{border:1px solid var(--line);min-height:45px;color:var(--text);font:inherit;background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem .8rem;font-size:.8rem;font-weight:600;display:flex}.twister-auto.is-active{color:#4c3dc4;background:#f0edff;border-color:#b8adff}.twister-history{gap:.6rem;display:grid}.twister-history-title{justify-content:space-between;align-items:center;display:flex}.twister-history-title strong{font-size:.88rem}.twister-history-title button{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:9px;place-items:center;padding:0;display:grid}.twister-history ol{gap:.4rem;max-height:250px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.twister-history li{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem .65rem;font-size:.72rem;display:grid}.twister-history li>span{color:#5145c4;background:#f0edff;border-radius:7px;place-items:center;width:25px;height:25px;font-weight:600;display:grid}.twister-history li b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.twister-history li i{font-style:normal}.twister-history li i:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}.twister-history p{color:var(--muted);margin:.2rem 0;font-size:.76rem;line-height:1.5}.twister-wheel-label{color:#fff;letter-spacing:.04em;text-shadow:0 1px 3px #0e14368c;width:32px;height:22px;box-shadow:none;background:0 0;border:0;border-radius:0;margin-top:-11px;font-size:.68rem}.twister-wheel-label.is-yellow{color:#5a4700;text-shadow:0 1px 1px #ffffff59}.twister-wheel-label-0{transform:rotate(11.25deg)translateY(-105px)}.twister-wheel-label-1{transform:rotate(33.75deg)translateY(-105px)}.twister-wheel-label-2{transform:rotate(56.25deg)translateY(-105px)}.twister-wheel-label-3{transform:rotate(78.75deg)translateY(-105px)}.twister-wheel-label-4{transform:rotate(101.25deg)translateY(-105px)}.twister-wheel-label-5{transform:rotate(123.75deg)translateY(-105px)}.twister-wheel-label-6{transform:rotate(146.25deg)translateY(-105px)}.twister-wheel-label-7{transform:rotate(168.75deg)translateY(-105px)}.twister-wheel-label-8{transform:rotate(191.25deg)translateY(-105px)}.twister-wheel-label-9{transform:rotate(213.75deg)translateY(-105px)}.twister-wheel-label-10{transform:rotate(236.25deg)translateY(-105px)}.twister-wheel-label-11{transform:rotate(258.75deg)translateY(-105px)}.twister-wheel-label-12{transform:rotate(281.25deg)translateY(-105px)}.twister-wheel-label-13{transform:rotate(303.75deg)translateY(-105px)}.twister-wheel-label-14{transform:rotate(326.25deg)translateY(-105px)}.twister-wheel-label-15{transform:rotate(348.75deg)translateY(-105px)}@media (width<=760px){.twister-app{grid-template-columns:1fr;padding:.6rem}.twister-wheel-wrap{width:min(100%,320px)}.twister-wheel-label{transform-origin:50%}.twister-panel{padding:.8rem}.twister-result{min-height:125px}.twister-result strong{font-size:1.25rem}}.lottery-app{background:linear-gradient(145deg,#f7fbff,#f4f0ff);grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:1rem;padding:1rem;display:grid}.lottery-stage,.lottery-panel{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-sm);background:#ffffffe6;border-radius:20px}.lottery-stage{background:radial-gradient(circle at 50% 32%,#c9efffb8,#0000 40%),linear-gradient(155deg,#fbfdff,#f5f1ff);align-content:start;justify-items:center;gap:.65rem;padding:1rem;display:grid;position:relative;overflow:hidden}.lottery-toolbar{z-index:3;width:100%;color:var(--muted);justify-content:space-between;align-items:center;gap:.75rem;font-size:.72rem;display:flex}.lottery-toolbar>div{gap:.4rem;display:flex}.lottery-toolbar button{border:1px solid var(--line);width:36px;height:36px;color:var(--text);background:#fff;border-radius:10px;place-items:center;padding:0;display:grid}.lottery-machine{width:min(100%,520px);height:390px;margin-top:-.4rem;position:relative}.lottery-drum{isolation:isolate;background:linear-gradient(135deg,#ffffffa6,#b6deff3d);border:8px solid #ffffffe6;border-radius:50%;width:310px;height:310px;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 24px 55px #42449138,inset 0 0 35px #508cff21}.lottery-drum:before,.lottery-drum:after{z-index:5;content:"";background:linear-gradient(#cdd9f3,#8196c7);border:6px solid #e8efff;width:30px;height:54px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 12px #3040742e}.lottery-drum:before{border-radius:12px 4px 4px 12px;right:calc(100% - 9px)}.lottery-drum:after{border-radius:4px 12px 12px 4px;left:calc(100% - 9px)}.lottery-drum-glass{z-index:4;pointer-events:none;background:linear-gradient(120deg,#ffffffad 0 7%,#0000 18% 64%,#ffffff73 76% 82%,#0000 90%);border-radius:50%;position:absolute;inset:0}.lottery-physics-canvas{z-index:2;border-radius:50%;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:hidden}.lottery-drum-hub{z-index:6;color:#fff;background:#172048;border:7px solid #ffffffdb;border-radius:50%;place-items:center;width:68px;height:68px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 8px 20px #18204847}.lottery-stand{z-index:0;border-bottom:25px solid #7286b8;width:390px;height:196px;position:absolute;top:157px;left:50%;transform:translate(-50%)}.lottery-stand i{transform-origin:bottom;background:linear-gradient(90deg,#8da2d2,#e5edff 48%,#7388bb);border-radius:12px;width:26px;height:180px;position:absolute;top:0}.lottery-stand i:first-child{left:30px;transform:rotate(8deg)}.lottery-stand i:last-child{right:30px;transform:rotate(-8deg)}.lottery-chute{z-index:7;background:linear-gradient(150deg,#ffffff9e,#c8deff4d);border:7px solid #e1ebffd6;border-left:0;border-radius:0 18px 28px 0;width:176px;height:78px;position:absolute;bottom:33px;right:8px;transform:skew(10deg);box-shadow:0 13px 22px #414d8326}.lottery-winning-ball{color:#fff;background:linear-gradient(145deg,#8071ff,#483bd0);border:3px solid #ffffffd1;border-radius:50%;place-items:center;width:56px;height:56px;font-size:1.05rem;font-weight:600;animation:.62s cubic-bezier(.2,.72,.25,1.12) both lottery-ball-exit;display:grid;position:absolute;bottom:9px;right:20px;transform:skew(-10deg);box-shadow:0 9px 18px #483ac147}.lottery-app[data-mixing=true] .lottery-drum-hub svg{animation:.55s linear infinite lottery-hub-spin}@keyframes lottery-hub-spin{to{transform:rotate(360deg)}}@keyframes lottery-ball-exit{0%{opacity:0;transform:translate(-88px,-46px)rotate(-160deg)skew(-10deg)scale(.84)}58%{opacity:1;transform:translate(-30px,-8px)rotate(-52deg)skew(-10deg)scale(1)}82%{transform:translate(4px,2px)rotate(9deg)skew(-10deg)scale(1.04)}to{opacity:1;transform:skew(-10deg)}}.lottery-draw-button{z-index:3;justify-content:center;gap:.5rem;min-width:210px}.lottery-key-hint{color:var(--muted);font-size:.69rem}.lottery-result{border:1px solid var(--line);text-align:center;background:#fff;border-radius:14px;gap:.4rem;width:100%;min-height:74px;padding:.7rem .85rem;display:grid}.lottery-result>span{color:var(--muted);font-size:.7rem}.lottery-result>div{flex-wrap:wrap;justify-content:center;gap:.45rem;display:flex}.lottery-result strong{color:#33288f;background:#f0edff;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .6rem;display:flex}.lottery-result strong b{color:#fff;background:#5f55ed;border-radius:50%;place-items:center;min-width:27px;height:27px;display:grid}.lottery-result strong em{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.77rem;font-style:normal;overflow:hidden}.lottery-panel{align-content:start;gap:.9rem;padding:1rem;display:grid}.lottery-mode{background:#eef1f8;border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.lottery-mode button{min-height:40px;color:var(--muted);font:inherit;background:0 0;border:0;border-radius:9px;font-size:.8rem;font-weight:600}.lottery-mode button.is-active{color:var(--text);background:#fff;box-shadow:0 4px 12px #32406e1a}.lottery-range{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.lottery-range label,.lottery-participants{color:var(--muted);gap:.35rem;font-size:.72rem;display:grid}.lottery-participants textarea{resize:vertical;min-height:160px;line-height:1.55}.lottery-participants small{line-height:1.5}.lottery-count{color:var(--muted);grid-template-columns:1fr auto;gap:.45rem;font-size:.72rem;display:grid}.lottery-count strong{color:var(--text)}.lottery-count input{width:100%;accent-color:var(--brand);grid-column:1/-1}.lottery-panel-actions button{border:1px solid var(--line);width:100%;min-height:43px;color:var(--text);font:inherit;background:#fff;border-radius:11px;justify-content:center;align-items:center;gap:.45rem;font-size:.78rem;font-weight:600;display:flex}.lottery-history{gap:.55rem;display:grid}.lottery-history>div{justify-content:space-between;align-items:center;display:flex}.lottery-history>div strong{font-size:.88rem}.lottery-history>div span{color:#4d42c1;background:#f0edff;border-radius:999px;place-items:center;min-width:28px;height:24px;font-size:.7rem;font-weight:600;display:grid}.lottery-history p{color:var(--muted);margin:0;font-size:.75rem;line-height:1.5}.lottery-history ol{gap:.4rem;max-height:250px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.lottery-history li{border:1px solid var(--line);background:#fff;border-radius:11px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.55rem;padding:.5rem .6rem;font-size:.75rem;display:grid}.lottery-history li b{color:#fff;background:linear-gradient(145deg,#7e70ff,#5042d2);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.lottery-history li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lottery-app[data-fullscreen=true]{border-radius:0;height:100%;min-height:100vh;overflow:auto}.lottery-app[data-fullscreen=true] .lottery-machine{width:min(60vw,620px);height:430px}.lottery-app[data-fullscreen=true] .lottery-drum{width:350px;height:350px}@media (width<=760px){.lottery-app{grid-template-columns:1fr;padding:.6rem}.lottery-stage,.lottery-panel{padding:.75rem}.lottery-machine{transform-origin:top;height:320px;margin-bottom:-58px;transform:scale(.82)}.lottery-drum{width:285px;height:285px}.lottery-stand{width:350px;height:174px;top:142px}.lottery-chute{bottom:26px;right:-8px}.lottery-range{grid-template-columns:1fr 1fr}.lottery-key-hint{display:none}.lottery-result{min-height:66px}}@media (prefers-reduced-motion:reduce){.lottery-app[data-mixing=true] .lottery-drum-hub svg,.lottery-winning-ball{animation-duration:.001ms;animation-iteration-count:1}}@media (width<=420px){.twister-wheel-wrap{width:292px;padding:15px}.twister-wheel-label{display:none}.twister-wheel-center{width:66px;height:66px}.twister-settings{grid-template-columns:1fr}.twister-history li{grid-template-columns:28px 1fr}.twister-history li i{grid-column:2}}.typing-hands{border-top:1px solid #d5dceb;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.2rem;max-width:680px;margin:1rem auto 0;padding-top:.9rem;display:grid}.typing-hand-map{gap:.45rem;min-width:0;display:grid}.typing-hand-map>strong{color:#65718a;text-align:center;font-size:.68rem;font-weight:600}.typing-hand-shape{justify-content:center;align-items:flex-end;gap:.35rem;height:118px;padding:0 1rem 20px;display:flex;position:relative}.typing-hand-shape>b{z-index:0;background:linear-gradient(145deg,#f8faff,#dfe5f2);border:1px solid #bfc9df;border-radius:42px 42px 20px 20px;width:72%;height:66px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 3px 7px #ffffffb8,0 8px 18px #3743631a}.typing-finger{--finger-color:#7b9ee9;z-index:1;border:2px solid color-mix(in srgb,var(--finger-color) 70%,#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--finger-color) 34%,#fff),color-mix(in srgb,var(--finger-color) 16%,#e8edf7));opacity:.72;border-radius:19px 19px 12px 12px;justify-content:center;align-items:flex-start;width:34px;height:82px;padding-top:.38rem;transition:transform .18s,opacity .18s,box-shadow .18s;display:flex;position:relative;box-shadow:inset 0 4px 8px #ffffff8a}.typing-finger:nth-child(2){height:96px}.typing-finger:nth-child(3){height:106px}.typing-finger:nth-child(4){height:91px}.typing-finger.is-thumb{transform-origin:bottom;height:58px;transform:rotate(24deg)}.typing-hand-map.is-right .typing-finger.is-thumb{transform:rotate(-24deg)}.typing-finger.is-left-pinky,.typing-finger.is-right-pinky{--finger-color:#ee8fa4}.typing-finger.is-left-ring,.typing-finger.is-right-ring{--finger-color:#e6b847}.typing-finger.is-left-middle,.typing-finger.is-right-middle{--finger-color:#43bea4}.typing-finger.is-left-index,.typing-finger.is-right-index{--finger-color:#6595ec}.typing-finger.is-thumb{--finger-color:#8b6ce8}.typing-finger>i{color:#33405b;background:#fff;border-radius:8px;place-items:center;width:25px;height:25px;font-size:.61rem;font-style:normal;font-weight:600;display:grid;box-shadow:0 2px 6px #232d4e1f}.typing-finger.is-active{z-index:3;opacity:1;box-shadow:0 0 0 5px color-mix(in srgb,var(--finger-color) 19%,transparent),0 0 25px color-mix(in srgb,var(--finger-color) 48%,transparent);transform:translateY(-10px)}.typing-finger.is-thumb.is-active{transform:translateY(-10px)rotate(24deg)}.typing-hand-map.is-right .typing-finger.is-thumb.is-active{transform:translateY(-10px)rotate(-24deg)}.typing-finger.is-active>i{background:var(--finger-color);color:#fff}.typing-hands-hint{color:#68748b;text-align:center;margin:.55rem 0 .05rem;font-size:.64rem}@media (width<=760px){.typing-hands{gap:.55rem;margin-top:.7rem;padding-top:.7rem}.typing-hand-shape{gap:.18rem;height:82px;padding:0 .2rem 14px}.typing-hand-shape>b{width:82%;height:44px}.typing-finger{border-radius:13px 13px 8px 8px;width:22px;height:54px;padding-top:.2rem}.typing-finger:nth-child(2){height:64px}.typing-finger:nth-child(3){height:71px}.typing-finger:nth-child(4){height:61px}.typing-finger.is-thumb{height:39px}.typing-finger>i{border-radius:5px;width:16px;height:17px;font-size:.45rem}.typing-finger.is-active{transform:translateY(-7px)}.typing-finger.is-thumb.is-active{transform:translateY(-7px)rotate(24deg)}.typing-hand-map.is-right .typing-finger.is-thumb.is-active{transform:translateY(-7px)rotate(-24deg)}.typing-hands-hint{font-size:.56rem}}.typing-keyboard-stage{grid-template-columns:82px minmax(0,1fr) 82px;grid-template-areas:"left keys right";align-items:end;gap:.25rem;display:grid}.typing-keyboard-keys{grid-area:keys;min-width:0}.typing-hand-map.is-left{grid-area:left}.typing-hand-map.is-right{grid-area:right}.typing-keyboard-stage .typing-hand-map{align-self:end}.typing-keyboard-stage .typing-hand-map>strong{font-size:.58rem}.typing-keyboard-stage .typing-hand-shape{gap:.12rem;height:145px;padding:0 0 17px}.typing-keyboard-stage .typing-hand-shape>b{width:92%;height:72px}.typing-keyboard-stage .typing-finger{border-width:1px;width:16px;height:86px;padding-top:.2rem}.typing-keyboard-stage .typing-finger:nth-child(2){height:103px}.typing-keyboard-stage .typing-finger:nth-child(3){height:111px}.typing-keyboard-stage .typing-finger:nth-child(4){height:96px}.typing-keyboard-stage .typing-finger.is-thumb{width:19px;height:55px}.typing-keyboard-stage .typing-finger>i{border-radius:5px;width:13px;height:18px;font-size:.42rem}.typing-keyboard-stage .typing-key-row i{width:43px}.typing-keyboard-stage .typing-key-row.is-space i{width:45%}.typing-keyboard-stage+.typing-hands-hint{margin-top:.7rem}@media (width<=760px){.typing-keyboard-stage{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"keys keys""left right";gap:.3rem .55rem}.typing-keyboard-stage .typing-keyboard-keys{border-bottom:1px solid #d5dceb;margin-bottom:.2rem;padding-bottom:.6rem}.typing-keyboard-stage .typing-key-row i{width:calc(8.33333vw - 5.41667px);max-width:45px}.typing-keyboard-stage .typing-hand-shape{gap:.18rem;height:82px;padding:0 .2rem 14px}.typing-keyboard-stage .typing-hand-shape>b{width:82%;height:44px}.typing-keyboard-stage .typing-finger{border-width:2px;width:22px;height:54px;padding-top:.2rem}.typing-keyboard-stage .typing-finger:nth-child(2){height:64px}.typing-keyboard-stage .typing-finger:nth-child(3){height:71px}.typing-keyboard-stage .typing-finger:nth-child(4){height:61px}.typing-keyboard-stage .typing-finger.is-thumb{width:22px;height:39px}.typing-keyboard-stage .typing-finger>i{width:16px;height:17px;font-size:.45rem}}@media (width>=761px){.typing-keyboard-stage{grid-template-columns:100px minmax(0,1fr) 100px}.typing-keyboard-stage .typing-key-row i{width:40px}.typing-keyboard-stage .typing-hand-shape{gap:.16rem;height:158px}.typing-keyboard-stage .typing-hand-shape>b{background:#ffffff47;border:2px solid #929eb8;width:94%;height:78px}.typing-keyboard-stage .typing-finger{border:2px solid var(--finger-color);background:color-mix(in srgb,var(--finger-color) 8%,transparent);width:18px;box-shadow:none;opacity:1}.typing-keyboard-stage .typing-finger.is-thumb{width:21px}.typing-keyboard-stage .typing-finger>i{display:none}.typing-keyboard-stage .typing-finger.is-active{background:linear-gradient(180deg,color-mix(in srgb,var(--finger-color) 82%,#fff),var(--finger-color));box-shadow:0 0 0 5px color-mix(in srgb,var(--finger-color) 20%,transparent),0 0 28px color-mix(in srgb,var(--finger-color) 58%,transparent)}}.typing-keyboard-stage{display:block;position:relative}.typing-keyboard-stage .typing-keyboard-keys{z-index:1;position:relative}.typing-hand-sprite-guide{z-index:2;pointer-events:none;position:absolute;inset:0}.typing-desktop-hand-sprite{filter:drop-shadow(0 10px 14px #2b365a2e);opacity:.88;background-image:url(/assets/tools/typing-hands-sprite.svg);background-repeat:no-repeat;background-size:1000% 100%;width:190px;height:135px;transition:left .18s,right .18s,transform .18s;position:absolute;bottom:-8px}.typing-hand-sprite-guide[data-active-hand=left] .typing-desktop-hand-sprite{left:20%;transform:translate(-50%)rotate(-2deg)}.typing-hand-sprite-guide[data-active-hand=right] .typing-desktop-hand-sprite{right:20%;transform:translate(50%)rotate(2deg)}.typing-hand-sprite-guide[data-active-hand=both] .typing-desktop-hand-sprite{left:50%;transform:translate(-50%)}.typing-desktop-hand-sprite[data-hand-frame=left-pinky]{background-position:0 0}.typing-desktop-hand-sprite[data-hand-frame=left-ring]{background-position:11.111% 0}.typing-desktop-hand-sprite[data-hand-frame=left-middle]{background-position:22.222% 0}.typing-desktop-hand-sprite[data-hand-frame=left-index]{background-position:33.333% 0}.typing-desktop-hand-sprite[data-hand-frame=thumb]{background-position:44.444% 0}.typing-desktop-hand-sprite[data-hand-frame=right-index]{background-position:66.666% 0}.typing-desktop-hand-sprite[data-hand-frame=right-middle]{background-position:77.777% 0}.typing-desktop-hand-sprite[data-hand-frame=right-ring]{background-position:88.888% 0}.typing-desktop-hand-sprite[data-hand-frame=right-pinky]{background-position:100% 0}.typing-mobile-hand-sprite,.typing-desktop-technique,.typing-mobile-technique{display:none}@media (width<=760px){.typing-keyboard-stage .typing-keyboard-keys{border:0;margin:0;padding:0}.typing-hand-sprite-guide{border-top:1px solid #d5dceb;place-items:center;margin-top:.25rem;padding-top:.45rem;display:grid;position:relative;inset:auto}.typing-desktop-hand-sprite{display:none}.typing-mobile-hand-sprite{filter:drop-shadow(0 8px 12px #2b365a26);background-image:url(/assets/tools/typing-mobile-hands-sprite.svg);background-repeat:no-repeat;background-size:300% 100%;width:144px;height:102px;display:block}.typing-mobile-hand-sprite[data-thumb=left]{background-position:0 0}.typing-mobile-hand-sprite[data-thumb=right]{background-position:50% 0}.typing-mobile-hand-sprite[data-thumb=both]{background-position:100% 0}.typing-mobile-technique{color:#647087;text-align:center;max-width:270px;margin:.1rem auto .2rem;font-size:.58rem;line-height:1.45;display:block}.typing-keyboard-stage+.typing-hands-hint{margin-top:.35rem}}.typing-hand-sprite-guide{pointer-events:none;position:static;inset:auto}.typing-key-row i{position:relative}.typing-key-row i.is-next{z-index:5}.typing-key-pointer.typing-desktop-hand-sprite{z-index:6;filter:drop-shadow(0 5px 8px #2b365a1f);opacity:.85;width:84px;height:89px;transition:none;display:block;bottom:auto;right:auto;transform:none}.typing-key-pointer[data-hand-frame=left-pinky]{top:4px;left:calc(50% - 16px)}.typing-key-pointer[data-hand-frame=left-ring]{top:13px;left:calc(50% - 25px)}.typing-key-pointer[data-hand-frame=left-middle]{top:20px;left:calc(50% - 34px)}.typing-key-pointer[data-hand-frame=left-index]{top:11px;left:calc(50% - 42px)}.typing-key-pointer[data-hand-frame=thumb]{top:-10px;left:calc(50% - 54px)}.typing-key-pointer[data-hand-frame=right-index]{top:11px;left:calc(50% - 42px)}.typing-key-pointer[data-hand-frame=right-middle]{top:20px;left:calc(50% - 50px)}.typing-key-pointer[data-hand-frame=right-ring]{top:13px;left:calc(50% - 59px)}.typing-key-pointer[data-hand-frame=right-pinky]{top:4px;left:calc(50% - 68px)}@media (width<=760px){.typing-key-pointer.typing-desktop-hand-sprite{display:none}.typing-hand-sprite-guide{position:relative}.typing-mobile-hand-sprite{opacity:.7;width:118px;height:84px}}
