.tw-btn{font-family:var(--font-sans);font-weight:var(--fw-semibold);letter-spacing:-.01em;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5em;line-height:1;text-decoration:none;display:inline-flex}.tw-btn:active{transform:translateY(1px)}.tw-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.tw-btn[disabled]{background:var(--surface-sunken);color:var(--text-disabled);opacity:1;cursor:not-allowed;pointer-events:none;border-color:#0000}.tw-btn--sm{height:36px;padding:0 16px;font-size:14px}.tw-btn--md{height:44px;padding:0 22px;font-size:15px}.tw-btn--lg{height:52px;padding:0 30px;font-size:16px}.tw-btn--block{width:100%}.tw-btn--icon{aspect-ratio:1;padding:0}.tw-btn--icon svg{width:1.15em;height:1.15em}.tw-btn--primary{background:var(--action);color:var(--action-ink)}.tw-btn--primary:hover{background:var(--action-hover)}.tw-btn--accent{background:var(--green-500);color:var(--text-on-accent)}.tw-btn--accent:hover{background:var(--green-400)}.tw-btn--secondary{color:var(--text-primary);-webkit-backdrop-filter:var(--blur-glass);backdrop-filter:var(--blur-glass);background:#ecedf080;border-color:#0c0d100f}.tw-btn--secondary:hover{background:#ecedf0bd;border-color:#0c0d1017}.tw-mist--dark .tw-btn--secondary,.tw-on-dark .tw-btn--secondary{background:#ffffffe0;border-color:#fff9}.tw-mist--dark .tw-btn--secondary:hover,.tw-on-dark .tw-btn--secondary:hover{background:#fffffff7;border-color:#ffffffd9}.tw-btn--glass{color:var(--text-on-dark);-webkit-backdrop-filter:var(--blur-glass);backdrop-filter:var(--blur-glass);background:#ffffff47;border-color:#fff6;box-shadow:inset 0 1px #fff6,0 4px 14px #00000029}.tw-btn--glass:hover{background:#ffffff6b;border-color:#ffffff8c}.tw-btn--outline{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.tw-btn--outline:hover{background:var(--surface-subtle);border-color:var(--text-muted)}.tw-btn--destructive{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 22%, transparent)}.tw-btn--destructive:hover{background:color-mix(in srgb, var(--danger) 20%, transparent);border-color:color-mix(in srgb, var(--danger) 34%, transparent)}.tw-btn--ghost{color:var(--text-primary);background:0 0}.tw-btn--ghost:hover{background:var(--surface-subtle)}.tw-btn--compact.tw-btn--sm{height:28px;padding:0 12px;font-size:13px}.tw-btn--compact.tw-btn--md{height:32px;padding:0 14px;font-size:14px}.tw-btn--compact.tw-btn--lg{height:36px;padding:0 18px;font-size:14px}.tw-btn--compact.tw-btn--icon{padding:0}.tw-btn__icon{justify-content:center;align-items:center;width:1.15em;height:1.15em;display:inline-flex}
.tw-backlink{font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);color:var(--text-primary);align-items:center;gap:7px;padding-block:8px;text-decoration:none;display:inline-flex}.tw-backlink:before{content:"←";transition:transform var(--dur-base) var(--ease-out)}.tw-backlink:hover{text-underline-offset:4px;text-decoration:underline}.tw-backlink:hover:before{transform:translate(-2px)}
.tw-badge{font-family:var(--font-sans);font-weight:var(--fw-medium);border-radius:var(--radius-pill);letter-spacing:-.01em;border:1px solid #0000;align-items:center;gap:6px;padding:5px 11px;font-size:13px;line-height:1;display:inline-flex}.tw-badge__dot{border-radius:var(--radius-pill);background:currentColor;width:6px;height:6px}.tw-badge--neutral{background:var(--surface-glass);color:var(--text-secondary);border-color:var(--border-glass);-webkit-backdrop-filter:var(--blur-glass);backdrop-filter:var(--blur-glass)}.tw-badge--mint{background:var(--green-100);color:var(--green-700)}.tw-badge--lilac{background:var(--lilac-100);color:var(--lilac-700)}.tw-badge--ink{background:var(--ink);color:var(--text-on-dark)}.tw-badge--danger{background:var(--rose-100);color:var(--rose-600)}.tw-badge--outline{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.tw-badge--glass{background:color-mix(in srgb, var(--surface-card) 55%, transparent);color:var(--text-primary);border-color:var(--border-subtle);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px)}
.tw-eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-regular);letter-spacing:var(--ls-label);text-transform:uppercase;background:var(--accent-tint);color:var(--accent-tint-ink);border-radius:2px;align-items:center;gap:8px;padding:4px 8px;display:inline-flex}.tw-eyebrow__index{color:inherit}.tw-eyebrow:after{content:"_";margin-left:calc(-8px - var(--ls-label))}.tw-eyebrow--nocaret:after{content:none}.tw-eyebrow__rule{opacity:.5;background:currentColor;width:28px;height:1px;display:inline-block}
.tw-h{font-family:var(--font-sans);color:var(--text-primary);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);text-wrap:balance}.tw-h--display{font-size:var(--text-display);line-height:var(--text-display--line-height,1.05);letter-spacing:var(--text-display--letter-spacing,-.03em);font-weight:var(--fw-bold)}.tw-h--h1{font-size:clamp(2rem, 1.45rem + 2.4vw, var(--fs-h1));line-height:1.1}.tw-h--h2{font-size:clamp(1.75rem, 1.45rem + 1.4vw, var(--fs-h2));line-height:1.15}.tw-h--h3{font-size:var(--fs-h3);line-height:1.25}.tw-h--h4{font-size:var(--fs-h4);line-height:1.3}.tw-faint{font-weight:var(--fw-light);color:var(--text-secondary)}.tw-mistword{font-weight:inherit;color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-color:var(--lilac-500);background-image:radial-gradient(82% 170% at 2% 72%, var(--green-500) 0%, transparent 52%), radial-gradient(74% 150% at 46% 2%, var(--green-600) 0%, transparent 48%), radial-gradient(96% 185% at 100% 92%, var(--lilac-700) 0%, transparent 56%);background-position:0%;background-size:165% 195%;margin-bottom:-.16em;padding-bottom:.16em;display:inline-block}.tw-mistword--anim{animation:16s ease-in-out infinite alternate tw-mist-drift}@keyframes tw-mist-drift{0%{background-position:0 45%}to{background-position:100% 62%}}@media (prefers-reduced-motion:reduce){.tw-mistword--anim{animation:none}}.tw-text{font-family:var(--font-sans);color:var(--text-primary);line-height:var(--lh-normal)}.tw-text--xs{font-size:var(--fs-caption)}.tw-text--sm{font-size:var(--fs-body-sm)}.tw-text--base{font-size:var(--fs-body)}.tw-text--lg{font-size:var(--fs-body-lg);line-height:var(--lh-relaxed)}.tw-text--xl{font-size:var(--fs-h4);line-height:var(--lh-relaxed)}.tw-text--muted{color:var(--text-muted)}.tw-text--primary{color:var(--text-primary)}.tw-text--w-medium{font-weight:var(--fw-medium)}.tw-text--w-semibold{font-weight:var(--fw-semibold)}
.tw-separator{background:var(--border-subtle);border:0;flex-shrink:0}.tw-separator--horizontal{width:100%;height:1px}.tw-separator--vertical{width:1px;height:100%}
.tw-skeleton{background:var(--surface-subtle);border-radius:var(--radius-sm);animation:tw-skeleton-pulse 1.6s var(--ease-in-out) infinite;display:block}.tw-skeleton--circle{border-radius:var(--radius-pill)}@keyframes tw-skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.tw-skeleton{animation:none}}
.tw-progress{font-family:var(--font-sans);flex-direction:column;gap:6px;display:flex}.tw-progress__meta{justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;display:flex}.tw-progress__label{color:var(--text-secondary);font-weight:var(--fw-medium)}.tw-progress__value{color:var(--text-muted);font-variant-numeric:tabular-nums}.tw-progress__track{background:var(--surface-subtle);border-radius:var(--radius-pill);block-size:8px;overflow:hidden}.tw-progress__fill{background:var(--action);border-radius:var(--radius-pill);block-size:100%;transition:inline-size var(--dur-base) var(--ease-out)}@media (prefers-reduced-motion:reduce){.tw-progress__fill{transition:none}}
