*,:after,:before{box-sizing:border-box}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}body[data-fleno-app]{display:flex;height:100vh;height:100dvh;overflow:hidden;margin:0;color:var(--fleno-ink);background-color:var(--fleno-surface-soft);font-family:Inter,system-ui,sans-serif}#main-content{position:relative;flex:1 1 0%;width:100%;height:100%;overflow-y:auto}#main-content.tower-lock-scroll{overscroll-behavior-y:none}.skip-link:focus{outline:2px solid var(--fleno-info-ink);outline-offset:2px}:focus-visible{outline:2px solid var(--fleno-info-ink);outline-offset:2px}.lab-option-btn:focus-visible,.lab-token-chip:focus-visible{outline:2px solid var(--fleno-info-ink);outline-offset:2px}body[data-fleno-app],body[data-fleno-app] *{caret-color:transparent!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}body[data-fleno-app] input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),body[data-fleno-app] textarea{caret-color:auto!important;-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important}.js-view-title:focus{outline:none;box-shadow:none}.js-view-title:focus-visible{outline:2px solid var(--fleno-info-ink);outline-offset:2px}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:var(--fleno-border-strong) transparent}body{margin:0;min-height:100vh;min-height:100dvh;-webkit-tap-highlight-color:transparent}img,svg{max-width:100%;height:auto;-webkit-user-drag:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}#join-view .join-visual{display:flex;flex-direction:column;align-items:center;gap:1.25rem;margin-top:2rem;text-align:center}#join-view .join-logo-box{box-sizing:border-box;width:13.75rem;max-width:100%;height:auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto}#join-view .join-logo-box img,#join-view img.join-logo{display:block!important;width:auto!important;height:auto!important;max-width:13.75rem!important;max-height:9.75rem!important;-o-object-fit:contain!important;object-fit:contain!important;margin:0 auto}#join-view .join-qr-frame{box-sizing:border-box;display:block;width:16.75rem;max-width:100%;padding:.875rem;margin:0 auto;border-radius:.75rem;border:1px solid var(--fleno-border);background:var(--fleno-surface);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}#join-view .join-qr-frame img,#join-view img.join-qr-img{display:block!important;width:15rem!important;max-width:100%!important;height:15rem!important;max-height:15rem!important;-o-object-fit:contain!important;object-fit:contain!important;margin:0 auto;background:var(--fleno-surface)}@media (max-width:767px){#join-view .join-visual{gap:1rem;margin-top:1.5rem}#join-view .join-logo-box{width:10rem}#join-view .join-logo-box img,#join-view img.join-logo{max-width:10rem!important;max-height:7rem!important}#join-view .join-qr-frame{width:min(17.5rem,100%);padding:.75rem}#join-view .join-qr-frame img,#join-view img.join-qr-img{width:100%!important;height:auto!important;max-width:15.5rem!important;max-height:15.5rem!important;aspect-ratio:1/1}}@media (min-width:1280px){#join-view .join-logo-box{width:16rem}#join-view .join-logo-box img,#join-view img.join-logo{max-width:16rem!important;max-height:11.25rem!important}#join-view .join-qr-frame{width:19.5rem;padding:1rem}#join-view .join-qr-frame img,#join-view img.join-qr-img{width:17.5rem!important;height:17.5rem!important;max-width:17.5rem!important;max-height:17.5rem!important}}@media (min-width:1536px){#join-view .join-logo-box{width:17.5rem}#join-view .join-logo-box img,#join-view img.join-logo{max-width:17.5rem!important;max-height:12.25rem!important}#join-view .join-qr-frame{width:21rem}#join-view .join-qr-frame img,#join-view img.join-qr-img{width:19rem!important;height:19rem!important;max-width:19rem!important;max-height:19rem!important}}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--fleno-border-strong);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--fleno-muted)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}article blockquote{background-color:var(--fleno-warn-soft);border-left:4px solid var(--fleno-warn);padding:1.25rem 1.5rem;margin:2rem 0;border-radius:0 .75rem .75rem 0;font-style:normal;color:var(--fleno-warn-ink);box-shadow:var(--fleno-shadow-sm)}article blockquote p:first-child{margin-top:0}article h2{color:var(--fleno-ink);font-weight:800;border-bottom:2px solid var(--fleno-border);padding-bottom:.5rem;margin-top:2.5rem;margin-bottom:1rem}#markdown-container strong,.ex-dialogue-bubble strong,.ex-drill-text strong,.ex-meta strong,.ex-word-chip strong,.ex-word-text strong,.prose strong,article strong{color:var(--fleno-ink);font-weight:700}#markdown-container p:empty,.prose p:empty{display:none}.prose ul{margin-top:.35rem;margin-bottom:.25rem}article ol:has(+h3),article ol:has(+h4),article p:has(+h3),article p:has(+h4),article ul:has(+h3),article ul:has(+h4){font-weight:600;color:var(--fleno-ink);font-size:1.05rem;line-height:1.7;margin-top:1.75rem;margin-bottom:.75rem;padding:.85rem 1.25rem;border-left:4px solid var(--fleno-ink);background-color:var(--fleno-surface-muted);border-radius:0 8px 8px 0}article h3,article h4{margin-bottom:.35rem!important}article h3+ol,article h3+p,article h3+ul,article h4+ol,article h4+p,article h4+ul{background-color:var(--fleno-surface);border:1px solid var(--fleno-border-strong);padding:1.25rem 1.5rem;border-radius:10px;margin-top:.25rem!important;margin-bottom:1.75rem!important;box-shadow:0 2px 4px 0 rgba(0,0,0,.03);line-height:1.6!important}@keyframes popIn{0%{opacity:1;transform:scale(.98) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-bubble{opacity:1;animation:popIn .35s var(--fleno-ease) both}.lesson-section-strip{position:sticky;top:4.25rem;z-index:5;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;margin:0 0 1rem;padding:.55rem .75rem;border-radius:.75rem;border:1px solid var(--fleno-border);background:var(--fleno-surface-scrim);box-shadow:0 1px 3px rgba(15,23,42,.06);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.lesson-section-strip[hidden]{display:none!important}.lesson-section-strip-meta{font-size:.6875rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--fleno-info);white-space:nowrap}.lesson-section-strip-title{font-size:.8125rem;font-weight:700;color:var(--fleno-ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 8rem}@media (min-width:1024px){.lesson-section-strip{display:none!important}}.ex-meta{border-radius:.5rem;border:1px solid var(--fleno-border-strong);background:var(--fleno-warn-soft);padding:.5rem .75rem;font-size:.8125rem;line-height:1.5}.ex-meta,.ex-meta-label{color:var(--fleno-warn-ink)}.ex-meta-label{font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-right:.4rem}.ex-sentence{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:.65rem;padding:.85rem .15rem .35rem}.ex-sentence-line{display:flex;align-items:flex-start;justify-content:flex-start;gap:.5rem;width:100%}.ex-sentence-text{flex:1;min-width:0;font-size:1.0625rem;line-height:1.65;font-weight:500;color:var(--fleno-ink);text-align:left}.ex-sentence-speak{flex-shrink:0;margin-top:.15rem}.ex-word{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;padding-top:.25rem}.ex-word-chip{display:inline-flex;align-items:center;border-radius:.5rem;background:var(--fleno-surface-muted);color:var(--fleno-ink);border:1px solid var(--fleno-border);font-size:.9375rem;font-weight:700;letter-spacing:.01em;padding:.35rem .85rem}.ex-word-text{font-size:.9375rem;line-height:1.55;color:var(--fleno-ink-soft)}.ex-word-label{font-size:.625rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--fleno-muted)}.ex-dialogue{gap:.15rem;padding-top:.25rem}.ex-dialogue,.ex-dialogue-turn{display:flex;flex-direction:column}.ex-dialogue-turn{margin-top:.5rem}.ex-dialogue-turn.is-left{align-items:flex-start}.ex-dialogue-turn.is-right{align-items:flex-end}.ex-dialogue-role{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.ex-dialogue-turn.is-left .ex-dialogue-role{color:var(--fleno-muted);margin-left:.5rem}.ex-dialogue-turn.is-right .ex-dialogue-role{color:var(--fleno-info);margin-right:.5rem}.ex-dialogue-bubble{max-width:90%;border-radius:1rem;padding:.85rem 1.15rem;font-size:.9375rem;line-height:1.55;box-shadow:0 1px 2px rgba(15,23,42,.06)}.ex-dialogue-turn.is-left .ex-dialogue-bubble{background:var(--fleno-surface-muted);color:var(--fleno-ink);border:1px solid var(--fleno-border);border-top-left-radius:.25rem}.ex-dialogue-turn.is-right .ex-dialogue-bubble{background:var(--fleno-info);color:var(--fleno-on-info);border-top-right-radius:.25rem;box-shadow:0 4px 10px rgba(129,140,248,.15)}#markdown-container .ex-dialogue-turn.is-right .ex-dialogue-bubble strong,.ex-dialogue-turn.is-right .ex-dialogue-bubble strong{color:var(--fleno-on-info)}.ex-drill{display:flex;flex-direction:column;gap:.65rem;padding-top:.35rem}.ex-drill-row{display:flex;gap:.75rem;align-items:flex-start;border-radius:1rem;border:1px solid var(--fleno-border);padding:.85rem 1rem;background:var(--fleno-surface);box-shadow:0 1px 2px rgba(15,23,42,.04)}.ex-drill-row.is-primary{background:var(--fleno-surface-soft);border-color:var(--fleno-border)}.ex-drill-badge{flex-shrink:0;margin-top:.15rem;display:inline-flex;min-width:4.75rem;justify-content:center;border-radius:9999px;border:1px solid var(--fleno-border);padding:.2rem .55rem;font-size:.625rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--fleno-surface-muted);color:var(--fleno-ink-soft)}.ex-drill-row:not(.is-primary) .ex-drill-badge{background:var(--fleno-info-soft);color:var(--fleno-info-ink);border-color:var(--fleno-info-soft)}.ex-drill-text{flex:1;min-width:0;font-size:.9375rem;line-height:1.55;color:var(--fleno-ink)}.quiz-option-card{transition:all .15s ease;border:1px solid var(--fleno-border);background-color:var(--fleno-surface)}.quiz-option-card:hover{border-color:var(--fleno-muted);background-color:var(--fleno-surface-soft)}.quiz-option-card.selected{border-color:var(--fleno-ink);background-color:var(--fleno-info-soft);box-shadow:0 0 0 1px var(--fleno-ink)}.quiz-option-card.correct{border-color:var(--fleno-success);background-color:var(--fleno-success-soft);color:var(--fleno-success-ink)}.quiz-option-card.incorrect{border-color:var(--fleno-danger);background-color:var(--fleno-danger-soft);color:var(--fleno-danger-ink)}input[type=radio].custom-radio{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:1.25rem;height:1.25rem;border:2px solid var(--fleno-border-strong);border-radius:50%;outline:none;transition:all .2s ease-in-out;position:relative;background-color:#fff}input[type=radio].custom-radio:checked{border-color:var(--fleno-info);background-color:var(--fleno-info)}input[type=radio].custom-radio:checked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:.5rem;height:.5rem;background-color:#fff;border-radius:50%}.quiz-option{transition:all .2s ease}.quiz-option:has(input:checked){border-color:var(--fleno-info);background-color:var(--fleno-info-soft);box-shadow:0 4px 6px -1px rgba(59,130,246,.1),0 2px 4px -1px rgba(59,130,246,.06);transform:translateY(-1px)}.quiz-option:has(input:checked) .quiz-option-letter{background-color:var(--fleno-info-soft);color:var(--fleno-info-ink)}.quiz-option:has(input:checked) .quiz-option-text{color:var(--fleno-info-ink)}.accordion-content{transition:max-height .3s ease-in-out,opacity .3s ease-in-out;max-height:0;opacity:0;overflow:hidden}.accordion-content.open{max-height:2000px;opacity:1}@media (min-width:1024px){#main-sidebar.desktop-closed{margin-left:-20rem}}