.exercise-card,.workout-card{display:grid;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);text-decoration:none;transition:border-color .12s ease,transform .12s ease}.exercise-card:hover,.workout-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.exercise-card__body,.workout-card__body{display:grid;gap:2px;padding:0 var(--space-2) var(--space-2)}.exercise-card__name{font-size:var(--text-md);font-weight:700}.exercise-card__meta,.workout-card__meta{font-size:var(--text-xs);color:var(--color-text-faint)}.workout-card__name{font-size:var(--text-lg);font-weight:700}.workout-card__summary{font-size:var(--text-sm);color:var(--color-text-muted)}.workout-card__duration{position:absolute;top:var(--space-3);right:var(--space-3);background:#0b1020d1;color:var(--color-text)}.figure{display:block;width:100%;height:100%;overflow:visible}.fig-nofill{fill:none}.fig-floor{stroke:var(--fig-floor);stroke-width:.012}.fig-shadow{fill:var(--fig-shadow)}.fig-f-skin{fill:var(--fig-skin)}.fig-f-skinFar{fill:var(--fig-skinFar)}.fig-f-skinShade{fill:var(--fig-skinShade)}.fig-f-skinLight{fill:var(--fig-skinLight)}.fig-f-lip{fill:var(--fig-lip)}.fig-f-blush{fill:var(--fig-blush)}.fig-f-topLight{fill:var(--fig-topLight)}.fig-f-bottomLight{fill:var(--fig-bottomLight)}.fig-f-trim{fill:var(--fig-trim)}.fig-f-shoeAccent{fill:var(--fig-shoeAccent)}.fig-f-hairLight{fill:var(--fig-hairLight)}.fig-f-hairFade{fill:var(--fig-hairFade)}.fig-f-top{fill:var(--fig-top)}.fig-f-topFar{fill:var(--fig-topFar)}.fig-f-bottom{fill:var(--fig-bottom)}.fig-f-bottomFar{fill:var(--fig-bottomFar)}.fig-f-shoe{fill:var(--fig-shoe)}.fig-f-shoeFar{fill:var(--fig-shoeFar)}.fig-f-sole{fill:var(--fig-sole)}.fig-f-hair{fill:var(--fig-hair)}.fig-f-hairShade{fill:var(--fig-hairShade)}.fig-f-eye{fill:var(--fig-eye)}.fig-f-accent{fill:var(--fig-accent)}.fig-f-prop{fill:var(--fig-prop)}.fig-f-propSoft{fill:var(--fig-propSoft)}.fig-f-iron{fill:var(--fig-iron)}.fig-f-ironLight{fill:var(--fig-ironLight)}.fig-f-foam{fill:var(--fig-foam)}.fig-f-foamLight{fill:var(--fig-foamLight)}.fig-f-band{fill:var(--fig-band)}.fig-s-skin{stroke:var(--fig-skin)}.fig-s-top{stroke:var(--fig-top)}.fig-s-bottom{stroke:var(--fig-bottom)}.fig-s-skinShade{stroke:var(--fig-skinShade)}.fig-s-skinLight{stroke:var(--fig-skinLight)}.fig-s-lip{stroke:var(--fig-lip)}.fig-s-trim{stroke:var(--fig-trim)}.fig-s-shoeAccent{stroke:var(--fig-shoeAccent)}.fig-s-hairLight{stroke:var(--fig-hairLight)}.fig-s-hairFade{stroke:var(--fig-hairFade)}.fig-s-accent{stroke:var(--fig-accent)}.fig-s-eye{stroke:var(--fig-eye)}.fig-s-topLight{stroke:var(--fig-topLight)}.fig-s-bottomLight{stroke:var(--fig-bottomLight)}.fig-s-topFar{stroke:var(--fig-topFar)}.fig-s-bottomFar{stroke:var(--fig-bottomFar)}.fig-s-shoeFar{stroke:var(--fig-shoeFar)}.fig-s-hair{stroke:var(--fig-hair)}.fig-s-hairShade{stroke:var(--fig-hairShade)}.fig-s-prop{stroke:var(--fig-prop)}.fig-s-propSoft{stroke:var(--fig-propSoft)}.fig-s-iron{stroke:var(--fig-iron)}.fig-s-ironLight{stroke:var(--fig-ironLight)}.fig-s-foam{stroke:var(--fig-foam)}.fig-s-foamLight{stroke:var(--fig-foamLight)}.fig-s-band{stroke:var(--fig-band)}.fig-enter{transform-box:fill-box;transform-origin:50% 100%;animation:fig-enter-fade .26s ease-out both,fig-enter-pop .56s cubic-bezier(.34,1.45,.64,1) both;animation:fig-enter-fade .26s ease-out both,fig-enter-pop .56s linear(0,.25 9%,.61 20%,.86 31%,1.01 42%,1.06 51%,1.05 60%,1.02 70%,1 82%,1) both}.fig-leave{pointer-events:none;animation:fig-leave-fade .32s ease-in both}@keyframes fig-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes fig-enter-pop{0%{transform:translateY(1.5%) scale(.92)}to{transform:none}}@keyframes fig-leave-fade{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.fig-enter,.fig-leave{animation:none}.fig-leave{display:none}}.figure--pending{background:radial-gradient(closest-side,rgba(36,48,82,.08),transparent 70%) center 70% / 46% 18% no-repeat;animation:figure-pending 1.4s ease-in-out infinite}@keyframes figure-pending{50%{opacity:.55}}.landing{width:100%;max-width:var(--content-width);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-9);display:grid;gap:var(--space-9)}.hero{display:grid;gap:var(--space-7);align-items:center}.hero__copy{display:grid;gap:var(--space-5)}.eyebrow{color:var(--color-accent-strong);font-weight:700;font-size:var(--text-sm);letter-spacing:.04em}.hero__title{font-size:var(--text-display);font-weight:850;letter-spacing:-.03em}.hero__lead{color:var(--color-text-muted);font-size:var(--text-lg);max-width:52ch}.hero__stage{width:min(100%,440px);justify-self:center;box-shadow:0 30px 80px #ff6a2b26}.features{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.feature{display:grid;gap:var(--space-2);align-content:start}.feature__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent-strong)}.feature__title{font-size:var(--text-lg);font-weight:700}.faq__item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-4)}.faq__item summary{cursor:pointer;font-weight:650}.faq__item p{margin-top:var(--space-2)}@media(min-width:860px){.hero{grid-template-columns:1.1fr .9fr}}.search{position:relative;display:block}.search__icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-faint);pointer-events:none}.search .ui-control{padding-left:2.5rem;padding-right:2.75rem;border-radius:var(--radius-pill)}.search .ui-control::-webkit-search-cancel-button,.search .ui-control::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none}.search__clear{position:absolute;right:6px;top:50%;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--color-surface-3);color:var(--color-text);cursor:pointer;transform:translateY(-50%);animation:search-clear-in var(--duration-base) var(--ease-spring) both}.search__clear .icon{width:16px;height:16px}.search__clear:active{transform:translateY(-50%) scale(.9)}@keyframes search-clear-in{0%{opacity:0;transform:translateY(-50%) scale(.6)}}.muscle-map{--muscle-map-body: #1d2643;--muscle-map-idle: #2e3b5e;--muscle-map-level-1: #7d4433;--muscle-map-level-2: #b85332;--muscle-map-level-3: var(--color-accent);display:grid;justify-items:center;gap:var(--space-3);width:100%;max-width:300px;margin:0 auto}.muscle-map--sm{max-width:180px}.muscle-map--lg{max-width:420px}.muscle-map__chart{display:block;width:100%;height:auto}.muscle-map__body{fill:var(--muscle-map-body)}.muscle-map__region{fill:var(--muscle-map-idle);transition:fill .16s ease}.muscle-map__region[data-level="1"]{fill:var(--muscle-map-level-1)}.muscle-map__region[data-level="2"]{fill:var(--muscle-map-level-2)}.muscle-map__region[data-level="3"]{fill:var(--muscle-map-level-3)}.muscle-map__caption{fill:var(--color-text-faint);font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.muscle-map--sm .muscle-map__caption{font-size:18px}.muscle-map__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--text-xs)}.muscle-map__legend-item{display:inline-flex;align-items:center;gap:var(--space-2)}.muscle-map__swatch{width:12px;height:12px;border-radius:4px;background:var(--muscle-map-idle)}.muscle-map__swatch[data-level="1"]{background:var(--muscle-map-level-1)}.muscle-map__swatch[data-level="2"]{background:var(--muscle-map-level-2)}.muscle-map__swatch[data-level="3"]{background:var(--muscle-map-level-3)}@media(prefers-reduced-motion:reduce){.muscle-map__region{transition:none}}.muscle-map--lg .muscle-map__caption{font-size:11px}.routine-muscles{display:grid;gap:var(--space-4);justify-items:center}.routine-muscles .section__title{justify-self:start}.routine-muscles__chips{justify-content:center}.variations{list-style:none;margin:0;padding:0 0 var(--space-2);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(132px,148px);gap:var(--space-3);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.variations>li{scroll-snap-align:start}.variation{display:grid;height:100%;color:inherit;text-decoration:none;transition:border-color var(--duration-fast) ease,transform var(--duration-base) var(--ease-spring)}.variation:hover{border-color:var(--color-border-strong)}.variation:active{transform:scale(.97)}.variation[aria-current=page]{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.variation__stage{border-radius:0}.variation__text{display:grid;gap:2px;padding:var(--space-2) var(--space-3) var(--space-3);font-size:var(--text-sm)}.variation__text .faint{font-size:var(--text-xs)}.breadcrumbs{display:flex;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-faint)}.breadcrumbs a{color:var(--color-text-muted);text-decoration:none}.breadcrumbs a:hover{color:var(--color-text)}.exercise-detail{display:grid;gap:var(--space-7)}.exercise-detail__media{display:grid;gap:var(--space-3);justify-items:center;align-content:start}.exercise-detail__media .stage{width:100%;max-width:520px}.exercise-detail__info{display:grid;gap:var(--space-6);align-content:start}.steps{list-style:none;counter-reset:step;padding:0;display:grid;gap:var(--space-3)}.steps li{counter-increment:step;display:grid;grid-template-columns:2rem 1fr;gap:var(--space-3);align-items:start}.steps li:before{content:counter(step);display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:700;font-size:var(--text-sm)}.tips{padding-left:var(--space-5);display:grid;gap:var(--space-2);color:var(--color-text-muted)}@media(min-width:860px){.exercise-detail{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.exercise-detail__media{position:sticky;top:calc(var(--header-height) + var(--space-6))}}.workout-filters__panel{gap:var(--space-4);animation:item-enter var(--duration-base) var(--ease-out) both}.filter-group{display:grid;gap:var(--space-2)}.filter-group__label{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint)}.workout-shelf{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,300px);gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-2);scroll-snap-type:x mandatory;scrollbar-width:none}.workout-shelf>*{scroll-snap-align:start}.workout-shelf::-webkit-scrollbar{display:none}.section__head button.section__link{border:0;background:none;padding:0;font:inherit;cursor:pointer}.routine-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin:0}.routine-stats div{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-2);text-align:center}.routine-stats dt{font-size:var(--text-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em}.routine-stats dd{margin:0;font-size:var(--text-lg);font-weight:700;font-variant-numeric:tabular-nums}.routine-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}.routine-list__item{display:flex;align-items:center;gap:var(--space-3)}.routine-list__index{width:1.75rem;flex:none;text-align:center;font-weight:700;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.routine-list__link{flex:1;display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);text-decoration:none}a.routine-list__link:hover{border-color:var(--color-border-strong)}.routine-list__thumb{width:56px;height:56px;flex:none;border-radius:var(--radius-sm)}.routine-list__text{display:grid;min-width:0}.routine-list__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.routine-list__target{font-size:var(--text-sm);color:var(--color-text-muted)}.install-button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px 0 11px;border:1px solid rgba(255,134,80,.45);border-radius:var(--radius-pill);background:linear-gradient(180deg,#ff6a2b38,#ff6a2b1a);color:var(--color-accent-strong);font:inherit;font-size:var(--text-sm);font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:inset 0 1px #ffffff14;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease,transform var(--duration-base) var(--ease-spring);animation:install-in var(--duration-slow) var(--ease-spring) both}.install-button .icon{width:17px;height:17px}.install-button:hover{border-color:var(--color-accent);background:linear-gradient(180deg,#ff6a2b52,#ff6a2b29)}.install-button:active{transform:scale(.94)}.install-button:focus-visible{outline:none;box-shadow:var(--focus-ring)}@keyframes install-in{0%{opacity:0;transform:scale(.8)}}.install-guide__hero{display:flex;align-items:center;gap:var(--space-4)}.install-guide__hero img{flex:none;border-radius:16px;box-shadow:var(--shadow-2)}.install-guide__steps{margin:0;padding:0;list-style:none;counter-reset:install;display:grid;gap:var(--space-3)}.install-guide__steps li{counter-increment:install;display:grid;grid-template-columns:28px 1fr;gap:var(--space-3);align-items:start;color:var(--color-text-muted);line-height:1.5}.install-guide__steps li:before{content:counter(install);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:800;font-size:var(--text-sm)}.install-guide__glyph{display:inline-grid;place-items:center;width:24px;height:24px;margin:0 2px;border-radius:6px;background:var(--color-surface-3);color:var(--color-text);vertical-align:middle;font-weight:800}.install-guide__glyph .icon{width:15px;height:15px}@media(max-width:380px){.install-button__label{display:none}.install-button{width:36px;padding:0;justify-content:center}}.shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom))}.shell__header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--space-4);height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) var(--space-4) 0;background:#0b1020db;-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--color-border)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:800;font-size:var(--text-lg);letter-spacing:-.02em;text-decoration:none}.brand-mark{width:30px;height:30px}.shell__nav{display:none;gap:var(--space-1);margin-left:var(--space-4)}.shell__link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);font-weight:600;font-size:var(--text-sm);text-decoration:none}.shell__link:hover{color:var(--color-text)}.shell__link.active{color:var(--color-text);background:var(--color-surface-2)}.shell__actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--color-surface-3);color:var(--color-text);font-weight:700;text-decoration:none}.avatar--lg{flex:none;width:56px;height:56px;font-size:var(--text-xl)}.settings-account{display:flex;align-items:center;gap:var(--space-3)}.avatar__initial{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,var(--color-accent),#ffb056);color:var(--color-accent-contrast);font-weight:800}.avatar img{width:100%;height:100%;object-fit:cover}.shell__main{min-width:0}.shell__footer{display:grid;gap:var(--space-3);max-width:var(--content-width);width:100%;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-7);border-top:1px solid var(--color-border);font-size:var(--text-sm)}.shell__footer a{color:var(--color-text-muted);text-decoration:none;margin-right:var(--space-4)}.shell__footer a:hover{color:var(--color-text)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;height:calc(var(--tabbar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#0b1020f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--color-border)}.tabbar__link{flex:1;display:grid;place-items:center;align-content:center;gap:2px;border:0;background:transparent;color:var(--color-text-faint);font-size:.6875rem;font-weight:600;text-decoration:none;cursor:pointer}.tabbar__link .icon{width:22px;height:22px}.tabbar__link.active{color:var(--color-accent-strong)}.tabbar__link,.shell__link{position:relative}.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-contrast);font-size:.6875rem;font-weight:800;line-height:1;animation:badge-pop .42s cubic-bezier(.34,1.56,.64,1)}.shell__link .nav-badge{margin-left:var(--space-1)}.tabbar__link .nav-badge{position:absolute;top:6px;left:calc(50% + 6px)}@keyframes badge-pop{0%{transform:scale(.4);opacity:0}}@media(min-width:860px){.shell{padding-bottom:0}.shell__nav{display:flex}.tabbar{display:none}.toast-region{bottom:var(--space-6)}}:root{color-scheme:dark;--color-bg: #0b1020;--color-bg-elevated: #0f1629;--color-surface: #141c31;--color-surface-2: #1a2440;--color-surface-3: #22304f;--color-border: #243052;--color-border-strong: #34426a;--color-text: #eef2fb;--color-text-muted: #a5afc6;--color-text-faint: #717d99;--color-accent: #ff6a2b;--color-accent-strong: #ff8650;--color-accent-soft: rgba(255, 106, 43, .14);--color-accent-contrast: #210c02;--color-rest: #38bdf8;--color-rest-soft: rgba(56, 189, 248, .14);--color-success: #34d399;--color-success-soft: rgba(52, 211, 153, .14);--color-danger: #f87171;--color-danger-soft: rgba(248, 113, 113, .14);--color-warning: #fbbf24;--color-stage: #f3f6fb;--color-stage-shade: #e4e9f2;--color-figure-shirt: #f97316;--focus-ring: 0 0 0 3px rgba(255, 134, 80, .5);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3.5rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 26px;--radius-pill: 999px;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-display: clamp(2.25rem, 6vw, 3.75rem);--shadow-1: 0 1px 2px rgba(0, 0, 0, .35);--shadow-2: 0 12px 32px rgba(0, 0, 0, .35);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .14s;--duration-base: .26s;--duration-slow: .42s;--header-height: 60px;--tabbar-height: 64px;--content-width: 1120px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh}h1,h2,h3,h4,p,ol,ul,figure{margin:0}h1,h2,h3{line-height:1.15;letter-spacing:-.01em}a{color:inherit}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--color-text-muted)}.faint{color:var(--color-text-faint)}.tabular{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text);font-weight:600;font-size:var(--text-sm);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-spring)}.btn:active:not(:disabled){transform:scale(.95);transition-duration:90ms}.btn--primary:hover{box-shadow:0 8px 24px -10px #ff6a2bb3}.btn:hover{background:var(--color-surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.btn--primary:hover{background:var(--color-accent-strong)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted)}.btn--ghost:hover{background:var(--color-surface-2);color:var(--color-text)}.btn--outline{background:transparent}.btn--danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover{background:var(--color-danger-soft)}.btn--lg{min-height:56px;padding:0 var(--space-7);font-size:var(--text-lg)}.btn--block{width:100%}.btn--split{justify-content:space-between}.btn--icon{width:44px;padding:0}.btn--small{min-height:34px;padding:0 var(--space-3);font-size:var(--text-xs)}.icon{width:1.25em;height:1.25em;flex:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.card--flush{padding:0;overflow:hidden}.stage{position:relative;background:radial-gradient(120% 90% at 50% 20%,#ffffff 0%,var(--color-stage) 55%,var(--color-stage-shade) 100%);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1}.stage--wide{aspect-ratio:4 / 3}.stage .figure{position:absolute;top:4%;right:4%;bottom:4%;left:4%;width:92%;height:92%}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:transparent;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;text-decoration:none;cursor:pointer;white-space:nowrap}.chip[aria-pressed=true],.chip--active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-strong)}.chip--static{cursor:default}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip-row--scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:var(--space-1)}.chip-row--scroll::-webkit-scrollbar{display:none}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-3);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-strong)}.page{width:100%;max-width:var(--content-width);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-9);display:grid;gap:var(--space-7)}.page--narrow{max-width:760px}.page__header{display:grid;gap:var(--space-2)}.page__title{font-size:var(--text-3xl);font-weight:800}.page__lead{color:var(--color-text-muted);font-size:var(--text-lg);max-width:60ch}.section{display:grid;gap:var(--space-4)}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.section__title{font-size:var(--text-xl);font-weight:700}.section__link{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:600;text-decoration:none}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.grid--wide{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.list{list-style:none;padding:0;display:grid;gap:var(--space-3)}.row{display:flex;align-items:center;gap:var(--space-3)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.stack{display:grid;gap:var(--space-3)}.stack--tight{gap:var(--space-1)}.ui-field{display:grid;gap:var(--space-1);min-width:0}.ui-field__label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted)}.ui-control{width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text)}textarea.ui-control{min-height:88px;padding:var(--space-3);resize:vertical}.ui-control:focus-visible{border-color:var(--color-accent)}.segmented{display:inline-flex;padding:3px;border-radius:var(--radius-pill);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong)}.segmented button{min-height:34px;padding:0 var(--space-4);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-muted);font-weight:600;font-size:var(--text-sm);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--color-surface-3);color:var(--color-text)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-bg-elevated)}.stepper button{width:40px;height:40px;border:0;background:transparent;color:var(--color-text);font-size:var(--text-lg);cursor:pointer;border-radius:var(--radius-pill)}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper output{min-width:64px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.switch{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;cursor:pointer}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:48px;height:28px;border-radius:var(--radius-pill);background:var(--color-surface-3);position:relative;cursor:pointer;flex:none;transition:background .12s ease}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--color-text);transition:transform .12s ease}.switch input:checked{background:var(--color-accent)}.switch input:checked:after{transform:translate(20px)}.empty{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-muted)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:var(--text-sm)}.notice--error{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-text)}.notice--success{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-text)}.prose{display:grid;gap:var(--space-4);color:var(--color-text-muted);max-width:72ch}.prose h2{color:var(--color-text);font-size:var(--text-xl);margin-top:var(--space-4)}.prose ul,.prose ol{padding-left:var(--space-6);display:grid;gap:var(--space-2)}.prose a{color:var(--color-accent-strong)}.dialog{border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);color:var(--color-text);padding:0;width:min(560px,calc(100vw - 2rem));max-height:min(86dvh,760px)}.dialog::backdrop{background:#03060fb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog__body{display:grid;gap:var(--space-4);padding:var(--space-6)}.dialog__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.dialog__title{font-size:var(--text-xl);font-weight:700}.toast-region{position:fixed;left:50%;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-4));transform:translate(-50%);display:grid;gap:var(--space-2);z-index:60;width:min(420px,calc(100vw - 2rem));pointer-events:none}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-bg);font-weight:600;font-size:var(--text-sm);box-shadow:var(--shadow-2);text-align:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-surface-3);border-top-color:var(--color-accent);animation:spin .8s linear infinite}.center{display:grid;place-items:center;min-height:40vh}@keyframes spin{to{transform:rotate(360deg)}}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}}@keyframes item-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}}.page{animation:page-enter var(--duration-slow) var(--ease-out) both}.grid>*,.list>*{animation:item-enter var(--duration-slow) var(--ease-out) both}.grid>:nth-child(2),.list>:nth-child(2){animation-delay:40ms}.grid>:nth-child(3),.list>:nth-child(3){animation-delay:80ms}.grid>:nth-child(4),.list>:nth-child(4){animation-delay:.12s}.grid>:nth-child(5),.list>:nth-child(5){animation-delay:.16s}.grid>:nth-child(n+6),.list>:nth-child(n+6){animation-delay:.2s}.card{transition:border-color var(--duration-fast) ease,transform var(--duration-base) var(--ease-out)}.dialog[open] .dialog__body{animation:item-enter var(--duration-base) var(--ease-spring) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
