.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:12px;font-weight:600;line-height:1;letter-spacing:normal;white-space:nowrap;transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease),opacity 140ms var(--ease),transform 140ms var(--ease)}.button svg{width:16px;height:16px}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:0.38}.button-primary{border-color:var(--accent);background-color:var(--accent);color:var(--accent-contrast)}.button-primary:hover:not(:disabled){border-color:var(--accent-strong);background-color:var(--accent-strong)}.button-secondary{border-color:var(--border);background-color:var(--bg-elevated);color:var(--text)}.button-secondary:hover:not(:disabled){border-color:var(--border-strong);background-color:var(--surface-2)}.button-ghost{border-color:transparent;background-color:transparent;color:var(--muted)}.button-ghost:hover:not(:disabled){background-color:var(--surface-2);color:var(--text)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid transparent;border-radius:var(--radius-sm);background-color:transparent;color:var(--muted);transition:background-color 140ms var(--ease),color 140ms var(--ease)}.icon-button:hover{background-color:var(--surface-2);color:var(--text)}.icon-button svg{width:18px;height:18px}.theme-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:var(--radius-xs);background-color:transparent;color:var(--muted);transition:background-color 140ms var(--ease),border-color 140ms var(--ease),color 140ms var(--ease)}.theme-button:hover{background-color:var(--surface-2);color:var(--text)}html[data-theme="light"] .theme-button[data-theme-choice="light"],html[data-theme="dark"] .theme-button[data-theme-choice="dark"]{border-color:var(--text);background-color:var(--text);color:var(--surface)}.theme-icon{width:17px;height:17px}.preset{flex:1;min-height:34px;padding:0 10px;border:1px solid transparent;border-radius:0;background-color:transparent;color:var(--muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;transition:border-color 140ms var(--ease),background-color 140ms var(--ease),color 140ms var(--ease),box-shadow 140ms var(--ease)}.preset:hover{background-color:var(--surface-3);color:var(--text)}.preset.is-active{border-color:var(--border);background-color:var(--control-selected-bg);color:var(--text);box-shadow:0 1px 2px var(--control-selected-shadow)}.range-input{--range-progress:50%;width:100%;height:24px;margin:0;appearance:none;-webkit-appearance:none;background-color:transparent;cursor:pointer}.range-input::-webkit-slider-runnable-track{height:3px;border-radius:var(--radius-pill);background:linear-gradient(to right,var(--accent) 0,var(--accent) var(--range-progress),var(--border-strong) var(--range-progress),var(--border-strong) 100%)}.range-input::-moz-range-track{height:3px;border:0;border-radius:var(--radius-pill);background-color:var(--border-strong)}.range-input::-moz-range-progress{height:3px;border-radius:var(--radius-pill);background-color:var(--accent)}.range-input::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7.5px;border:3px solid var(--surface);border-radius:50%;appearance:none;-webkit-appearance:none;background-color:var(--text);box-shadow:0 0 0 1px var(--border-strong)}.range-input::-moz-range-thumb{width:18px;height:18px;border:3px solid var(--surface);border-radius:50%;background-color:var(--text);box-shadow:0 0 0 1px var(--border-strong)}.range-input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.modal{width:min(600px,calc(100vw - 28px));max-width:none;max-height:min(88vh,820px);max-height:min(88dvh,820px);margin:auto;padding:0;border:0;outline:none;background-color:transparent;color:var(--text);overflow:visible}.modal::backdrop{background-color:rgba(10,11,10,0.5);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:backdrop-in 180ms var(--ease)}.modal[open] .modal-panel{animation:modal-in 200ms var(--ease)}@keyframes backdrop-in{from{opacity:0}}@keyframes modal-in{from{opacity:0;transform:translateY(10px) scale(0.992)}}.modal-panel{max-height:min(88vh,820px);max-height:min(88dvh,820px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);background-color:var(--surface);box-shadow:var(--shadow-md)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 28px 18px;border-bottom:1px solid var(--border)}.modal-body{overflow-y:auto;padding:0 28px;overscroll-behavior:contain}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 28px;border-top:1px solid var(--border)}.setting-block{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px 24px;padding:22px 0;border-bottom:1px solid var(--border)}.setting-block:last-child{border-bottom:0}.setting-copy{flex:1 1 220px;min-width:0}.setting-copy h3,.setting-speed-head h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;letter-spacing:normal}.setting-icon{color:var(--muted)}.setting-copy p{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.5}.setting-speed-head{display:flex;flex:1 1 100%;align-items:center;justify-content:space-between;gap:16px}.setting-wpm-field{gap:8px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase}.setting-wpm-field input{width:82px}.theme-options{display:flex;gap:6px}.theme-option{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:90px;height:40px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:transparent;color:var(--text-soft);font-size:12px;font-weight:600;transition:border-color 140ms var(--ease),background-color 140ms var(--ease),color 140ms var(--ease)}.theme-option:hover{border-color:var(--border-strong);background-color:var(--surface-2)}.theme-option[aria-pressed="true"]{border-color:var(--text);background-color:var(--text);color:var(--surface)}.theme-option svg{width:15px;height:15px}.setting-control{flex:0 1 240px}.setting-control-wide{flex:1 1 100%}.setting-value-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px;color:var(--muted);font-size:12px}.setting-value-row output{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.appearance-preview{display:flex;align-items:center;justify-content:center;width:100%;min-height:92px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-elevated);color:var(--reader-word);font-size:clamp(30px,calc(var(--reader-word-size) * 0.55),60px);font-weight:500;line-height:1;letter-spacing:normal}.appearance-preview-focus{color:var(--reader-focus)}.appearance-fields{display:flex;flex-wrap:wrap;gap:8px;width:100%}.color-field{display:flex;flex:1 1 180px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--bg-elevated)}.color-field-label{color:var(--muted);font-size:12px}.color-control{display:flex;align-items:center;gap:8px}.color-control input[type="color"]{width:34px;height:28px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:none;cursor:pointer;appearance:none;-webkit-appearance:none}.color-control input[type="color"]::-webkit-color-swatch-wrapper{padding:3px}.color-control input[type="color"]::-webkit-color-swatch{border:0;border-radius:0}.color-control input[type="color"]::-moz-color-swatch{border:0;border-radius:0}.color-value{color:var(--muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;text-transform:uppercase}.word-size-field{margin-top:2px}.summary-dialog{width:min(560px,calc(100vw - 28px))}.summary-dialog .modal-panel{padding:32px;overflow-y:auto;overscroll-behavior:contain}.summary-mark{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:22px;border:1px solid var(--accent-border);border-radius:0;background-color:var(--accent-soft);color:var(--accent)}.summary-mark svg{width:22px;height:22px;stroke-width:2.4}.summary-dialog h2{margin-top:8px;font-size:clamp(1.9rem,4vw,2.5rem);font-weight:500;letter-spacing:normal}.summary-copy{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.6}.summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--bg-elevated)}.summary-stats>div{min-width:0;padding:18px 16px;border-left:1px solid var(--border)}.summary-stats>div:first-child{border-left:0}.summary-stats dt{color:var(--muted);font-size:10px;font-weight:600;line-height:1.3;letter-spacing:0.08em;text-transform:uppercase}.summary-stats dd{margin-top:8px;font-size:28px;font-weight:500;line-height:1;letter-spacing:normal;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-stats dd small{margin-left:4px;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:0.08em}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:26px}@media (width <=640px){.modal{max-height:90vh;max-height:90dvh}.modal-panel{max-height:90vh;max-height:90dvh}.modal-header{padding:20px 20px 16px}.modal-body{padding:0 20px}.modal-footer{padding:14px 20px}.setting-block{padding:18px 0}.theme-options{width:100%}.theme-option{flex:1}.summary-dialog .modal-panel{padding:24px 20px}.summary-stats>div{padding:14px 10px}.summary-stats dd{font-size:23px}.modal-actions .button{flex:1}}@media (width <=400px){.modal-footer{gap:8px}.summary-stats{grid-template-columns:minmax(0,1fr)}.summary-stats>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid var(--border);border-left:0}.summary-stats>div:first-child{border-top:0}.summary-stats dd{margin-top:0}}