:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.5rem;--radius:.75rem;--radius-lg:1rem;--radius-pill:999px;--shadow-sm:0 1px 2px #0f172a0f;--shadow:0 4px 16px #0f172a14;--shadow-lg:0 12px 40px #0f172a1f;--container:960px;--transition:.16s ease}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f8fb;--surface:#fff;--surface-2:#f1f3f8;--surface-3:#e7eaf1;--border:#e3e6ee;--border-strong:#cfd4e0;--text:#0f172a;--text-muted:#5b6478;--text-soft:#8a93a6;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#dbeafe;--success:#16a34a;--success-soft:#dcfce7;--warning:#f59e0b;--warning-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d12;--surface:#14171d;--surface-2:#1a1e26;--surface-3:#232832;--border:#2a2f3a;--border-strong:#3a4150;--text:#e6e9f0;--text-muted:#a4abbb;--text-soft:#6e7587;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-soft:#1e293b;--success:#22c55e;--success-soft:#052e1a;--warning:#fbbf24;--warning-soft:#2a1f04;--danger:#f87171;--danger-soft:#2a0c0c}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;font-size:16px;line-height:1.55;display:flex}img,svg{max-width:100%;display:block}a{color:var(--primary);transition:color var(--transition);text-decoration:none}a:hover{color:var(--primary-hover);text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer}textarea,input,select{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--text);margin:0 0 .6em;font-weight:700;line-height:1.25}h1{font-size:1.75rem}h2{margin-top:2rem;font-size:1.5rem}h3{margin-top:1.5rem;font-size:1.2rem}h4,h5,h6{margin-top:1.25rem;font-size:1.05rem}p{margin:0 0 1rem}ul,ol{margin:0 0 1rem;padding-left:1.4rem}li{margin-bottom:.4rem}code{font-family:var(--font-mono);background:var(--surface-2);color:var(--text);border-radius:.3em;padding:.15em .4em;font-size:.9em}::selection{background:var(--primary);color:#fff}.container{width:100%;max-width:var(--container);margin:0 auto;padding-left:1rem;padding-right:1rem}.main{flex:1;padding-top:2rem;padding-bottom:4rem}.site-header{background:var(--bg);border-bottom:1px solid var(--border)}.site-header__inner{align-items:center;gap:.75rem;padding-top:.75rem;padding-bottom:.75rem;display:flex}.site-header__title{letter-spacing:-.01em;color:var(--text);text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:auto;margin:0;font-size:clamp(1rem,2.4vw,1.5rem);font-weight:700;line-height:1.2;overflow:hidden}.icon-btn{border:1px solid var(--border);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--text);border-radius:var(--radius-pill);transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.icon-btn:active{transform:scale(.96)}.icon-btn svg{width:1.15rem;height:1.15rem}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.icon-btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.icon-btn--danger:hover{background:var(--danger);border-color:var(--danger);filter:brightness(1.05)}.btn-toolbar--icons{gap:.35rem}.site-header__actions{align-items:center;gap:.4rem;display:flex}.dropdown{position:relative}.dropdown__menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:12rem;max-height:60vh;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--transition), transform var(--transition);z-index:60;margin:0;padding:.4rem;list-style:none;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto;transform:translateY(-4px)}.dropdown__menu.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown__menu li{margin:0}.dropdown__menu a{border-radius:var(--radius-sm);color:var(--text);transition:background var(--transition);padding:.55rem .75rem;text-decoration:none;display:block}.dropdown__menu a:hover{background:var(--surface-2);color:var(--text)}.dropdown__menu a.is-active{background:var(--primary-soft);color:var(--primary);font-weight:600}[dir=rtl] .dropdown__menu{left:0;right:auto}.sidebar-overlay{opacity:0;pointer-events:none;transition:opacity var(--transition);z-index:90;background:#0f172a80;position:fixed;inset:0}.sidebar-overlay.is-open{opacity:1;pointer-events:auto}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:min(20rem,86vw);height:100vh;transition:transform .22s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}[dir=rtl] .sidebar{border-right:none;border-left:1px solid var(--border);left:auto;right:0;transform:translate(100%)}.sidebar.is-open{transform:translate(0)}.sidebar__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.sidebar__title{margin:0;font-size:1.1rem;font-weight:700}.sidebar__body{flex:1;padding:.75rem;overflow-y:auto}.sidebar__section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);margin:1.25rem .5rem .5rem;font-size:.75rem}.sidebar-nav{margin:0;padding:0;list-style:none}.sidebar-nav li{margin:0}.sidebar-nav a{border-radius:var(--radius-sm);color:var(--text);transition:background var(--transition);align-items:center;gap:.7rem;padding:.65rem .75rem;text-decoration:none;display:flex}.sidebar-nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar-nav a.is-active{background:var(--primary-soft);color:var(--primary);font-weight:600}.sidebar-nav svg{flex-shrink:0;width:1.15rem;height:1.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem}.field-label{color:var(--text);margin-bottom:.5rem;font-weight:600;display:block}.select,.input,.textarea{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);appearance:none;padding:.7rem .9rem}.select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%235b6478' d='M6 8.825 1.175 4 2.59 2.585 6 5.995 9.41 2.585 10.825 4Z'/></svg>");background-position:right .85rem center;background-repeat:no-repeat;padding-right:2.25rem}[dir=rtl] .select{background-position:.85rem;padding-left:2.25rem;padding-right:.9rem}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);outline:none}.textarea{resize:vertical;min-height:6.5rem;line-height:1.55;font-family:var(--font-mono)}.textarea--prose{font-family:inherit}.btn{border-radius:var(--radius);background:var(--surface-2);color:var(--text);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1rem;font-weight:500;line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{border-color:var(--border);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.btn--success{background:var(--success);color:#fff;border-color:var(--success)}.btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--warning{background:var(--warning);color:#1a1a1a;border-color:var(--warning)}.btn--lg{padding:.85rem 1.25rem;font-size:1rem}.btn--block{width:100%}.btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.btn-toolbar{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.io-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=760px){.io-grid{grid-template-columns:1fr 1fr}}.io-card{flex-direction:column;gap:.75rem;display:flex}.chip-row{flex-wrap:wrap;gap:.4rem;margin:.75rem 0 1.25rem;display:flex}.chip{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);transition:background var(--transition), color var(--transition), border-color var(--transition);padding:.35rem .85rem;font-size:.875rem;text-decoration:none;display:inline-block}.chip:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);text-decoration:none}.table-wrap{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);margin-bottom:1.5rem;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .9rem}[dir=rtl] .table th,[dir=rtl] .table td{text-align:right}.table thead th{background:var(--surface-2);color:var(--text);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:600}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table--morse td:nth-child(2),.table--morse th:nth-child(2){font-family:var(--font-mono);color:var(--primary);letter-spacing:.05em}.alert{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);margin-top:1rem;padding:.85rem 1rem}.alert--success{background:var(--success-soft);border-color:var(--success);color:var(--success)}.alert--danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.modal-overlay{opacity:0;pointer-events:none;transition:opacity var(--transition);z-index:200;background:#0f172a8c;justify-content:center;align-items:flex-start;padding:5vh 1rem 1rem;display:flex;position:fixed;inset:0}.modal-overlay.is-open{opacity:1;pointer-events:auto}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:640px;box-shadow:var(--shadow-lg);transition:transform var(--transition);flex-direction:column;max-height:90vh;display:flex;overflow:hidden;transform:translateY(-12px)}.modal-overlay.is-open .modal{transform:translateY(0)}.modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal__title{margin:0;font-size:1.1rem;font-weight:700}.modal__body{padding:1.25rem;overflow-y:auto}.modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;display:flex}.range{appearance:none;background:var(--surface-3);border-radius:var(--radius-pill);outline:none;width:100%;height:6px}.range::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;width:18px;height:18px;transition:transform var(--transition);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--primary);border-radius:50%}.range::-webkit-slider-thumb:hover{transform:scale(1.1)}.range::-moz-range-thumb{background:var(--primary);cursor:pointer;border:2px solid var(--surface);width:18px;height:18px;box-shadow:0 0 0 1px var(--primary);border-radius:50%}.settings-grid{grid-template-columns:1fr;gap:1.1rem;display:grid}@media (width>=600px){.settings-grid{grid-template-columns:1fr 1fr}}.learn-page{max-width:36rem;margin:0 auto}.challenge-page{max-width:34rem;margin:0 auto}.learn-header{margin-bottom:1.5rem}.learn-header__row{grid-template-columns:1fr;align-items:end;gap:1rem;margin-bottom:1rem;display:grid}@media (width>=640px){.learn-header__row{grid-template-columns:1fr auto}}.learn-header__lang{min-width:0}.learn-progress{background:var(--surface-2);border-radius:var(--radius-pill);border:1px solid var(--border);height:6px;overflow:hidden}.learn-progress__bar{background:linear-gradient(90deg, var(--primary), var(--success));width:0%;height:100%;transition:width .25s;display:block}.learn-stats{color:var(--text-muted);justify-content:space-between;gap:.5rem;margin-top:.4rem;font-size:.825rem;display:flex}.learn-stats__item{align-items:center;gap:.3rem;display:inline-flex}.study-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:0;padding:1.5rem 1.25rem 1.25rem}.study-card__top{color:var(--text-muted);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.study-card__progress{font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-pill);color:var(--text);padding:.2rem .65rem;font-weight:600}.learned-toggle{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);background:0 0;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.8rem;display:inline-flex}.learned-toggle:hover{background:var(--surface-2);color:var(--text)}.learned-toggle:active{transform:scale(.96)}.learned-toggle__icon{width:14px;height:14px}.learned-toggle.is-on{background:var(--success-soft);color:var(--success);border-color:var(--success)}.study-card__letter-wrap{padding:1.25rem 0 .75rem}.study-card__letter{color:var(--text);letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(4rem,16vw,7rem);font-weight:700;line-height:1}.study-card__letter.is-flip{animation:.32s cubic-bezier(.4,0,.2,1) study-flip}@keyframes study-flip{0%{opacity:0;transform:translateY(8px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.study-card__pattern{justify-content:center;align-items:center;gap:.5rem;min-height:1.5rem;margin-bottom:.75rem;display:flex}.pattern-dot,.pattern-dash{background:var(--primary);border-radius:var(--radius-pill);height:1.1rem;box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 35%, transparent);display:inline-block}.pattern-dot{width:1.1rem}.pattern-dash{width:3.3rem}.study-card__morse{font-family:var(--font-mono);letter-spacing:.14em;color:var(--primary);margin-bottom:.25rem;font-size:1.25rem}.study-card__actions{justify-content:center;align-items:center;gap:.6rem;margin:1rem 0 .75rem;display:flex}.icon-btn--lg{width:3rem;height:3rem}.play-btn{min-width:8rem}.study-card__footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.75rem;font-size:.825rem;display:flex}.checkbox-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;display:inline-flex}.checkbox-row input{accent-color:var(--primary)}.progress-grid-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:1.5rem;margin-bottom:1.25rem;overflow:hidden}.progress-grid-card__summary{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition);justify-content:space-between;align-items:center;gap:.5rem;padding:.85rem 1.1rem;list-style:none;display:flex}.progress-grid-card__summary::-webkit-details-marker{display:none}.progress-grid-card__summary:hover{background:var(--surface-2)}.progress-grid-card__summary-text{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:inline-flex}.progress-grid-card__title{margin:0;font-size:1rem}.progress-grid-card__summary-stat{font-family:var(--font-mono);background:var(--surface-2);border-radius:var(--radius-pill);padding:.15rem .55rem;font-size:.85rem}.progress-grid-card__chevron{color:var(--text-muted);transition:transform var(--transition);display:inline-flex}.progress-grid-card[open] .progress-grid-card__chevron{transform:rotate(180deg)}.progress-grid-card__body{border-top:1px solid var(--border);padding:.85rem 1.1rem 1.1rem}.progress-grid-card__hint{margin:0 0 .75rem;font-size:.8rem}.progress-grid{grid-template-columns:repeat(auto-fill,minmax(2.6rem,1fr));gap:.35rem;display:grid}.progress-cell{background:var(--surface-2);color:var(--text-muted);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:.1rem;min-height:2.6rem;padding:.4rem .25rem .35rem;font-family:inherit;line-height:1;display:flex}.progress-cell:hover{background:var(--surface);border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.progress-cell:active{transform:translateY(0)}.progress-cell__char{color:inherit;font-size:.95rem;font-weight:700}.progress-cell__morse{font-family:var(--font-mono);color:var(--text-soft);letter-spacing:.05em;font-size:.55rem}.progress-cell.is-learned{background:var(--success-soft);border-color:var(--success);color:var(--success)}.progress-cell.is-learned .progress-cell__morse{color:var(--success)}.progress-cell.is-current{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent)}.progress-cell.is-current .progress-cell__morse{color:var(--primary)}.progress-cell.is-current.is-learned{background:var(--success-soft);border-color:var(--success);color:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 25%, transparent)}.practice-card{text-align:center}.practice-stats{align-items:center;gap:.6rem;display:inline-flex}.practice-stat{background:var(--surface-2);border-radius:var(--radius-pill);align-items:baseline;gap:.3rem;padding:.2rem .6rem;font-size:.75rem;display:inline-flex}.practice-stat__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.practice-stat__value{font-family:var(--font-mono);color:var(--text);font-size:.85rem;font-weight:700}.practice-prompt{color:var(--text-muted);margin:0 0 .5rem;font-size:.95rem;font-weight:500}.practice-input{align-items:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}.practice-input .input{text-align:center;font-family:var(--font-mono);letter-spacing:.1em;flex:1;font-size:1.1rem}.practice-toolbar{flex-wrap:wrap;gap:.4rem;display:inline-flex}.practice-card .morse-keys{grid-template-columns:1fr 1fr auto;gap:.5rem;margin:0 auto .75rem;display:grid}.practice-card .morse-key{min-height:3.25rem;font-size:1.25rem;font-family:var(--font-mono);font-weight:700}.practice-card .alert{text-align:left}[dir=rtl] .practice-card .alert{text-align:right}.practice-actions{grid-template-columns:1fr auto;gap:.5rem;margin-bottom:.75rem;display:grid}.practice-actions .btn{min-height:3rem}.practice-actions .btn[id=nextQuestion]{grid-column:1/-1}@media (width<=540px){.learn-page{padding:0}.learn-header__row{gap:.5rem}.learn-header__lang{width:100%}.segmented{justify-content:stretch;width:100%}.segmented__opt{text-align:center;flex:1}.study-card{border-radius:var(--radius);padding:1rem .75rem .85rem}.study-card__top{font-size:.7rem}.study-card__letter{margin-bottom:.6rem;font-size:clamp(3rem,14vw,5rem)}.study-card__letter-wrap{padding:.5rem 0}.study-card__pattern{gap:.35rem}.pattern-dot{width:.85rem;height:.85rem}.pattern-dash{width:2.4rem;height:.85rem}.study-card__morse{font-size:1.05rem}.study-card__actions{gap:.4rem;margin-top:.5rem}.icon-btn--lg{width:2.75rem;height:2.75rem}.play-btn{min-width:6.5rem}.progress-grid{grid-template-columns:repeat(auto-fill,minmax(2.3rem,1fr));gap:.3rem}.progress-cell{min-height:2.3rem;padding:.3rem .2rem}.progress-cell__char{font-size:.8rem}.progress-cell__morse{font-size:.5rem}.practice-card .morse-key{min-height:3rem;font-size:1.2rem}.practice-stat{padding:.15rem .45rem}.practice-stat__label{font-size:.65rem}.practice-stat__value{font-size:.78rem}.study-card__footer{gap:.5rem;font-size:.75rem}.practice-toolbar{gap:.3rem}.kbd-hints{display:none}}.kbd-hints{align-items:center;gap:.3rem;display:inline-flex}.kbd-hints__label{color:var(--text-muted);margin-left:.25rem;font-size:.75rem}kbd{background:var(--surface-2);border:1px solid var(--border);min-width:1.4rem;height:1.4rem;box-shadow:0 1px 0 var(--border-strong);color:var(--text);font-family:var(--font-mono);border-radius:.4rem;justify-content:center;align-items:center;padding:0 .35rem;font-size:.7rem;line-height:1;display:inline-flex}.game-card__actions{justify-content:center;gap:.4rem;margin-bottom:.75rem;display:flex}.score-row{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.score-row--challenge{grid-template-columns:1fr 1fr 1fr}.score-card--compact{margin-bottom:0;padding:.75rem;position:relative;overflow:visible}.score-card--compact .score-card__number{align-items:center;gap:.3rem;font-size:1.5rem;display:inline-flex}.score-card--compact .score-card__label{margin-top:.25rem;font-size:.8rem}.challenge-page__lang{max-width:24rem;margin-bottom:1rem;margin-left:auto;margin-right:auto}.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center;margin-bottom:1rem;padding:1.5rem 1.25rem}.quiz-card__title{color:var(--text-muted);margin:0 0 .5rem;font-size:.95rem;font-weight:500}.quiz-card__content{font-size:clamp(2rem,8vw,3rem);font-weight:700;font-family:var(--font-mono);letter-spacing:.08em;color:var(--text);word-break:break-word;min-height:3rem;margin:.25rem 0 1rem}.quiz-card__play{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;transition:background var(--transition);align-items:center;gap:.4rem;margin-bottom:1.25rem;padding:.4rem .85rem;font-size:.85rem;display:inline-flex}.quiz-card__play:hover{background:var(--surface-3)}.options-grid--quiz{grid-template-columns:1fr 1fr}.quiz-option{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);cursor:pointer;transition:background var(--transition), border-color var(--transition), transform var(--transition);text-align:left;align-items:center;gap:.5rem;padding:.75rem .9rem;font-size:1rem;display:flex}[dir=rtl] .quiz-option{text-align:right}.quiz-option:hover:not(:disabled){background:var(--surface-2);border-color:var(--primary);transform:translateY(-1px)}.quiz-option:disabled{cursor:not-allowed}.quiz-option__key{background:var(--surface-2);width:1.5rem;height:1.5rem;font-family:var(--font-mono);color:var(--text-muted);border-radius:.4rem;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.quiz-option__text{word-break:break-word;flex:1}.quiz-option.is-correct{background:var(--success);color:#fff;border-color:var(--success)}.quiz-option.is-correct .quiz-option__key{color:#fff;background:#ffffff40}.quiz-option.is-incorrect{background:var(--danger);color:#fff;border-color:var(--danger)}.quiz-option.is-incorrect .quiz-option__key{color:#fff;background:#ffffff40}.quiz-option.is-shake{animation:.38s cubic-bezier(.36,.07,.19,.97) quiz-shake}@keyframes quiz-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.score-float{pointer-events:none;opacity:0;font-size:.85rem;font-weight:700;position:absolute;top:.4rem;right:.5rem}[dir=rtl] .score-float{left:.5rem;right:auto}.score-float.is-pop-up{color:var(--success);animation:.7s ease-out forwards score-pop}.score-float.is-pop-down{color:var(--danger);animation:.7s ease-out forwards score-pop-down}@keyframes score-pop{0%{opacity:0;transform:translateY(0)}20%{opacity:1;transform:translateY(-6px)}to{opacity:0;transform:translateY(-22px)}}@keyframes score-pop-down{0%{opacity:0;transform:translateY(0)}20%{opacity:1;transform:translateY(4px)}to{opacity:0;transform:translateY(20px)}}.streak-flame{font-size:1rem;line-height:1;animation:1.2s ease-in-out infinite alternate flame-flicker}@keyframes flame-flicker{0%{filter:drop-shadow(0 0 2px #f7c32e66);transform:scale(1)rotate(-2deg)}to{filter:drop-shadow(0 0 6px #f7c32eb3);transform:scale(1.08)rotate(3deg)}}#streakCard.is-hot{background:linear-gradient(135deg, color-mix(in srgb, var(--warning) 12%, var(--surface)), var(--surface));border-color:var(--warning)}#streakCard.is-hot .score-card__number{color:var(--warning)}.quiz-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.score-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;margin-bottom:1rem;padding:1rem}.score-card__number{color:var(--primary);font-size:2rem;font-weight:700;line-height:1;display:block}.score-card__label{color:var(--text-muted);margin-top:.4rem;font-size:.9rem}.game-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:1.5rem}.game-card__title{color:var(--text-muted);margin:0 0 .5rem;font-size:1rem;font-weight:500}.game-card__content{color:var(--text);font-size:1.6rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.06em;word-break:break-word;min-height:2.4rem;margin:0 0 1rem}.morse-keys{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1rem;display:flex}.morse-keys .btn{min-width:5rem;font-family:var(--font-mono);font-size:1.1rem;font-weight:700}.options-grid{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.options-grid .btn{font-family:var(--font-mono);font-size:1rem}.options-grid .btn.is-correct{background:var(--success);color:#fff;border-color:var(--success)}.options-grid .btn.is-incorrect{background:var(--danger);color:#fff;border-color:var(--danger)}.letter-keyboard{border-top:1px solid var(--border);margin:1.5rem 0 0;padding:1.25rem 0 0}.letter-keyboard__title{margin:0 0 .25rem;font-size:1.15rem}.letter-keyboard__subtitle{margin:0 0 1rem;font-size:.875rem}.letter-grid{grid-template-columns:repeat(auto-fill,minmax(3.5rem,1fr));gap:.4rem;display:grid}.letter-grid.is-hidden-panel{display:none}.letter-key{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);box-shadow:0 1px 0 var(--border-strong);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.6rem .3rem .5rem;font-family:inherit;line-height:1;display:flex}.letter-key:hover{background:var(--surface-2);border-color:var(--primary);color:var(--primary)}.letter-key:active{box-shadow:none;transform:translateY(1px)}.letter-key__char{font-size:1rem;font-weight:700}.letter-key__morse{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;font-size:.7rem}.letter-key:hover .letter-key__morse{color:var(--primary)}.reference-section{border-top:1px solid var(--border);margin-top:3rem;padding-top:2rem}.reference-figure{text-align:center;margin:1.25rem 0 1.75rem}.summary-table-section{border-top:1px solid var(--border);margin-top:3rem;padding-top:2rem}.summary-table-section .table td{font-size:.95rem}.summary-table-section .table td:nth-child(3){border-left:1px solid var(--border)}[dir=rtl] .summary-table-section .table td:nth-child(3){border-left:none;border-right:1px solid var(--border)}.reference-figure img{border:1px solid var(--border);border-radius:var(--radius);max-width:100%;height:auto;box-shadow:var(--shadow);display:inline-block}.alphabet-tables__panel.is-hidden-panel{display:none}.alphabet-tables__heading{color:var(--text);margin:1.25rem 0 .5rem;font-size:1.1rem}.alphabet-tables__extra{margin-top:1rem}.decoder-intro{margin:.5rem 0 1.5rem}.decoder-toolbar{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.decoder-toolbar__lang{flex:12rem;min-width:10rem}.decoder-toolbar__clear{align-self:flex-end}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);text-align:center;cursor:pointer;transition:border-color var(--transition), background var(--transition), transform var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;padding:2.5rem 1.5rem;display:flex}.dropzone:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 5%, var(--surface))}.dropzone:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.dropzone.is-dragging{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface));transform:scale(1.01)}.dropzone__icon{width:3rem;height:3rem;color:var(--primary)}.dropzone__title{color:var(--text);margin:0;font-size:1.05rem;font-weight:600}.dropzone__subtitle{color:var(--text-muted);margin:0;font-size:.9rem}.dropzone__formats{color:var(--text-soft);margin:.4rem 0 0;font-size:.8rem}.dropzone__filename{font-family:var(--font-mono);color:var(--primary);background:var(--surface-2);border-radius:var(--radius-pill);margin:.6rem 0 0;padding:.3rem .7rem;font-size:.875rem}.decoder-status-bar{background:var(--surface-2);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;padding:.6rem .9rem;font-size:.875rem;display:flex}.decoder-status-bar .decoder-status{background:var(--surface);margin-left:auto}[dir=rtl] .decoder-status-bar .decoder-status{margin-left:0;margin-right:auto}.btn--sm{gap:.3rem;padding:.35rem .7rem;font-size:.825rem}.segmented{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);gap:.2rem;margin:0;padding:.25rem;display:inline-flex}.segmented__opt{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.segmented__opt input{opacity:0;pointer-events:none;position:absolute}.segmented__opt>span{border-radius:var(--radius-pill);color:var(--text-muted);transition:background var(--transition), color var(--transition);align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:500;display:inline-flex}.segmented__opt input:checked+span{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.segmented__opt input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.decoder-panel{border-left:3px solid var(--primary);margin-bottom:1.25rem;padding:1.25rem}[dir=rtl] .decoder-panel{border-left:1px solid var(--border);border-right:3px solid var(--primary)}.decoder-meta__label{color:var(--text-muted)}.decoder-meta__value{font-family:var(--font-mono);color:var(--text);font-weight:600}.decoder-status{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-pill);padding:.2rem .6rem;font-size:.85rem}.decoder-output-block{margin-bottom:1rem}.decoder-output-block:last-child{margin-bottom:0}.decoder-output-head{align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.decoder-output-head .field-label{flex:1;margin:0}.decoder-output-count{color:var(--text-muted);font-size:.8rem;font-family:var(--font-mono)}.decoder-output{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-height:3.25rem;color:var(--text);margin:0;padding:.85rem 1rem;font-family:inherit;font-size:1rem;line-height:1.55}.decoder-output--mono{font-family:var(--font-mono);letter-spacing:.08em;color:var(--primary)}.decoder-output.is-placeholder{color:var(--text-soft);font-style:italic}.decoder-settings{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:1.5rem;padding:.85rem 1rem}.decoder-settings>summary{cursor:pointer;align-items:center;gap:.5rem;padding:.2rem 0;font-weight:600;list-style:none;display:flex}.decoder-settings>summary::-webkit-details-marker{display:none}.decoder-settings>summary:after{content:"+";color:var(--text-muted);margin-left:auto;font-size:1.2rem}[dir=rtl] .decoder-settings>summary:after{margin-left:0;margin-right:auto}.decoder-settings[open]>summary:after{content:"−"}@media (width<=520px){.decoder-status-bar{font-size:.8rem}.segmented{justify-content:center;width:100%}}.share-section{border-top:1px solid var(--border);margin-top:3rem;padding-top:2rem}.share-buttons{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.share-btn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-pill);cursor:pointer;width:2.5rem;height:2.5rem;transition:transform var(--transition), border-color var(--transition);justify-content:center;align-items:center;padding:0;display:inline-flex}.share-btn:hover{border-color:var(--border-strong);transform:translateY(-2px)}.share-btn svg{border-radius:50%;width:100%;height:100%}.site-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:1.5rem 0;font-size:.9rem}.site-footer a{color:var(--text-muted);margin:0 .5rem}.site-footer a:hover{color:var(--primary)}.site-footer__links{flex-wrap:wrap;justify-content:center;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.site-footer__links li{margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mt-2{margin-top:1rem}.mt-4{margin-top:2rem}.mb-2{margin-bottom:1rem}.hidden{display:none!important}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;z-index:300;padding:.7rem 1.1rem;font-size:.9rem;transition:opacity .2s,transform .2s;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%,1rem)}.toast.is-visible{opacity:1;transform:translate(-50%)}article{max-width:72ch;margin-top:2.5rem}article p,article li{color:var(--text)}article h2{margin-top:2rem;font-size:1.4rem}article h3{margin-top:1.5rem;font-size:1.15rem}article figure{text-align:center;margin:1.5rem 0}article figure img{border:1px solid var(--border);border-radius:var(--radius);max-width:100%;height:auto;box-shadow:var(--shadow);display:inline-block}article figcaption{color:var(--text-muted);margin-top:.5rem;font-size:.9rem}@media (width<=480px){.site-header__title{font-size:1rem}.icon-btn{width:2.25rem;height:2.25rem}.game-card{padding:1.1rem}.options-grid{grid-template-columns:1fr}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}
