/* ============================================================
   TECH AI MAGAZINE 2026 — COMPONENT & LAYOUT STYLES
   Reproduces the design prototype (landing + article) as classes.
   Pages render on a light editorial surface (.theme-light) with
   dark and cyan feature bands, per the design.
   ============================================================ */

/* ---- Page shell ---- */
body.taim { background:#fff; color:var(--text-body); font-family:var(--font-sans); }
.taim-wrap { background:#fff; min-height:100vh; }
.taim-container { max-width:1280px; margin:0 auto; padding-left:40px; padding-right:40px; }
.taim-narrow { max-width:840px; margin:0 auto; padding-left:40px; padding-right:40px; }
.taim-mid { max-width:1080px; margin:0 auto; padding-left:40px; padding-right:40px; }

/* ---- Eyebrow (mono kicker with cyan rule) ---- */
.taim-eyebrow { display:inline-flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-600); }
.taim-eyebrow::before { content:""; width:28px; height:2px; background:var(--cyan-500); flex:0 0 auto; }
.taim-eyebrow.on-dark { color:var(--cyan-400); }
.taim-eyebrow.on-dark::before { box-shadow:var(--glow-sm); }
.taim-eyebrow.on-cyan { color:rgba(255,255,255,.85); }
.taim-eyebrow.on-cyan::before { background:#fff; }

/* ---- Promo bar ---- */
.taim-promo { display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; background:#05070A; color:#fff; padding:9px 24px; font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; text-align:center; }
.taim-promo b { font-weight:600; }
.taim-promo a { text-decoration:none; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--cyan-400); border-bottom:1.5px solid var(--cyan-400); padding-bottom:1px; }

/* ---- Nav ---- */
.taim-nav { position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:30px; padding:0 40px; height:90px; background:rgba(255,255,255,.82); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--border); }
.taim-nav__brand { display:flex; align-items:center; text-decoration:none; }
.taim-nav__menu { display:flex; gap:2px; margin-left:6px; }
.taim-nav__menu a { padding:9px 13px; font-size:13.5px; font-weight:600; text-decoration:none; color:var(--text-muted); border-radius:var(--radius-sm); transition:color var(--dur-base) var(--ease-out); }
.taim-nav__menu a:first-child, .taim-nav__menu a.current { color:var(--text-strong); }
.taim-nav__menu a:hover { color:var(--cyan-600); }
.taim-nav__right { margin-left:auto; display:flex; align-items:center; gap:16px; }
.taim-iconbtn { background:none; border:none; color:var(--text-muted); cursor:pointer; display:flex; padding:4px; transition:color var(--dur-base) var(--ease-out); }
.taim-iconbtn:hover { color:var(--cyan-600); }

/* ---- Logo lockup (wordmark) ---- */
.taim-logo { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-display); font-size:22px; letter-spacing:.02em; text-transform:uppercase; color:var(--ink-950); line-height:1; }
.taim-logo .mono { position:relative; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; background:#000; border-radius:7px; color:#fff; font-family:var(--font-display); font-size:20px; }
.taim-logo .mono i { font-style:normal; }
.taim-logo .mono .dot { position:absolute; top:7px; right:8px; width:5px; height:5px; border-radius:50%; background:var(--cyan-500); box-shadow:var(--glow-sm); }
.taim-logo .wm-ai { color:var(--cyan-600); font-style:italic; }
.taim-logo.on-dark { color:#fff; }
.taim-logo.on-dark .mono { background:#fff; color:#000; }

/* ---- Buttons ---- */
.taim-btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; font-family:var(--font-sans); font-weight:700; text-decoration:none; border-radius:var(--radius-md); cursor:pointer; border:1px solid transparent; transition:transform var(--dur-fast) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); white-space:nowrap; }
.taim-btn:active { transform:scale(.98); }
.taim-btn--sm { height:36px; padding:0 16px; font-size:13px; }
.taim-btn--lg { height:54px; padding:0 26px; font-size:15px; }
.taim-btn--md { height:44px; padding:0 22px; font-size:14px; }
.taim-btn--ink { background:var(--ink-950); color:#fff; }
.taim-btn--ink:hover { background:#000; color:#fff; box-shadow:var(--shadow-md); }
.taim-btn--outline { background:transparent; color:var(--ink-950); border-color:var(--border-strong); }
.taim-btn--outline:hover { border-color:var(--border-cyan); color:var(--cyan-600); }
.taim-btn--outline.on-dark { color:#fff; border-color:rgba(255,255,255,.35); }
.taim-btn--outline.on-dark:hover { border-color:var(--cyan-500); color:var(--cyan-400); }
.taim-btn--secondary { background:var(--cyan-500); color:var(--black); }
.taim-btn--secondary:hover { background:var(--cyan-400); box-shadow:var(--glow-md); }
.taim-btn--full { width:100%; }
.taim-btn svg { display:block; }

/* ---- Section heads ---- */
.taim-sechead { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:14px; }
.taim-sechead h2 { font-size:34px; margin:12px 0 0; color:var(--ink-950); letter-spacing:-.02em; }
.taim-sechead--center { display:block; text-align:center; margin-bottom:30px; }
.taim-sechead--center .taim-eyebrow { justify-content:center; }
.taim-showmore { font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan-600); text-decoration:none; display:inline-flex; align-items:center; gap:7px; }
.taim-showmore:hover { color:var(--cyan-700); }

/* ---- Hero ---- */
.taim-hero { position:relative; overflow:hidden; background:radial-gradient(120% 90% at 82% 12%, rgba(0,176,240,.16), rgba(0,176,240,0) 55%), linear-gradient(180deg,#F4F8FC,#FFFFFF); border-bottom:1px solid var(--border); }
.taim-hero__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; padding-top:64px; padding-bottom:72px; }
.taim-hero h1 { font-size:56px; line-height:1.02; letter-spacing:-.03em; margin:18px 0; color:var(--ink-950); }
.taim-hero h1 .accent { color:var(--cyan-600); }
.taim-hero__lede { font-size:18px; color:var(--text-muted); line-height:1.55; max-width:520px; margin:0 0 28px; }
.taim-hero__actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.taim-hero__stats { display:flex; gap:34px; margin-top:36px; }
.taim-stat-num { font-family:var(--font-display); color:var(--ink-950); }
.taim-stat-lbl { font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); }
.taim-hero__cover { position:relative; display:flex; justify-content:center; }
.taim-hero__cover .glow { position:absolute; inset:6% -4% -8% 8%; border-radius:20px; background:linear-gradient(150deg,var(--cyan-500),var(--cyan-700) 55%,var(--ink-900)); transform:rotate(4deg); box-shadow:0 40px 80px rgba(0,176,240,.32); }
.taim-hero__cover a { position:relative; display:block; border-radius:8px; overflow:hidden; box-shadow:0 30px 60px rgba(10,14,20,.34); border:1px solid rgba(255,255,255,.5); }
.taim-hero__cover img { display:block; width:330px; max-width:42vw; height:auto; }
.taim-hero__badge { position:absolute; top:-14px; right:2%; z-index:2; display:inline-flex; align-items:center; height:30px; padding:0 14px; font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--black); background:var(--cyan-500); border-radius:var(--radius-pill); box-shadow:var(--glow-sm); }

/* ---- Article cards (grid) ---- */
.taim-cards { display:grid; gap:22px; }
.taim-cards--3 { grid-template-columns:repeat(3,1fr); }
.taim-cards--5 { grid-template-columns:repeat(5,1fr); gap:16px; }
.taim-card { text-decoration:none; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.taim-card:hover { transform:translateY(-3px); border-color:var(--border-cyan); box-shadow:var(--shadow-lg); }
.taim-card__media { position:relative; height:184px; overflow:hidden; }
.taim-card--sm .taim-card__media { height:118px; }
.taim-card__media img { width:100%; height:100%; object-fit:cover; }
.taim-card__media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(5,7,10,.7)); }
.taim-card--sm .taim-card__media::after { background:linear-gradient(180deg,transparent 40%,rgba(5,7,10,.7)); }
.taim-card__cat { position:absolute; left:14px; top:14px; z-index:1; display:inline-flex; align-items:center; height:24px; padding:0 10px; font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--cyan-600); border-radius:var(--radius-pill); }
.taim-card__body { padding:20px; display:flex; flex-direction:column; flex:1; }
.taim-card--sm .taim-card__body { padding:16px; }
.taim-card__body h3 { font-size:19px; line-height:1.22; margin:0 0 14px; color:var(--ink-950); }
.taim-card--sm .taim-card__body h3 { font-size:15px; line-height:1.28; margin:0; }
.taim-card__meta { margin-top:auto; display:flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:11px; color:var(--text-faint); letter-spacing:.04em; }
.taim-card__meta .by { color:var(--text-body); }

/* ---- Latest issues carousel (dark) ---- */
.taim-issues { background:linear-gradient(180deg,var(--ink-950),var(--ink-850)); border-top:1px solid var(--border); }
.taim-issues__inner { padding-top:58px; padding-bottom:64px; }
.taim-issues .taim-sechead--center h2 { color:#fff; font-size:32px; }
.taim-coverflow { position:relative; height:460px; margin-top:8px; perspective:1400px; overflow-x:clip; } /* clip off-stage cards so the carousel can't cause page-level horizontal scroll on mobile; clip (not hidden) keeps vertical card shadow + doesn't break the sticky nav */
.taim-coverflow__stage { position:absolute; inset:0; }
.taim-cf-card { position:absolute; top:50%; left:50%; width:300px; height:410px; border-radius:10px; overflow:hidden; cursor:pointer; border:1px solid rgba(255,255,255,.12); transition:transform .6s var(--ease-out), opacity .6s, filter .6s, box-shadow .6s; will-change:transform,opacity; }
.taim-cf-card img { width:100%; height:100%; object-fit:cover; display:block; }
.taim-cf-card::after { content:""; position:absolute; left:0; right:0; bottom:0; height:40%; background:linear-gradient(180deg,transparent,rgba(5,7,10,.55)); }
.taim-coverflow__cta { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:50; }
.taim-issues__nav { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:26px; }
.taim-navbtn { width:46px; height:46px; border-radius:50%; background:transparent; border:1px solid var(--border-strong); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.taim-navbtn:hover { border-color:var(--cyan-500); color:var(--cyan-400); }
.taim-dots { display:flex; gap:9px; }
.taim-dots button { width:9px; height:9px; border-radius:999px; background:rgba(255,255,255,.3); border:none; padding:0; cursor:pointer; transition:all .3s var(--ease-out); }
.taim-dots button.active { width:26px; background:var(--cyan-500); box-shadow:var(--glow-sm); }

/* ---- Explore More posters ---- */
.taim-posters { display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.taim-poster { position:relative; display:block; aspect-ratio:3/4.2; border-radius:var(--radius-lg); overflow:hidden; text-decoration:none; box-shadow:var(--shadow-md); transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.taim-poster:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.taim-poster img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.taim-poster::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,7,10,.1) 30%,rgba(5,7,10,.85)); }
.taim-poster__label { position:absolute; left:0; right:0; bottom:16px; z-index:1; text-align:center; font-family:var(--font-display); font-size:17px; letter-spacing:.02em; color:#fff; text-transform:uppercase; }
.taim-poster__label .ai { color:var(--cyan-400); font-style:italic; }

/* ---- AGI + News split ---- */
.taim-split { border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--ink-50); }
.taim-split__grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; padding-top:56px; padding-bottom:56px; }
.taim-split h2 { font-size:26px; margin:12px 0 8px; color:var(--ink-950); letter-spacing:-.02em; }
.taim-hlist { margin-top:8px; }
.taim-hrow { display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--border); text-decoration:none; transition:background var(--dur-base) var(--ease-out); }
.taim-hrow:last-child { border-bottom:none; }
.taim-hrow:hover { background:rgba(0,0,0,.02); }
.taim-hrow__thumb { flex:0 0 104px; height:72px; border-radius:var(--radius-md); overflow:hidden; }
.taim-hrow__thumb img { width:100%; height:100%; object-fit:cover; }
.taim-hrow__txt { display:flex; flex-direction:column; justify-content:center; }
.taim-hrow__txt h4 { font-size:16px; line-height:1.28; margin:0; color:var(--ink-950); }
.taim-hrow__by { font-family:var(--font-mono); font-size:11px; color:var(--text-faint); letter-spacing:.04em; margin-top:6px; }
.taim-newsrow { display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--border); text-decoration:none; transition:background var(--dur-base) var(--ease-out); }
.taim-newsrow:last-child { border-bottom:none; }
.taim-newsrow:hover { background:rgba(0,0,0,.02); }
.taim-newsrow .dot { flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--cyan-500); margin-top:7px; }
.taim-newsrow h4 { font-size:16px; line-height:1.3; margin:0; color:var(--ink-950); }
.taim-newsrow .meta { font-family:var(--font-mono); font-size:11px; color:var(--text-faint); letter-spacing:.04em; margin-top:6px; display:block; }
.taim-split__head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.taim-split__head .taim-showmore { margin-bottom:10px; }
.taim-split__more { margin-top:18px; }

/* ---- Top 100 ranking (dark) ---- */
.taim-rank { background:#05070A; border-bottom:1px solid rgba(255,255,255,.1); }
.taim-rank__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start; padding-top:60px; padding-bottom:60px; }
.taim-rank__intro { position:sticky; top:96px; }
.taim-rank__intro h2 { font-family:var(--font-display); font-size:46px; line-height:1; margin:16px 0 14px; color:#fff; text-transform:uppercase; letter-spacing:.01em; }
.taim-rank__intro h2 .accent { color:var(--cyan-400); }
.taim-rank__intro p { font-size:15.5px; color:rgba(255,255,255,.62); line-height:1.6; max-width:380px; margin:0 0 24px; }
.taim-rank__list { display:flex; flex-direction:column; border-top:1px solid rgba(255,255,255,.1); }
.taim-rankrow { display:flex; align-items:center; gap:22px; padding:22px 4px; border-bottom:1px solid rgba(255,255,255,.1); text-decoration:none; transition:background var(--dur-base) var(--ease-out); }
.taim-rankrow:hover { background:rgba(255,255,255,.05); }
.taim-rankrow__n { flex:0 0 auto; width:54px; font-family:var(--font-display); font-size:46px; line-height:.85; color:rgba(255,255,255,.2); text-align:right; }
.taim-rankrow__logo { flex:0 0 auto; width:48px; height:48px; border-radius:var(--radius-md); background:#fff; border:1px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.taim-rankrow__logo span { font-family:var(--font-display); font-size:20px; color:var(--ink-700); }
.taim-rankrow__logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:8px; background:#fff; }
.taim-rankrow h3 { font-size:18px; margin:0 0 4px; color:#fff; }
.taim-rankrow p { font-size:13.5px; color:rgba(255,255,255,.62); line-height:1.5; margin:0; max-width:520px; }

/* ---- Stats band (cyan) ---- */
.taim-stats { background:linear-gradient(120deg,var(--cyan-700),var(--cyan-600) 55%,var(--cyan-800)); }
.taim-stats__grid { display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:center; padding-top:56px; padding-bottom:56px; }
.taim-stats h2 { font-family:var(--font-display); font-size:42px; line-height:1.02; margin:16px 0 0; color:#fff; text-transform:uppercase; }
.taim-stats__nums { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.taim-stats__num { font-family:var(--font-display); font-size:64px; line-height:.92; color:#fff; }
.taim-stats__lbl { font-family:var(--font-mono); font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-top:6px; }

/* ---- Newsletter ---- */
.taim-news { padding-top:64px; padding-bottom:64px; }
.taim-news__card { position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:44px; display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; overflow:hidden; box-shadow:var(--shadow-md); }
.taim-news__card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--cyan-500); }
.taim-news__card h2 { font-size:32px; margin:14px 0 10px; color:var(--ink-950); letter-spacing:-.02em; }
.taim-news__card p { font-size:16px; color:var(--text-muted); line-height:1.55; margin:0; max-width:460px; }
.taim-news__form { display:flex; flex-direction:column; gap:14px; }
.taim-field label { display:block; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); margin-bottom:7px; }
.taim-field input { width:100%; height:52px; padding:0 16px; font-size:15px; font-family:var(--font-sans); color:var(--ink-950); background:#fff; border:1px solid var(--border-strong); border-radius:var(--radius-md); transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.taim-field input:focus { outline:none; border-color:var(--cyan-500); box-shadow:var(--glow-sm); }

/* ---- Footer ---- */
.taim-footer { background:#05070A; padding:54px 40px 36px; }
.taim-footer__grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr; gap:36px; }
.taim-footer__about p { font-size:14px; color:rgba(255,255,255,.6); line-height:1.6; margin:18px 0 0; max-width:290px; }
.taim-footer__imprint { margin:18px 0 0; max-width:290px; display:grid; grid-template-columns:auto 1fr; gap:3px 10px; font-size:11px; line-height:1.5; color:rgba(255,255,255,.38); }
.taim-footer__imprint dt { font-family:var(--font-mono); letter-spacing:.06em; text-transform:uppercase; font-size:10px; color:rgba(255,255,255,.3); }
.taim-footer__imprint dd { margin:0; }
.taim-footer__col .h { font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--cyan-400); margin-bottom:14px; }
.taim-footer__col a { display:flex; align-items:center; gap:9px; font-size:14px; color:rgba(255,255,255,.6); padding:5px 0; text-decoration:none; transition:color var(--dur-base) var(--ease-out); }
.taim-footer__col a:hover { color:#fff; }
.taim-footer__bottom { max-width:1280px; margin:36px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:var(--font-mono); font-size:11px; color:rgba(255,255,255,.4); letter-spacing:.06em; }

/* ============================================================
   ARTICLE (single) styles
   ============================================================ */
.taim-art-hero { background:radial-gradient(120% 90% at 85% 8%, rgba(0,176,240,.16), rgba(0,176,240,0) 55%), linear-gradient(180deg,#F4F8FC,#FFFFFF); border-bottom:1px solid var(--border); }
.taim-art-hero__inner { padding-top:30px; padding-bottom:40px; }
.taim-backlink { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--border-strong); color:var(--text-body); padding:8px 14px; border-radius:var(--radius-md); text-decoration:none; font-size:13px; font-weight:600; transition:border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.taim-backlink:hover { border-color:var(--border-cyan); color:var(--cyan-600); }
.taim-art-hero h1 { font-size:48px; line-height:1.04; letter-spacing:-.03em; margin:16px 0 14px; color:var(--ink-950); }
.taim-art-hero__lede { font-size:19px; color:var(--text-muted); line-height:1.5; max-width:720px; margin:0; }
.taim-art-feature { max-width:1080px; margin:0 auto; padding:0 40px; }
.taim-art-feature__img { position:relative; height:420px; margin-top:-1px; border-radius:0 0 var(--radius-lg) var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.taim-art-feature__img img { width:100%; height:100%; object-fit:cover; }
.taim-art-feature.taim-art-feature--card { max-width:900px; }
.taim-art-feature--card .taim-art-feature__img { height:auto; aspect-ratio:16/9; }
.taim-article { max-width:840px; margin:0 auto; padding:36px 40px 72px; }
.taim-art-meta { display:flex; align-items:center; justify-content:space-between; padding-bottom:26px; border-bottom:1px solid var(--border); flex-wrap:wrap; gap:14px; }
.taim-art-meta__author { display:flex; align-items:center; gap:13px; }
.taim-avatar { width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,var(--cyan-700),var(--cyan-500)); display:flex; align-items:center; justify-content:center; color:var(--black); font-weight:800; }
.taim-art-meta__name { font-size:14px; font-weight:700; color:var(--ink-950); }
.taim-art-meta__sub { font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); letter-spacing:.04em; }
.taim-art-actions { display:flex; gap:9px; }
.taim-sharebtn { display:flex; align-items:center; gap:8px; background:var(--surface-2); border:1px solid var(--border-strong); color:var(--text-body); padding:8px 14px; border-radius:var(--radius-md); cursor:pointer; font-size:13px; font-weight:600; transition:border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.taim-sharebtn:hover { border-color:var(--border-cyan); color:var(--cyan-600); }

.article-body { padding:32px 0 8px; }
.article-body p { font-size:17.5px; line-height:1.75; color:var(--ink-800); margin:0 0 24px; }
.article-body > p:first-of-type::first-letter { font-family:var(--font-display); font-size:68px; line-height:.72; float:left; color:var(--cyan-600); margin:6px 14px 0 0; }
.article-body h2 { font-size:27px; letter-spacing:-.02em; color:var(--ink-950); margin:40px 0 14px; }
.article-body h3 { font-size:21px; color:var(--ink-950); margin:32px 0 12px; }
.article-body img { border-radius:var(--radius-md); margin:24px 0; }
.article-body a { color:var(--cyan-700); text-decoration:underline; text-underline-offset:2px; }
.article-body ul, .article-body ol { font-size:17.5px; line-height:1.75; color:var(--ink-800); margin:0 0 24px; padding-left:24px; }
.article-body li { margin:0 0 8px; }
.article-body blockquote { margin:34px 0; padding:6px 0 6px 26px; border-left:2px solid var(--cyan-500); }
.article-body blockquote p { font-family:var(--font-sans); font-weight:700; font-size:26px; line-height:1.25; letter-spacing:-.02em; color:var(--ink-950); margin:0; }

.taim-takeaways { position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:28px 30px; margin:14px 0 30px; overflow:hidden; box-shadow:var(--shadow-sm); }
.taim-takeaways::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--cyan-500); }
.taim-takeaways .h { font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-600); margin-bottom:16px; }
.taim-takeaways ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.taim-takeaways li { display:flex; gap:12px; align-items:flex-start; font-size:15.5px; color:var(--ink-800); line-height:1.55; }
.taim-takeaways li::before { content:""; flex:0 0 auto; width:8px; height:8px; border-radius:50%; background:var(--cyan-500); margin-top:8px; }

.taim-tags { display:flex; flex-wrap:wrap; gap:8px; padding-top:22px; border-top:1px solid var(--border); }
.taim-tags a { display:inline-flex; align-items:center; height:28px; padding:0 12px; font-size:12.5px; font-weight:600; color:var(--text-body); background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-sm); text-decoration:none; transition:border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.taim-tags a:hover { border-color:var(--border-cyan); color:var(--cyan-600); }

.taim-authorbox { display:flex; gap:18px; align-items:center; margin-top:34px; padding:24px; background:var(--ink-50); border:1px solid var(--border); border-radius:var(--radius-lg); }
.taim-authorbox .taim-avatar { width:58px; height:58px; font-size:20px; }
.taim-authorbox .l { font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--cyan-600); margin-bottom:5px; }
.taim-authorbox .n { font-size:17px; font-weight:700; color:var(--ink-950); }
.taim-authorbox p { font-size:14px; color:var(--text-muted); line-height:1.55; margin:6px 0 0; }

.taim-related { border-top:1px solid var(--border); background:var(--ink-50); }
.taim-related__inner { padding-top:56px; padding-bottom:56px; }
.taim-related h2 { font-size:28px; margin:12px 0 26px; color:var(--ink-950); letter-spacing:-.02em; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1000px){
  .taim-hero__grid, .taim-split__grid, .taim-rank__grid, .taim-stats__grid, .taim-news__card { grid-template-columns:1fr; }
  .taim-cards--3 { grid-template-columns:repeat(2,1fr); }
  .taim-cards--5 { grid-template-columns:repeat(3,1fr); }
  .taim-posters { grid-template-columns:repeat(3,1fr); }
  .taim-rank__intro { position:static; }
  .taim-stats__nums { grid-template-columns:repeat(2,1fr); }
  .taim-hero h1 { font-size:40px; }
  .taim-art-hero h1 { font-size:34px; }
  .taim-footer__grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .taim-container, .taim-mid { padding-left:20px; padding-right:20px; }
  .taim-narrow, .taim-article { padding-left:20px; padding-right:20px; }
  .taim-nav__menu { display:none; }
  .taim-nav { padding-left:16px; padding-right:16px; gap:12px; }
  .taim-nav__right { gap:9px; }
  .taim-nav__right .taim-btn--sm { height:34px; padding:0 12px; font-size:12.5px; }
  .taim-cards--3, .taim-cards--5, .taim-posters { grid-template-columns:1fr 1fr; }
  .taim-hero__cover img { max-width:70vw; }
  .taim-news__card { padding:28px; }
  .taim-stats__nums { grid-template-columns:1fr 1fr; }
  .taim-footer__grid { grid-template-columns:1fr; }
  .article-body p, .article-body ul, .article-body ol { font-size:16.5px; }
}

/* ============================================================
   SINGLE MAGAZINE ISSUE
   Light like every other content page — the dark band is a
   front-page section, not a page shell. The cover carries the
   page and reuses the hero's cyan glow; nothing else competes.
   ============================================================ */
.taim-issue { position:relative; overflow:hidden; background:radial-gradient(120% 90% at 82% 12%, rgba(0,176,240,.16), rgba(0,176,240,0) 55%), linear-gradient(180deg,#F4F8FC,#FFFFFF); padding:30px 0 88px; }
.taim-issue__inner { position:relative; z-index:1; }

.taim-issue__body { min-width:0; }  /* grid items default to min-width:auto, which long titles would overflow */
.taim-issue__grid { display:grid; grid-template-columns:minmax(0,380px) minmax(0,1fr); gap:64px; align-items:start; margin-top:24px; }

/* Cover treatment mirrors .taim-hero__cover — same glow, same lift. */
.taim-issue__coverwrap { position:relative; display:flex; justify-content:center; }
.taim-issue__coverwrap .glow { position:absolute; inset:6% -4% -8% 8%; border-radius:20px; background:linear-gradient(150deg,var(--cyan-500),var(--cyan-700) 55%,var(--ink-900)); transform:rotate(4deg); box-shadow:0 40px 80px rgba(0,176,240,.32); }
.taim-issue__cover { position:relative; z-index:1; display:block; width:100%; height:auto; border-radius:8px; box-shadow:0 30px 60px rgba(10,14,20,.34); border:1px solid rgba(255,255,255,.5); }

.taim-issue__title { font-size:48px; line-height:1.04; letter-spacing:-.03em; margin:16px 0 0; color:var(--ink-950); }
.taim-issue__lede { font-size:18px; color:var(--text-muted); line-height:1.55; margin:14px 0 0; max-width:52ch; }

.taim-issue__gate { margin-top:28px; padding-top:28px; border-top:1px solid var(--border); }
.taim-issue__actions { display:flex; flex-wrap:wrap; gap:12px; }
.taim-issue__note { color:var(--text-muted); font-size:13.5px; line-height:1.55; margin:14px 0 0; max-width:46ch; }

.taim-issue__contents { margin-top:36px; }
.taim-issue__contents-label { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-faint); }
.taim-issue__contents ul { list-style:none; margin:14px 0 0; padding:0; }
.taim-issue__contents li { padding:15px 0 15px 18px; border-left:2px solid var(--border); transition:border-color var(--dur-base) var(--ease-out); }
.taim-issue__contents li:hover { border-left-color:var(--cyan-500); }
.taim-issue__contents h2 { font-size:15px; font-weight:700; letter-spacing:.02em; text-transform:uppercase; margin:0; color:var(--ink-950); }
.taim-issue__contents p { color:var(--text-muted); font-size:14px; line-height:1.6; margin:6px 0 0; max-width:56ch; }

.taim-issue__more { margin-top:72px; padding-top:32px; border-top:1px solid var(--border); }
.taim-issue__morerow { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:18px; }
.taim-issue__mini { display:block; text-decoration:none; }
.taim-issue__mini img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; border-radius:var(--radius-sm); border:1px solid var(--border); transition:border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.taim-issue__mini:hover img { border-color:var(--border-cyan); transform:translateY(-3px); }
.taim-issue__mini span { display:block; margin-top:10px; font-size:13px; color:var(--text-body); }
.taim-issue__mini:hover span { color:var(--cyan-600); }

@media (max-width:900px) {
  .taim-issue__grid { grid-template-columns:1fr; gap:38px; }
  .taim-issue__coverwrap { max-width:300px; }
  .taim-issue__title { font-size:34px; }
  .taim-issue__morerow { grid-template-columns:repeat(2,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  .taim-issue__mini img, .taim-issue__contents li { transition:none; }
  .taim-issue__mini:hover img { transform:none; }
}

/* Launch mode: magazine "coming soon" + newsletter inline message */
.taim-issue__soon { }
.taim-issue__soon-tag { display:inline-block; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan-600); border:1px solid var(--border-cyan); border-radius:999px; padding:5px 12px; margin-bottom:14px; }
.taim-news__msg { margin:12px 0 0; font-size:13.5px; min-height:1.2em; }
.taim-news__msg[data-state="ok"] { color:var(--cyan-600); }
.taim-news__msg[data-state="err"] { color:#c0392b; }

/* =========================================================================
   Accounts phase — auth pages (login/register/forgot/reset) + account dashboard
   Light-first, consistent with the article/issue surfaces.
   ========================================================================= */
.taim-auth-page {
	background:
		radial-gradient(120% 90% at 85% 8%, rgba(0,176,240,.14), rgba(0,176,240,0) 55%),
		linear-gradient(180deg,#F4F8FC,#FFFFFF);
	border-bottom:1px solid var(--border);
	padding:64px 0 84px;
	min-height:60vh;
}

.taim-auth { display:flex; justify-content:center; }

.taim-auth__card {
	width:100%;
	max-width:460px;
	background:#fff;
	border:1px solid var(--border);
	border-radius:var(--radius-lg, 16px);
	box-shadow:var(--shadow-md, 0 10px 40px rgba(9,20,38,.08));
	padding:40px;
}

.taim-auth__title { font-family:var(--font-sans); font-size:30px; line-height:1.08; letter-spacing:-.02em; color:var(--ink-950); margin:14px 0 8px; }
.taim-auth__sub { font-size:15px; color:var(--text-muted); margin:0 0 24px; line-height:1.5; }

.taim-auth__form .taim-field { margin-bottom:16px; }
.taim-auth__names { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.taim-auth__row { display:flex; align-items:center; justify-content:space-between; margin:4px 0 20px; gap:12px; flex-wrap:wrap; }
.taim-auth__check { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted); cursor:pointer; }
.taim-auth__check input { width:16px; height:16px; accent-color:var(--cyan-600); }

.taim-auth__link { color:var(--cyan-600); text-decoration:none; font-weight:600; font-size:13px; }
.taim-auth__link:hover { color:var(--cyan-500); text-decoration:underline; }

.taim-auth__msg { min-height:20px; margin:14px 0 0; font-size:14px; text-align:center; }
.taim-auth__msg.is-ok { color:var(--green-600, #1a8f4c); }
.taim-auth__msg.is-error { color:var(--red-600, #c0392b); }

.taim-auth__banner { padding:12px 14px; border-radius:var(--radius-md); font-size:14px; margin:0 0 20px; }
.taim-auth__banner.is-ok { background:rgba(26,143,76,.08); color:var(--green-600,#1a8f4c); border:1px solid rgba(26,143,76,.25); }
.taim-auth__banner.is-error { background:rgba(192,57,43,.06); color:var(--red-600,#c0392b); border:1px solid rgba(192,57,43,.2); }

.taim-auth__fine { font-size:12px; color:var(--text-muted); margin:14px 0 0; line-height:1.5; text-align:center; }
.taim-auth__fine a { color:var(--cyan-600); text-decoration:none; }

.taim-auth__or { display:flex; align-items:center; gap:14px; margin:24px 0; color:var(--text-muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-family:var(--font-mono); }
.taim-auth__or::before, .taim-auth__or::after { content:""; flex:1; height:1px; background:var(--border); }

.taim-auth__google { display:flex; justify-content:center; min-height:4px; }
.taim-auth__google:empty { display:none; }

.taim-auth__foot { text-align:center; font-size:14px; color:var(--text-muted); margin:24px 0 0; }

/* ---- Account dashboard ---- */
.taim-account { max-width:720px; margin:0 auto; }
.taim-account__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:28px; flex-wrap:wrap; }
.taim-account__card { background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg,16px); box-shadow:var(--shadow-md,0 10px 40px rgba(9,20,38,.08)); padding:32px; }
.taim-account__row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--border); gap:16px; }
.taim-account__row:first-of-type { padding-top:0; }
.taim-account__label { font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.taim-account__value { font-weight:700; color:var(--ink-950); }
.taim-account__note { margin:16px 0 0; color:var(--text-muted); font-size:14px; }
.taim-account__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.taim-account__msg { min-height:20px; margin:14px 0 0; font-size:14px; }
.taim-account__msg.is-ok { color:var(--green-600,#1a8f4c); }
.taim-account__msg.is-error { color:var(--red-600,#c0392b); }

.taim-badge { display:inline-flex; align-items:center; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; letter-spacing:.02em; }
.taim-badge--ok { background:rgba(26,143,76,.1); color:var(--green-600,#1a8f4c); }
.taim-badge--warn { background:rgba(214,158,20,.12); color:#a97400; }
.taim-badge--muted { background:var(--surface-2,#eef2f6); color:var(--text-muted); }

@media (max-width:520px) {
	.taim-auth__card { padding:28px 22px; }
	.taim-auth__names { grid-template-columns:1fr; }
	.taim-auth-page { padding:40px 0 56px; }
}

/* ---- Pricing / subscription page ---- */
.taim-pricing-page .taim-sechead { text-align:center; margin-bottom:8px; }
.taim-pricing { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:40px 0 0; align-items:stretch; }
.taim-plan { position:relative; background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg,16px); box-shadow:var(--shadow-md,0 10px 40px rgba(9,20,38,.06)); padding:32px 28px; display:flex; flex-direction:column; }
.taim-plan--featured { border-color:var(--cyan-500); box-shadow:0 14px 50px rgba(0,176,240,.16); }
.taim-plan__flag { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--cyan-500); color:var(--black,#001018); font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:5px 14px; border-radius:999px; white-space:nowrap; }
.taim-plan__name { font-family:var(--font-sans); font-size:20px; color:var(--ink-950); margin:0 0 12px; }
.taim-plan__price { display:flex; align-items:baseline; gap:2px; margin:0 0 20px; color:var(--ink-950); }
.taim-plan__cur { font-size:22px; font-weight:700; }
.taim-plan__amt { font-family:var(--font-display); font-size:44px; font-weight:800; line-height:1; letter-spacing:-.02em; }
.taim-plan__per { font-size:14px; color:var(--text-muted); margin-left:4px; }
.taim-plan__features { list-style:none; margin:0 0 26px; padding:0; display:flex; flex-direction:column; gap:12px; flex:1; }
.taim-plan__features li { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--text-strong,#2a3646); line-height:1.4; }
.taim-plan__features svg { color:var(--cyan-600); flex:0 0 auto; margin-top:2px; }
.taim-pricing__foot { text-align:center; color:var(--text-muted); font-size:13px; margin:32px 0 0; }

/* ---- Checkout ---- */
.taim-checkout__summary { display:flex; align-items:center; justify-content:space-between; padding:18px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin:20px 0 24px; }
.taim-checkout__plan { display:block; font-weight:700; color:var(--ink-950); font-size:16px; }
.taim-checkout__cycle { display:block; font-size:13px; color:var(--text-muted); }
.taim-checkout__amt { font-family:var(--font-display); font-size:30px; font-weight:800; color:var(--ink-950); }
.taim-checkout__pay { display:flex; flex-direction:column; gap:14px; }
.taim-checkout__paypal { min-height:46px; }
.taim-pp-skeleton { display:block; height:46px; border-radius:8px;
	background:linear-gradient(90deg,var(--surface-2),var(--border),var(--surface-2));
	background-size:200% 100%; animation:taim-pp-shimmer 1.2s ease-in-out infinite; }
@keyframes taim-pp-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
@media (prefers-reduced-motion:reduce){ .taim-pp-skeleton{ animation:none; } }

@media (max-width:820px) {
	.taim-pricing { grid-template-columns:1fr; max-width:420px; margin-left:auto; margin-right:auto; }
}


/* ============================================================
   Additions 2026-07-17 — search overlay, 404, Top-100 page,
   trial-button alignment.
   ============================================================ */

/* Header search overlay (item 6) */
.taim-search { position:sticky; top:0; z-index:60; background:#fff; border-bottom:1px solid var(--border); box-shadow:var(--shadow-md); }
.taim-search[hidden] { display:none; }
.taim-search__form { max-width:1200px; margin:0 auto; display:flex; align-items:center; gap:12px; padding:14px 24px; }
.taim-search__icon { color:var(--text-muted); flex:0 0 auto; }
.taim-search__input { flex:1; border:none; outline:none; background:transparent; font-family:var(--font-sans); font-size:17px; color:var(--ink-950); padding:6px 0; }
.taim-search__input::placeholder { color:var(--text-muted); }
.taim-search__close { background:none; border:none; cursor:pointer; color:var(--text-muted); display:flex; padding:6px; border-radius:8px; }
.taim-search__close:hover { color:var(--ink-950); background:var(--surface-2,#f2f5f9); }

/* Trial button aligns with the adjacent plan CTA (item 7):
   the status line no longer reserves height while empty. */
.taim-plan .taim-account__msg { min-height:0; margin:0; text-align:center; }
.taim-plan .taim-account__msg:not(:empty) { margin-top:12px; }

/* 404 (item 5) */
.taim-404 { max-width:760px; padding-top:80px; padding-bottom:96px; text-align:center; }
.taim-404__title { font-size:40px; line-height:1.05; margin:14px 0 14px; color:var(--ink-950); letter-spacing:-.02em; }
.taim-404__lede { font-size:17px; color:var(--text-muted); line-height:1.6; margin:0 auto 30px; max-width:560px; }
.taim-404__search { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border-strong); border-radius:var(--radius-md); padding:8px 8px 8px 16px; max-width:560px; margin:0 auto 22px; }
.taim-404__search svg { color:var(--text-muted); flex:0 0 auto; }
.taim-404__search input { flex:1; border:none; outline:none; background:transparent; font-size:16px; color:var(--ink-950); padding:8px 0; }
.taim-404__links { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.taim-404__guess { margin-top:60px; text-align:left; }
.taim-404__guess > .taim-eyebrow { display:block; text-align:center; margin-bottom:18px; }

/* Top 100 ranking full page (item 4) */
.taim-rank--page { padding:64px 0 90px; }
.taim-rankpage__title { font-family:var(--font-display); font-size:44px; line-height:1; text-transform:uppercase; color:#fff; margin:14px 0 12px; letter-spacing:.01em; }
.taim-rankpage__title .accent { color:var(--cyan-400); }
.taim-rankpage__intro { color:rgba(255,255,255,.62); max-width:600px; margin:0 auto 36px; line-height:1.6; }
.taim-rankpage__list { border-top:1px solid rgba(255,255,255,.1); max-width:840px; margin:0 auto; }


/* Generic page template (privacy / terms / refund / cancellation / about …) */
.taim-page { padding:56px 0 84px; }
.taim-page__inner { max-width:820px; }
.taim-page__head { margin-bottom:26px; padding-bottom:22px; border-bottom:1px solid var(--border); }
.taim-page__title { font-size:40px; line-height:1.08; letter-spacing:-.02em; color:var(--ink-950); margin:10px 0 0; }
.taim-page__body p { font-size:17px; line-height:1.75; color:var(--ink-800); margin:0 0 20px; }
.taim-page__body h1 { font-size:30px; color:var(--ink-950); margin:36px 0 14px; letter-spacing:-.02em; }
.taim-page__body h2 { font-size:25px; color:var(--ink-950); margin:34px 0 12px; letter-spacing:-.01em; }
.taim-page__body h3 { font-size:20px; color:var(--ink-950); margin:28px 0 10px; }
.taim-page__body h4 { font-size:18px; color:var(--ink-950); margin:24px 0 10px; }
.taim-page__body h5 { font-size:16px; color:var(--ink-950); margin:22px 0 8px; }
.taim-page__body h6 { font-size:15px; color:var(--ink-700); margin:20px 0 8px; }
.taim-page__body ul, .taim-page__body ol { font-size:17px; line-height:1.75; color:var(--ink-800); margin:0 0 20px; padding-left:24px; }
.taim-page__body li { margin:0 0 8px; }
.taim-page__body a { color:var(--cyan-700); text-decoration:underline; text-underline-offset:2px; }
.taim-page__body a:hover { color:var(--cyan-600); }
.taim-page__body strong { color:var(--ink-950); }
.taim-page__body img { max-width:100%; height:auto; border-radius:var(--radius-md); margin:20px 0; }
.taim-page__body table { width:100%; border-collapse:collapse; margin:0 0 20px; font-size:15px; }
.taim-page__body th, .taim-page__body td { border:1px solid var(--border); padding:10px 12px; text-align:left; vertical-align:top; }
.taim-page__body blockquote { border-left:3px solid var(--cyan-500); padding:4px 0 4px 18px; margin:0 0 20px; color:var(--ink-700); }
.taim-page__body hr { border:none; border-top:1px solid var(--border); margin:28px 0; }
@media (max-width:600px){ .taim-page__title{ font-size:30px; } }
/* Editorial board (unlisted page) */
.taim-page__body .taim-board__lede { font-size:19px; line-height:1.65; color:var(--ink-900); }
.taim-board { display:grid; gap:18px; margin:0 0 28px; }
.taim-board__member { border:1px solid var(--border); border-radius:var(--radius-md); padding:20px 22px 6px; }
.taim-page__body .taim-board__member h3 { margin:0 0 4px; }
.taim-page__body .taim-board__role { font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--cyan-700); margin:0 0 12px; }
.taim-page__body .taim-board__member p, .taim-page__body .taim-board__member ul { font-size:16px; }
.taim-page__body .taim-board__email { font-size:14px; margin:-6px 0 12px; }
.taim-page__body .taim-board__facts th { width:34%; white-space:nowrap; }



/* Premium magazine library on the account page */
.taim-library { margin-top:48px; }
.taim-library__head { margin-bottom:26px; }
.taim-library__title { font-size:28px; color:var(--ink-950); margin:8px 0 6px; letter-spacing:-.02em; }
.taim-library__note { font-size:14.5px; color:var(--text-muted); margin:0; }
.taim-library__note a { color:var(--cyan-700); text-decoration:underline; }
.taim-library__feature { display:grid; grid-template-columns:190px 1fr; gap:34px; align-items:center; background:linear-gradient(135deg,var(--ink-950),#0b1a2e); border-radius:var(--radius-lg,16px); padding:32px; margin-bottom:44px; box-shadow:0 18px 50px rgba(9,20,38,.14); }
.taim-library__featcover { position:relative; display:block; border-radius:10px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.45); transition:transform var(--dur-base) var(--ease-out); }
.taim-library__featcover:hover { transform:translateY(-4px); }
.taim-library__featcover img { display:block; width:100%; height:auto; }
.taim-library__flag { position:absolute; top:10px; left:10px; background:var(--cyan-500); color:var(--black,#001018); font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
.taim-library__featmeta .taim-eyebrow { color:var(--cyan-400); }
.taim-library__featmeta h3 { font-size:26px; color:#fff; margin:8px 0 4px; letter-spacing:-.01em; }
.taim-library__featmonth { color:rgba(255,255,255,.62); margin:0 0 6px; font-size:15px; }
.taim-library__gridhead { margin:0 0 16px; }
.taim-library__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:22px; }
.taim-libcard { display:block; text-decoration:none; transition:transform var(--dur-base) var(--ease-out); }
.taim-libcard:hover { transform:translateY(-4px); }
.taim-libcard:hover .taim-libcard__cover { box-shadow:0 16px 40px rgba(9,20,38,.2); border-color:var(--border-cyan,rgba(0,176,240,.4)); }
.taim-libcard__cover { position:relative; display:block; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-md,0 10px 30px rgba(9,20,38,.1)); border:1px solid var(--border); aspect-ratio:3/4; background:var(--surface-2,#eef2f7); transition:box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.taim-libcard__cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.taim-libcard__lock { position:absolute; top:8px; right:8px; width:28px; height:28px; display:flex; align-items:center; justify-content:center; background:rgba(9,20,38,.72); color:#fff; border-radius:8px; }
.taim-libcard__title { display:block; margin-top:10px; font-size:14px; font-weight:600; color:var(--ink-900); }
.taim-libcard__vol { display:block; margin-top:2px; font-size:12px; color:var(--ink-500,#5b6b80); letter-spacing:.02em; }
.taim-library__featvol { color:rgba(255,255,255,.62); margin:0 0 22px; font-size:13px; letter-spacing:.04em; text-transform:uppercase; }
@media (max-width:680px){
	.taim-library__feature { grid-template-columns:1fr; text-align:center; }
	.taim-library__featcover { max-width:170px; margin:0 auto; }
	.taim-library__grid { grid-template-columns:repeat(auto-fill,minmax(116px,1fr)); gap:16px; }
}


/* Very small screens: the top promo bar already drives Subscribe, so free nav
   room by keeping only search + the account/sign-in button. */
@media (max-width:430px){
  .taim-nav__right > .taim-btn--ink { display:none; }
}


/* ---- Email verification (OTP + magic link) --------------------------- */
.taim-auth__verify { margin-top: 4px; }
.taim-auth__verify .taim-auth__title { margin-top: 10px; }
.taim-otp {
	text-align: center;
	letter-spacing: .5em;
	text-indent: .5em;
	font-family: var(--font-display, ui-monospace, monospace);
	font-size: 1.6rem;
	font-weight: 700;
}
.taim-verify-auto { text-align: center; }
.taim-verify-auto__msg { margin: 14px 0 4px; font-size: 1rem; color: var(--text-2, #3a4655); }
.taim-verify-auto__msg.is-error { color: var(--red-600, #c0392b); }
.taim-verify-auto__msg.is-ok { color: var(--green-600, #1a8f4c); }


/* ---- Hero: "Inside this issue" cover lines --------------------------- */
.taim-hero__inside { margin: 16px 0 22px; }
.taim-hero__inside-h {
	display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--text-3, #7a8a99); margin-bottom: 10px;
}
.taim-hero__lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-width: 560px; }
.taim-hero__lines li {
	display: flex; align-items: baseline; gap: 12px;
	padding-bottom: 8px; border-bottom: 1px solid var(--border, rgba(12,24,38,.08));
	font-size: 14px; line-height: 1.35;
}
.taim-hero__lines li:last-child { border-bottom: 0; padding-bottom: 0; }
.taim-hero__kicker {
	flex: none; width: 92px; font-size: 11px; font-weight: 800; letter-spacing: .03em;
	text-transform: uppercase; color: var(--brand, #0090d0);
}
.taim-hero__ln-title { color: var(--ink-800, #22303c); font-weight: 500; }
@media (max-width: 640px) {
	.taim-hero__kicker { width: 74px; font-size: 10px; }
	.taim-hero__lines li { font-size: 13px; gap: 9px; }
}


/* ---- Homepage: Browse by topic strip --------------------------------- */
.taim-topics {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
	max-width: 900px; margin: 22px auto 0;
}
.taim-topic {
	display: inline-flex; align-items: center; padding: 9px 18px;
	border-radius: 999px; text-decoration: none; font-size: 14px; font-weight: 600;
	background: var(--surface-1, #f3f7fb);
	border: 1px solid var(--border, rgba(12,24,38,.10));
	color: var(--ink-800, #22303c);
	transition: background .15s, border-color .15s, color .15s;
}
.taim-topic:hover { background: #fff; border-color: var(--brand, #0090d0); color: var(--brand, #0090d0); }
@media (max-width: 640px) {
	.taim-topics { gap: 8px; }
	.taim-topic { padding: 8px 14px; font-size: 13px; }
}

/* ---- AEO blocks: Key Takeaways + FAQ (SEO / AI answer-engine optimization) ---- */
.taim-aeo{ margin:30px 0; }
.taim-aeo__title{ font-family:var(--font-mono); font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--cyan-600); margin:0 0 14px; }
.taim-aeo--takeaways{ background:linear-gradient(180deg,rgba(var(--cyan-rgb),.06),rgba(var(--cyan-rgb),.015)); border:1px solid var(--border-cyan); border-left:3px solid var(--cyan-500); border-radius:12px; padding:20px 24px; }
.taim-aeo--takeaways ul{ margin:0; padding:0 0 0 18px; display:flex; flex-direction:column; gap:9px; }
.taim-aeo--takeaways li{ color:var(--text-body); font-size:16px; line-height:1.55; }
.taim-aeo--takeaways li::marker{ color:var(--cyan-600); }
.taim-aeo--faq{ margin-top:36px; border-top:1px solid var(--border-strong); padding-top:22px; }
.taim-aeo__qa{ padding:14px 0; border-bottom:1px solid var(--border); }
.taim-aeo__qa:last-child{ border-bottom:0; }
.taim-aeo__q{ font-size:18px; font-weight:700; color:var(--text-strong); margin:0 0 6px; line-height:1.35; }
.taim-aeo__a p{ margin:0; color:var(--text-body); font-size:16px; line-height:1.6; }

/* ---- GEO comparison cluster (best-ai-magazines + spokes) --------------
   Generated pages from inc/geo-pillar.php. The scored table is the asset
   answer engines quote, so it has to stay readable at every width — it
   scrolls inside its own container rather than squeezing the page. */
.taim-geo__updated{ font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-400); margin:0 0 18px; }
.taim-page__body .taim-geo__lede{ font-size:19px; line-height:1.65; color:var(--ink-900); }
.taim-geo__rubric li{ margin-bottom:10px; }
.taim-geo__method-note{ font-size:15px; color:var(--ink-600); border-left:3px solid var(--border); padding-left:14px; }

/* Scored comparison table */
.taim-geo__tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 8px; border:1px solid var(--border); border-radius:12px; }
.taim-page__body .taim-geo__table{ margin:0; min-width:720px; font-size:14px; border-collapse:separate; border-spacing:0; }
.taim-page__body .taim-geo__table th,
.taim-page__body .taim-geo__table td{ border:0; border-bottom:1px solid var(--border); padding:11px 12px; }
.taim-page__body .taim-geo__table thead th{ background:var(--surface-1,#f3f7fb); font-size:12px; line-height:1.3; letter-spacing:.02em; color:var(--ink-700); position:sticky; top:0; }
.taim-page__body .taim-geo__table tbody th{ font-weight:600; white-space:nowrap; }
.taim-page__body .taim-geo__table tbody tr:last-child th,
.taim-page__body .taim-geo__table tbody tr:last-child td{ border-bottom:0; }
.taim-geo__num{ text-align:center !important; width:78px; }
.taim-geo__row--self{ background:rgba(var(--cyan-rgb),.05); }
.taim-geo__score{ display:inline-block; min-width:26px; padding:2px 0; border-radius:6px; font-weight:700; font-size:13px; background:var(--surface-1,#f3f7fb); color:var(--ink-500); }
.taim-geo__score--3{ background:rgba(var(--cyan-rgb),.10); color:var(--cyan-800); }
.taim-geo__score--4{ background:rgba(var(--cyan-rgb),.18); color:var(--cyan-800); }
.taim-geo__score--5{ background:var(--cyan-500); color:#04222c; }
.taim-geo__tablenote{ font-size:13px !important; color:var(--ink-400) !important; }

/* "Best for X" call-outs */
.taim-geo__callouts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin:0 0 28px; }
.taim-geo__callout{ border:1px solid var(--border); border-radius:12px; padding:16px 18px; background:var(--surface-1,#f8fbfd); }
.taim-page__body .taim-geo__callout h3{ font-size:15px; margin:0 0 8px; letter-spacing:.01em; }
.taim-page__body .taim-geo__callout p{ font-size:14px; line-height:1.55; margin:0 0 6px; }
.taim-geo__callout-def{ color:var(--ink-400) !important; font-size:13px !important; }

/* One block per publication */
.taim-geo__entry{ padding:18px 0; border-top:1px solid var(--border); }
.taim-page__body .taim-geo__entry h3{ margin:0 0 8px; }
.taim-geo__entry--self{ background:rgba(var(--cyan-rgb),.05); border-radius:12px; padding:18px 20px; border-top:0; }
.taim-geo__type{ display:inline-block; margin-left:8px; font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan-700); vertical-align:middle; }
.taim-page__body .taim-geo__scoreline{ font-size:13px; color:var(--ink-400); margin:0; }
.taim-page__body .taim-geo__disclosure{ font-size:13px; color:var(--ink-500); margin:8px 0 0; }

/* Editorial pull-quotes */
.taim-geo__quotes{ display:grid; gap:14px; margin:0 0 28px; }
.taim-page__body .taim-geo__quote{ margin:0; border-left:3px solid var(--cyan-500); background:var(--surface-1,#f8fbfd); border-radius:0 12px 12px 0; padding:16px 20px; }
.taim-geo__quote-topic{ font-family:var(--font-mono); font-size:11px !important; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan-700) !important; margin:0 0 6px !important; }
.taim-page__body .taim-geo__quote p{ font-size:16px; margin:0; color:var(--ink-800); }
.taim-page__body .taim-geo__quote cite{ display:block; margin-top:8px; font-size:12px; font-style:normal; color:var(--ink-400); }

.taim-geo__cluster li{ margin-bottom:8px; }
.taim-page__body .taim-geo__cite{ margin-top:32px; padding-top:16px; border-top:1px solid var(--border); font-size:12px; color:var(--ink-400); word-break:break-word; }

@media (max-width:600px){
	.taim-page__body .taim-geo__lede{ font-size:17px; }
	.taim-geo__callouts{ grid-template-columns:1fr; }
}
.taim-topic--feature{ background:rgba(var(--cyan-rgb),.10); border-color:var(--cyan-500); color:var(--cyan-800); font-weight:700; }
.taim-topic--feature:hover{ background:var(--cyan-500); border-color:var(--cyan-500); color:#04222c; }

/* ---- End-of-article conversion CTA (template-parts/article-cta.php) ---- */
.taim-artcta { background:linear-gradient(160deg,var(--ink-950),var(--ink-850)); border-top:1px solid var(--border); }
.taim-artcta__inner { padding-top:56px; padding-bottom:56px; }
.taim-artcta__h { font-size:32px; line-height:1.14; letter-spacing:-.02em; color:#fff; margin:16px 0 0; max-width:620px; }
.taim-artcta__sub { font-size:17px; line-height:1.5; color:rgba(255,255,255,.72); margin:14px 0 0; max-width:520px; }
.taim-artcta__cta { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:26px; }
.taim-artcta__fine { font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:rgba(255,255,255,.5); }
@media (max-width:640px){
  .taim-artcta__inner { padding-top:44px; padding-bottom:44px; }
  .taim-artcta__h { font-size:26px; }
  .taim-artcta__cta { gap:12px; }
}

/* ---- Mid-article conversion CTA (compact card, matches .taim-aeo boxes) ---- */
.taim-artcta--mid { display:block; margin:34px 0; padding:22px 26px; border:1px solid var(--border-cyan); border-left:3px solid var(--cyan-500); border-radius:12px; background:linear-gradient(180deg,rgba(var(--cyan-rgb),.06),rgba(var(--cyan-rgb),.015)); }
.taim-artcta--mid .taim-artcta__kicker { display:block; font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-600); }
/* Override the dark-band headline (white/32px) for the light mid card. */
.taim-artcta--mid .taim-artcta__h { font-size:21px; line-height:1.28; letter-spacing:-.01em; color:var(--ink-950); margin:10px 0 0; max-width:none; }
.taim-artcta--mid .taim-artcta__sub { font-size:15px; line-height:1.5; color:var(--text-muted); margin:8px 0 0; max-width:none; }
.taim-artcta--mid .taim-btn { margin-top:18px; height:46px; padding:0 22px; font-size:14.5px; }
@media (max-width:640px){
  .taim-artcta--mid { padding:20px; }
  .taim-artcta--mid .taim-artcta__h { font-size:19px; }
  .taim-artcta--mid .taim-btn { width:100%; }
}
/* Article-body <a> styles must not bleed into the mid CTA button. */
.taim-artcta--mid .taim-btn, .taim-artcta--mid .taim-btn:hover { color:#fff; text-decoration:none; }


/* ============================================================
   ARTICLE SPONSOR RAIL  (added 2026-08-16)
   Two-column article region: body column + a 300px right-hand
   rail starting just below the featured image. Appended at the
   end of the file so these rules win over the .taim-article
   width/padding set at lines ~211 and the 640px breakpoint.
   Note: .theme-light is never applied to <body>, so --surface /
   --border / --text-* still resolve dark here. Use --ink-* like
   every other article component does.
   ============================================================ */

.taim-art-layout {
	max-width:1240px;
	margin:0 auto;
	padding:0 40px;
	display:grid;
	/* minmax(0,1fr), not 1fr: grid items default to min-width:auto and a wide
	   table or <pre> in the body would otherwise blow the column out. Same
	   guard as .taim-issue__body { min-width:0 }. */
	grid-template-columns:minmax(0,1fr) 280px;  /* was 360px: the tall app unit made the rail ~1900px */
	gap:56px;
	align-items:start;
}

/* Hand width control to the grid; .taim-article centres itself otherwise. */
.taim-art-layout > .taim-article {
	max-width:none;
	margin:0;
	padding-left:0;
	padding-right:0;
	min-width:0;
}

/* Featured image widened 1080 -> 1240 so its right edge lines up with the rail. */
.taim-art-feature { max-width:1240px; }

.taim-adrail {
	padding-top:36px;           /* match .taim-article's top padding */
	/* Scrolls with the article body rather than sticking to the viewport. */
}

.taim-adrail__label {
	display:block;
	font-family:var(--font-mono);
	font-size:10px;
	letter-spacing:.12em;
	text-transform:uppercase;
	color:var(--ink-400);
	margin:0 0 8px;
}

.taim-ad { display:block; text-decoration:none; }

.taim-ad img {
	display:block;
	width:100%;
	height:auto;
	border-radius:var(--radius-md, 8px);
	border:1px solid rgba(9,20,38,.10);
	box-shadow:0 2px 10px rgba(9,20,38,.06);
	transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}

.taim-ad:hover img {
	transform:translateY(-2px);
	box-shadow:0 8px 24px rgba(9,20,38,.12);
}

/* Sponsor unit, then the first-party app unit, stacked in the one rail. */
.taim-adrail__unit + .taim-adrail__unit { margin-top:28px; }
.taim-ad--app img { border-color:rgba(9,20,38,.22); }  /* hairline tuned for white cards vanishes on dark art */

@media (prefers-reduced-motion:reduce) {
	.taim-ad img,
	.taim-ad:hover img { transition:none; transform:none; }
}

/* Below 1000px there is no room beside the text: drop the rail and restore
   the original single-column article. */
@media (max-width:1000px) {
	.taim-art-layout {
		display:block;
		max-width:840px;
		padding:0;
	}
	.taim-art-layout > .taim-article {
		max-width:840px;
		margin:0 auto;
		padding-left:40px;
		padding-right:40px;
	}
	.taim-adrail { display:none; }
	.taim-art-feature { max-width:1080px; }
}

@media (max-width:640px) {
	.taim-art-layout > .taim-article {
		padding-left:20px;
		padding-right:20px;
	}
}

/* =========================================================================
   APP PAGES — /app smart link (page-app.php) and the post-registration
   "Get the app" screen (page-get-the-app.php). Store buttons come from
   template-parts/store-badges.php. Background matches .taim-auth-page.
   ========================================================================= */
.taim-app-page {
	background:
		radial-gradient(120% 90% at 85% 8%, rgba(0,176,240,.14), rgba(0,176,240,0) 55%),
		linear-gradient(180deg,#F4F8FC,#FFFFFF);
	border-bottom:1px solid var(--border);
	padding:72px 0 96px;
	min-height:60vh;
}

.taim-appx {
	display:grid;
	grid-template-columns:minmax(0,1fr) 340px;
	gap:64px;
	align-items:center;
	max-width:940px;
	margin:0 auto;
}
/* Post-registration layout mirrors the reference: QR left, copy right. */
.taim-appx--promo { grid-template-columns:340px minmax(0,1fr); }

.taim-appx__title {
	font-family:var(--font-sans);
	font-size:44px;
	line-height:1.05;
	letter-spacing:-.025em;
	color:var(--ink-950);
	margin:16px 0 14px;
}
.taim-appx__sub { font-size:18px; line-height:1.55; color:var(--text-muted); margin:0 0 22px; max-width:520px; }

.taim-appx__trial {
	margin:0 0 24px;
	padding:12px 16px;
	border-left:3px solid var(--cyan-500);
	background:rgba(0,176,240,.07);
	border-radius:0 var(--radius-md) var(--radius-md) 0;
	font-size:15px;
	line-height:1.5;
	color:var(--ink-700);
	max-width:520px;
}

.taim-appx__next { margin-top:8px; }

.taim-appx__list { list-style:none; padding:0; margin:28px 0 0; max-width:520px; }
.taim-appx__list li { position:relative; padding:0 0 12px 22px; font-size:15px; line-height:1.5; color:var(--text-body); }
.taim-appx__list li::before { content:""; position:absolute; left:0; top:.6em; width:8px; height:8px; border-radius:2px; background:var(--cyan-500); }
.taim-appx__list strong { color:var(--ink-950); }

.taim-appx__fine { font-size:13px; color:var(--text-muted); margin:12px 0 0; }

.taim-appx__qrbox {
	background:#fff;
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-md, 0 10px 40px rgba(9,20,38,.08));
	padding:36px 32px 28px;
	text-align:center;
}
.taim-appx__qrbox img { display:block; width:180px; height:180px; margin:0 auto; image-rendering:pixelated; }
.taim-appx__qrbox p { margin:20px 0 0; font-size:14px; line-height:1.5; color:var(--text-muted); }

/* ---- Store buttons ---- */
.taim-storebtns { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0 0 20px; }

.taim-storebtn {
	display:inline-flex;
	align-items:center;
	gap:10px;
	height:52px;
	padding:0 18px 0 14px;
	background:var(--black, #000);
	color:#fff;
	border:1px solid rgba(255,255,255,.18);
	border-radius:var(--radius-md);
	text-decoration:none;
	transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.taim-storebtn:hover { color:#fff; box-shadow:0 8px 24px rgba(9,20,38,.22); }
.taim-storebtn:active { transform:scale(.98); }
.taim-storebtn:focus-visible { outline:2px solid var(--cyan-500); outline-offset:2px; }
.taim-storebtn__icon { flex:0 0 auto; }
.taim-storebtn__text { display:flex; flex-direction:column; font-family:var(--font-sans); font-size:17px; font-weight:700; line-height:1.1; letter-spacing:-.01em; }
.taim-storebtn__text small { font-size:10.5px; font-weight:500; letter-spacing:.02em; opacity:.85; }

.taim-storebtn-note { margin:0; font-size:13.5px; line-height:1.45; color:var(--text-muted); max-width:260px; }

@media (prefers-reduced-motion:reduce) {
	.taim-storebtn, .taim-storebtn:active { transition:none; transform:none; }
}

/* ---- Home: "Now on the app" band (template-parts/home-app-promo.php) ----
   Compact, sized like .taim-stats. Always dark whatever the page theme, like
   .taim-promo, with the promo artwork's cyan/magenta as accents. */
.taim-apphome {
	position:relative;
	overflow:hidden;
	background:
		radial-gradient(420px 220px at 8% 0%, rgba(0,205,255,.16), transparent 70%),
		radial-gradient(460px 240px at 100% 100%, rgba(255,61,139,.18), transparent 70%),
		#05070A;
	color:#fff;
}
.taim-apphome__grid { display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:center; padding-top:44px; padding-bottom:44px; }
.taim-apphome__offer {
	display:inline-block;
	padding:6px 16px 6px 12px;
	background:linear-gradient(100deg, #FF1F5A, #FF3D8B 45%, #8B5CF6);
	clip-path:polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
	font-family:var(--font-mono);
	font-size:11.5px;
	font-weight:700;
	letter-spacing:.12em;
	text-transform:uppercase;
}
.taim-apphome h2 { font-family:var(--font-display); font-size:42px; line-height:1.02; margin:14px 0 0; color:#fff; text-transform:uppercase; }
.taim-apphome h2 span { color:var(--cyan-500); }
.taim-apphome h2 i { font-style:normal; color:#FF3D8B; }

.taim-apphome__get { display:flex; align-items:center; gap:24px; }
.taim-apphome__qr { flex:0 0 auto; padding:7px; background:#fff; border-radius:10px; }
.taim-apphome__qr img { display:block; width:92px; height:92px; image-rendering:pixelated; }
.taim-apphome__body p { margin:0 0 14px; max-width:520px; font-size:15.5px; line-height:1.5; color:var(--ink-200); }
.taim-apphome__scan { color:#fff; font-weight:600; }
.taim-apphome .taim-storebtns { margin:0; }
.taim-apphome .taim-storebtn { height:46px; background:#000; border-color:rgba(255,255,255,.28); }
.taim-apphome .taim-storebtn:hover { border-color:var(--cyan-500); box-shadow:0 8px 24px rgba(0,205,255,.18); }
.taim-apphome .taim-storebtn__text { font-size:15px; }
.taim-apphome .taim-storebtn-note { color:var(--ink-300); }

@media (max-width:1000px) {
	.taim-apphome__grid { grid-template-columns:1fr; gap:22px; }
}
/* Phones: no QR (it's the device you'd scan with); full-width store buttons. */
@media (max-width:640px) {
	.taim-apphome__grid { padding-top:36px; padding-bottom:36px; }
	.taim-apphome h2 { font-size:32px; }
	.taim-apphome__qr { display:none; }
	.taim-apphome .taim-storebtns { flex-direction:column; align-items:stretch; }
	.taim-apphome .taim-storebtn { justify-content:center; }
}

/* /app: the QR is pointless on the phone you'd scan it with. */
@media (max-width:780px) {
	.taim-appx { grid-template-columns:minmax(0,1fr); gap:0; }
	.taim-appx__qr { display:none; }
}

/* Post-registration screen: single column below 860px, QR hidden, store
   buttons become full-width tap targets above "Start reading here". Kept
   visible on desktop on purpose — they show which platforms exist. */
@media (max-width:860px) {
	.taim-appx--promo { grid-template-columns:minmax(0,1fr); gap:0; }
	.taim-appx--promo .taim-appx__qr { display:none; }
	.taim-appx--promo .taim-storebtns { flex-direction:column; align-items:stretch; }
	.taim-appx--promo .taim-storebtn { justify-content:center; }
	.taim-appx--promo .taim-storebtn-note { max-width:none; text-align:center; }
	.taim-appx--promo .taim-appx__next { width:100%; }
}

@media (max-width:640px) {
	.taim-app-page { padding:44px 0 60px; }
	.taim-app-page .taim-mid { padding-left:20px; padding-right:20px; }
	.taim-appx__title { font-size:32px; }
	.taim-appx__sub { font-size:16px; }
}

/* ==========================================================================
   2026-09-30 — reader engagement + author profiles
   ========================================================================== */

/* Reading progress (single posts). Sits above the sticky nav (z 100). */
.taim-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:101; pointer-events:none; }
.taim-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--cyan-600),var(--cyan-400)); transform:scaleX(0); transform-origin:left center; will-change:transform; }

/* Breadcrumbs (Rank Math markup: nav.rank-math-breadcrumb > p) */
.taim-crumbs .rank-math-breadcrumb p { margin:0; font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); line-height:1.6; }
.taim-crumbs .rank-math-breadcrumb a { color:var(--cyan-600); text-decoration:none; }
.taim-crumbs .rank-math-breadcrumb a:hover { color:var(--cyan-700); text-decoration:underline; }
.taim-crumbs .rank-math-breadcrumb .separator { margin:0 8px; color:var(--ink-300); }
.taim-crumbs .rank-math-breadcrumb .last { color:var(--text-muted); display:inline-block; max-width:48ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }

/* Byline + author box links */
.taim-art-meta__name a { color:inherit; text-decoration:none; }
.taim-art-meta__name a:hover { color:var(--cyan-600); }
.taim-art-meta__in { display:inline-flex; margin-left:6px; color:var(--cyan-600) !important; vertical-align:-1px; }
.taim-avatar--img { object-fit:cover; background:var(--ink-100); flex:0 0 auto; }
.taim-authorbox { align-items:flex-start; }
.taim-authorbox .taim-avatar, .taim-art-meta__author .taim-avatar { flex:0 0 auto; }
.taim-authorbox .n a { color:inherit; text-decoration:none; }
.taim-authorbox .n a:hover { color:var(--cyan-600); }
.taim-authorlinks { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
.taim-authorlinks a { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--text-body); text-decoration:none; }
.taim-authorlinks a:hover { color:var(--cyan-600); }
.taim-authorlinks svg { color:var(--cyan-600); }
.taim-authorlinks__all { color:var(--cyan-600) !important; }

/* Up next */
.taim-upnext { padding:48px 0 8px; }
.taim-upnext__card { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:0; background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; text-decoration:none; box-shadow:var(--shadow-sm); transition:box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.taim-upnext__card:hover { box-shadow:var(--shadow-md); border-color:var(--border-cyan); }
.taim-upnext__media { position:relative; min-height:240px; background:var(--ink-100); }
.taim-upnext__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.taim-upnext__body { padding:30px 32px; display:flex; flex-direction:column; align-items:flex-start; }
.taim-upnext__body h2 { font-size:26px; line-height:1.15; letter-spacing:-.02em; color:var(--ink-950); margin:12px 0 10px; }
.taim-upnext__body p { font-size:15px; line-height:1.55; color:var(--text-muted); margin:0 0 12px; }
.taim-upnext__meta { font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--text-faint); margin-bottom:18px; }
.taim-upnext__cta { margin-top:auto; pointer-events:none; }

/* Author profile pages (author.php, single-magazine_author.php) */
.taim-authorpage__hero { background:radial-gradient(120% 90% at 85% 8%, rgba(0,176,240,.16), rgba(0,176,240,0) 55%), linear-gradient(180deg,#F4F8FC,#FFFFFF); border-bottom:1px solid var(--border); padding:48px 0 40px; }
.taim-authorpage__head { display:flex; gap:24px; align-items:flex-start; }
.taim-authorpage__head .taim-avatar { width:96px; height:96px; font-size:32px; flex:0 0 auto; }
.taim-authorpage__head h1 { font-size:40px; line-height:1.05; letter-spacing:-.03em; margin:10px 0 6px; color:var(--ink-950); }
.taim-authorpage__role { font-size:15px; font-weight:600; color:var(--text-body); margin:0; }
.taim-authorpage__bio { font-size:16px; line-height:1.65; color:var(--text-muted); margin:14px 0 0; max-width:70ch; }
.taim-authorpage__count { font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); margin-top:14px; }

/* Mobile app banner (shown by main.js on phones only) */
.taim-appbar { position:fixed; left:0; right:0; bottom:0; z-index:99; display:flex; align-items:center; gap:12px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:#070b12; color:#fff; box-shadow:0 -6px 24px rgba(0,0,0,.25); }
.taim-appbar[hidden] { display:none; }
.taim-appbar__icon { width:40px; height:40px; border-radius:10px; flex:0 0 auto; background:#141c28; object-fit:contain; padding:6px; box-sizing:border-box; }
.taim-appbar__txt { flex:1 1 auto; min-width:0; font-size:13px; line-height:1.3; }
.taim-appbar__txt b { display:block; font-size:14px; }
.taim-appbar__txt span { color:var(--cyan-300); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12px; }
.taim-appbar__cta { flex:0 0 auto; background:var(--cyan-500); color:#000; font-weight:700; font-size:13px; padding:9px 14px; border-radius:999px; text-decoration:none; }
.taim-appbar__close { flex:0 0 auto; background:none; border:0; color:rgba(255,255,255,.7); font-size:22px; line-height:1; padding:4px 6px; cursor:pointer; }
body.taim-has-appbar { padding-bottom:64px; }

@media (max-width:760px) {
  .taim-upnext__card { grid-template-columns:1fr; }
  .taim-upnext__media { min-height:0; aspect-ratio:16/9; }
  .taim-upnext__body { padding:22px 20px; }
  .taim-upnext__body h2 { font-size:22px; }
  .taim-authorpage__head { flex-direction:column; gap:14px; }
  .taim-authorpage__head h1 { font-size:30px; }
  .taim-crumbs .rank-math-breadcrumb .last { max-width:24ch; }
}
@media (prefers-reduced-motion:reduce) {
  .taim-progress { display:none; }
}

/* ---- Pay on the pricing page (2026-11-07) ---------------------------- */
.taim-plan__pay { display:flex; flex-direction:column; gap:10px; }
.taim-plan__paypal { min-height:45px; }
.taim-plan__pay .taim-auth__msg { margin:0; min-height:0; text-align:center; font-size:13px; }
.taim-plan__pay .taim-auth__msg:empty { display:none; }
.taim-checkout__pay .taim-auth__msg:empty { display:none; }
.taim-checkout__pay { display:flex; flex-direction:column; gap:10px; }
.taim-artcta__alt { margin:10px 0 0; font-size:14px; }
.taim-artcta__alt a { color:var(--text-muted); text-decoration:underline; text-underline-offset:3px; }
.taim-artcta__alt a:hover { color:var(--ink-950); }

/* ---- Promo-bar "Get the app" QR dialog (header.php, main.js) ---- */
.taim-appdlg { width:min(380px, calc(100vw - 32px)); padding:32px 28px 24px; border:none; border-radius:var(--radius-lg, 16px); background:#fff; color:var(--text-strong); text-align:center; box-shadow:0 24px 64px rgba(5,7,10,.35); }
.taim-appdlg::backdrop { background:rgba(5,7,10,.62); backdrop-filter:blur(2px); }
.taim-appdlg__close { position:absolute; top:12px; right:12px; display:flex; padding:6px; background:none; border:none; color:var(--text-muted); cursor:pointer; border-radius:var(--radius-sm); }
.taim-appdlg .taim-appdlg__close, .taim-appdlg .taim-appdlg__close:hover, .taim-appdlg .taim-appdlg__close:focus { background:none; border:none; box-shadow:none; color:var(--text-muted); }
.taim-appdlg .taim-appdlg__close:hover { color:var(--cyan-600); }
.taim-appdlg .taim-appdlg__close:focus-visible { outline:2px solid var(--cyan-500); outline-offset:2px; }
.taim-appdlg__title { margin:8px 0 8px; font-size:24px; line-height:1.2; }
.taim-appdlg__sub { margin:0 0 20px; font-size:14px; line-height:1.5; color:var(--text-muted); }
.taim-appdlg__qr { display:block; width:200px; height:200px; margin:0 auto 22px; padding:10px; background:#fff; border:1px solid var(--border); border-radius:12px; image-rendering:pixelated; }
.taim-appdlg .taim-storebtns { justify-content:center; margin:0; }
