.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--fleno-radius-lg);font-weight:700;font-size:.875rem;line-height:1.25;border:2px solid transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--fleno-duration) ease,border-color var(--fleno-duration) ease,color var(--fleno-duration) ease,box-shadow var(--fleno-duration) ease;text-align:center}.btn:focus-visible{outline:2px solid var(--fleno-brand-500);outline-offset:2px}.btn-sm{padding:.5rem .875rem;font-size:.75rem}.btn-md{padding:.75rem 1.25rem}.btn-lg{padding:.875rem 1.5rem}.btn-block{width:100%}.btn-primary{color:var(--fleno-surface);border-color:var(--fleno-ink);box-shadow:var(--fleno-shadow-sm)}.btn-primary,.btn-primary:hover{background-color:var(--fleno-ink)}.btn-primary:hover{box-shadow:var(--fleno-shadow)}.btn-brand{background-color:var(--fleno-brand-600);color:var(--fleno-surface);border-color:var(--fleno-brand-600);box-shadow:var(--fleno-shadow-sm)}.btn-brand:hover{background-color:var(--fleno-brand-700)}.btn-secondary{background-color:var(--fleno-surface);color:var(--fleno-ink-soft);border-color:var(--fleno-border-strong)}.btn-secondary:hover{background-color:var(--fleno-surface-soft);color:var(--fleno-ink)}.btn-ghost{background-color:transparent;color:var(--fleno-ink-soft);border-color:transparent}.btn-ghost:hover{background-color:var(--fleno-surface-muted);color:var(--fleno-ink)}.btn-soft{background-color:var(--fleno-info-soft);color:var(--fleno-brand-700);border-color:transparent}.btn-soft:hover{background-color:var(--fleno-border-strong)}.btn-danger-link,.btn-quiet-link{background:none;border:none;padding:0;font-size:.6875rem;font-weight:700;text-decoration:underline;cursor:pointer}.btn-danger-link{color:var(--fleno-danger)}.btn-danger-link:hover{color:var(--fleno-danger-ink)}.btn-quiet-link{color:var(--fleno-ink-soft)}.btn-quiet-link:hover{color:var(--fleno-ink)}.theme-label-to-light,:root[data-theme=dark] .theme-label-to-dark{display:none}:root[data-theme=dark] .theme-label-to-light{display:inline}.card{background:var(--fleno-surface);border:1px solid var(--fleno-border);border-radius:var(--fleno-radius-2xl);box-shadow:var(--fleno-shadow-sm)}.card-pad{padding:1.5rem}.card-glass{background:var(--fleno-surface);border:1px solid var(--fleno-border);box-shadow:var(--fleno-shadow-sm);border-radius:var(--fleno-radius-2xl)}.card-interactive{cursor:pointer;text-align:left;width:100%;display:flex;flex-direction:column;justify-content:space-between;height:100%;transition:box-shadow var(--fleno-duration) ease,border-color var(--fleno-duration) ease}.card-interactive:hover{box-shadow:var(--fleno-shadow);border-color:var(--fleno-ink)}.card-interactive:hover .card-title{color:var(--fleno-brand-600)}.card-done{border-color:var(--fleno-success);background:rgba(236,253,245,.45);box-shadow:0 0 0 1px rgba(16,185,129,.15)}.card-title{font-size:1.125rem;font-weight:700;color:var(--fleno-ink);line-height:1.3;margin:0 0 .5rem;transition:color var(--fleno-duration) ease}.card-desc{font-size:.875rem;color:var(--fleno-muted);line-height:1.6;margin:0}h3.card-title{min-height:2.6em}.card-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--fleno-surface-muted);display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:700;color:var(--fleno-ink)}.card-footer.is-done{color:var(--fleno-success-ink)}.card-check{position:absolute;top:-.75rem;right:-.75rem;width:2rem;height:2rem;border-radius:var(--fleno-radius-full);background:var(--fleno-success);color:var(--fleno-surface);border:2px solid var(--fleno-surface);display:flex;justify-content:center;font-size:.875rem;box-shadow:var(--fleno-shadow-sm);z-index:10}.badge,.card-check{align-items:center;font-weight:700}.badge{display:inline-flex;gap:.25rem;padding:.125rem .5rem;border-radius:.375rem;font-size:.75rem;line-height:1.4;border:1px solid transparent;white-space:nowrap}.badge-pill{border-radius:var(--fleno-radius-full);padding:.125rem .625rem}.badge-xs{font-size:.625rem;padding:.125rem .375rem}.badge-neutral{background:var(--fleno-surface-muted);color:var(--fleno-ink-soft);border-color:var(--fleno-border)}.badge-muted{background:transparent;color:var(--fleno-muted);border:none;font-weight:600;padding:0}.badge-success{background:var(--fleno-success-soft);color:var(--fleno-success-ink);border-color:var(--fleno-success-soft)}.badge-warn{background:var(--fleno-warn-soft);color:var(--fleno-warn-ink);border-color:var(--fleno-border-strong)}.badge-info{background:var(--fleno-info-soft);color:var(--fleno-info-ink)}.badge-on-dark{background:hsla(0,0%,100%,.2);color:var(--fleno-surface)}.badge-solid-success{background:var(--fleno-success);color:var(--fleno-surface);font-weight:700}.badge-solid-warn{background:var(--fleno-warn-soft);color:var(--fleno-warn-ink);font-weight:700}.nav-level{margin-bottom:.75rem;border:1px solid var(--fleno-border);border-radius:var(--fleno-radius-2xl);background:var(--fleno-surface);overflow:hidden;box-shadow:var(--fleno-shadow-sm);transition:border-color var(--fleno-duration) ease}.nav-level:hover{border-color:var(--fleno-border-strong)}.nav-level-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.875rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--fleno-ink);background:var(--fleno-surface-soft);border:none;cursor:pointer;transition:background-color var(--fleno-duration) ease}.nav-level-btn:hover{background:var(--fleno-surface-muted)}.nav-level-body{padding:.625rem;display:none;background:rgba(248,250,252,.35);gap:.5rem;flex-direction:column}.nav-level-body.is-open{display:flex}.nav-course{border:1px solid var(--fleno-border);border-radius:var(--fleno-radius-lg);background:var(--fleno-surface);overflow:hidden;transition:border-color var(--fleno-duration) ease,box-shadow var(--fleno-duration) ease}.nav-course:hover{border-color:var(--fleno-border-strong)}.nav-course.is-current{border-color:var(--fleno-ink);background:rgba(248,250,252,.85);box-shadow:0 0 0 1px var(--fleno-ink)}.nav-course-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem;text-align:left;font-weight:700;font-size:.875rem;color:var(--fleno-ink);background:transparent;border:none;cursor:pointer;transition:background-color var(--fleno-duration) ease}.nav-course-btn:hover{background:var(--fleno-surface-soft)}.nav-course-body{padding:.25rem .75rem .75rem;border-top:1px solid var(--fleno-surface-muted);background:var(--fleno-surface);display:flex;flex-direction:column;gap:.25rem}.nav-section{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:.375rem .625rem .375rem 1rem;border-radius:.5rem;font-size:.75rem;color:var(--fleno-ink-soft);background:transparent;border:none;cursor:pointer;transition:background-color var(--fleno-duration) ease,color var(--fleno-duration) ease}.nav-section:hover{background:var(--fleno-surface-muted);color:var(--fleno-ink)}.nav-section.is-active{background:var(--fleno-ink);color:var(--fleno-surface);font-weight:700}.nav-lab,.nav-quiz{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-align:left;padding:.5rem .625rem;border-radius:.5rem;font-size:.75rem;font-weight:700;color:var(--fleno-ink);background:transparent;border:1px solid var(--fleno-border);cursor:pointer;transition:background-color var(--fleno-duration) ease}.nav-lab:hover,.nav-quiz:hover{background:var(--fleno-surface-soft)}.nav-lab.is-active{border-color:var(--fleno-brand-600);background:var(--fleno-brand-50);color:var(--fleno-brand-900)}.nav-lab-mark,.nav-quiz-mark{width:1rem;height:1rem;border-radius:.25rem;background:var(--fleno-ink);color:var(--fleno-surface);display:inline-flex;align-items:center;justify-content:center;font-size:.5625rem;font-weight:700;flex-shrink:0}.nav-lab-mark{background:var(--fleno-brand-600)}.home-nav{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-radius:var(--fleno-radius-lg);font-weight:700;font-size:.875rem;border:1px solid transparent;cursor:pointer;transition:all var(--fleno-duration) ease}.home-nav.is-active{background:var(--fleno-ink);color:var(--fleno-surface);box-shadow:var(--fleno-shadow-sm)}.home-nav.is-idle{background:var(--fleno-surface);color:var(--fleno-ink-soft);border-color:var(--fleno-border);box-shadow:0 1px 2px rgba(15,23,42,.04)}.home-nav.is-active .nav-badge{background-color:hsla(0,0%,100%,.2);color:var(--fleno-surface)}.home-nav.is-idle .nav-badge{background-color:var(--fleno-surface-muted);color:var(--fleno-muted)}.home-nav.is-idle:hover{background:var(--fleno-surface-soft)}.home-nav.is-active .settings-nav-note{color:inherit;opacity:.72}.status-dot{width:1.25rem;height:1.25rem;border-radius:var(--fleno-radius-full);border:2px solid var(--fleno-border-strong);flex-shrink:0}.status-dot.is-done{border:none;background:var(--fleno-success);color:var(--fleno-surface);font-size:.625rem}.icon-chip,.status-dot.is-done{display:inline-flex;align-items:center;justify-content:center;font-weight:700}.icon-chip{width:2.5rem;height:2.5rem;border-radius:var(--fleno-radius-lg);font-family:Outfit,Inter,sans-serif;font-size:1rem;flex-shrink:0;box-shadow:var(--fleno-shadow-sm);transition:background-color var(--fleno-duration) ease}.icon-chip-dark{background:var(--fleno-ink);color:var(--fleno-surface)}.icon-chip-success{background:var(--fleno-success-soft);color:var(--fleno-success-ink)}.ui-section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:1.5rem;font-weight:800;color:var(--fleno-ink);letter-spacing:-.02em;border-bottom:1px solid var(--fleno-border);padding-bottom:.75rem;margin-bottom:1.5rem}.ui-section-dot{width:.625rem;height:.625rem;border-radius:var(--fleno-radius-full);background:var(--fleno-info);box-shadow:var(--fleno-shadow-sm);flex-shrink:0}.chevron{width:1rem;height:1rem;color:var(--fleno-muted);flex-shrink:0;transition:transform var(--fleno-duration) ease}.chevron.is-open{transform:rotate(180deg);color:var(--fleno-ink)}.field{width:100%;padding:1rem 1.25rem;border-radius:var(--fleno-radius-2xl);border:2px solid rgba(226,232,240,.9);background:var(--fleno-surface);font-size:.875rem;font-weight:600;color:var(--fleno-ink);box-shadow:inset 0 1px 2px rgba(15,23,42,.04);transition:border-color var(--fleno-duration) ease,box-shadow var(--fleno-duration) ease}.field:focus{outline:none;border-color:var(--fleno-info)}.field-inline{display:inline-block;width:9rem;margin:0 .5rem;padding:.5rem 1rem;border-radius:var(--fleno-radius-lg);border:2px solid var(--fleno-border);background:var(--fleno-surface-soft);font-size:.875rem;font-weight:700;color:var(--fleno-ink);box-shadow:inset 0 1px 2px rgba(15,23,42,.04);transition:border-color var(--fleno-duration) ease,box-shadow var(--fleno-duration) ease}.field-inline:focus{outline:none;border-color:var(--fleno-success);box-shadow:0 0 0 4px rgba(16,185,129,.12)}.field-inline.is-correct{border-color:var(--fleno-success);background:var(--fleno-success-soft);color:var(--fleno-success-ink)}.field-inline.is-wrong{border-color:var(--fleno-danger);background:var(--fleno-surface) 1f2;color:var(--fleno-danger-ink)}.crumb{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;transition:color var(--fleno-duration) ease}.crumb-current,.crumb:hover{color:var(--fleno-ink)}.crumb-current{font-weight:700}.btn-speak{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--fleno-radius-full);border:none;background:var(--fleno-surface-muted);color:var(--fleno-muted);cursor:pointer;flex-shrink:0;touch-action:manipulation;transition:background-color var(--fleno-duration) ease,color var(--fleno-duration) ease}.btn-speak:hover:not(:disabled):not(.is-speaking){background:var(--fleno-info-soft);color:var(--fleno-info-ink)}.btn-speak:focus-visible{outline:2px solid var(--fleno-brand-500);outline-offset:2px}.btn-speak.is-speaking{background:var(--fleno-info-soft);color:var(--fleno-info-ink);box-shadow:0 0 0 2px rgba(37,99,235,.35);cursor:default;opacity:1}.btn-speak.is-disabled,.btn-speak:disabled{opacity:.45;cursor:not-allowed}.btn-speak.is-speaking:disabled{opacity:1;cursor:default}.btn-speak-sm{position:relative;width:1.5rem;height:1.5rem}.btn-speak-sm:after{content:"";position:absolute;inset:-.5rem}.lab-page-header{border-bottom:1px solid var(--fleno-border);padding-bottom:1.5rem}.lab-howto{display:flex;gap:.875rem;align-items:flex-start;padding:1rem 1.125rem;border-radius:var(--fleno-radius-lg);border:1px solid var(--fleno-border);background:var(--fleno-surface-soft)}.lab-howto-icon{width:2rem;height:2rem;border-radius:.625rem;background:var(--fleno-surface);border:1px solid var(--fleno-info-soft);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;box-shadow:0 1px 2px rgba(15,23,42,.04)}.lab-progress-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding:0 .125rem;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fleno-muted)}.lab-progress-pct{color:var(--fleno-brand-700)}.lab-progress-track{height:.5rem;width:100%;overflow:hidden;border-radius:999px;background:var(--fleno-border);box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}.lab-progress-fill{height:100%;border-radius:999px;background:var(--fleno-ink);transition:width .45s ease}#course-navigation,#lab-footer-nav,#quiz-footer-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}#lab-footer-nav .lab-footer-left,#lab-footer-nav .lab-footer-right,#quiz-footer-nav .lab-footer-left,#quiz-footer-nav .lab-footer-right{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}#lab-footer-nav .lab-footer-right,#quiz-footer-nav .lab-footer-right{justify-content:flex-end;margin-left:auto}.lab-gate-wrap{display:inline-flex;cursor:not-allowed}.btn.is-lab-gated:disabled,.btn.is-lab-gated[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:none}.lab-station{background:var(--fleno-surface);border-radius:var(--fleno-radius-2xl);overflow:hidden;box-shadow:var(--fleno-shadow-sm);border:1px solid var(--fleno-border);border-left-width:4px;transition:border-color var(--fleno-duration) ease,box-shadow var(--fleno-duration) ease}.lab-station.lab-tone-indigo{border-left-color:var(--fleno-brand-500)}.lab-station.lab-tone-rose{border-left-color:var(--fleno-danger)}.lab-station.lab-tone-cyan{border-left-color:var(--fleno-info)}.lab-station.lab-tone-emerald{border-left-color:var(--fleno-success)}.lab-station.lab-tone-amber{border-left-color:var(--fleno-warn)}.lab-station.lab-tone-violet{border-left-color:var(--fleno-info)}.lab-station.lab-station-done{box-shadow:0 0 0 1px var(--fleno-success-soft)}.lab-station-head{display:flex;align-items:flex-start;gap:.875rem;padding:1.25rem 1.35rem .875rem;border-bottom:1px solid var(--fleno-border);background:var(--fleno-surface-soft)}.lab-station-index{width:2.25rem;height:2.25rem;border-radius:var(--fleno-radius-lg);background:var(--fleno-ink);color:var(--fleno-surface);font-weight:700;font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lab-station-title{margin:.35rem 0 0;font-size:1.125rem;font-weight:700;letter-spacing:-.02em;color:var(--fleno-ink);line-height:1.3}.lab-step-label{letter-spacing:.06em;text-transform:uppercase;color:var(--fleno-muted)}.lab-step-label,.lab-type-badge{font-size:.6875rem;font-weight:800}.lab-type-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:.5rem;border:1px solid transparent;text-transform:none}.lab-type-badge.lab-tone-indigo{background:var(--fleno-info-soft);color:var(--fleno-brand-700);border-color:var(--fleno-border-strong)}.lab-type-badge.lab-tone-rose{background:var(--fleno-danger-soft);color:var(--fleno-danger-ink);border-color:var(--fleno-danger-soft)}.lab-type-badge.lab-tone-cyan{background:var(--fleno-info-soft);color:var(--fleno-info-ink);border-color:var(--fleno-border-strong)}.lab-type-badge.lab-tone-emerald{background:var(--fleno-success-soft);color:var(--fleno-success-ink);border-color:var(--fleno-success-soft)}.lab-type-badge.lab-tone-amber{background:var(--fleno-warn-soft);color:var(--fleno-warn-ink);border-color:var(--fleno-border-strong)}.lab-type-badge.lab-tone-violet{background:var(--fleno-info-soft);color:var(--fleno-info-ink);border-color:var(--fleno-border)}.lab-station-body{padding:1rem 1.35rem 1.35rem;display:flex;flex-direction:column;gap:.875rem}.lab-context{padding:.9rem 1rem;border-radius:var(--fleno-radius-lg);border:1px solid var(--fleno-border);background:var(--fleno-surface-muted)}.lab-context-label,.lab-section-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:.6875rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--fleno-muted)}.lab-context>.lab-context-label{margin-bottom:.35rem;color:var(--fleno-brand-600)}.lab-context p{margin:0;font-size:.9375rem;font-weight:600;line-height:1.55;color:var(--fleno-ink)}.lab-context-how{margin-top:.45rem!important;font-size:.8125rem!important;font-weight:500!important;color:var(--fleno-muted)!important}.lab-task-block{background:var(--fleno-surface);border:1px solid var(--fleno-border);border-radius:1rem;padding:1rem 1.05rem 1.05rem}.lab-section-label-bank{margin-top:1rem}.lab-prompt-text{font-size:1rem;font-weight:600;line-height:1.65}.lab-hint-text{margin:.65rem 0 0;font-size:.8125rem;font-weight:500;line-height:1.45;color:var(--fleno-muted)}.lab-hint-kicker{display:inline-block;margin-right:.35rem;font-size:.6875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--fleno-muted)}.lab-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--fleno-surface-muted)}.lab-actions .btn-secondary{margin-right:auto}.lab-actions-spacer{flex:1}.lab-token-build{min-height:3.25rem;margin-top:.35rem;padding:.75rem;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;border-radius:.85rem;border:2px dashed var(--fleno-info);background:var(--fleno-surface-soft)}.lab-token-build:empty:before{content:"Tap words from the bank below to build your sentence…";font-size:.8125rem;font-weight:600;color:var(--fleno-muted)}.lab-token-bank{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.45rem;padding:.65rem;border-radius:.85rem;background:var(--fleno-surface-muted);border:1px solid var(--fleno-border)}.lab-token-chip{display:inline-flex;align-items:center;padding:.45rem .75rem;border-radius:.65rem;border:1px solid var(--fleno-border-strong);background:var(--fleno-surface);color:var(--fleno-brand-900);font-size:.875rem;font-weight:700;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:background .15s ease,border-color .15s ease,opacity .15s ease,transform .1s ease}.lab-token-chip:hover:not(:disabled){background:var(--fleno-info-soft);border-color:var(--fleno-info);transform:translateY(-1px)}.lab-token-chip.is-used,.lab-token-chip:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.lab-token-chip.is-placed{border-color:var(--fleno-brand-500);color:var(--fleno-brand-700)}.lab-token-chip.is-placed,.lab-token-chip.is-placed:hover{background:var(--fleno-info-soft)}.lab-options{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.lab-option-btn{display:flex;align-items:flex-start;gap:.75rem;text-align:left;padding:.85rem 1rem;border-radius:.85rem;border:2px solid var(--fleno-border);background:var(--fleno-surface);color:var(--fleno-ink);font-size:.9rem;font-weight:600;line-height:1.45;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.lab-option-letter{width:1.75rem;height:1.75rem;border-radius:.5rem;background:var(--fleno-surface-muted);color:var(--fleno-muted);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;flex-shrink:0}.lab-option-text{flex:1;padding-top:.15rem}.lab-option-btn:hover:not(:disabled){background:var(--fleno-surface-soft);border-color:var(--fleno-muted)}.lab-option-btn.is-selected{border-color:var(--fleno-brand-500);background:var(--fleno-info-soft)}.lab-option-btn.is-selected .lab-option-letter{background:var(--fleno-border-strong);color:var(--fleno-brand-700)}.lab-option-btn.is-correct{border-color:var(--fleno-success)}.lab-option-btn.is-correct,.lab-option-btn.is-correct .lab-option-letter{background:var(--fleno-success-soft);color:var(--fleno-success-ink)}.lab-option-btn.is-wrong{border-color:var(--fleno-danger);background:var(--fleno-surface) 1f2;color:var(--fleno-danger-ink)}.lab-option-btn.is-wrong .lab-option-letter{background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}.lab-option-btn:disabled{cursor:default}.lab-feedback{font-size:.875rem;font-weight:700;padding:.75rem 1rem;border-radius:.75rem}.lab-feedback.is-correct{border:1px solid var(--fleno-success);background:var(--fleno-success-soft);color:var(--fleno-success-ink)}.lab-feedback.is-wrong{border:1px solid var(--fleno-danger);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}.lab-prompt-block,.lab-role-card{background:var(--fleno-surface-soft,var(--fleno-surface-soft));border:1px solid var(--fleno-border);border-radius:.875rem;padding:1rem}.lab-prompt-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;font-size:.6875rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fleno-muted)}.lab-prompt-text{margin:0;font-size:.9375rem;font-weight:500;line-height:1.6;color:var(--fleno-ink)}.lab-roles{display:grid;grid-template-columns:1fr;gap:.75rem}@media (min-width:768px){.lab-roles{grid-template-columns:1fr 1fr}}.lab-answer-row{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--fleno-border)}.lab-reveal-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:.75rem;border:1px solid var(--fleno-border-strong,var(--fleno-border-strong));background:var(--fleno-surface);color:var(--fleno-ink-soft);font-size:.75rem;font-weight:700;cursor:pointer;transition:background-color var(--fleno-duration) ease,border-color var(--fleno-duration) ease,color var(--fleno-duration) ease}.lab-reveal-btn:hover{background:var(--fleno-surface-soft);color:var(--fleno-ink)}.lab-reveal-btn.is-open{background:var(--fleno-info-soft);border-color:var(--fleno-border-strong);color:var(--fleno-brand-700)}.lab-reveal-btn:focus-visible{outline:2px solid var(--fleno-brand-500);outline-offset:2px}.lab-answer-panel{margin-top:.75rem;padding:1rem;border-radius:var(--fleno-radius-lg);border:1px solid var(--fleno-success-soft);background:var(--fleno-success-soft)}.lab-answer-text{margin:0;font-size:.9375rem;font-weight:500;line-height:1.6;color:var(--fleno-success-ink)}.lab-empty{border-style:dashed}@keyframes towerPop{0%{transform:scale(1)}40%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes towerShake{0%,to{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}@keyframes towerWave{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-10px) scale(1.08)}70%{transform:translateY(2px) scale(1)}}#tower-view.is-playing>.mb-8{display:none}#tower-view .tower-body.is-play{display:flex;flex-direction:column;gap:.75rem}#tower-view .tower-play-hud{position:sticky;top:4rem;z-index:6;margin:0 -.25rem;padding:0 .25rem .35rem;background:rgba(248,250,252,.94)}#tower-view .tower-progress-wrap{margin-bottom:.4rem}#tower-view .tower-progress{height:4px;border-radius:999px;background:var(--fleno-surface-muted);overflow:hidden}#tower-view .tower-progress-fill{height:100%;width:0;border-radius:inherit;background:var(--fleno-brand-500);transition:width .35s ease}#tower-view .tower-play-hud-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:1.75rem}#tower-view .tower-leave-btn{border:0;background:transparent;color:var(--fleno-muted);font-size:.8125rem;font-weight:700;padding:.25rem .15rem;cursor:pointer;min-height:2.75rem}#tower-view .tower-leave-btn:hover{color:var(--fleno-ink)}#tower-view .tower-leave-prompt{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-height:2.75rem}#tower-view .tower-leave-copy{margin:0;font-size:.8125rem;font-weight:700;color:var(--fleno-ink)}#tower-view .tower-leave-actions{display:flex;gap:.4rem}#tower-view .tower-resume{margin-bottom:.25rem}#tower-view .tower-time-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;min-width:3.5rem}#tower-view .tower-time-bar{width:3.5rem;height:4px;border-radius:999px;background:var(--fleno-surface-muted);overflow:hidden}#tower-view .tower-time-fill{height:100%;width:100%;border-radius:inherit;background:var(--fleno-brand-500);transition:width .1s linear}#tower-view .tower-time-wrap.is-urgent .tower-time-fill{background:var(--fleno-danger)}#tower-view .tower-play-area{transition:padding .25s ease,gap .25s ease}#tower-view .tower-clue-block{transition:opacity .25s ease,transform .25s ease,margin .25s ease}#tower-view .tower-emoji{font-size:3.5rem;line-height:1;transform-origin:center top;transition:font-size .25s ease,transform .25s ease,opacity .25s ease}#tower-view .tower-clue{margin-top:1rem;font-size:1.125rem;font-weight:600;color:var(--fleno-ink);transition:font-size .25s ease,margin .25s ease,opacity .25s ease}#tower-view .tower-speak{margin-top:.75rem;display:flex;justify-content:center}#tower-view .tower-play-status{margin-top:.75rem;min-height:1.25em;font-size:.875rem;font-weight:700;color:var(--fleno-muted)}#tower-view .tower-play-status.is-nice{color:var(--fleno-success-ink)}#tower-view .tower-play-status.is-miss{color:var(--fleno-danger-ink)}#tower-view .tower-play-main{margin-top:2rem}#tower-view .tower-input-dock{display:flex;flex-direction:column;align-items:center;gap:.75rem;scroll-margin-bottom:.75rem}#tower-view .tower-spell-wrap{position:relative;display:inline-block;max-width:100%}#tower-view .tower-hidden-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:2;cursor:text;font-size:16px;border:0;background:transparent}#tower-view .tower-cell-row,#tower-view .tower-order-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}#tower-view .tower-cell{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;border-radius:.75rem;border:2px solid var(--fleno-border-strong);background:var(--fleno-surface);font-size:1.25rem;font-weight:800;text-transform:uppercase;touch-action:manipulation;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}#tower-view .tower-cell.is-correct{border-color:var(--fleno-success);background:var(--fleno-success-soft);color:var(--fleno-success-ink)}#tower-view .tower-cell.is-wrong{border-color:var(--fleno-danger);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}#tower-view .tower-cell.is-empty{border-style:dashed;color:var(--fleno-muted)}#tower-view .tower-cell.is-active{border-color:var(--fleno-brand-500);box-shadow:inset 0 -3px 0 var(--fleno-brand-500)}#tower-view .tower-cell.is-locked{cursor:default}#tower-view .tower-cell.is-selected{border-color:var(--fleno-brand-500);color:var(--fleno-brand-700);box-shadow:0 0 0 3px rgba(14,165,233,.35);transform:scale(1.08);z-index:1}#tower-view .tower-tile-bank{background:var(--fleno-brand-50);border-color:var(--fleno-brand-500);color:var(--fleno-brand-700);cursor:pointer}#tower-view .tower-tile-bank:active:not(:disabled){transform:scale(.96)}#tower-view .tower-key{min-width:2.5rem;min-height:2.5rem}#tower-view .tower-hearts{display:inline-flex;align-items:center;letter-spacing:.1em;font-size:1.125rem;line-height:1}#tower-view #tower-timer,#tower-view .tower-timer{min-width:3.25rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.75rem;border:2px solid var(--fleno-border-strong);background:var(--fleno-surface);font-weight:800;font-variant-numeric:tabular-nums}#tower-view #tower-timer.is-urgent,#tower-view .tower-timer.is-urgent{border-color:var(--fleno-danger);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}#tower-view .tower-hint-row{display:flex;justify-content:center}#tower-view .tower-hint-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.75rem;padding:.35rem .85rem;border-radius:999px;border:2px solid var(--fleno-border-strong);background:var(--fleno-surface);font-size:.8125rem;font-weight:800;cursor:pointer;touch-action:manipulation}#tower-view .tower-hint-btn:hover:not(:disabled){border-color:var(--fleno-brand-500);color:var(--fleno-brand-700)}#tower-view .tower-hint-btn:disabled{opacity:.45;cursor:not-allowed}#tower-view .tower-spell-help{margin:0;font-size:.75rem;color:var(--fleno-muted)}#tower-view .tower-thumb-dock{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%}#tower-view .tower-bank-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;width:100%;max-width:22rem}#tower-view .tower-bank-tile{min-height:60px;padding:.85rem .75rem;border-radius:1rem;border:2px solid var(--fleno-border-strong);background:var(--fleno-surface);color:var(--fleno-ink);font-size:1.25rem;font-weight:800;line-height:1.2;text-transform:lowercase;cursor:pointer;touch-action:manipulation;transition:background .15s ease,border-color .15s ease,transform .15s ease}#tower-view .tower-bank-tile:hover:not(:disabled){border-color:var(--fleno-brand-500);background:var(--fleno-brand-50)}#tower-view .tower-bank-tile:active:not(:disabled){transform:scale(.98)}#tower-view .tower-bank-tile.is-correct{border-color:var(--fleno-success);background:var(--fleno-success-soft);color:var(--fleno-success-ink)}#tower-view .tower-bank-tile.is-wrong{border-color:var(--fleno-danger);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}#tower-view .tower-bank-tile.is-eliminated{opacity:.35;text-decoration:line-through;pointer-events:none}#tower-view .tower-cell-pop{animation:towerPop .15s ease-out}#tower-view .tower-row-shake{animation:towerShake .4s ease-in-out}#tower-view .tower-cell-wave{animation:towerWave .45s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--tower-i, 0)*55ms)}#tower-view .tower-overlay-complete{animation:towerCompletePop .7s cubic-bezier(.34,1.56,.64,1) both}#tower-view .tower-new-best{display:inline-block;margin-left:.25rem;color:var(--fleno-brand-700);font-weight:800}@keyframes towerCompletePop{0%{transform:scale(.92);opacity:.6}55%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:1}}#tower-view.is-keyboard-open .tower-play-hud{padding-bottom:.15rem}#tower-view.is-keyboard-open .tower-play-area{padding:.65rem .85rem .85rem}#tower-view.is-keyboard-open .tower-clue-block{margin-bottom:0}#tower-view.is-keyboard-open .tower-emoji{transform:scale(.5);transform-origin:center top;opacity:.3;height:1.75rem;overflow:hidden;margin:0}#tower-view.is-keyboard-open .tower-clue{margin-top:.25rem;font-size:.875rem;opacity:.3}#tower-view.is-keyboard-open .tower-play-status,#tower-view.is-keyboard-open .tower-speak{display:none}#tower-view.is-keyboard-open .tower-play-main{margin-top:.5rem}#tower-view.is-keyboard-open .tower-input-dock{gap:.5rem}#tower-view.is-keyboard-open .tower-spell-help{display:none}@media (max-width:767px){#tower-view.is-playing .tower-body.is-play{min-height:calc(100dvh - 7.5rem)}#tower-view .tower-thumb-dock{position:sticky;bottom:0;z-index:5;margin-top:auto;padding:.65rem .15rem calc(.65rem + env(safe-area-inset-bottom, 0px));background:rgba(248,250,252,.96);box-shadow:0 -10px 24px rgba(15,23,42,.06)}#tower-view .tower-bank-grid{max-width:none;gap:.65rem}#tower-view .tower-bank-tile{min-height:60px;font-size:1.35rem}#tower-view .tower-play-main{margin-top:1rem}}@media (prefers-reduced-motion:reduce){#tower-view .tower-cell-pop,#tower-view .tower-cell-wave,#tower-view .tower-cell.is-selected,#tower-view .tower-overlay-complete,#tower-view .tower-row-shake{animation:none}#tower-view .tower-cell.is-selected{transform:none}#tower-view .tower-clue,#tower-view .tower-clue-block,#tower-view .tower-emoji,#tower-view .tower-play-area{transition:none}}@media (max-width:1023px){#sidebar-nav [data-action=show-join],#sidebar-nav [data-action=show-support],#sidebar-nav [data-action=show-tower],#sidebar-nav [data-action=toggle-theme]{min-height:2.75rem}}@media (max-width:767px){#join-view>.mb-8,#support-view>.mb-8,#tower-view>.mb-8{margin-bottom:1.25rem}#join-view .lab-howto,#support-view .lab-howto,#tower-view .lab-howto{gap:.75rem;padding:.875rem 1rem}#join-view .card-pad,#support-view .card.card-pad,#tower-view .card.card-pad{padding:1.125rem}#support-view a.btn,#support-view button.btn{min-height:2.75rem;width:100%}}.vocab-example-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.vocab-example-row .vocab-example-text{flex:1;min-width:0;font-size:.75rem;color:var(--fleno-ink-soft);font-style:italic}.vocab-example-row .vocab-example-text--lead{font-size:.875rem;font-style:normal;line-height:1.6;color:var(--fleno-ink)}.vocab-example-row .vocab-example-text--lead strong{color:var(--fleno-ink);font-weight:700}.prose blockquote.callout{font-style:normal;font-weight:400;color:var(--fleno-ink-soft);border-inline-start-width:4px;border-radius:0 var(--fleno-radius) var(--fleno-radius) 0;padding:.75rem 1rem;margin-block:1rem;quotes:none}.prose blockquote.callout p:after,.prose blockquote.callout p:before{content:none}.prose blockquote.callout strong{font-weight:600}.prose blockquote.callout-grammar-tip{background:var(--fleno-info-soft);border-inline-start-color:var(--fleno-info)}.prose blockquote.callout-grammar-tip strong{color:var(--fleno-info-ink)}.prose blockquote.callout-common-mistake{background:var(--fleno-danger-soft);border-inline-start-color:var(--fleno-danger)}.prose blockquote.callout-common-mistake strong{color:var(--fleno-danger-ink)}.prose blockquote.callout-important-note{background:var(--fleno-warn-soft);border-inline-start-color:var(--fleno-warn)}.prose blockquote.callout-important-note strong{color:var(--fleno-warn-ink)}#tower-view .tower-play-hud{background:var(--fleno-surface-scrim)}#tower-view .tower-clue,#tower-view .tower-hint-btn{color:var(--fleno-ink-soft)}#tower-view .tower-cell.is-selected{background:var(--fleno-brand-100);box-shadow:0 0 0 3px var(--fleno-brand-soft-ring,rgba(14,165,233,.35))}#tower-view .tower-tile-bank:hover:not(:disabled){background:var(--fleno-brand-100)}#tower-view .tower-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}#tower-view .tower-head-name{font-size:.625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fleno-muted)}#tower-view .tower-mastery{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;min-width:9.375rem}#tower-view .tower-mastery-line{display:flex;align-items:baseline;gap:.375rem}#tower-view .tower-mastery-count{font-family:Outfit,system-ui,sans-serif;font-size:.9375rem;font-weight:800;line-height:1;color:var(--fleno-ink);font-variant-numeric:tabular-nums}#tower-view .tower-mastery-note{font-size:.6875rem;font-weight:600;color:var(--fleno-ink-soft)}#tower-view .tower-mastery-track{width:100%;height:3px;border-radius:var(--fleno-radius-full);background:var(--fleno-border);overflow:hidden}#tower-view .tower-mastery-fill{height:100%;width:0;border-radius:inherit;background:var(--fleno-brand-500);transition:width .3s ease}#tower-view .tower-goal{display:flex;flex-direction:column;gap:.625rem;padding:1.0625rem 1.1875rem;border-radius:var(--fleno-radius-2xl);background:var(--fleno-surface);border:1px solid var(--fleno-border);box-shadow:var(--fleno-shadow-sm)}#tower-view .tower-goal-head{display:flex;align-items:center;justify-content:space-between;gap:.625rem}#tower-view .tower-goal-label{font-size:.625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--fleno-muted)}#tower-view .tower-goal-tag{font-family:Outfit,system-ui,sans-serif;font-size:.6875rem;font-weight:800;color:var(--fleno-ink-soft);font-variant-numeric:tabular-nums}#tower-view .tower-goal-tag.is-done{color:var(--fleno-success)}#tower-view .tower-goal-text{margin:0;font-family:Outfit,system-ui,sans-serif;font-size:.9375rem;font-weight:700;line-height:1.35;color:var(--fleno-ink)}#tower-view .tower-goal-track{height:6px;border-radius:var(--fleno-radius-sm);background:var(--fleno-surface-muted);overflow:hidden}#tower-view .tower-goal-fill{height:100%;width:0;border-radius:inherit;background:var(--fleno-brand-500);transition:width .3s ease}#tower-view .tower-goal-fill.is-done{background:var(--fleno-success)}#tower-view .tower-goal.is-compact{padding:1rem 1.125rem;border-radius:var(--fleno-radius-2xl)}#tower-view .tower-goal.is-compact .tower-goal-text{font-size:.90625rem}#tower-view .tower-score{font-family:Outfit,system-ui,sans-serif;font-size:1.625rem;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--fleno-ink);font-variant-numeric:tabular-nums}#tower-view .tower-score.is-hit{animation:towerPop .3s ease}#tower-view .tower-float{min-height:1.25em;font-size:.75rem;font-weight:800;color:var(--fleno-muted)}#tower-view .tower-float.is-hit{color:var(--fleno-success)}#tower-view .tower-float.is-miss{color:var(--fleno-danger)}#tower-view .tower-cell:focus-visible,#tower-view .tower-hint-btn:focus-visible,#tower-view .tower-key:focus-visible,#tower-view .tower-leave-btn:focus-visible,#tower-view .tower-tile-bank:focus-visible{outline:2px solid var(--fleno-brand-500);outline-offset:2px}#tower-view .tower-lobby-grid{display:flex;flex-direction:column;gap:1.625rem}@media (min-width:900px){#tower-view .tower-lobby-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:2.75rem;align-items:start}}#tower-view .tower-hearts{gap:5px;letter-spacing:0;font-size:13px}#tower-view .tower-hearts .is-alive{color:var(--fleno-danger)}#tower-view .tower-hearts .is-spent{color:var(--fleno-border-strong);opacity:.6}#tower-view .tower-play-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem}#tower-view .tower-tier-name{font-size:.59375rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--fleno-brand-500)}#tower-view .tower-chain{font-family:Outfit,system-ui,sans-serif;font-size:2.375rem;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--fleno-brand-500)}#tower-view .tower-play-meta.is-order .tower-chain,#tower-view .tower-play-meta.is-order .tower-tier-name{color:var(--fleno-warn)}#tower-view .tower-play-meta.is-spell .tower-chain,#tower-view .tower-play-meta.is-spell .tower-tier-name{color:var(--fleno-danger)}#tower-view .tower-play-hud #tower-timer,#tower-view .tower-play-hud .tower-timer{min-width:0;min-height:0;border:0;background:transparent;font-size:.75rem;font-weight:700;color:var(--fleno-muted);justify-content:flex-start}#tower-view .tower-play-hud #tower-timer.is-urgent,#tower-view .tower-play-hud .tower-timer.is-urgent,#tower-view .tower-time-wrap.is-urgent .tower-timer{border:0;background:transparent;color:var(--fleno-danger);animation:towerPulse .6s ease-in-out infinite}@keyframes towerPulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes towerRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}#tower-view .tower-lobby,#tower-view .tower-results{animation:towerRise .3s ease both}#tower-view .tower-body.is-play{gap:0}#tower-view .tower-play{width:100%;margin:0 auto;display:flex;flex-direction:column;gap:14px}@media (min-width:900px){#tower-view .tower-play{max-width:540px;gap:18px}}#tower-view .tower-play .tower-play-hud{position:sticky;top:4rem;z-index:6;margin:0;padding:0 0 .25rem;background:var(--fleno-surface-scrim);display:flex;flex-direction:column;gap:10px}#tower-view .tower-play-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}#tower-view .tower-play-left{display:flex;flex-direction:column;gap:2px;min-width:0}#tower-view .tower-play-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}#tower-view .tower-right-label{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--fleno-muted)}#tower-view .tower-play .tower-chain{font-family:Outfit,system-ui,sans-serif;font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--fleno-brand-500)}#tower-view .tower-play .tower-chain.is-hit{animation:towerPop .3s ease}#tower-view .tower-play .tower-time-wrap{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;width:100%}#tower-view .tower-play .tower-time-bar{width:100%;height:8px;border-radius:4px;background:var(--fleno-surface-muted);overflow:hidden}#tower-view .tower-play .tower-time-fill{height:8px;border-radius:4px;background:var(--fleno-brand-500);transition:width .1s linear}#tower-view .tower-play .tower-time-wrap.is-order .tower-time-fill{background:var(--fleno-warn)}#tower-view .tower-play .tower-time-wrap.is-spell .tower-time-fill,#tower-view .tower-play .tower-time-wrap.is-urgent .tower-time-fill{background:var(--fleno-danger)}#tower-view .tower-float-row,#tower-view .tower-time-meta{display:flex;justify-content:space-between;align-items:center;min-height:16px}#tower-view .tower-float-row{justify-content:flex-end}#tower-view .tower-play #tower-timer,#tower-view .tower-play .tower-timer{min-width:0;min-height:0;border:0;background:transparent;padding:0;font-size:12px;font-weight:700;color:var(--fleno-muted);justify-content:flex-start}#tower-view .tower-play #tower-timer.is-urgent,#tower-view .tower-play .tower-time-wrap.is-urgent .tower-timer,#tower-view .tower-play .tower-timer.is-urgent{border:0;background:transparent;color:var(--fleno-danger);animation:towerPulse .6s ease-in-out infinite}#tower-view .tower-play-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 18px;border-radius:10px;border:1px solid var(--fleno-border);background:linear-gradient(180deg,var(--fleno-surface-muted),var(--fleno-surface-soft));transition:background .18s ease,border-color .18s ease}@media (min-width:900px){#tower-view .tower-play-card{gap:18px;padding:30px 26px}}#tower-view .tower-play-card.is-hit{border-color:var(--fleno-success);background:var(--fleno-success-soft)}#tower-view .tower-play-card.is-miss{border-color:var(--fleno-danger);background:var(--fleno-danger-soft)}#tower-view .tower-play .tower-emoji{font-size:52px;line-height:1;text-align:center}#tower-view .tower-clue-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;width:100%}#tower-view .tower-play .tower-clue{margin:0;font-size:14px;font-weight:600;line-height:1.4;text-align:center;color:var(--fleno-ink-soft);text-wrap:pretty}#tower-view .tower-play .tower-speak{margin:0;flex:none}#tower-view .tower-play .tower-speak .btn-speak{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:999px;border:1.5px solid var(--fleno-border);background:var(--fleno-surface);color:var(--fleno-muted);display:inline-flex;align-items:center;justify-content:center}#tower-view .tower-play .tower-speak .btn-speak.is-speaking,#tower-view .tower-play .tower-speak .btn-speak[aria-pressed=true]{border-color:var(--fleno-brand-500);background:var(--fleno-brand-100);color:var(--fleno-brand-600)}#tower-view .tower-play .tower-speak .btn-speak svg{width:20px;height:20px}#tower-view .tower-tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%}@media (max-width:640px){#tower-view .tower-tile-grid{gap:7px}}#tower-view .tower-tile{padding:15px 10px;min-height:48px;border-radius:8px;border:1.5px solid var(--fleno-border-strong);background:var(--fleno-surface-soft);color:var(--fleno-ink);font-family:Outfit,system-ui,sans-serif;font-size:17px;font-weight:800;line-height:1.2;cursor:pointer;touch-action:manipulation;transition:background .15s ease,border-color .15s ease,opacity .15s ease}#tower-view .tower-tile:hover:not(:disabled){border-color:var(--fleno-brand-500)}#tower-view .tower-tile.is-correct{background:var(--fleno-success-soft);border-color:var(--fleno-success);color:var(--fleno-success-ink)}#tower-view .tower-tile.is-wrong{background:var(--fleno-danger-soft);border-color:var(--fleno-danger);color:var(--fleno-danger-ink)}#tower-view .tower-tile.is-eliminated{opacity:.2;cursor:default}#tower-view .tower-cell-row.is-shake,#tower-view .tower-tile-grid.is-shake{animation:towerShake .3s ease}#tower-view .tower-order-board{width:100%;display:flex;flex-direction:column;align-items:center;gap:13px}#tower-view .tower-play .tower-cell-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}#tower-view .tower-play .tower-cell{width:38px;height:46px;min-width:38px;min-height:46px;border-radius:6px;border:1.5px solid var(--fleno-border-strong);background:transparent;color:var(--fleno-muted);font-family:Outfit,system-ui,sans-serif;font-size:21px;font-weight:800;text-transform:uppercase;box-shadow:none;transform:none}#tower-view .tower-play .tower-cell:not(.is-empty){border-color:var(--fleno-muted);background:var(--fleno-surface-muted);color:var(--fleno-ink)}#tower-view .tower-play .tower-cell.is-active{border-color:var(--fleno-brand-500);background:var(--fleno-brand-50);color:var(--fleno-ink);box-shadow:none}#tower-view .tower-play .tower-cell.is-correct,#tower-view .tower-play-card.is-hit .tower-cell{border-color:var(--fleno-success);background:var(--fleno-success-soft);color:var(--fleno-success-ink)}#tower-view .tower-play .tower-cell.is-wrong,#tower-view .tower-play-card.is-miss .tower-cell{border-color:var(--fleno-danger);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}#tower-view .tower-key-tray{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}#tower-view .tower-key{width:42px;height:48px;min-width:42px;min-height:48px;border-radius:6px;border:1.5px solid var(--fleno-border-strong);background:var(--fleno-surface-muted);color:var(--fleno-ink);font-family:Outfit,system-ui,sans-serif;font-size:20px;font-weight:800;text-transform:uppercase;cursor:pointer;touch-action:manipulation;transition:opacity .15s ease,background .15s ease}#tower-view .tower-key.is-used,#tower-view .tower-key:disabled.is-used{opacity:.22;cursor:default;background:transparent;color:var(--fleno-muted)}#tower-view .tower-undo{background:none;border:none;padding:4px 10px;font-size:12px;font-weight:700;color:var(--fleno-muted);cursor:pointer}#tower-view .tower-undo:hover:not(:disabled){color:var(--fleno-ink-soft)}#tower-view .tower-undo:disabled{opacity:.4;cursor:default}#tower-view .tower-play .tower-input-dock{width:100%;display:flex;flex-direction:column;align-items:center;gap:9px}#tower-view .tower-play .tower-spell-help{margin:0;font-size:11px;color:var(--fleno-muted)}#tower-view .tower-play-actions{display:flex;align-items:center;justify-content:center;gap:8px}#tower-view .tower-play .tower-hint-btn{min-height:0;padding:7px 14px;border-radius:999px;border:1px solid var(--fleno-border-strong);background:var(--fleno-warn-soft);color:var(--fleno-warn-ink);font-size:12px;font-weight:700}#tower-view .tower-play .tower-hint-btn:hover:not(:disabled){border-color:var(--fleno-warn);color:var(--fleno-warn-ink)}#tower-view .tower-play .tower-hint-btn:disabled{border-color:var(--fleno-border);background:transparent;color:var(--fleno-border-strong);opacity:1;cursor:default}#tower-view .tower-play .tower-leave-btn{min-height:0;padding:6px 10px;font-size:12px;font-weight:600;color:var(--fleno-border-strong)}#tower-view .tower-play .tower-leave-btn:hover{color:var(--fleno-ink-soft)}#tower-view.is-keyboard-open .tower-play-actions{display:none}@media (max-width:767px){#tower-view .tower-play .tower-thumb-dock{position:static;margin-top:0;padding:0;background:transparent;box-shadow:none}}@media (prefers-reduced-motion:reduce){#tower-view .tower-goal-fill,#tower-view .tower-mastery-fill,#tower-view .tower-progress-fill,#tower-view .tower-time-fill{transition:none}#tower-view .tower-cell-pop,#tower-view .tower-lobby,#tower-view .tower-results,#tower-view .tower-score.is-hit,#tower-view .tower-timer.is-urgent{animation:none}}.formula-card,.pattern-bank{margin:var(--lesson-space-4) 0 0;padding:var(--lesson-space-3);border-radius:var(--fleno-radius-2xl)}@media (min-width:768px){.formula-card,.pattern-bank{padding:var(--lesson-space-4)}}.formula-card{background:var(--fleno-surface);border:1px solid var(--fleno-border)}.formula-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--lesson-space-2);margin-bottom:var(--lesson-space-3)}.formula-card__title{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fleno-muted)}.formula-card__icon{width:1rem;height:1rem;color:var(--fleno-success);flex-shrink:0}.formula-card__body{display:flex;flex-direction:column;gap:var(--lesson-space-3)}.formula-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lesson-space-1)}.formula-chip{padding:.5rem 1rem;border-radius:var(--fleno-radius-lg);border:1px solid transparent;font-size:.875rem;font-weight:700;line-height:1.3}.formula-chip--0{background:var(--fleno-success-soft);color:var(--fleno-success-ink);border-color:var(--fleno-success-soft)}.formula-chip--1{background:var(--fleno-info-soft);color:var(--fleno-info-ink);border-color:var(--fleno-info-soft)}.formula-chip--2{background:var(--fleno-brand-50);color:var(--fleno-brand-700);border-color:var(--fleno-brand-100)}.formula-chip--3{background:var(--fleno-warn-soft);color:var(--fleno-warn-ink);border-color:var(--fleno-warn-soft)}.formula-chip--4{background:var(--fleno-danger-soft);color:var(--fleno-danger-ink);border-color:var(--fleno-danger-soft)}.formula-chip__plus{color:var(--fleno-muted);font-weight:700;font-size:1.125rem;line-height:1}.pattern-bank{background:var(--fleno-brand-50);border:1px solid var(--fleno-brand-100);border-left:3px solid var(--fleno-brand-500)}:root[data-theme=dark] .pattern-bank{border-color:var(--fleno-border-strong);border-left-color:var(--fleno-brand-500)}.pattern-bank--inline{margin-top:var(--lesson-space-3);margin-bottom:var(--lesson-space-2);padding:var(--lesson-space-3)}.pattern-bank__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lesson-space-2);margin-bottom:var(--lesson-space-2)}#markdown-container .pattern-bank__title,.pattern-bank__title{margin:0!important;padding:0;border:none;font-size:.8125rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fleno-brand-700);line-height:1.3}.pattern-bank__count{font-size:.6875rem;font-weight:600;color:var(--fleno-muted);font-variant-numeric:tabular-nums;flex-shrink:0}#markdown-container .pattern-bank__list,.pattern-bank__list{display:flex;flex-direction:column;flex-wrap:nowrap;gap:var(--lesson-space-2);margin:0;padding:0;list-style:none}#markdown-container .pattern-row,.pattern-row{display:flex;align-items:center;gap:var(--lesson-space-1);min-height:2.75rem;margin:0;padding:.75rem 1rem;border:1px solid var(--lesson-phrase-border);border-radius:.5rem;background:var(--lesson-phrase-bg);color:var(--fleno-ink);list-style:none}.pattern-row__text{flex:1;min-width:0;font-size:1rem;font-weight:600;line-height:1.4;color:var(--fleno-ink)}.pattern-row__slot{display:inline-block;width:4ch;margin:0 .15em;border-bottom:2px solid var(--fleno-brand-500);vertical-align:-.12em}.pattern-row .btn-speak{margin-left:auto}@media (max-width:480px){.formula-card,.pattern-bank{padding:var(--lesson-space-3)}.pattern-row__text{font-size:.9375rem}}.topbar-inner{min-width:0;flex:1 1 0%}.page-shell{container-type:inline-size}@container (min-width: 100rem){#dashboard-grid .course-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@container (min-width: 120rem){#dashboard-grid .course-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}@container (min-width: 140rem){#dashboard-grid .course-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@container (min-width: 160rem){#dashboard-grid .course-grid{grid-template-columns:repeat(9,minmax(0,1fr))}}#top-breadcrumbs{flex-wrap:nowrap;overflow:hidden}#top-breadcrumbs>*{flex-shrink:0;white-space:nowrap}#top-breadcrumbs>:last-child{min-width:0;flex-shrink:1;overflow:hidden;text-overflow:ellipsis}@media (max-width:639px){#top-breadcrumbs>:not(:last-child){display:none}}:root[data-theme=dark] .card-done{background:var(--fleno-success-soft)}:root[data-theme=dark] .nav-level-body{background:var(--fleno-surface-soft)}:root[data-theme=dark] .nav-course.is-current{background:var(--fleno-surface-muted)}:root[data-theme=dark] .field{border-color:var(--fleno-border-strong)}.nav-section-mark{color:var(--fleno-muted)}.nav-section-mark.is-done{color:var(--fleno-success-ink)}.nav-section.is-active .nav-section-mark{color:inherit;opacity:.72}.nav-section.is-active .nav-section-mark.is-done{color:inherit;opacity:1}.lesson-aside{margin-block:1rem;padding:.75rem 1rem;border-inline-start:4px solid var(--lesson-aside-accent);border-block:1px solid var(--lesson-aside-edge);border-inline-end:1px solid var(--lesson-aside-edge);border-start-end-radius:.75rem;border-end-end-radius:.75rem;background:var(--lesson-aside-bg);box-shadow:var(--fleno-shadow-sm);font-size:.875rem;font-weight:500;line-height:1.625;color:var(--fleno-ink)}@media (min-width:768px){.lesson-aside{font-size:1rem}}.lesson-aside>:first-child{margin-top:0}.lesson-aside>:last-child{margin-bottom:0}.notice-danger,.notice-warn{border-width:1px;border-style:solid}.notice-danger{border-color:color-mix(in srgb,var(--fleno-danger) 38%,transparent);background:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}.notice-warn{border-color:color-mix(in srgb,var(--fleno-warn) 38%,transparent);background:var(--fleno-warn-soft);color:var(--fleno-warn-ink)}