@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=IBM+Plex+Sans:wght@400;600&family=IBM+Plex+Serif:wght@500&family=Inter:wght@400;600&family=Lora:wght@500&family=Merriweather:wght@700&family=Nunito:wght@400;600&family=Playfair+Display:wght@600&family=Plus+Jakarta+Sans:wght@400;600&family=Source+Sans+3:wght@400;600&family=Source+Serif+4:wght@600&family=Work+Sans:wght@400;600&display=swap";.login-page{display:flex;justify-content:center;padding:var(--space-lg)}.login-form{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl);background-color:var(--color-surface);box-shadow:var(--shadow-md)}.login-form__group{display:flex;flex-direction:column;gap:var(--space-xs)}.login-form__input{padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text)}.login-form__submit{padding:var(--space-sm);border-radius:var(--radius-pill);border:none;background:var(--color-primary);color:var(--color-text-inverse);cursor:pointer;transition:transform var(--transition-snappy),opacity var(--transition-snappy)}.login-form__submit:hover{transform:translateY(-1px)}.login-form__footer{text-align:center;font-size:14px;color:var(--color-text-soft)}.login-form__error{color:var(--color-error);font-size:14px}.login-form__submit:disabled{opacity:.7;cursor:wait}.info-hint{position:relative;display:inline-flex;align-items:center}.info-hint__button{width:22px;height:22px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-accent);font-weight:700;font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-snappy),border-color var(--transition-snappy),background var(--transition-snappy),color var(--transition-snappy)}.info-hint__button:hover,.info-hint__button:focus-visible{border-color:var(--color-accent);background:var(--color-secondary-hover);color:var(--color-text);outline:none;transform:translateY(-1px)}.info-hint__text{position:absolute;top:calc(100% + 6px);right:0;max-width:260px;min-width:200px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.85rem;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity var(--transition-snappy),transform var(--transition-snappy);z-index:50}.info-hint[data-open=true] .info-hint__text{opacity:1;pointer-events:auto;transform:translateY(0)}.info-hint--header{position:absolute;top:var(--space-sm);right:var(--space-sm)}.songbook-new__form{margin-top:var(--space-xs);max-width:420px;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg)}.songbook-new__field label{display:flex;flex-direction:column;gap:var(--space-xs);font-weight:600}.songbook-new__field input{padding:var(--space-sm) calc(var(--space-sm) + 2px);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);font-size:16px;font-weight:400;background:var(--color-surface);box-shadow:var(--shadow-sm);transition:border-color var(--transition-snappy),box-shadow var(--transition-snappy);margin-bottom:var(--space-xs)}.songbook-new__field input:disabled{opacity:.6}.songbook-new__field input:focus{outline:none;border-color:var(--color-focus-ring);box-shadow:var(--shadow-md)}.songbook-new__field input::placeholder{color:var(--color-text-soft)}.songbook-new__help{font-size:14px;font-weight:400;color:var(--color-text-muted)}.songbook-new__preview{font-size:13px;color:var(--color-text-soft)}.songbook-new__error{margin:0;font-size:15px;color:var(--color-error)}.songbook-new__actions{margin-top:var(--space-md);display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end}.songbook-new__actions button{padding:calc(var(--space-sm) - 2px) calc(var(--space-md));border-radius:var(--radius-pill);border:none;font-size:16px;font-weight:600;background:var(--color-primary);color:var(--color-text-inverse);cursor:pointer;transition:transform .12s ease,opacity .12s ease}.songbook-new__primary{background:var(--color-primary);color:var(--color-text-inverse)}.songbook-new__secondary{background:var(--color-secondary);color:var(--color-text)}.songbook-new__secondary:hover:not(:disabled),.songbook-new__secondary:focus-visible{background:var(--color-secondary-hover)}.songbook-new__actions button:disabled{cursor:wait;opacity:.7}.songbook-new__actions button:not(:disabled):hover{transform:translateY(-1px)}.songbook-detail{display:flex;flex-direction:column;gap:var(--space-lg)}.songbook-detail .page__header{align-items:flex-start}.songbook-detail .page__header-text{display:flex;flex-direction:column;gap:var(--space-xs)}.songbook-detail .page__subtitle{margin:0;font-size:.95rem;color:var(--color-text-muted)}.songbook-detail .page__notice{margin-bottom:var(--space-md)}.songbook-detail__section{box-sizing:border-box;border-radius:var(--radius-md);border:1px solid var(--color-border);padding:calc(var(--space-md) + var(--space-xs)) var(--space-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-md)}.songbook-detail__heading{margin:0;font-size:1.25rem;font-weight:700;color:var(--color-text)}.songbook-detail__message{margin:0;color:var(--color-text-muted);font-size:.95rem}.songbook-detail__message--error{color:var(--color-error)}.songbook-detail__song-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.songbook-detail__song{display:flex;flex-direction:column;gap:calc(var(--space-xs) / 2);padding:var(--space-sm) calc(var(--space-sm) + var(--space-xs) / 2);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);background:var(--color-surface-alt)}.songbook-detail__song-toggle{border:none;background:none;padding:0;margin:0;text-align:left;color:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer}.songbook-detail__song-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:4px}.songbook-detail__song-title{font-weight:600;color:var(--color-text)}.songbook-detail__song-melody{font-size:.9rem;color:var(--color-text-soft)}.songbook-detail__toolbar{margin-top:var(--space-sm);justify-content:flex-start;gap:var(--space-sm)}.verse-view{border:1px solid var(--color-border-subtle);padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-alt)}.verse-view__meta{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.verse-view__title{margin:0;font-size:1.1rem;color:var(--color-text)}.verse-view__melody{margin:0;font-size:.95rem;color:var(--color-text-soft)}.verse-view__content{display:grid;gap:var(--space-sm);color:var(--color-text);line-height:var(--verse-line-height, 1.5);font-size:var(--verse-font-size, 1.05rem)}.verse-view[data-size=size1]{--verse-font-size: .95rem;--verse-line-height: 1.4}.verse-view[data-size=size2]{--verse-font-size: 1.05rem;--verse-line-height: 1.5}.verse-view[data-size=size3]{--verse-font-size: 1.2rem;--verse-line-height: 1.6}.font-scaler{position:relative;display:inline-flex;align-items:center}.font-scaler__trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-text);font-weight:600;font-size:.9rem;cursor:pointer;transition:background var(--transition-snappy),border-color var(--transition-snappy),transform var(--transition-snappy),color var(--transition-snappy)}.font-scaler__trigger:hover,.font-scaler__trigger:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-border-strong);outline:none;transform:translateY(-1px)}.font-scaler__trigger-value{font-weight:600}.font-scaler__menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;padding:6px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:4px;z-index:60}.font-scaler__option{border:none;border-radius:var(--radius-sm);background:transparent;padding:8px 12px;text-align:left;color:var(--color-text);cursor:pointer;transition:background var(--transition-snappy),color var(--transition-snappy)}.font-scaler__option[data-active=true]{background:var(--color-secondary);color:var(--color-text)}.font-scaler__option:hover,.font-scaler__option:focus-visible{background:var(--color-secondary-hover);outline:none}.font-scaler__option[data-size=size1]{font-size:.95rem}.font-scaler__option[data-size=size2]{font-size:1.05rem}.font-scaler__option[data-size=size3]{font-size:1.2rem}.fullscreen-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-text);font-weight:600;font-size:.9rem;cursor:pointer;transition:background var(--transition-snappy),border-color var(--transition-snappy),transform var(--transition-snappy),color var(--transition-snappy)}.fullscreen-toggle:hover,.fullscreen-toggle:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-border-strong);outline:none;transform:translateY(-1px)}.party-page{display:flex;flex-direction:column;gap:var(--space-lg)}.party-page .page__header{align-items:flex-start}.party-page .page__header-text{display:flex;flex-direction:column;gap:var(--space-xs)}.party-page .page__subtitle{margin:0;font-size:.95rem;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;min-width:0}.party-page__header-link{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;white-space:nowrap}.party-page__header-actions{display:inline-flex;align-items:center;gap:4px}.party-page__end-button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-secondary);color:var(--color-text);font-weight:600;padding:8px 18px;cursor:pointer;transition:background var(--transition-snappy),transform var(--transition-snappy),border-color var(--transition-snappy)}.party-page__end-button:hover:not(:disabled),.party-page__end-button:focus-visible:not(:disabled){background:var(--color-secondary-hover);border-color:var(--color-border);transform:translateY(-1px);outline:none}.party-page__end-button:disabled{opacity:.7;cursor:wait}.party-page__header-link-text{font-size:.65rem;color:var(--color-text-muted);max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.party-page__header-copy{margin-left:4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;transition:color var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy)}.party-page__header-copy:hover,.party-page__header-copy:focus-visible{color:var(--color-text);border-color:var(--color-border);background:var(--color-secondary);outline:none}.party-page__header-copy[data-status=copied]{color:var(--color-bg);background:var(--color-accent);border-color:var(--color-accent)}.party-page__copy-icon{display:block}.party-page__content{display:flex;flex-direction:column;gap:var(--space-lg)}.party-page__section{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:calc(var(--space-md) + var(--space-xs)) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.party-page__section--active{gap:var(--space-md)}.party-page__section--start{align-items:flex-start}.party-page__heading{margin:0;font-size:1.3rem;font-weight:700;color:var(--color-text)}.party-page__heading--tight{margin:0}.party-page__start-button{border:none;border-radius:var(--radius-pill);padding:calc(var(--space-sm) - 2px) calc(var(--space-md) + var(--space-sm));font-size:1rem;font-weight:600;background:var(--color-primary);color:var(--color-text-inverse);cursor:pointer;transition:transform var(--transition-snappy),box-shadow var(--transition-snappy),opacity var(--transition-snappy)}.party-page__start-button:hover:not(:disabled),.party-page__start-button:focus-visible:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);outline:none}.party-page__start-button:disabled{opacity:.7;cursor:wait}.party-page__description{margin:0;color:var(--color-text-muted);font-size:.95rem}.party-page__share-row{display:flex;align-items:flex-start;gap:var(--space-sm);flex-wrap:wrap}.party-page__share-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-xs)}.party-page__share-actions .party-page__copy-button{white-space:nowrap}.party-page__share-url{flex:1 1 auto;min-width:220px;padding:var(--space-sm) calc(var(--space-sm) + 4px);border-radius:var(--radius-sm);border:1px dashed var(--color-border-subtle);background:var(--color-surface-alt);font-size:.95rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--color-text);word-break:break-all;-webkit-user-select:all;user-select:all;cursor:text}.party-page__copy-button{padding:calc(var(--space-sm) - 2px) var(--space-md);border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-secondary);color:var(--color-text);font-weight:600;font-size:.95rem;cursor:pointer;transition:background var(--transition-snappy),transform var(--transition-snappy),border-color var(--transition-snappy)}.party-page__copy-button:hover:not(:disabled),.party-page__copy-button:focus-visible:not(:disabled){background:var(--color-secondary-hover);border-color:var(--color-border);transform:translateY(-1px);outline:none}.party-page__copy-button:disabled{opacity:.7;cursor:not-allowed}.party-page__copy-button[data-status=copied]{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.party-page__copy-feedback{margin:0;font-size:.9rem;color:var(--color-text-muted);min-height:1.1rem;opacity:0;transition:opacity var(--transition-snappy)}.party-page__copy-feedback[data-visible=true]{opacity:1}.party-page__copy-feedback[data-status=failed]{color:var(--color-error)}.party-page__copy-feedback[data-status=copied]{color:var(--color-accent)}.party-page__active-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.party-page__active-actions,.party-page__active-controls{display:inline-flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.party-page__cancel-button{display:inline-flex;align-items:center;justify-content:center;padding:calc(var(--space-sm) - 2px) calc(var(--space-md));border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-text);font-weight:600;cursor:pointer;transition:transform var(--transition-snappy),box-shadow var(--transition-snappy),opacity var(--transition-snappy)}.party-page__cancel-button:hover,.party-page__cancel-button:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-xs);outline:none}.party-page__stop-button{display:inline-flex;align-items:center;justify-content:center;padding:calc(var(--space-sm) - 2px) calc(var(--space-md));border-radius:var(--radius-pill);border:1px solid var(--color-error);background:transparent;color:var(--color-error);font-weight:600;transition:transform var(--transition-snappy),box-shadow var(--transition-snappy),opacity var(--transition-snappy);cursor:pointer}.party-page__stop-button:hover,.party-page__stop-button:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-xs);background:#ef444414;outline:none}.party-page__filters{display:flex;justify-content:flex-start;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-sm)}.party-page__request-sort{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-snappy),border-color var(--transition-snappy),background var(--transition-snappy)}.party-page__request-sort[data-active=true],.party-page__request-sort[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent);background:#3b82f61f}.party-page__request-sort:disabled{opacity:.6;cursor:not-allowed}.party-page__request-sort-icon{width:18px;height:18px}.party-page__request-badge{min-width:1.5rem;text-align:center;font-weight:600;font-size:.9rem;border-radius:var(--radius-pill);background:var(--color-secondary);color:var(--color-text);padding:2px 6px}.party-page__toggle{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.95rem;color:var(--color-text-muted)}.party-page__toggle input[type=checkbox]{width:36px;height:20px;border-radius:var(--radius-pill);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-secondary);border:1px solid var(--color-border-subtle);position:relative;cursor:pointer;transition:background var(--transition-snappy),border-color var(--transition-snappy)}.party-page__toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--color-text);transition:transform var(--transition-snappy),background var(--transition-snappy)}.party-page__toggle input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}.party-page__toggle input[type=checkbox]:checked:after{transform:translate(16px);background:var(--color-text-inverse)}.party-page__song-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.party-page__song-controls{display:flex;align-items:center;gap:var(--space-xs)}.party-page__song-request{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-secondary);color:var(--color-text)}.party-page__song-request-icon{width:16px;height:16px}.party-page__song-request-count{font-weight:600;min-width:1.25rem;text-align:center}.party-page__message{margin:0;font-size:.95rem;color:var(--color-text-muted)}.party-page__message--error{color:var(--color-error)}.party-page__message--muted{color:var(--color-text-soft)}.party-page__song{display:flex;flex-direction:column;gap:calc(var(--space-xs) / 2);padding:var(--space-sm) calc(var(--space-sm) + 4px);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-surface-alt)}.party-page__song-title{font-weight:600;color:var(--color-text);font-size:1rem}.party-page__song-header{display:flex;align-items:center;gap:var(--space-sm);justify-content:space-between;flex-wrap:wrap}.party-page__song-toggle{border:none;background:none;padding:0;margin:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;color:inherit;cursor:pointer}.party-page__song-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:4px}.party-page__song-start{display:inline-flex;align-items:center;justify-content:center;padding:calc(var(--space-xs)) calc(var(--space-sm) + 6px);border-radius:var(--radius-pill);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-text-inverse);font-size:.9rem;font-weight:600;cursor:pointer;transition:transform var(--transition-snappy),box-shadow var(--transition-snappy),opacity var(--transition-snappy)}.party-page__song-start:hover,.party-page__song-start:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-xs);outline:none}.party-page__section--fullscreen{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);padding:var(--space-lg);width:min(960px,100%);margin:0 auto}.party-page__section--fullscreen .verse-view{margin-top:var(--space-md)}.party-page--fullscreen{padding:var(--space-md);background:var(--color-page-bg);min-height:100vh;box-sizing:border-box;width:100%;max-width:none}.party-page--fullscreen .party-page__content{width:100%;max-width:none}.party-page__song-status{font-size:.9rem;font-weight:600;color:var(--color-accent);display:inline-flex;align-items:center;gap:6px}.party-page__song-status--done{color:var(--color-text-soft)}.party-page__song-reset{border:none;background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;padding:2px;border-radius:50%;cursor:pointer;transition:color var(--transition-snappy),transform var(--transition-snappy)}.party-page__song-reset:hover,.party-page__song-reset:focus-visible{color:var(--color-text);transform:translateY(-1px);outline:none}.party-page__undo-icon{width:16px;height:16px}.party-page__song-melody{font-size:.9rem;color:var(--color-text-soft)}.host-panel{display:flex;gap:8px;flex-wrap:wrap}.suggestion-queue{list-style:none;padding:0;margin:0}.suggestion-queue__item{display:flex;gap:8px;align-items:center;padding:6px 0}.suggestion-queue__title{flex:1}.song-picker-dialog{border:1px solid var(--color-border);padding:var(--space-md);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.song-picker-dialog__title{margin-top:0;color:var(--color-text)}.song-picker-dialog__actions{margin-top:var(--space-sm)}.host-party{padding:var(--space-lg);display:grid;gap:var(--space-md)}.host-party__empty{border:1px dashed var(--color-border-strong);padding:var(--space-sm);color:var(--color-text-muted);background:var(--color-surface-alt);border-radius:var(--radius-sm)}.party-reader{display:flex;flex-direction:column;gap:var(--space-sm)}.party-reader__header{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-sm)}.party-reader__controls{display:inline-flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.party-reader__body .verse-view{margin:0}.party-reader--fullscreen{position:relative;width:100%;height:100%;background:var(--color-page-bg);padding:var(--space-lg);box-sizing:border-box}.party-reader--fullscreen .verse-view{max-width:960px;margin:0 auto}.guest-party__content{display:flex;flex-direction:column;gap:var(--space-lg);padding:0;max-width:720px;margin:0 auto;width:100%}.guest-party__session-code{color:var(--color-text-muted, #666)}.guest-party__header-link{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%}.guest-party__header-actions{display:inline-flex;align-items:center;gap:4px}.guest-party__header-link-text{font-size:.65rem;color:var(--color-text-muted);max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guest-party__header-copy{margin-left:4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;transition:color var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy)}.guest-party__header-copy:hover,.guest-party__header-copy:focus-visible{color:var(--color-text);border-color:var(--color-border);outline:none;transform:translateY(-1px)}.guest-party__copy-icon{width:15px;height:15px}.guest-party__copy-feedback{margin:4px 0 0;font-size:.85rem;color:var(--color-text-muted)}.guest-party__copy-feedback[data-status=failed]{color:var(--color-error)}.guest-party__copy-feedback[data-status=copied]{color:var(--color-accent)}.guest-party__notice{background:#f1f3ff;border-radius:10px;padding:12px 16px;margin-bottom:16px;border:1px solid #d9dcff}.guest-party__notice--error{background:#fff4f4;border-color:#ffd2d2;color:#8f1b1b}.guest-party__message{text-align:center;color:var(--color-text-muted);margin:0 0 var(--space-md)}.guest-party__hint{margin-top:var(--space-sm);text-align:center;color:var(--color-text-muted)}.guest-party__list{box-sizing:border-box;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-lg);width:100%}.guest-party__list-header{margin-bottom:var(--space-md);color:var(--color-text-muted)}.guest-party__song-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.guest-party__song{display:flex;flex-direction:column;gap:calc(var(--space-xs) / 2);padding:var(--space-sm) calc(var(--space-sm) + 4px);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-surface-alt)}.guest-party__song-toggle{border:none;background:none;padding:0;margin:0;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:inherit;cursor:pointer}.guest-party__song-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:4px}.guest-party__song-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.guest-party__song-actions{display:flex;align-items:center;gap:var(--space-xs)}.guest-party__song-status{font-size:.85rem;font-weight:600;color:var(--color-text-soft);padding:2px 10px;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-surface)}.guest-party__song-title{display:block;margin:0;font-size:1rem;font-weight:600;color:var(--color-text)}.guest-party__song-melody{display:block;margin:0;font-size:.9rem;color:var(--color-text-soft)}.guest-party__request-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-soft);cursor:pointer;transition:color var(--transition-snappy),border-color var(--transition-snappy),background var(--transition-snappy)}.guest-party__request-btn svg{width:18px;height:18px}.guest-party__request-btn:hover:not(:disabled),.guest-party__request-btn:focus-visible:not(:disabled){color:var(--color-accent);border-color:var(--color-accent);outline:none}.guest-party__request-btn[data-active=true]{background:#3b82f61f;color:var(--color-accent);border-color:var(--color-accent)}.guest-party__request-btn:disabled{opacity:.6;cursor:not-allowed}.guest-party__request-count{font-weight:600;min-width:1.25rem;text-align:center}.guest-party__request-feedback{margin:0 0 var(--space-sm);font-size:.9rem;color:var(--color-text-muted)}.guest-party__empty{margin:0;padding:var(--space-xs) 0;color:var(--color-text-muted)}.guest-party__section{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);padding:var(--space-lg)}.guest-party__section--fullscreen{border:none;box-shadow:none;background:transparent;padding:0}.guest-party__actions{text-align:center;margin-top:0}.guest-party--fullscreen{padding:0}@media (max-width: 600px){.guest-party__list{padding:var(--space-md)}}.signup-page{display:flex;justify-content:center;padding:var(--space-lg)}.signup-form{width:100%;max-width:420px}.signup-page__cta{margin-top:16px}.page--font-preview{gap:32px}.page__header--floating{position:relative}.font-preview__content{gap:20px}.settings-page{display:flex;flex-direction:column;gap:var(--space-lg)}.settings-card{box-sizing:border-box;padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-md)}.settings-card__title{margin:0;font-size:1.3rem;font-weight:600;color:var(--color-text)}.settings-card__group{margin:0;padding:0;border:none;display:flex;flex-direction:column;gap:var(--space-sm)}.settings-toggle{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);background:var(--color-surface-alt);cursor:pointer;transition:border-color var(--transition-snappy),box-shadow var(--transition-snappy)}.settings-toggle:hover,.settings-toggle:focus-within{border-color:var(--color-focus-ring);box-shadow:var(--shadow-sm)}.settings-toggle input[type=radio]{width:18px;height:18px;accent-color:var(--color-accent)}.settings-toggle span{font-size:1rem;color:var(--color-text)}.song-create{display:flex;flex-direction:column;gap:var(--space-lg)}.song-create__form{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);box-sizing:border-box;width:min(100%,720px)}.song-create__field{display:flex;flex-direction:column;gap:var(--space-xs)}.song-create__label{font-weight:600;color:var(--color-text)}.song-create__field input,.song-create__field textarea{width:100%;box-sizing:border-box;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border-subtle);font-size:1rem;background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);transition:border-color var(--transition-snappy),box-shadow var(--transition-snappy)}.song-create__field input:focus,.song-create__field textarea:focus{outline:none;border-color:var(--color-focus-ring);box-shadow:var(--shadow-md)}.song-create__field--textarea textarea{min-height:220px;resize:vertical}.song-create__error{margin:0;color:var(--color-error);font-weight:600}.song-create__actions{display:flex;gap:var(--space-sm);align-items:center}.song-create__actions button{padding:calc(var(--space-sm) - 2px) var(--space-md);border-radius:var(--radius-pill);border:none;background:var(--color-primary);color:var(--color-text-inverse);font-weight:600;cursor:pointer;transition:transform var(--transition-snappy),opacity var(--transition-snappy)}.song-create__actions button:disabled{opacity:.7;cursor:wait}.song-create__actions button:hover:not(:disabled){transform:translateY(-1px)}.song-create__secondary{padding:calc(var(--space-sm) - 2px) var(--space-md);border-radius:var(--radius-pill);background:var(--color-secondary);color:var(--color-text);text-decoration:none;font-weight:600;transition:transform var(--transition-snappy),background var(--transition-snappy)}.song-create__secondary:hover,.song-create__secondary:focus-visible{background:var(--color-secondary-hover);transform:translateY(-1px)}:root{color-scheme:light;--font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Merriweather", "Times New Roman", serif;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-pill: 9999px;--shadow-sm: 0 4px 12px rgba(15, 23, 42, .08);--shadow-md: 0 10px 24px rgba(15, 23, 42, .07);--shadow-lg: 0 16px 32px rgba(15, 23, 42, .12);--shadow-xl: 0 24px 48px rgba(15, 23, 42, .18);--color-page-bg: #f5f6fa;--color-surface: #fbfbfb;--color-surface-alt: #f0f0f0;--color-border: #e3e8ef;--color-border-strong: #d0d7e2;--color-border-subtle: #e5e7eb;--color-text: #1f2937;--color-text-muted: #4b5563;--color-text-soft: #6b7280;--color-text-inverse: #ffffff;--color-accent: #7a7a7a;--color-primary: #0f172a;--color-secondary: rgba(15, 23, 42, .08);--color-secondary-hover: rgba(15, 23, 42, .16);--color-focus-ring: #3b82f6;--color-error: #b3261e;--color-error-soft: #c03030;--transition-snappy: .2s ease}html,body{height:100%}body{margin:0;background:var(--color-page-bg);color:var(--color-text);font-family:var(--font-body);overflow-y:auto}:root[data-theme=dark]{color-scheme:dark;--color-page-bg: #161622;--color-surface: #212527;--color-surface-alt: #1f2937;--color-border: rgba(148, 163, 184, .24);--color-border-strong: rgba(148, 163, 184, .4);--color-border-subtle: rgba(148, 163, 184, .18);--color-text: #f4f7ff;--color-text-muted: #cbd5f5;--color-text-soft: #94a3b8;--color-text-inverse: #0b1220;--color-accent: #60a5fa;--color-primary: #2563eb;--color-secondary: rgba(148, 163, 184, .12);--color-secondary-hover: rgba(148, 163, 184, .24);--color-focus-ring: #60a5fa;--color-error: #fca5a5;--color-error-soft: #f87171;--shadow-sm: 0 4px 14px rgba(2, 6, 23, .55);--shadow-md: 0 10px 30px rgba(2, 6, 23, .5);--shadow-lg: 0 20px 48px rgba(2, 6, 23, .5);--shadow-xl: 0 28px 64px rgba(2, 6, 23, .55)}@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;--color-page-bg: #101622;--color-surface: #111827;--color-surface-alt: #1f2937;--color-border: rgba(148, 163, 184, .24);--color-border-strong: rgba(148, 163, 184, .4);--color-border-subtle: rgba(148, 163, 184, .18);--color-text: #f4f7ff;--color-text-muted: #cbd5f5;--color-text-soft: #94a3b8;--color-text-inverse: #0b1220;--color-accent: #60a5fa;--color-primary: #2563eb;--color-secondary: rgba(148, 163, 184, .12);--color-secondary-hover: rgba(148, 163, 184, .24);--color-focus-ring: #60a5fa;--color-error: #fca5a5;--color-error-soft: #f87171;--shadow-sm: 0 4px 14px rgba(2, 6, 23, .55);--shadow-md: 0 10px 30px rgba(2, 6, 23, .5);--shadow-lg: 0 20px 48px rgba(2, 6, 23, .5);--shadow-xl: 0 28px 64px rgba(2, 6, 23, .55)}}.build-info-badge{position:fixed;right:var(--space-md);bottom:var(--space-md);padding:4px 10px;border-radius:var(--radius-pill);background:#0f172abf;color:#fff;font-size:12px;letter-spacing:.02em;box-shadow:var(--shadow-sm);z-index:9999}:root[data-theme=dark] .build-info-badge,:root:not([data-theme]) .build-info-badge{background:#94a3b838;color:var(--color-text)}.page__title-group{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;position:relative}.form-card__header{position:relative;padding-right:36px}.page{box-sizing:border-box;padding:var(--space-lg) var(--space-md) calc(var(--space-lg) * 2);width:min(100%,720px);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-lg);background:var(--color-page-bg);color:var(--color-text);font-family:var(--font-body);border-radius:var(--radius-xl)}@media (min-width: 768px){.page{padding-inline:var(--space-xl)}}.page__header{box-sizing:border-box;position:sticky;top:var(--space-md);background:var(--color-surface);display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);padding-right:calc(var(--space-lg) + 48px);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:10}.page__header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm)}.page__user-menu-wrapper{position:relative}.page__user-avatar{width:42px;height:42px;border-radius:50%;border:2px solid var(--color-border);background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-hover));color:var(--color-text);font-weight:600;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-snappy),border-color var(--transition-snappy),background var(--transition-snappy)}.page__user-avatar:hover,.page__user-avatar:focus-visible{transform:translateY(-1px);border-color:var(--color-accent);outline:none}.page__user-avatar:focus-visible{box-shadow:0 0 0 3px #3b82f659}.page__user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;padding:6px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:4px;z-index:30}.page__user-menu button{width:100%;text-align:left;background:transparent;border:none;padding:10px 12px;border-radius:var(--radius-sm);color:var(--color-text);font-size:.95rem;cursor:pointer;transition:background var(--transition-snappy),color var(--transition-snappy)}.page__user-menu button:hover,.page__user-menu button:focus-visible{background:var(--color-secondary)}.page__user-menu button[data-danger=true]{color:var(--color-error)}.page__user-menu button:disabled{opacity:.7;cursor:wait}.page__user-menu-build{margin:4px 2px 0;padding:8px 8px 4px;border-top:1px solid var(--color-border-subtle);font-size:.8rem;color:var(--color-text-muted);text-align:center}.page__back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border-strong);background:var(--color-secondary);color:var(--color-accent);text-decoration:none;transition:transform var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy)}.page__back:hover,.page__back:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-accent);transform:translate(-2px)}.page__back-icon{font-size:18px;line-height:1}.page__title{margin:0;font-size:clamp(1.75rem,2vw + 1rem,2.4rem);font-weight:700;font-family:var(--font-heading)}.page__content{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-lg)}.song-library{--song-library-header-height: 112px;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-lg)}.song-library .page__content{position:relative}.song-library__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.song-library__toolbar-info{font-size:.95rem;color:var(--color-text-muted);position:relative}.song-library__toolbar-actions{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:nowrap}.toolbar-button{display:inline-flex;align-items:center;gap:8px;padding:calc(var(--space-sm) - 2px) var(--space-md);border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-secondary);color:var(--color-text);font-size:smaller;font-weight:600;line-height:1.1;text-decoration:none;cursor:pointer;transition:transform var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy),color var(--transition-snappy);white-space:nowrap}.toolbar-button:hover,.toolbar-button:focus-visible{background:var(--color-secondary-hover);transform:translateY(-1px)}.toolbar-button:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f640}.toolbar-button:disabled{opacity:.7;cursor:wait;transform:none}.toolbar-button--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.toolbar-button--primary:hover,.toolbar-button--primary:focus-visible{background:var(--color-accent);border-color:var(--color-accent)}.toolbar-button--danger{color:var(--color-error);border-color:#b3261e40}.toolbar-button--danger:hover,.toolbar-button--danger:focus-visible{background:#b3261e1f;border-color:#b3261e73}.page__notice{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-secondary);border:1px solid var(--color-border);color:var(--color-text)}.page__notice--error{background:var(--color-error-soft);border-color:var(--color-error);color:var(--color-text-inverse)}.page__notice--swipe{position:absolute;top:calc(var(--song-library-header-height) / -2);left:50%;transform:translate(-50%);width:min(80%,360px);z-index:25;pointer-events:none;box-shadow:var(--shadow-lg);background:var(--color-surface);border:2px solid var(--color-primary);animation:swipe-hint-blink 1s ease-in-out 1;text-align:center}@keyframes swipe-hint-blink{0%{border-color:var(--color-primary)}20%{border-color:transparent}40%{border-color:var(--color-primary)}60%{border-color:transparent}80%{border-color:var(--color-primary)}to{border-color:var(--color-primary)}}.song-list,.song-card,.song-card__header,.song-card__lyrics{box-sizing:border-box}.song-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.song-card{width:100%;box-sizing:border-box;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-md) var(--space-md) calc(var(--space-md) + var(--space-xs));display:flex;flex-direction:column;gap:var(--space-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);scroll-margin-top:var(--songbank-scroll-margin, 112px);transition:transform var(--transition-snappy),box-shadow var(--transition-snappy),border-color var(--transition-snappy);position:relative;touch-action:pan-y}.song-card--recent{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.song-card--busy{opacity:.8}.song-card--linked{border-color:var(--color-accent);background:var(--color-surface-alt)}.song-card--active{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.song-card__header{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.song-card__header-button{border:none;background:none;display:flex;flex:1;align-items:center;gap:var(--space-sm);padding:0;text-align:left;color:inherit;cursor:pointer}.song-card__header-button:disabled{cursor:wait;opacity:.7}.song-card__header-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:4px}.song-card__title{flex:1;font-weight:600;font-size:medium;margin:0}.song-card__summary{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.song-card__title-row{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;width:100%}.song-card__badge{padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-text-inverse);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.song-card__melody{margin-left:auto;text-align:right;font-size:smaller;color:var(--color-text-soft);white-space:pre-line}.song-card__actions{display:flex;align-items:center;gap:var(--space-xs)}.song-card__quick-add{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border-subtle);background:var(--color-secondary);color:var(--color-text);font-size:20px;cursor:pointer;transition:transform var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy)}.song-card--linked .song-card__quick-add{background:var(--color-error-soft);border-color:var(--color-error);color:var(--color-text-inverse)}.song-card__quick-add:hover:not(:disabled),.song-card__quick-add:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-focus-ring);transform:translateY(-1px)}.song-card--linked .song-card__quick-add:hover:not(:disabled),.song-card--linked .song-card__quick-add:focus-visible{background:var(--color-error-soft);border-color:var(--color-focus-ring);transform:translateY(-1px)}.song-card__quick-add:disabled{opacity:.6;cursor:wait}@media (max-width: 399px){.song-card__quick-add{display:none}}.song-card__menu-wrapper{position:relative}.song-card__menu-button{border:none;background:none;color:var(--color-text-muted);font-size:22px;line-height:1;padding:6px;border-radius:50%;cursor:pointer;transition:background var(--transition-snappy),color var(--transition-snappy)}.song-card__menu-button:hover,.song-card__menu-button:focus-visible{background:var(--color-secondary);color:var(--color-text)}.song-card__menu{position:absolute;top:100%;right:0;margin-top:4px;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;padding:4px;z-index:20}.song-card__menu[data-placement=above]{top:auto;bottom:100%;margin-top:0;margin-bottom:4px}.song-card__menu[data-align=left]{right:auto;left:0}.song-card__menu button{border:none;background:none;text-align:left;padding:8px 12px;border-radius:var(--radius-sm);font-size:.95rem;color:var(--color-text);cursor:pointer}.song-card__menu button[data-danger=true]{color:var(--color-error)}.song-card__menu button:hover,.song-card__menu button:focus-visible{background:var(--color-secondary)}.song-card__menu button[data-danger=true]:hover,.song-card__menu button[data-danger=true]:focus-visible{background:var(--color-error-soft);color:var(--color-text-inverse)}.song-card__lyrics{margin:0;padding-top:var(--space-xs);border-top:1px solid var(--color-border-subtle);white-space:pre-line;color:var(--color-text);font-size:15px;line-height:1.5;background:transparent;border:none;text-align:left;cursor:pointer;padding:0}.song-card__meta{display:block;font-size:.9rem;color:var(--color-text-soft);margin-top:var(--space-xs) / 2}.song-list__message{color:var(--color-text-muted)}.song-list__error{color:var(--color-error-soft)}.song-card__link{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:var(--space-xs)}.song-card--link{padding:var(--space-md) var(--space-md) calc(var(--space-md) + var(--space-xs))}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md)}.action-card{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) calc(var(--space-md) + var(--space-xs));border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);text-decoration:none;color:inherit;transition:transform var(--transition-snappy),box-shadow var(--transition-snappy)}.action-card:hover,.action-card:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.action-card__icon{font-size:28px}.action-card__body{display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:var(--color-text-muted)}.action-card__body strong{font-size:1.05rem;color:var(--color-text)}.section-card{box-sizing:border-box;padding:var(--space-lg) var(--space-md);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-md)}.section-card__header{display:flex;align-items:center;justify-content:space-between}.section-card__title{margin:0;font-size:1.4rem;font-weight:600;color:var(--color-text)}.section-card__empty{margin:0;color:var(--color-text-soft)}.song-library__picker-button{display:inline-flex;align-items:center;gap:6px;padding:calc(var(--space-sm) - 2px) var(--space-md);border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-secondary);color:var(--color-text);cursor:pointer;transition:transform var(--transition-snappy),background var(--transition-snappy),border-color var(--transition-snappy)}.song-library__picker-button:hover,.song-library__picker-button:focus-visible{background:var(--color-secondary-hover);border-color:var(--color-focus-ring);transform:translateY(-1px)}.song-library__picker-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:4px;z-index:30}.song-library__picker-menu button{border:none;background:none;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);font-size:.95rem;color:var(--color-text);cursor:pointer;display:flex;justify-content:space-between;align-items:center}.song-library__picker-menu button:hover,.song-library__picker-menu button:focus-visible{background:var(--color-secondary)}.song-library__picker-menu button[data-selected=true]{background:var(--color-secondary);font-weight:600}.font-sample{box-sizing:border-box;padding:calc(var(--space-md) + var(--space-xs)) var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-sm);color:var(--color-text);transition:transform var(--transition-snappy),box-shadow var(--transition-snappy)}.font-sample:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.font-sample h2{margin:0;font-size:clamp(1.6rem,1.8vw + 1rem,2.2rem);line-height:1.2}.font-sample p{margin:0;line-height:1.55;font-size:1rem;color:var(--color-text-muted)}.font-sample code{background:var(--color-secondary);padding:2px 6px;border-radius:6px;font-size:.9rem}.font-sample:after{content:attr(data-fonts);font-size:.85rem;color:var(--color-text-soft)}.font-sample--inter{font-family:Inter,system-ui,sans-serif}.font-sample--inter h2{font-family:Merriweather,Times New Roman,serif}.font-sample--worksans{font-family:Work Sans,system-ui,sans-serif}.font-sample--worksans h2{font-family:Playfair Display,Times New Roman,serif}.font-sample--source{font-family:"Source Sans 3",system-ui,sans-serif}.font-sample--source h2{font-family:"Source Serif 4",Times New Roman,serif}.font-sample--nunito{font-family:Nunito,system-ui,sans-serif}.font-sample--nunito h2{font-family:Lora,Times New Roman,serif}.font-sample--jakarta{font-family:Plus Jakarta Sans,system-ui,sans-serif}.font-sample--jakarta h2{font-family:"DM Serif Display",Times New Roman,serif}.font-sample--plex{font-family:IBM Plex Sans,system-ui,sans-serif}.font-sample--plex h2{font-family:"IBM Plex Serif",Times New Roman,serif}
