/* ArtASCII, lot 01: shared layout and accessible editorial components. */
[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:0}
html{scroll-padding-top:110px}.wrap{width:min(calc(100% - 36px),1180px)}
.header{gap:22px;min-height:86px}.brand{flex:none}.brand .brand-words{display:block}.brand strong{display:block;line-height:1.1}.brand strong .grad{display:inline;font-size:inherit;letter-spacing:inherit;text-transform:none;margin:0;color:var(--blue-3);background:none}.brand .brand-tagline{font-size:10px;letter-spacing:.07em;color:var(--muted);margin-top:4px}
.nav{margin-left:auto;gap:2px}.nav a{padding:10px;font-size:13px;white-space:nowrap}
.language-switch{display:flex;flex-wrap:wrap;gap:3px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:3px;flex:none}.language-switch a{padding:6px 8px;font-size:12px;font-weight:800;border-radius:8px}.language-switch a[aria-current=page]{background:var(--ink);color:#fff}
.page-hero{padding:40px 0 28px}.page-hero h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.055em;max-width:23ch;margin:14px 0 18px}.page-hero .lead{max-width:83ch;font-size:18px;color:#425f73}.page-hero .trust{display:flex;max-width:none;margin-top:24px;gap:12px}.pill{flex:1;max-width:290px;box-shadow:none;padding:12px 16px}.actions{margin-top:22px}.breadcrumb{font-size:12px;line-height:1.5;margin-bottom:20px}
.main-sections>*+*{margin-top:34px}.tool-section{margin-bottom:50px}.section-block{margin-block:34px}.prose{padding:clamp(22px,3.2vw,38px);border-radius:24px}.prose h2,.section-block h2{font-size:clamp(25px,3vw,34px);line-height:1.18;letter-spacing:-.035em;margin:0 0 20px}.prose h3{font-size:20px;line-height:1.3;letter-spacing:-.02em;margin:26px 0 10px}.prose p,.prose li{color:#405e73;font-size:16px;line-height:1.75}.prose p{max-width:90ch}.prose p:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}.prose ol,.prose ul{padding-left:23px}.prose li+li{margin-top:10px}.prose a:not(.btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose strong{color:var(--ink)}.prose code{font-family:var(--mono);font-size:.92em;background:var(--blue-soft);padding:2px 5px;border-radius:5px;overflow-wrap:anywhere}.prose pre code{background:none;padding:0;overflow-wrap:normal}.prose pre{max-width:100%;tab-size:4;font-size:13px;font-weight:500;line-height:1.3;margin:0 0 12px;padding:18px;white-space:pre;overflow:auto;background:#f4fbfe;border:1px solid var(--line);border-radius:12px}
.table-scroll{width:100%;overflow:auto;margin:20px 0;border:1px solid var(--line);border-radius:14px;overscroll-behavior-inline:contain}table{border-collapse:collapse;width:100%;min-width:520px;text-align:left;font-size:14px;line-height:1.6}th,td{padding:15px 17px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--blue-soft);color:#1a4b67;font-weight:800}tr:last-child td{border-bottom:0}td{color:#405e73}tbody tr:nth-child(even){background:#fbfdff}td:first-child{font-weight:650;color:#244b63}
.examples-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:22px 0}.examples-grid figure,.prose figure{margin:0;min-width:0}.prose figure+figure{margin-top:20px}.examples-grid figure+figure{margin-top:0}figcaption{font-size:14px;line-height:1.7;color:#4c667a;margin:8px 0 18px}.example-card{border:1px solid var(--line);border-radius:15px;padding:20px;background:#fbfdff}.example-card h3{margin-top:0}.example-card p{font-size:14px}
.features .feature{box-shadow:none;background:rgba(255,255,255,.94)}.features .feature p{color:#486478}.feature>a{font-weight:800}.fixture-links{display:flex;gap:12px;flex-wrap:wrap}.fixture-links a{background:var(--blue-soft);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px}
.library-filters{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;padding:20px;background:#f1faff;border:1px solid var(--line);border-radius:16px}.library-filters label{font-weight:750;font-size:13px;display:flex;flex-direction:column;gap:6px;color:#2c5169}.library-filters input,.library-filters select{width:100%;min-width:0;border:1px solid #add8eb;background:#fff;border-radius:10px;padding:10px 12px;color:var(--ink);min-height:44px}.filter-count{font-size:13px!important;color:var(--muted);margin:14px 0}.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.model-card{min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 12px #0b8fcc06}.model-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}.model-card h3{font-size:16px;line-height:1.4;margin:0 0 16px}.badge{font-size:10px;letter-spacing:.05em;font-weight:750;background:#edf9fe;border-radius:5px;padding:3px 5px;color:#197aa8;flex:none}.model-card pre{display:flex;align-items:center;min-height:145px;white-space:pre;font:500 13px/1.25 var(--mono);padding:16px;margin:0;border:1px solid var(--line);border-radius:10px;background:#f6fcff;overflow:auto}.model-card p{font-size:13px;line-height:1.6;margin:8px 0}.model-card .model-meta{font-size:11px;font-weight:800;color:#3982a4;margin-top:12px}.copy-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.model-card .copy-row{margin-top:auto;padding-top:12px}.copy-row .btn{font-size:12px;min-height:38px;padding:8px 10px}.download-link{font-size:12px;font-weight:700;margin-left:auto}.filter-empty{padding:20px;background:var(--blue-soft);border-radius:14px}
.symbols-catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.symbol-card{border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff}.symbol-value{font:500 29px/1.6 var(--mono);min-height:56px;max-width:100%;overflow:auto;white-space:pre}.symbol-card h3{font-size:13px!important;line-height:1.4;margin:8px 0 6px!important}.symbol-card p{font-size:11px!important;margin:0 0 10px!important;line-height:1.6}.code-points{font-family:var(--mono);overflow-wrap:anywhere}.symbol-card .btn{margin-top:auto;font-size:11px;min-height:36px}
.diagnostic{background:#f5fbff;border:1px solid #b8e5f7;border-radius:18px;padding:22px}.diagnostic h3{margin-top:0}.diagnostic label{display:block;font-size:14px;font-weight:750;margin-bottom:9px}.diagnostic textarea{font-family:var(--mono);white-space:pre;tab-size:4;line-height:1.4}.diagnostic>p{font-size:13px}.diagnostic-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:15px 0}.diagnostic-stats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}.diagnostic-stats strong{font-size:23px;display:block;line-height:1.3;color:var(--blue-3)}.diagnostic-stats span{font-size:11px;line-height:1.4;display:block;color:#536c7d}.diagnostic-results ul{margin:15px 0}.diagnostic-results li{font-size:13px}.diagnostic-results .diagnostic-ok{color:#21604b;font-size:13px}.diagnostic-error{color:#a33226!important;font-weight:750}
.editorial-note{border-left:3px solid #82d7f6;padding:2px 0 2px 20px;margin:38px 0}.editorial-note h2{font-size:16px;letter-spacing:0;line-height:1.4;margin:0 0 6px}.editorial-note p{font-size:12px;color:#617989;line-height:1.7;max-width:100ch;margin:4px 0}.related{margin:30px 0 50px}.related h2{font-size:21px;letter-spacing:-.02em}.related nav{display:flex;flex-wrap:wrap;gap:10px}.related a{border:1px solid var(--line);padding:10px 14px;border-radius:12px;background:#fff;font-size:13px;font-weight:700}.related a span{margin-left:12px;color:var(--blue-2)}.footer{margin-top:0}.footer .brand-mark{width:35px;height:35px;border-radius:11px;font-size:15px}.footer .brand strong{font-size:18px}.foot-links{max-width:410px;align-content:start;padding-top:6px}.foot-links a{font-size:12px}.toast{max-width:calc(100vw - 32px);border-radius:14px;font-size:14px}.topbar{background:rgba(255,255,255,.97)}
@media(max-width:1050px){.header{flex-wrap:wrap;gap:8px 20px;padding:16px 0}.nav{order:3;flex:1 0 100%;justify-content:flex-start}.language-switch{margin-left:auto}.topbar{position:static}.model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html{scroll-padding-top:20px}}
@media(max-width:680px){.wrap{width:calc(100% - 28px)}.header{flex-direction:row;align-items:center}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:16px}.brand strong{font-size:21px}.brand .brand-tagline{font-size:8px;letter-spacing:.03em}.brand{gap:9px}.language-switch a{font-size:10px;padding:6px}.nav{gap:0;flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:2px;justify-content:space-between}.nav a{font-size:11px;padding:8px 5px}.page-hero{padding-top:28px}.page-hero h1{font-size:36px}.page-hero .lead{font-size:16px;line-height:1.65}.page-hero .trust{display:grid;grid-template-columns:1fr;gap:8px}.pill{max-width:none;display:flex;gap:10px;align-items:baseline;padding:10px 14px}.pill strong{font-size:13px;min-width:120px}.pill span{font-size:11px}.eyebrow{font-size:11px}.breadcrumb{font-size:11px}.prose{padding:22px 18px;border-radius:18px}.prose p,.prose li{font-size:15px;line-height:1.75}.main-sections>*+*,.section-block{margin-top:24px}.features,.examples-grid{grid-template-columns:1fr}.library-filters{grid-template-columns:1fr;padding:15px;gap:12px}.model-grid{grid-template-columns:1fr}.model-card pre{font-size:14px}.symbols-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.symbol-card{padding:12px}.symbol-value{font-size:24px}.diagnostic{padding:16px}.diagnostic-stats{grid-template-columns:1fr 1fr}.diagnostic-stats>div:last-child{grid-column:span 2}.diagnostic-stats strong{font-size:20px}.footer-grid{gap:20px}.foot-links{justify-content:flex-start}.fixture-links{display:grid;grid-template-columns:1fr}.prose h2{font-size:26px}.related nav{display:grid;grid-template-columns:1fr 1fr}.related a{font-size:11px;padding:10px}.related a span{margin-left:4px}}
@media print{.topbar,.footer,.copy-row,.library-filters,.ascii-tool,.related,.toast,.actions{display:none!important}body{background:#fff}.prose{box-shadow:none;border:0;padding:10px 0}.wrap{width:100%}a{color:#111}pre{break-inside:avoid}.model-grid{grid-template-columns:repeat(2,1fr)}}
/* Braille shape explorer: selected dots remain visible without hover. */
[data-braille-dot][aria-pressed="true"]{background:#173e53;color:#fff;border-color:#173e53;box-shadow:0 0 0 2px #a7e8fa}
[data-braille-dot]:focus-visible,[data-braille-reset]:focus-visible{outline:3px solid #087eac;outline-offset:3px}
