/* Shared primitives, intentionally low specificity for component ownership. */
* { box-sizing:border-box; }
html { font-family:var(--ui-font); }
body { margin:0; color:var(--ui-text); background:radial-gradient(ellipse at top,#28262d 0,transparent 60%),var(--ui-bg); }
[hidden] { display:none !important; }
:where(button,input,select,textarea) { font:inherit; }
:where(button,a,summary) { -webkit-tap-highlight-color:transparent; }
:where(button) { min-height:var(--ui-control); padding:10px 15px; border:1px solid var(--ui-line); border-radius:var(--ui-radius-small); background:transparent; color:var(--ui-text); cursor:pointer; }
:where(button:disabled) { opacity:.5; cursor:default; }
:where(input:not([type=checkbox]):not([type=radio]),select,textarea) { width:100%; border:1px solid var(--ui-line-strong); border-radius:var(--ui-radius-small); background:var(--ui-input); color:var(--ui-text); }
:where(input:not([type=checkbox]):not([type=radio]),select) { height:var(--ui-control); padding:0 12px; }
:where(textarea) { min-height:88px; padding:14px; line-height:1.65; resize:vertical; }
:where(button,summary,a,select,textarea,input):focus-visible { outline:2px solid var(--reader-accent); outline-offset:3px; }
:where(h1,h2,h3,p) { margin-top:0; }
:where(h1) { margin-bottom:0; font-size:28px; letter-spacing:-.035em; }
:where(h2) { margin-bottom:8px; font-size:20px; }
:where(h3) { font-size:16px; }
:where(a) { color:var(--reader-accent); }
:where(dialog) { max-height:min(90dvh,calc(var(--play-viewport-height,100dvh) - 20px)); border:1px solid var(--ui-line-strong); border-radius:20px; background:var(--ui-surface); color:var(--ui-text); box-shadow:var(--ui-shadow); }
dialog::backdrop { background:var(--ui-backdrop); backdrop-filter:blur(4px); }
.ghost,.icon-button { color:var(--text); border:1px solid var(--line); background:transparent; }
.primary { border:0; background:var(--reader-accent); color:#242126; font-weight:700; }
.icon-button { min-width:44px; padding:2px 9px; font-size:22px; }
.small { padding:7px 11px; font-size:13px; }
.button-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.eyebrow { margin:0 0 12px; color:var(--reader-accent); font-size:11px; font-weight:600; letter-spacing:.13em; }
.portrait-frame { position:relative; overflow:hidden; isolation:isolate; aspect-ratio:1; min-width:0; min-height:0; }
.portrait-frame>img { position:absolute; inset:0; display:block; width:100%; height:100%; min-width:0; min-height:0; max-width:none; max-height:none; margin:0; object-fit:cover; object-position:center; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto; animation-duration:.01ms !important; transition-duration:.01ms !important; } }
