/* Afterlike: adaptive reading scale, not browser zoom.
   This stylesheet intentionally loads after magic.css and stack.css. */
:root { font-size: 100%; }
.app-shell { width: min(100%, 1240px); padding-inline: clamp(20px, 3.1vw, 44px); }
.hero { padding-block: 34px 24px; }
.brand-row { align-items: center; }
.brand-row h1 { font-size: clamp(58px, 6.6vw, 88px); }
.brand-subtitle { font-size: 15px; line-height: 1.45; max-width: 570px; }
.overline, .section-kicker { font-size: 12px; letter-spacing: .16em; }
.hero-extras { gap: 6px; }
.moon { font-size: 70px; }
.stats { gap: clamp(24px, 3vw, 46px); margin-top: 23px; }
.stats strong { font-size: 32px; }
.stats small { font-size: 13px; }
.language-switch button { min-width: 44px; min-height: 40px; font-size: 13px; }

/* Main navigation and reading actions must stay readable without zooming Chrome. */
.setup-drawer > summary { min-height: 50px; font-size: 15px; padding: 15px 20px; }
.setup-drawer[open] > summary { padding-block: 15px; }
.tabs { gap: 8px; }
.tabs button { min-height: 48px; font-size: 14px; padding: 12px 16px; }
.feed-tools { gap: 12px; }
.feed-tools > button, .search-box input { min-height: 44px; font-size: 14px; }
.search-box { min-height: 48px; }
.small-upload, .subtle { font-size: 13px; min-height: 40px; display: inline-flex; align-items: center; }
#file-toolbar { gap: 10px 21px; }
#btn-more, .load-more { min-height: 44px; font-size: 14px; }
.section-row { font-size: 23px; }
.section-row small, .quiet { font-size: 13px; }
.section-heading h2 { font-size: clamp(30px, 3.4vw, 41px); }

/* Author library: four comfortable columns on desktop, not three tiny labels. */
.authors-grid { gap: 14px; }
.author-tile { min-height: 124px; padding: 18px; gap: 8px; }
.tile-star { font-size: 24px; line-height: 1.1; }
.tile-name { font-size: 16px; line-height: 1.25; }
.tile-count { font-size: 13px; line-height: 1.45; }
.constellation-head strong { font-size: 26px; }
.constellation-head small, .constellation-node .star-label { font-size: 12px; }

/* Larger UI copy, without turning the interface into oversized cards. */
.home-kicker { font-size: 12px; }
.home-title { font-size: clamp(29px, 3.4vw, 38px); }
.home-resume p, .capsule-intro p, .random-intro p { font-size: 15px; line-height: 1.55; }
.home-resume button, .home-journeys strong { font-size: 15px; }
.home-resume button { min-height: 46px; }
.home-journeys { gap: 14px; }
.home-journeys button { min-height: 122px; padding: 19px; }
.home-journeys small, .capsule-note { font-size: 13px; }
.enrich-card { gap: 20px; }
.enrich-copy strong, .sync-panel strong { font-size: 15px; }
.enrich-copy p, .sync-panel p { font-size: 14px; line-height: 1.5; }
.enrich-copy small, .sync-panel small { font-size: 12px; line-height: 1.45; }
.enrich-button, .sync-actions button { min-height: 44px; padding: 10px 15px; font-size: 13px; }
.sync-panel { padding: 19px 21px; align-items: flex-start; }
.sync-actions { max-width: 55%; }
.sync-actions button { white-space: normal; }

.tweet-author strong { font-size: 14px; }
.tweet-author small { font-size: 12px; }
.tweet-text { font-size: 19px; line-height: 1.55; }
.mini-action { font-size: 13px; min-height: 40px; padding: 8px 6px; }
.tweet-actions { gap: 8px; }
.capsule-years button { min-height: 44px; font-size: 14px; }
.random-feed { max-width: 660px; }
.random-feed .tweet-text { font-size: clamp(19px, 2.5vw, 25px); }
footer, footer p { font-size: 12px; }

/* Reader remains a focused single-card experience even on wide screens. */

@media (min-width: 1100px) {
  .authors-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .home-journeys { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero { padding-top: 29px; }
  .reading-room { margin-top: 32px; }
}
@media (min-width: 700px) and (max-width: 1099px) {
  .app-shell { padding-inline: 32px; }
  .authors-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
  .app-shell { width: 100%; padding-inline: 18px; }
  .hero { position: relative; padding-top: 64px; }
  .hero-extras { position: absolute; top: 13px; right: 0; }
  .hero-extras .moon { display: none; }
  .brand-row h1 { font-size: clamp(46px, 12vw, 72px); }
  .brand-subtitle { font-size: 14px; }
  .overline { font-size: 10px; }
  .stats { gap: 18px; margin-top: 23px; }
  .stats strong { font-size: 27px; }
  .stats small { font-size: 12px; }
  .language-switch button { min-width: 40px; min-height: 40px; }
  .authors-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .author-tile { min-height: 114px; padding: 13px; gap: 6px; }
  .tile-star { font-size: 21px; }
  .tile-name { font-size: 14px; }
  .tile-count { font-size: 11px; }
  .home-journeys { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .home-journeys button { min-height: 116px; padding: 15px; }
  .home-journeys strong { font-size: 14px; }
  .home-journeys small { font-size: 12px; }
  .sync-panel { flex-direction: column; align-items: stretch; padding: 15px; }
  .sync-actions { width: 100%; max-width: none; justify-content: flex-start; }
  .enrich-card { flex-direction: column; align-items: stretch; }
  .enrich-actions { width: 100%; }
  .enrich-button { max-width: 100%; white-space: normal; }
  .setup-drawer > summary { font-size: 14px; }
  .section-row { font-size: 20px; }
  .tweet-text { font-size: 18px; }
}
@media (max-width: 375px) {
  .brand-row h1 { font-size: 46px; }
  .stats { gap: 13px; }
  .stats strong { font-size: 24px; }
  .language-switch button { min-width: 38px; }
  .setup-drawer[open] { padding-inline: 8px; }
  .sync-panel { padding: 12px; }
  .tile-name { font-size: 13px; }
}

/* Settings are available without interrupting reading or crowding the home view. */
.settings-launch{color:#f5d376;background:#2c2845;border:1px solid #827196;border-radius:12px;min-width:42px;min-height:42px;font-size:24px;line-height:1}
.settings-launch:hover,.settings-launch:focus-visible{border-color:#f5d376}
.author-status{display:block;background:transparent;border:0;text-align:left;margin:11px 0 0;padding:7px 0;color:#c5b9d5;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.author-status[hidden]{display:none}
.settings-dialog{position:fixed;inset:0;width:min(94vw,850px);max-height:min(88dvh,850px);margin:auto;padding:20px 23px 24px;overflow-y:auto;overscroll-behavior:contain;color:#f0e9f7;background:#24243c;border:1px solid #817093;border-radius:23px;box-shadow:0 30px 80px #080b20bd}
.settings-dialog:not([open]){display:none}
.settings-dialog::backdrop{background:#090d1bc9;backdrop-filter:blur(5px)}
.settings-modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.settings-modal-head h2{font:normal 30px var(--font-display);margin:0;color:#ffebce}
.settings-modal-head button{min-height:42px;border-radius:12px;background:#48405c;color:#f0dfef;padding:8px 16px;font-size:14px}
.settings-dialog .setup-drawer{margin:0;padding:0;overflow:visible;background:transparent;border:0}
.settings-dialog .sync-panel{margin:10px 0}
.metadata-import{margin-top:15px;padding:17px;background:#292943;border:1px solid #635479;border-radius:16px}
.metadata-import strong{font-size:15px;color:#f2dfeb}
.metadata-import p{font-size:13px;color:#d0bed8;line-height:1.5;margin:8px 0 12px}
.metadata-label{min-height:42px;padding:9px 13px;border:1px solid #71618d;border-radius:10px;color:#f0e6ee}
.settings-dialog .toolbar-line{border-top:1px solid #635478;padding-top:15px;display:flex;flex-wrap:wrap;gap:10px 20px}
.settings-dialog .sync-actions{max-width:55%}
.settings-dialog .sync-actions button{white-space:normal}
.author-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,240px);gap:14px;margin:15px 0 19px}
.author-tools label{min-width:0;display:flex;flex-direction:column;gap:7px;color:#dbcbe6;font-size:12px}
.author-tools input,.author-tools select{width:100%;min-width:0;min-height:46px;padding:9px 12px;border-radius:12px;border:1px solid #7b6b91;background:#262a43;color:#f2e7f2;font:inherit;font-size:14px}
.author-tools input::placeholder{color:#a89dba}
.authors-more{display:block;width:fit-content;min-height:45px;margin:24px auto;border-radius:12px;padding:10px 22px;background:#efd077;color:#25243d;font-weight:700;font-size:14px}
.authors-empty{text-align:center;padding:28px 8px;color:#c6b4d3}
.recent-authors{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:17px;color:#d6c6da;font-size:12px}
.recent-authors button{border-radius:999px;min-height:38px;padding:7px 12px;border:1px solid #826e9a;background:#372b52;color:#ffe9d5;font-size:12px}
@media(max-width:699px){
 .settings-dialog{width:min(96vw,650px);max-height:94dvh;padding:16px 13px;border-radius:18px}
 .settings-modal-head h2{font-size:25px}
 .settings-dialog .sync-actions{max-width:none}
 .author-tools{grid-template-columns:minmax(0,1fr);gap:10px}
 .author-status{font-size:11px}
 .hero-extras{flex-direction:row;align-items:center;gap:8px}
 .recent-authors{font-size:11px}
 .recent-authors button{font-size:11px}
}
@media(max-width:375px){.settings-dialog{padding:12px 10px}.settings-dialog .sync-panel{padding:10px}.hero-extras{gap:4px}.settings-launch{min-width:40px;min-height:40px}}

/* Author map is optional; functional search and cards appear first. */
.constellation-drawer{margin:0 0 16px;border:1px solid #675a86;border-radius:14px;background:#24263f}
.constellation-drawer>summary{list-style:none;padding:12px 15px;min-height:44px;cursor:pointer;font-size:13px;color:#e3cae6}
.constellation-drawer>summary::-webkit-details-marker{display:none}
.constellation-drawer[open]{padding:0 10px 10px}
.constellation-drawer[open]>summary{padding-inline:5px}
.constellation-drawer .constellation-wrap{margin:0;border:0;background:transparent}

/* The technical import is opt-in, never part of onboarding. */
.advanced-import{margin-top:16px;border:1px solid #655777;border-radius:14px;background:#252740}
.advanced-import>summary{cursor:pointer;min-height:44px;padding:13px 16px;font-size:13px;color:#ddcfe7}
.advanced-import .metadata-import{margin:0 10px 11px}
.manual-author-link{width:100%;margin-top:7px;min-height:37px;border:1px dashed #b5a3c6;border-radius:10px;background:transparent;color:#684f81;font-size:12px;text-align:center}
.manual-author-link:focus-visible{outline:2px solid #9a6dad;outline-offset:2px}
.manual-author-dialog{width:min(92vw,430px);max-height:85dvh;margin:auto;border:1px solid #8c759e;border-radius:18px;padding:23px;background:#25243f;color:#faecf7;box-shadow:0 22px 70px #070a20b0}
.manual-author-dialog:not([open]){display:none}
.manual-author-dialog::backdrop{background:#0b1028b8}
.manual-author-dialog h2{font:normal 27px var(--font-display);color:#ffdf83;margin:0 0 10px}
.manual-author-dialog p{color:#e0d0e8;font-size:14px;line-height:1.5;margin:0 0 18px}
.manual-author-dialog label{display:block;font-size:13px;margin:0 0 6px}
.manual-author-dialog input{display:block;width:100%;min-height:48px;padding:10px 13px;font-size:16px;border:1px solid #8677a2;border-radius:11px;background:#141a34;color:#faf3fc}
.manual-author-dialog .manual-author-error{color:#ffb7b7;margin:8px 0 0;font-size:13px}
.manual-author-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:17px}
.manual-author-actions button{min-height:44px;padding:9px 17px;border-radius:12px;color:#fbeeea;background:#544466}
.manual-author-actions button[type=submit]{background:#ffda75;color:#1e203c;font-weight:700}
@media(max-width:699px){.manual-author-dialog{padding:19px}.manual-author-link{min-height:44px}}

/* Optional local metadata import. Preview before any changes; no server calls. */
.metadata-preview[hidden]{display:none}
.metadata-preview{border:1px solid #776687;background:#171d36;border-radius:13px;padding:14px;margin-top:12px}
.metadata-preview strong{color:#ffe2a0;font-size:13px}
.metadata-preview p,.metadata-feedback{font-size:13px;color:#ded1ec;line-height:1.5}
.metadata-preview .metadata-warning{color:#ffc9a4}
.metadata-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.metadata-buttons button{min-height:44px;padding:10px 15px;border-radius:11px;background:#ffda75;color:#242136;font-size:13px;font-weight:700}
.metadata-buttons button+button{border:1px solid #726584;background:transparent;color:#e7d3f1}
.metadata-import .metadata-feedback:empty{display:none}
.tweet-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 18px}
.tweet-media[data-count="1"]{grid-template-columns:minmax(0,1fr)}
.tweet-media a{display:grid;place-items:center;overflow:hidden;border-radius:12px;background:#1b2032;min-width:0}
.tweet-media img{display:block;width:100%;height:185px;object-fit:contain}
.tweet-media[data-count="1"] img{height:auto;max-height:380px}
@media(max-width:620px){.tweet-media img{height:160px}.tweet-media[data-count="1"] img{max-height:410px}}


/* Simplified settings: reading recovery is primary; sync and maintenance fold away. */
.settings-dialog{width:min(92vw,700px);max-height:min(86dvh,800px);padding:0 20px 22px}
.settings-modal-head{position:sticky;top:0;z-index:5;padding:17px 2px 13px;margin:0;background:#2b2540;border-bottom:1px solid #514561}
.settings-modal-head h2{font-size:27px}
.settings-dialog .setup-drawer{padding-top:16px}
.recovery-panel{padding:20px;border:0;border-radius:0;background:transparent}
.recovery-eyebrow{font-size:10px;letter-spacing:.17em;color:#d4b5ce;font-weight:700}
.recovery-heading h3{font:normal 30px var(--font-display);color:#ffe1a3;margin:5px 0 3px}
.recovery-heading p{font-size:13px;color:#c9bdd4;line-height:1.5;margin:0 0 15px}
.settings-dialog .enrich-card{margin:0;padding:15px 0;gap:16px;border:0;border-bottom:1px solid #6b5b7b;border-radius:0;background:transparent}
.enrich-copy{min-width:0;flex:1}
.recovery-panel .enrich-copy strong{font-size:15px;color:#f5e8f5}
.recovery-panel .enrich-copy p{font-size:13px;margin:5px 0;color:#ead6de}
.recovery-panel .enrich-copy small{display:block;font-size:11px;margin-top:8px;color:#bbb0cd}
.enrich-copy progress{display:block;width:100%;height:7px;accent-color:#efca74}
.settings-dialog .metadata-import{margin:0;padding:17px 0 13px;border:0;background:transparent;border-radius:0}
.settings-dialog .metadata-import strong{color:#f5e8f5}
.settings-dialog .metadata-import p{margin:6px 0 12px;font-size:13px;color:#c9bdd4}
.recovery-panel .metadata-label{border:1px solid #e1c08b;background:#f0cf83;color:#25243b;font-size:13px;font-weight:700;min-height:44px}
.settings-dialog .metadata-preview{background:#1a1e36}
.settings-dialog .metadata-preview p{color:#e5d4ec}
.settings-dialog .metadata-preview .metadata-warning{color:#ffc39e}
.settings-dialog .metadata-preview .preview-privacy{color:#c8e4d5;font-size:12px}
.recovery-panel .advanced-import{margin:5px 0 0;padding:0;border:0;border-top:1px solid #635675;background:transparent}
.recovery-panel .advanced-import>summary{padding:13px 0 7px;min-height:44px;color:#e6c4d5;font-size:13px}
.recovery-guide{padding:0 4px 5px;color:#d6c9df;font-size:13px;line-height:1.55}
.recovery-guide p{margin:8px 0}
.recovery-guide ol{padding-left:22px;margin:9px 0}
.recovery-guide li{padding:4px 0}
.recovery-guide a{color:#ffe0a6;text-decoration:underline;text-underline-offset:2px}
.recovery-guide .guide-caution{color:#bdb1ce;font-size:12px}
.settings-disclosure{margin-top:12px;border:1px solid #645577;border-radius:15px;background:#27263c}
.settings-disclosure>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:58px;padding:13px 16px;font-size:14px;font-weight:700;color:#efe5f3}
.settings-disclosure>summary::-webkit-details-marker{display:none}
.settings-disclosure>summary:after{content:'⌄';font-size:17px;color:#d7bddd}
.settings-disclosure[open]>summary:after{content:'⌃'}
.settings-disclosure>summary small{font-size:11px;color:#bcb0ca;font-weight:400;overflow-wrap:anywhere;max-width:44%}
.settings-dialog .sync-panel{border:0;background:transparent;margin:0;border-top:1px solid #4f4560;border-radius:0;padding:12px 16px 17px}
.settings-dialog .sync-actions{max-width:60%}
.settings-dialog #file-toolbar{border-top:1px solid #4f4560;padding:10px 16px 16px}
.settings-disclosure[hidden]{display:none}
@media(max-width:699px){
 .settings-dialog{width:min(96vw,700px);max-height:94dvh;padding:0 13px 14px}
 .settings-modal-head{padding:13px 1px}
 .recovery-panel{padding:16px 14px}
 .recovery-heading h3{font-size:27px}
 .settings-dialog .enrich-card{flex-direction:column;align-items:stretch}
 .settings-dialog .sync-panel{flex-direction:column;gap:12px}
 .settings-dialog .sync-actions{max-width:none}
 .settings-disclosure>summary{align-items:start;flex-direction:column;gap:2px}
 .settings-disclosure>summary small{max-width:100%}
}


/* Audit fixes: keyboard-accessible upload buttons and readable microcopy. */
.visually-hidden-file{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.import-card .primary-action{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.import-guide-link{margin-top:13px;font-size:13px}
.import-guide-link a{color:#ffe0a6;text-decoration:underline;text-underline-offset:3px}
.metadata-import>summary,.backup-tools>summary,.cleanup-tools>summary{cursor:pointer;color:#ffe0a6;font-size:14px;min-height:44px;display:flex;align-items:center;gap:8px}
.metadata-import>summary{font-weight:700}
.metadata-import[open]>summary{margin-bottom:8px}
#file-toolbar{align-items:stretch;flex-direction:column;gap:9px}
#file-toolbar>button{align-self:flex-start}
.cleanup-tools,.backup-tools{width:100%;padding:8px 0 10px;border-top:1px solid #645577}
.cleanup-tools p,.backup-tools p{font-size:13px;line-height:1.55;color:#d6c9df;margin:5px 0 12px}
.backup-tools button,.cleanup-tools button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;margin:4px 10px 4px 0;border:1px solid #8c739c;border-radius:10px}
.sync-scope{color:#dbcee6;font-size:12px;line-height:1.5;margin-top:10px}
.tweet-author small{font-size:12px;opacity:1;color:#5d5369}
.tweet-card.was-read{opacity:.85}
.tweet-card .open-tweet{opacity:1;display:inline-grid;place-items:center;min-width:44px;min-height:44px}
.mini-action{color:#514c5b;min-height:44px;padding:10px 8px;font-size:13px}
.section-row small,.quiet{color:#d7c7e3}
.nav-wrap{position:relative;scrollbar-width:thin;scrollbar-color:#b69fc2 transparent}
.nav-wrap::-webkit-scrollbar{display:block;height:3px}
.nav-wrap::-webkit-scrollbar-thumb{background:#b69fc2;border-radius:3px}
.empty-feed button{min-height:44px;margin-top:12px;border-radius:10px;border:1px solid #d7b5a0;color:#ffe0a6;padding:9px 15px}
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,.nav-wrap:focus-visible{outline:3px solid #ffe0a6;outline-offset:3px}
@media(max-width:420px){.tweet-actions{gap:4px}.mini-action{font-size:12px;padding:8px 5px}.nav-wrap{margin-inline:-8px;padding-inline:8px}}


.legacy-import{margin-top:12px;border-top:1px solid #756482;padding-top:9px;text-align:left}
.legacy-import summary{cursor:pointer;color:#dec6e3;font-size:13px;min-height:40px;display:flex;align-items:center}
.legacy-import p{font-size:13px;line-height:1.55;color:#d6c9df}
.legacy-import button{min-height:44px;border:1px solid #9884a9;border-radius:10px;padding:9px 12px}
.nav-scroll-hint{display:none}
@media(max-width:699px){.nav-scroll-hint{display:block;text-align:right;margin-top:4px;font-size:11px;color:#d9c8e4}}

/* Hidden posts: reversible bulk actions, visible only in the Hidden section. */
.hidden-recovery{margin:16px 0 18px;padding:16px 18px;border:1px solid #716083;border-radius:15px;background:#29263c}
.hidden-recovery[hidden],.hidden-recovery button[hidden]{display:none}
.hidden-recovery p{margin:0 0 10px;color:#f6e5d9;font-size:14px;line-height:1.5}
.hidden-recovery-actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:9px}
.hidden-recovery button{min-height:44px;padding:10px 14px;border-radius:10px;border:1px solid #b89bb3;color:#fbeed7;background:#393147;font-size:14px;cursor:pointer}
.hidden-recovery button:first-child:not([hidden]){background:#72506c;border-color:#d4a9c5}
.hidden-recovery button:disabled{opacity:.5;cursor:default}
.hidden-recovery small{display:block;color:#d2c4d6;font-size:12px;line-height:1.5}
@media(max-width:460px){.hidden-recovery{padding:14px}.hidden-recovery-actions{flex-direction:column}.hidden-recovery button{width:100%}}

/* Immediate undo lives in the existing status line, not a transient toast. */
#message .message-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:4px 3px;padding:8px 11px;border:1px solid #a58ca9;border-radius:10px;background:#353047;color:#f7e6ed;font-size:13px;font-weight:650;line-height:1.3}
#message .message-action[data-quick-undo-batch]{background:#674763;border-color:#dbb3c6;color:#fff0f5}
#message .message-action:hover{filter:brightness(1.14)}
#message .message-action:focus-visible{outline:2px solid #ffe4ac;outline-offset:3px}

/* ------------------------------------------------------------------
   Editorial polish: one type system (Playfair Display + Manrope, both
   with real Cyrillic), a compact spacing scale and safe-area margins.
   Loads last so it is the single source of truth for hierarchy.
   ------------------------------------------------------------------ */
:root{
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;
  --radius-s:10px;--radius-m:14px;--radius-l:20px;--radius-xl:24px;
  --control-h:44px;
  --gutter:clamp(18px,4.6vw,44px);
  --ink:#fff1dc;--ink-soft:#e4d6ec;--ink-muted:#c4b6d3;
  --type-hero:clamp(4rem,2.6rem + 7.4vw,6.75rem);
  --type-h2:clamp(2rem,1.62rem + 1.6vw,2.75rem);
  --type-h3:clamp(1.5rem,1.32rem + .8vw,1.95rem);
  --type-kicker:.72rem;
  --type-body:1rem;--type-small:.875rem;--type-micro:.8125rem;
}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance;font-variant-numeric:lining-nums}
p{text-wrap:pretty}

/* Screen margins respect notches and rounded corners. */
.app-shell{padding-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right))}

/* Hero: a confident wordmark, a readable italic tagline, calm stats. */
.hero{padding-block:max(40px,env(safe-area-inset-top)) var(--space-5)}
.overline,.section-kicker,.home-kicker,.recovery-eyebrow{font-family:var(--font-ui);font-size:var(--type-kicker);font-weight:600;letter-spacing:.025em;line-height:1.3;text-transform:none}
.overline{margin:0}
.brand-row{align-items:flex-end}
.brand-row h1{font-family:var(--font-display);font-size:var(--type-hero);font-weight:700;line-height:.86;letter-spacing:-.035em;margin:var(--space-3) 0 0;padding-bottom:.06em}
.brand-row h1 em{font-style:italic;font-weight:600;letter-spacing:-.02em;padding-right:.02em}
.title-star{font-size:.34em;top:.06em;left:.1em}
.brand-subtitle{display:flex;align-items:flex-start;gap:var(--space-3);margin:var(--space-3) 0 0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.125rem,1rem + .55vw,1.5rem);line-height:1.3;letter-spacing:.005em;color:var(--ink-soft)}

.stats{gap:0;margin-top:var(--space-6)}
.stats span{padding-inline:clamp(16px,3vw,32px);border-left:0}
.stats span:first-child{padding-left:0;border-left:0}
.stats strong{font-family:var(--font-display);font-weight:600;font-size:clamp(1.75rem,1.5rem + 1vw,2.25rem);line-height:1.1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em}
.stats small{font-size:var(--type-micro);color:var(--ink-muted);margin-top:2px}
.author-status{display:inline-flex;align-items:center;font-size:var(--type-micro);color:var(--ink-muted);margin-top:var(--space-2);min-height:var(--control-h);padding:0;text-decoration-color:#c4b6d366}

/* Navigation sits close to the hero instead of floating in empty space. */
.library-tools{padding-top:var(--space-2)}
.nav-wrap{margin-top:var(--space-2)}
.tabs{gap:var(--space-1)}
.tabs button{font-weight:600;letter-spacing:.005em;color:var(--ink-muted);border-bottom-width:2px}
.tabs button.active{font-weight:700}

/* Headings share one display voice and one scale. */
.home-title,.section-heading h2,.capsule-intro h2,.random-intro h2,.import-card h2{font-family:var(--font-display);font-weight:500;font-size:var(--type-h2);line-height:1.08;letter-spacing:-.018em}
.home-resume h3,.recovery-heading h3,.settings-modal-head h2,.stack-finished h2{font-family:var(--font-display);font-weight:600;font-size:var(--type-h3);line-height:1.15;letter-spacing:-.012em}
.section-row,.constellation-head strong{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em}
.section-row{font-size:var(--type-h3);align-items:baseline}
.section-row small{font-family:var(--font-ui);font-size:var(--type-small);font-weight:600;color:var(--ink-muted);margin-left:var(--space-1)}
.manual-author-dialog h2{font-family:var(--font-display);font-weight:600}

/* Home module */
.home-discovery{padding-top:var(--space-6)}
.home-title{margin:var(--space-2) 0 var(--space-4)}
.home-resume{padding:var(--space-5);border-radius:var(--radius-xl)}
.home-resume h3{margin:var(--space-2) 0 var(--space-1);overflow-wrap:anywhere}
.home-resume p{color:var(--ink-soft)}
.home-resume button,.primary-action{min-height:48px;padding:12px 22px;border-radius:var(--radius-m);font-size:.9375rem;font-weight:700;letter-spacing:.005em;box-shadow:none}
.home-journeys{margin-top:var(--space-3)}
.home-journeys button{border-radius:var(--radius-l);gap:var(--space-1);justify-content:flex-end}
.home-journeys .journey-icon{margin-bottom:auto;padding-bottom:var(--space-3)}
.home-journeys strong{font-size:1rem;font-weight:700;line-height:1.25}
.home-journeys small{font-size:var(--type-micro);color:var(--ink-muted);line-height:1.4}
.recent-authors{gap:var(--space-2);margin-top:var(--space-4);font-size:var(--type-micro);color:var(--ink-muted)}
.recent-authors button{font-size:var(--type-micro);font-weight:600;min-height:40px;padding:8px 14px}

/* Reading room: count aligns with the heading, tools share one height. */
.reading-room{margin-top:var(--space-7)}
.section-heading{align-items:flex-end;margin-bottom:var(--space-4)}
.section-heading>div{min-width:0}
.section-heading h2{margin:var(--space-2) 0 0;overflow-wrap:anywhere}
.section-heading .quiet{flex:none;padding-bottom:.45em;font-size:var(--type-micro);font-weight:600;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.feed-tools{gap:var(--space-3);margin:0 0 var(--space-5)}
.search-box{min-height:48px;border-radius:var(--radius-m);padding:0 var(--space-4);gap:var(--space-3);border-color:#5b5175;background:#1d2138}
.search-box:focus-within{border-color:#b79cd0;box-shadow:0 0 0 3px #c7a7ff26}
.search-box input{font-size:1rem}
.feed-tools>button{min-height:48px;border-radius:var(--radius-m);padding:10px 18px;font-size:var(--type-small);font-weight:700}
#message{font-size:var(--type-small);margin:var(--space-4) 0;min-height:0}
#message:empty{margin:0}

/* Tweet cards: editorial text, tidy meta, actions on one line where possible. */
#feed{gap:var(--space-4)}
.tweet-card{padding:var(--space-5) var(--space-5) var(--space-2)}
.tweet-top{align-items:flex-start;gap:var(--space-3)}
.tweet-author{gap:var(--space-3);flex:1}
.tweet-author>div{min-width:0}
.tweet-author strong{font-size:.9375rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.tweet-author small{font-size:var(--type-micro);margin-top:2px;line-height:1.35}
.avatar-star{width:36px;height:36px;font-size:20px}
.tweet-card .open-tweet{margin:-8px -10px 0 0;font-size:18px;color:#5d5369;border-radius:var(--radius-s)}
.tweet-text{font-family:var(--font-reading);font-weight:400;font-size:clamp(1.1875rem,1.15rem + .25vw,1.25rem);line-height:1.53;letter-spacing:normal;margin:var(--space-4) 0 var(--space-5)}
.tweet-actions{gap:0 var(--space-1);padding-top:var(--space-1)}
.tweet-actions{--mini-pad:var(--space-2)}
.tweet-actions .mini-action{font-weight:600;padding-inline:var(--mini-pad);border-radius:var(--radius-s);white-space:nowrap}
.tweet-actions .mini-action:first-child{margin-left:calc(-1 * var(--mini-pad))}
.tweet-actions .mini-action.last{margin-right:calc(-1 * var(--mini-pad))}
.manual-author-link{margin:var(--space-1) 0 var(--space-3);font-weight:600}
.empty-feed{padding:var(--space-7) var(--space-4);border-radius:var(--radius-l);font-size:1rem}
.empty-feed p{margin:var(--space-2) 0 0}
.load-more{min-height:48px;border-radius:var(--radius-m);font-weight:700}

/* Import card */
.import-card{margin:var(--space-6) 0;padding:var(--space-7) var(--space-5) var(--space-5);border-radius:var(--radius-xl);border-color:#7a6890;background:#1d2039b3;border:0}
.import-card h2{margin:var(--space-4) auto var(--space-3);max-width:15ch}
.import-card p{font-size:1rem;line-height:1.55;color:var(--ink-soft);max-width:34em;margin:0 auto var(--space-5)}
.import-illustration{color:var(--starlight);text-shadow:0 0 22px #ffcf5a55}
.import-card .import-guide-link{margin:var(--space-4) 0 0;font-size:var(--type-small)}
.import-card .legacy-import{max-width:34em;margin:var(--space-5) auto 0}
.import-card .legacy-import p{margin:var(--space-2) 0 var(--space-3);font-size:var(--type-small)}

/* Authors, capsule, random */
.author-tools label{font-size:var(--type-micro);font-weight:600;color:var(--ink-muted)}
.author-tile{border-radius:var(--radius-l)}
.tile-name{font-weight:700}
.capsule-intro{padding:var(--space-5);border-radius:var(--radius-xl)}
.capsule-intro p,.random-intro p{color:var(--ink-soft)}
.capsule-years{gap:var(--space-2)}
.capsule-years button{font-weight:600;font-variant-numeric:lining-nums tabular-nums}

/* Settings and dialogs */
.settings-modal-head{padding-block:var(--space-4) var(--space-3)}
.settings-disclosure>summary{font-size:.9375rem}
.recovery-heading p,.metadata-import p,.sync-panel p{color:var(--ink-soft)}

/* Footer signs off in the brand voice. */
footer{padding:var(--space-7) 0 max(var(--space-7),calc(env(safe-area-inset-bottom) + var(--space-5)));letter-spacing:0;color:var(--ink-muted)}
footer span{font-family:var(--font-display);font-style:italic;font-size:1.0625rem;color:#ead9c4}
footer p{margin:var(--space-2) 0 0;font-size:var(--type-micro);opacity:.8}

/* Hover tints only where hover exists, so taps don't leave sticky states. */
@media (hover:hover){
  .tabs button:hover{color:var(--ink)}
  .tweet-card .open-tweet:hover{background:#2f29400f;color:#2f2940}
  .tweet-actions .mini-action:hover{background:#2f29400d;color:#2f2940}
  .author-status:hover{color:var(--ink)}
}
@media (min-width:700px){
  .brand-row h1{margin-top:var(--space-4)}
  .home-journeys small,.stats small,.author-status{font-size:var(--type-small)}
}
@media (max-width:699px){
  .hero{padding-top:max(76px,calc(env(safe-area-inset-top) + 64px))}
  .hero-extras{top:max(14px,env(safe-area-inset-top))}
  .brand-row h1{font-size:var(--type-hero)}
  .brand-subtitle{font-size:clamp(1.125rem,1rem + .55vw,1.5rem)}
  .stats{margin-top:var(--space-5)}
  .stats strong{font-size:1.75rem}
  .home-discovery{padding-top:var(--space-5)}
  .home-resume{padding:var(--space-5) 20px}
  .reading-room{margin-top:var(--space-6)}
  .search-box{flex:1 1 100%}
  .feed-tools>button{flex:1 1 0;padding-inline:var(--space-3);white-space:nowrap}
  .tweet-card{padding:20px 18px var(--space-1)}
  .tweet-text{font-size:1.1875rem}
  .tweet-actions{--mini-pad:6px}
  .tweet-actions .mini-action{font-size:var(--type-micro)}
  .import-card{padding:40px 18px var(--space-5)}
}
@media (max-width:375px){
  .brand-row h1{font-size:clamp(3.6rem,17.5vw,4rem)}
  .stats span{padding-inline:12px}
  .stats strong{font-size:1.6rem}
}

/* Tweet actions: one line in roomy cards; in narrow cards a deliberate two-row
   layout (primary toggle first, then favourite / hide). Container units follow
   the card itself, so 2-column tablet cards and browser text scaling are covered. */
.tweet-card{container-type:inline-size}
@container (max-width:23.5rem){
  .tweet-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 var(--space-3)}
  .tweet-actions .mini-action{justify-self:start;text-align:left;white-space:normal;max-width:100%}
  .tweet-actions .mini-action:first-child{grid-column:1 / -1}
  .tweet-actions .mini-action:nth-child(2){margin-left:calc(-1 * var(--mini-pad))}
  .tweet-actions .mini-action.last{justify-self:end;margin-left:0}
}


/* Author tiles: long handles truncate cleanly instead of breaking mid-word. */
.author-tile{min-width:0}
.tile-name{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}

/* Sustained reading: slightly sturdier hairlines, open leading, calmer measure. */
.tweet-text{font-weight:400;line-height:1.53;letter-spacing:normal;color:#2a2438;font-kerning:normal;max-width:38em}
.random-feed .tweet-text{font-size:clamp(1.1875rem,1.15rem + .25vw,1.25rem);line-height:1.53}

/* Meta line uses the full width under the ↗ link, so the date doesn't break at «·». */
.tweet-top{position:relative}
.tweet-card .open-tweet{position:absolute;top:-10px;right:-12px;margin:0}
.tweet-author strong{padding-right:36px}
.tweet-actions .mini-action{font-size:var(--type-micro)}
@media (max-width:360px){.tweet-card{padding-inline:16px}}

/* Author headings: the counter yields its line before a handle would break. */
.section-heading{flex-wrap:wrap;column-gap:var(--space-4);row-gap:var(--space-1)}
.section-heading>div{flex:1 1 auto}
.section-heading .quiet{margin-left:auto}

/* Very narrow phones: author tiles become rows so handles have room to read. */
@media (max-width:374px){
  .authors-grid{grid-template-columns:minmax(0,1fr);gap:8px}
  .author-tile{min-height:0;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:var(--space-3);row-gap:2px;align-items:center;padding:14px 16px}
  .author-tile .tile-star{grid-row:1 / span 2;text-align:center}
  .author-tile .tile-name{font-size:15px}
  .author-tile .tile-count{font-size:var(--type-micro)}
}
.capsule-note,.import-card p,.random-intro p,.stack-finished p{text-wrap:balance}
/* Large text settings on narrow phones: display headings stop growing before a
   15-character handle would break; placeholders end with an ellipsis. */
.section-heading h2{font-size:min(var(--type-h2),10vw)}
.search-box input{text-overflow:ellipsis}
.recovery-heading p,.settings-dialog .metadata-import p,.recovery-guide,.sync-panel p,.cleanup-tools p,.backup-tools p{font-size:var(--type-small);line-height:1.55}
.recovery-panel .enrich-copy small,.recovery-guide .guide-caution{font-size:var(--type-micro)}

/* Settings → Stack reading: gesture help and the haptics switch. */
.reading-settings{padding:12px 16px 16px;border-top:1px solid #4f4560;color:var(--ink-soft);font-size:var(--type-small);line-height:1.55}
.reading-settings p{margin:0 0 8px}
.gesture-help{margin:0 0 12px;padding-left:20px}
.gesture-help li{padding:3px 0}
.haptics-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding-top:10px;border-top:1px solid #4f4560}
.haptics-row[hidden]{display:none}
.haptics-row label{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);font-weight:700;cursor:pointer}
.haptics-row input{width:20px;height:20px;accent-color:var(--starlight)}
.haptics-row small{color:var(--ink-muted);font-size:var(--type-micro)}

/* Compact random discovery on mobile. */
@media(max-width:699px){
 .random-stage{margin-top:8px;gap:8px;scroll-margin-top:max(12px,env(safe-area-inset-top))}
 .random-intro{padding:10px 4px 0;background:radial-gradient(ellipse at 50% 63%,#443455a3 0,transparent 58%)}
 .random-intro h2{font-size:clamp(29px,8vw,38px);margin-top:5px}
 .random-intro p{font-size:13px}
 .random-count{font-size:11px}
 .wish-button{width:82px;height:82px;margin-top:6px}
 .wish-button span{font-size:56px}
 .wish-button::before{inset:7px}
 .wish-button::after{inset:17px}
 .random-year-roulette{height:14px;line-height:14px}
 .random-card-shell{gap:8px}
 .random-reveal .tweet-card{margin:0}
 .random-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
 .random-next,.random-stack-cta{width:100%;min-height:46px}
 .random-stack-cta{border-color:transparent;background:transparent;min-height:40px}
}



/* First-run onboarding: a complete landing state, not an empty reading interface. */
.import-card[hidden],.install-reminder[hidden],.install-instructions[hidden]{display:none!important}
body[data-library-state="initializing"] .stats,
body[data-library-state="initializing"] .overline,
body[data-library-state="initializing"] .reading-room,
body[data-library-state="initializing"] footer,
body[data-library-state="empty"] .stats,
body[data-library-state="empty"] .overline,
body[data-library-state="empty"] .reading-room,
body[data-library-state="empty"] footer .footer-date-note{display:none}
body[data-library-state="empty"] .hero{border-bottom:0;padding-bottom:8px}
body[data-library-state="empty"] .brand-row{align-items:flex-start}
body[data-library-state="empty"] .brand-row h1{font-size:clamp(3.4rem,8vw,6rem)}
body[data-library-state="empty"] .brand-subtitle{font-size:clamp(1rem,1rem + .25vw,1.3rem)}
body[data-library-state="empty"] .import-card{
  background:none;border:0;border-radius:0;box-shadow:none;
  margin:6px auto var(--space-6);padding:0;max-width:800px;text-align:left;
}
.onboarding-intro{text-align:center;max-width:520px;margin:0 auto}
.import-card .onboarding-kicker{
  margin:20px auto 13px;color:#eac16d;font-size:.7rem;line-height:1.4;
  font-weight:800;letter-spacing:.18em;
}
.import-card #import-title{
  max-width:15ch;margin:0 auto 13px;color:#fff0e5;
  font-family:var(--font-display);font-size:clamp(2.05rem,1.7rem + 1.7vw,2.8rem);
  font-weight:500;line-height:1.13;letter-spacing:-.018em;
}
.import-card .onboarding-description{max-width:36ch;margin:0 auto;color:#c7bfd3;font-size:.95rem;line-height:1.65}
.onboarding-art{height:145px;position:relative;margin:13px auto 8px;max-width:300px}
.onboarding-paper{position:absolute;width:182px;height:103px;border:1px solid #a995bb8c;border-radius:12px;left:50%;top:50%;box-shadow:0 8px 20px #090a2090}
.paper-back{background:#32304d;transform:translate(-50%,-43%) rotate(-11deg)}
.paper-middle{background:#39304d;transform:translate(-50%,-50%) rotate(6deg)}
.paper-front{background:linear-gradient(140deg,#39354f,#252942);transform:translate(-50%,-57%) rotate(-3deg);padding:15px}
.paper-author{display:flex;gap:8px;align-items:center}
.paper-avatar{width:16px;height:16px;border:1px solid #e3cbeb7c;border-radius:50%}
.paper-author-line{width:48px;height:5px;border-radius:5px;background:#dac2e798}
.paper-star{margin-left:auto;color:#f2c96d}
.paper-line{display:block;width:96%;height:5px;background:#d0bcd075;border-radius:5px;margin-top:8px}
.paper-line-short{width:60%;margin-top:11px}.paper-line-medium{width:78%}
.onboarding-spark{position:absolute;color:#f4ce71;line-height:1;text-shadow:0 0 20px #efc55a77}
.spark-one{top:4px;right:44px;font-size:25px}.spark-two{left:40px;bottom:29px;font-size:18px;color:#e6b1de}
.import-card .onboarding-upload{
  width:min(100%,352px);min-height:52px;border-radius:13px;
  padding:13px 20px;background:#e6c5e9;color:#292034;
  font-family:var(--font-ui);font-size:.94rem;font-weight:800;
}
.import-card .onboarding-privacy{
  margin:12px auto 0;color:#aeadc7;font-size:.75rem;line-height:1.55
}
.onboarding-guide{
  border-top:1px solid #b8a3c638;margin:37px auto 0;padding-top:29px;
  max-width:430px;
}
.onboarding-guide h3,.install-heading h3{
  margin:0;color:#f4e6dd;font-family:var(--font-display);
  font-size:clamp(1.55rem,1.35rem + .5vw,1.9rem);font-weight:500;line-height:1.25;
}
.import-card .onboarding-guide>p{font-size:.91rem;color:#c2b9ce;line-height:1.6;margin:8px 0 0}
.onboarding-steps{counter-reset:onboarding-step;list-style:none;padding:0;margin:21px 0 18px;display:grid;gap:17px}
.onboarding-steps li{counter-increment:onboarding-step;display:flex;gap:12px;align-items:flex-start}
.onboarding-steps li::before{
  content:counter(onboarding-step);flex:0 0 29px;width:29px;height:29px;
  border:1px solid #edc57485;border-radius:50%;background:#eac16a23;
  display:grid;place-items:center;color:#f7d58a;font:500 1rem var(--font-display)
}
.onboarding-steps strong{display:block;font-size:.9rem;color:#f0eaf2;line-height:1.45}
.import-card .onboarding-steps p{margin:4px 0 0;color:#aaa7c1;font-size:.79rem;line-height:1.55}
.import-card .onboarding-guide .import-guide-link{margin:0}
.import-guide-link a{color:#eed08a;text-underline-offset:4px}
.install-reminder{
  max-width:430px;margin:29px auto 0;border:1px solid #d2aaad70;
  border-radius:18px;padding:20px;
  background:radial-gradient(ellipse at 100% 0%,#88507447,transparent 72%),linear-gradient(135deg,#322940,#28253d);
}
.install-eyebrow{display:block;color:#ecc38a;font-weight:800;font-size:.68rem;letter-spacing:.15em;margin-bottom:13px}
.install-heading{display:flex;align-items:center;gap:13px}
.install-app-icon{
  flex:0 0 43px;height:43px;border:1px solid #f5cf7d7c;border-radius:11px;
  background:#1c1c34;display:grid;place-items:center;color:#f4d277;
  font-size:1.65rem;
}
.install-heading h3{font-size:1.5rem}
.import-card .install-reminder>p{margin:11px 0 14px;color:#d0c4d4;font-size:.85rem;line-height:1.6}
#install-app{width:100%;min-height:46px;background:#f0d5e9;color:#282034;font-weight:750;border:0;border-radius:11px;font-size:.87rem;cursor:pointer}
#dismiss-install{display:block;background:none;color:#c2b4ce;border:0;margin:10px auto 0;padding:8px 12px;min-height:44px;font-size:.8rem;cursor:pointer}
.import-card #install-instructions{padding:11px 12px;margin:9px 0 0;background:#1c1b30;border:1px solid #ffffff24;border-radius:10px;color:#e8ddeb;font-size:.8rem;line-height:1.55}
.onboarding-more{max-width:430px;margin:25px auto 0;padding-top:18px;border-top:1px solid #ffffff23;color:#c6bad1}
.onboarding-more>summary{cursor:pointer;font-size:.82rem;min-height:44px;padding:11px 0}
.onboarding-more .legacy-import{margin:8px 0}
.onboarding-restore{background:transparent;color:#d8c6e4;text-decoration:underline;text-underline-offset:3px;border:0;cursor:pointer;margin:12px 0;padding:10px 0;text-align:left;min-height:44px}
.onboarding-more .legacy-import p{font-size:.82rem;color:#c6bad1}
@media(max-width:699px){
  body[data-library-state="empty"] .hero{padding-top:max(67px,calc(env(safe-area-inset-top) + 59px))}
  body[data-library-state="empty"] .brand-row h1{font-size:clamp(3.25rem,13vw,4.5rem)}
  body[data-library-state="empty"] .import-card{margin-top:14px}
  .onboarding-art{height:133px;margin-top:12px}
  .onboarding-guide{margin-top:35px}
}
@media(max-width:374px){
  body[data-library-state="empty"] .brand-row h1{font-size:3.05rem}
  .import-card #import-title{font-size:2rem}
  .onboarding-guide{padding-top:23px}
  .install-reminder{padding:17px}
}
@media(prefers-reduced-motion:reduce){
  .onboarding-paper,.onboarding-spark{animation:none!important}
}


/* Quiet attribution: always visible, including before the first ZIP import. */
.app-footer .footer-main{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.app-footer .footer-wordmark{font-family:var(--font-display);font-style:italic;color:#ead9c4}
.app-footer .footer-links{display:flex;align-items:center;gap:12px;font:600 12px var(--font-ui)}
.app-footer .footer-links span{font:inherit;color:#9c8fad}
.app-footer .footer-links a,.settings-about-link{color:#e5d0f0;text-underline-offset:4px}
.app-footer .footer-links a:hover,.settings-about-link:hover{color:#ffdf9c}
.app-footer .footer-date-note{margin-top:12px}
.import-card .onboarding-privacy .privacy-details-link{display:block;width:max-content;max-width:100%;margin:8px auto 0;color:#f3d48f;font-size:12px;line-height:1.6;text-underline-offset:4px}
.settings-about-link{display:block;margin-top:22px;padding:14px 4px 8px;min-height:44px;font-size:13px;border-top:1px solid #554968}
@media(max-width:420px){.app-footer .footer-main{align-items:flex-start;flex-direction:column;gap:8px}.app-footer .footer-links{min-height:36px}}

/* Visual restraint: framing belongs to controls and distinct surfaces, while
   spacing groups ordinary content. Keep the sky and wordmark as the signature. */
.hero{border-bottom:0}
.night-sky i{opacity:.32;text-shadow:none}
.night-sky .s3,.night-sky .s4,.night-sky .s6{display:none}
.title-star,.moon,.brand-row h1{ text-shadow:none }
.section-kicker,.home-discovery>.home-kicker,.home-resume>.home-kicker,
.capsule-intro>.home-kicker,.random-intro>.home-kicker,.recovery-eyebrow{display:none}
.home-journeys button,.home-journeys button:last-child{background:#292940;border-color:transparent}
.home-journeys .journey-icon{font-size:24px;text-shadow:none}
.author-tile:nth-child(n){background:#2b2d46;border-color:transparent}
.author-tile.unknown{background:#23263b}
.author-tile:hover,.home-journeys button:hover{border-color:#827196}
#feed .tweet-card:nth-child(n){background:#fff2e4;border:0;border-radius:var(--radius-l);box-shadow:0 4px 16px #090a2326}
.avatar-star{border:0;background:transparent}
.empty-feed{border:0;background:transparent}
.capsule-intro{border:0;background:transparent;padding-inline:0}
.random-intro{background:transparent}
.settings-disclosure{border:0;border-radius:0;background:transparent;border-top:1px solid #514561}
.settings-disclosure>summary{padding-inline:0}
.settings-dialog .sync-panel,.reading-settings,.settings-dialog #file-toolbar{border-top:0;padding-inline:0}
.settings-dialog .enrich-card{border-bottom:0}
.settings-dialog .metadata-import{padding-block:20px}
.import-card .legacy-import{border-top:0}
.stack-overlay::before{content:none}
.stack-actions [data-stack-keep]{box-shadow:none}
/* A short public-facing description remains visible before JS and after import. */
.app-footer .footer-product-summary{max-width:68ch;margin:9px 0 0;color:#c2b5cf;font-size:12px;line-height:1.6}
