:root{color-scheme:light;--bg:#f6f3ec;--surface:#fffefa;--surface-subtle:#eeeae0;--text:#1d2a32;--text-heading:#142128;--muted:#56636a;--border:#d2d7d1;--border-strong:#84928b;--accent:#0d6b64;--accent-hover:#08544f;--accent-soft:#e1efeb;--on-accent:#fff;--focus:#8a4b0f;--warning:#724600;--warning-bg:#fff4d6;--warning-border:#d8b76a;--danger:#a23434;--font-display:"Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:"IBM Plex Sans", "Avenir Next", "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-braille:"Noto Sans Braille", "Apple Braille", "Segoe UI Symbol", var(--font-mono);--radius-control:8px;--radius-card:12px;--radius-panel:16px;--shadow-panel:0 12px 32px #1421280f, 0 2px 6px #1421280a;--transition:.16s ease}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-padding-top:88px;line-height:1.6}body{background:var(--bg);flex-direction:column;min-height:100vh;margin:0;display:flex}a{color:var(--accent);text-underline-offset:.16em;transition:color var(--transition);text-decoration:underline .08em}a:hover{color:var(--accent-hover)}:where(a,button,textarea,select,input,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}.skip-link{z-index:100;border:2px solid var(--focus);border-radius:var(--radius-control);background:var(--surface);color:var(--text-heading);transition:transform var(--transition);padding:10px 16px;font-weight:650;position:fixed;top:12px;left:20px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:40;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);background:#f6f3eceb;width:100%;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1120px;height:64px;margin:0 auto;padding:0 28px;display:flex}.brand-link{min-height:44px;color:var(--text-heading);align-items:center;gap:10px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-glyph{flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.brand-glyph img{width:100%;height:100%;display:block}.nav-links{gap:20px;display:flex}.nav-item{min-height:44px;color:var(--muted);align-items:center;padding:8px 4px;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.nav-item.active{color:var(--accent)}main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:0 28px 80px}.page-hero{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);align-items:center;gap:48px;padding:64px 0 40px;animation:.36s ease-out both proof-enter;display:grid;position:relative}.hero-copy{min-width:0}.page-hero h1{max-width:18ch;color:var(--text-heading);font-family:var(--font-display);letter-spacing:-.025em;margin:0 0 20px;font-size:clamp(2.25rem,5vw,3.75rem);font-weight:650;line-height:1.08}.page-hero .lead{max-width:65ch;color:var(--muted);margin:0;font-size:clamp(1.0625rem,1.4vw,1.2rem);line-height:1.65}.hero-proof{pointer-events:none;justify-self:end;align-items:center;width:min(100%,280px);min-height:220px;display:grid}.hero-proof svg{width:100%;height:auto;display:block}.hero-proof .proof-slip{animation:.48s ease-out both proof-slip-settle}@keyframes proof-slip-settle{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tool-panel{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-panel);margin:0;padding:32px;animation:.36s ease-out 80ms both proof-enter}.tool-heading{color:var(--text-heading);text-transform:none;letter-spacing:0;margin:0 0 24px;font-size:1rem;font-weight:650}.controls-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:start;gap:16px;margin:0 0 24px;display:grid}.control-group{min-width:0}.field-label{color:var(--muted);letter-spacing:0;text-transform:none;margin-bottom:8px;font-size:.875rem;font-weight:650;display:block}textarea,select,input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);padding:12px 14px;font-size:1rem;line-height:1.5}textarea::placeholder,input::placeholder{color:var(--muted);opacity:1}textarea{resize:vertical;min-height:12rem;font-family:var(--font-mono);line-height:1.65}#braille-input{font-family:var(--font-braille)}textarea:hover:not(:disabled),select:hover:not(:disabled),input:hover:not(:disabled){border-color:var(--accent)}textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}select:disabled,textarea:disabled,input:disabled{background:var(--surface-subtle);color:var(--muted);cursor:not-allowed}.input-meta{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:0 24px;display:flex}.input-meta .hint{flex:30rem}.hint,.engine-note{color:var(--muted);margin:12px 0 0;font-size:.875rem;line-height:1.65}.control-hint{color:var(--muted);margin:8px 0 0;font-size:.875rem;line-height:1.5}.grade-decision{border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius-card);background:var(--surface-subtle);margin:0 0 24px;padding:16px 20px}.grade-decision-content{margin:0 0 20px}.grade-decision-title{color:var(--text-heading);margin:0 0 10px;font-size:1rem;font-weight:700;line-height:1.4}.grade-decision-title:after{display:none}.grade-decision-list{margin:0;padding-left:20px}.grade-decision-list li{color:var(--text);font-size:.9375rem;line-height:1.55}.grade-decision-list li+li{margin-top:6px}.control-group-grade select{font-weight:650}#char-count{background:var(--surface-subtle);color:var(--text);text-align:right;border-radius:6px;flex:none;margin:12px 0 0;padding:4px 8px;font-size:.875rem;font-weight:650;line-height:1.65}.convert-zone{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:24px;padding-top:24px;display:flex}#conversion-status{color:var(--muted);flex:24rem;margin:0;font-size:.875rem;line-height:1.6}button,.btn{border:1px solid var(--border-strong);border-radius:var(--radius-control);appearance:none;background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;transition:color var(--transition), background var(--transition), border-color var(--transition), transform var(--transition);padding:10px 16px;font-size:.9375rem;font-weight:650}button:hover:not(:disabled),.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}button.primary:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover);color:var(--on-accent)}#btn-convert{min-height:48px;padding:12px 24px}button:disabled,.btn:disabled{border-color:var(--border);background:var(--surface-subtle);color:var(--muted);cursor:not-allowed;opacity:.7}.empty-results{border:1px dashed var(--border-strong);border-radius:var(--radius-card);background:var(--surface-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:16px 20px;display:flex}.empty-results p{color:var(--muted);flex:30rem;margin:0;font-size:.9375rem;line-height:1.6}.empty-results button{flex:none}#result-warnings:not(:empty){border:1px solid var(--warning-border);border-left:3px solid var(--warning);border-radius:var(--radius-control);background:var(--warning-bg);color:var(--warning);margin:24px 0 0;padding:12px 16px;font-size:.875rem;line-height:1.6}.views-grid{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px;display:grid}#english-result-card{margin-top:16px}.view-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);min-width:0;padding:20px;position:relative}.view-card h3{color:var(--text-heading);letter-spacing:0;text-transform:none;margin:0 0 12px;padding-right:48px;font-size:1rem;font-weight:650}.card-copy{width:44px;height:44px;color:var(--muted);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.card-copy:hover:not(:disabled){background:var(--accent-soft)}.card-copy svg{display:block}.view-card .hint{margin:-4px 0 12px}.view-card pre{overflow-wrap:anywhere;white-space:pre-wrap;max-width:100%;min-height:8rem;color:var(--text);font-family:var(--font-mono);margin:0;font-size:1rem;line-height:1.65}#out-unicode{font-family:var(--font-braille);font-size:1.75rem;line-height:1.7}#engine-meta{border-top:1px solid var(--border);margin:24px 0 0;padding-top:16px}.export-zone{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.export-zone .tool-heading{margin-bottom:16px}.export-controls{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.export-controls .control-group{flex:16rem}.btn-row{flex-wrap:wrap;gap:8px;display:flex}#export-status{color:var(--muted);margin:12px 0 0;font-size:.875rem;line-height:1.6}.content-section{max-width:72ch;margin:64px 0 0;scroll-margin-top:88px}.content-section h2{color:var(--text-heading);font-family:var(--font-display);letter-spacing:-.015em;margin:0 0 20px;font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:650;line-height:1.2}.content-section h2:after{content:"";background:var(--accent);border-radius:1px;width:32px;height:2px;margin-top:12px;display:block}.content-section p,.content-section li{color:var(--text);line-height:1.65}.content-section p{margin:0 0 16px}.content-section ul,.content-section ol{margin:0 0 16px;padding-left:24px}.content-section li+li{margin-top:8px}.content-section strong{color:var(--text-heading)}.limits-box{border:1px solid var(--warning-border);border-left:3px solid var(--warning);border-radius:var(--radius-card);background:var(--warning-bg);margin-top:24px;padding:20px 24px}.limits-box p,.limits-box li{color:var(--text)}.limits-box strong{color:var(--warning)}.limits-box>:last-child{margin-bottom:0}.faq details{border:0;border-bottom:1px solid var(--border);transition:background var(--transition);background:0 0;margin:0;padding:0}.faq details:first-of-type{border-top:1px solid var(--border)}.faq details[open]{background:var(--surface-subtle)}.faq summary{min-height:48px;color:var(--text-heading);cursor:pointer;align-items:center;padding:16px 48px 16px 20px;font-weight:650;list-style:none;display:flex;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font-family:var(--font-mono);font-size:1.25rem;font-weight:400;position:absolute;right:20px}.faq details[open] summary:after{content:"−"}.faq details p{max-width:72ch;margin:0;padding:0 20px 20px}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:80px;padding:32px 28px 40px;font-size:.875rem;line-height:1.65}.footer-inner{max-width:1120px;margin:0 auto}.footer-brand{color:var(--text);margin:0 0 12px;font-weight:650}.footer-primary,.footer-secondary{color:var(--muted);margin:8px 0}.footer-inner>p:last-child{margin:16px 0 0}@keyframes proof-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width>=768px) and (width<=1023px){.views-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.views-grid .view-card:last-child{grid-column:1/-1}}@media (width>=1024px){.views-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=759px){html{scroll-padding-top:136px}.header-inner{flex-wrap:wrap;gap:0 16px;height:auto;min-height:64px;padding:8px 20px 0}.nav-links{overscroll-behavior-x:contain;gap:20px;width:100%;overflow-x:auto}.nav-item{white-space:nowrap;flex:none}main{padding:0 20px 64px}.page-hero{grid-template-columns:minmax(0,1fr);padding:40px 0 28px}.hero-proof{display:none}.page-hero h1{max-width:20ch}.tool-panel{border-radius:var(--radius-card);padding:20px}.input-meta{display:block}#char-count{text-align:left}.empty-results{align-items:flex-start}.content-section{margin-top:48px;scroll-margin-top:136px}.limits-box{padding:20px}.site-footer{margin-top:64px;padding:32px 20px}}@media (width<=359px){.brand-name{font-size:.9375rem}.tool-panel{padding:16px}.export-controls .btn-row{width:100%}.export-controls .btn-row button{flex:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.alphabet-wrap{overflow-x:auto}.alphabet-table{border-collapse:collapse;width:100%;font-size:.95rem}.alphabet-table caption{text-align:left;color:var(--text-heading);margin-bottom:.75rem;font-weight:600}.alphabet-table th,.alphabet-table td{border-bottom:1px solid var(--border);text-align:left;padding:.4rem .55rem}.alphabet-table .braille-cell{font-family:var(--font-braille);letter-spacing:.04em;font-size:1.35rem}.alphabet-hero .alphabet-actions{flex-wrap:wrap;align-items:center;gap:16px 24px;margin:20px 0 0;display:flex}.alphabet-actions .text-link{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration:underline}.braille-inline{font-family:var(--font-braille);letter-spacing:.04em;font-size:1.25em}.letter-jump{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin:8px 0 32px;padding:16px 18px}.letter-jump .field-label{margin-bottom:10px}.letter-jump-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.letter-jump-list a{border:1px solid var(--border);background:var(--bg);min-width:2.75rem;color:var(--text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:6px 8px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.letter-jump-list a:hover,.letter-jump-list a:focus-visible{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg));outline:none}.jump-latin{font-size:.95rem;font-weight:700;line-height:1.1}.jump-braille{font-family:var(--font-braille);margin-top:2px;font-size:1.35rem;line-height:1.2}.letter-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:20px;display:grid}.letter-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);padding:14px 16px 16px;scroll-margin-top:96px}.letter-card:target{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent)}.letter-card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;padding-bottom:8px;display:flex}.letter-latin{letter-spacing:.02em;margin:0;font-size:1.5rem;font-weight:750}.letter-anchor{color:inherit;text-decoration:none}.letter-anchor:hover,.letter-anchor:focus-visible{color:var(--accent);outline:none}.letter-braille{font-family:var(--font-braille);color:var(--text);margin:0;font-size:2rem;line-height:1}.letter-meta{gap:8px;margin:0;display:grid}.letter-meta>div{grid-template-columns:7.5rem minmax(0,1fr);align-items:start;gap:8px;display:grid}.letter-meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.8125rem;font-weight:650}.letter-meta dd{margin:0;font-size:.9375rem;line-height:1.35}.numbers-table .braille-cell{font-size:1.5rem}.print-only{display:none}@media (width<=759px){.letter-card{scroll-margin-top:136px}.letter-meta>div{grid-template-columns:1fr;gap:2px}}@media print{@page{size:A4 portrait;margin:8mm 10mm}html{font-size:10pt}body{color:#000!important;background:#fff!important}.skip-link,.site-header,.site-footer,.no-print{display:none!important}main{max-width:none!important;padding:0!important}.alphabet-hero,.alphabet-screen,.content-section.no-print{display:none!important}.print-only{display:block!important}.alphabet-print-sheet{color:#000}.print-title{margin:0 0 2mm;font-size:14pt;font-weight:700}.print-sub{color:#333;margin:0 0 3mm;font-size:8pt}.print-letter-table,.print-number-table{border-collapse:collapse;table-layout:fixed;page-break-inside:avoid;break-inside:avoid;width:100%}.print-letter-table th,.print-letter-table td,.print-number-table th,.print-number-table td{text-align:left;vertical-align:middle;border:.4pt solid #444;padding:1.2mm 1.5mm;font-size:7.5pt;line-height:1.15}.print-letter-table thead th{background:#eee;font-size:7pt;font-weight:700}.print-letter-table .braille-cell,.print-number-table .braille-cell{font-family:var(--font-braille), "Segoe UI Symbol", sans-serif;letter-spacing:.02em;font-size:12pt}.print-number-table{margin-top:3mm}.print-number-table caption{caption-side:top;text-align:left;margin-bottom:1.5mm;font-size:8pt;font-weight:650}.print-number-table th,.print-number-table td{text-align:center}.print-digit-meta{color:#333;margin-top:.5mm;font-size:6.5pt;display:block}.print-foot{color:#333;page-break-inside:avoid;margin:3mm 0 0;font-size:7pt}}
