:root{font:18px/1.85 -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;color:#172b47;background:#f5f7fb;--paper:#fff;--ink:#172b47;--line:#c4d0e0;--link:#164c9b}*{box-sizing:border-box}body{margin:0}a{color:var(--link);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,input,select{min-height:48px}button{background:#164c9b;color:#fff;border:2px solid transparent;border-radius:8px;padding:8px 18px;cursor:pointer}button:hover{background:#123d7b}button[aria-pressed=true]{background:#172b47;outline:2px solid #172b47;outline-offset:2px}button:disabled{opacity:.6;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b24c00;outline-offset:4px}.skip{position:absolute;top:-90px;left:16px;background:#fff;z-index:10}.skip:focus{top:8px}header,main,footer{max-width:1120px;margin:auto;padding:24px}header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--line)}header a,nav a{display:inline-flex;align-items:center;min-height:48px}header strong{letter-spacing:.08em}h1{font-size:clamp(2rem,5vw,3.1rem);line-height:1.4;margin:16px 0}h2{font-size:1.55rem;line-height:1.5}h3{font-size:1.2rem;line-height:1.5}p{margin:12px 0}.eyebrow{font-size:.78rem;letter-spacing:.14em;color:#315e93;font-weight:700}.lead{max-width:800px;color:#3c506b}.badge{display:inline-block;padding:3px 10px;font-size:.8rem;border:1px solid #98acc7;border-radius:6px}.notice{padding:18px 22px;background:#e8effa;border-left:4px solid #315e93;margin:24px 0;border-radius:6px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card,fieldset,.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:24px;margin:18px 0;min-width:0}.grid>.card{margin:0}.card a{display:inline-block;min-height:48px;padding:8px 0}.card .meta,.small{font-size:.9rem;color:#415774}.jump{display:flex;gap:8px 20px;flex-wrap:wrap;margin:24px 0}.jump a{min-height:48px;display:flex;align-items:center}label{display:block;font-weight:650;margin:14px 0 6px}input:not([type=range]):not([type=file]),select,textarea{width:100%;padding:10px;border:1px solid #7187a6;border-radius:6px;background:#fff;color:#172b47}input[type=range]{width:100%}textarea{min-height:140px;resize:vertical}fieldset{margin:0}legend{font-weight:700}output{font-weight:700}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.result{padding:22px;background:#e8effa;border:1px solid #a6badd;border-radius:12px;font-size:1.2rem;overflow-wrap:anywhere}#reader-stage{background:#fff;color:#111;min-height:300px;padding:28px;border:2px solid #7187a6;border-radius:12px;overflow:auto}#reader-text{font-size:40px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}#reader-image-wrap{overflow:auto;max-height:75vh}#reader-image{display:block;max-width:none;transform-origin:top left}#reader-stage[data-palette=dark]{background:#000;color:#fff}#reader-stage[data-palette=yellow]{background:#000;color:#ffed70}#reader-stage[data-palette=cream]{background:#fff5d6;color:#191919}.reader-mode{position:fixed;inset:0;z-index:99;margin:0!important;border-radius:0!important;display:flex;flex-direction:column;overflow:auto}.reader-mode #reader-exit{display:block;position:sticky;top:0;z-index:2;flex-shrink:0}.reader-mode #reader-text{flex-grow:1}#reader-exit{display:none;align-self:flex-start;margin-bottom:20px}.reader-mode:focus{outline:3px solid #b24c00;outline-offset:-5px}body.presenting{overflow:hidden}#prism-svg{display:block;width:100%;max-width:400px;margin:16px auto;background:#fff;border:1px solid var(--line)}footer{margin-top:40px;border-top:1px solid var(--line);font-size:.9rem}ul,ol{padding-left:1.5em}section{scroll-margin-top:20px}[hidden]{display:none!important}body.large-copy{font-size:22px}body.high-contrast{background:#fff;color:#000;--paper:#fff;--ink:#000;--link:#003c8f;--line:#222}body.high-contrast .lead,body.high-contrast .small,body.high-contrast .meta{color:#111}@media(max-width:700px){header,main,footer{padding:18px}.grid{grid-template-columns:1fr}.card,.panel,fieldset{padding:18px}#reader-stage{padding:18px}.result{font-size:1.05rem}h1{font-size:2rem}.actions button{flex-grow:1}}@media print{header,.actions,.controls,.skip{display:none}body{background:white;color:black}.card{break-inside:avoid}}

/* Keep native file controls inside narrow cards; allow keyboard scrolling of enlarged images. */
input[type=file]{display:block;width:100%;max-width:100%;min-width:0}#reader-image-wrap:focus-visible{outline:3px solid #b24c00;outline-offset:-4px}nav{min-width:0}button{overflow-wrap:anywhere}
