:root {
  --ink: #231f20;
  --paper: #fffefa;
  --sheet: #fff;
  --soft: #f5f2ea;
  --muted: #524f4b;
  --yellow: #ffe600;
  --line: #242021;
  --shadow: 4px 4px 0 var(--line);
  --display: 'Black Han Sans', 'Arial Black', sans-serif;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --paper: #16171a;
  --sheet: #242528;
  --soft: #303136;
  --ink: #f5f3ee;
  --line: #a5a4a0;
  --muted: #c7c6c1;
  color-scheme: dark;
}
* { box-sizing: border-box }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.55 'Nanum Gothic', system-ui, sans-serif; overflow-wrap: anywhere }
button, input { font: inherit }
a { color: inherit; text-decoration: none }
button, summary { cursor: pointer }
button { color: inherit }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #2376d9; outline-offset: 3px }
img { max-width: 100%; object-fit: cover }
h1, h2, h3, p, ul, ol, dl { margin: 0 }
ul, ol { padding: 0; list-style: none }
small { color: var(--muted) }
.wrap { width: min(100% - 48px, 69rem); margin-inline: auto }
.skip { position: fixed; top: -10em; left: 1em; background: var(--sheet); padding: .7em; z-index: 20 }
.skip:focus { top: 0 }
.top { position: sticky; inset-block-start: 0; z-index: 8; background: var(--sheet); border-bottom: 2px solid var(--line) }
.top-main, .major, .tools, .auth, .foot nav { display: flex; align-items: center }
.top-main { min-height: 68px; gap: 28px }
.brand { flex: none; display: inline-flex; align-items: center; min-height: 44px }
.brand img { width: 107px; height: 27px; object-fit: contain }
.icon { display: inline-block; vertical-align: middle; width: 20px; height: 20px; flex: none }
.on-dark, [data-theme="dark"] .on-light { display: none }
[data-theme="dark"] .on-dark { display: block }
.major { gap: clamp(9px, 1.8vw, 25px); font-weight: 800 }
.major a, .tools a, .tools button, .auth a, .auth summary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px }
.major a:hover, .foot a:hover, .section-heading a:hover, .right a:hover, .more:hover { text-decoration: underline }
.tools { margin-left: auto; gap: 3px }
.tools a, .tools button { min-width: 42px; background: transparent; border: 0; font-weight: 800 }
.tools a:first-child, .tools button { font-size: 1.4rem }
.auth { gap: 9px; font-size: .85rem; font-weight: 800; white-space: nowrap }
.auth > a { border: 2px solid var(--line); border-radius: 999px; padding-inline: 14px; min-height: 36px }
.auth > a:last-child, .button, .subscribe button { padding: .55rem 1rem; border: 2px solid var(--line); background: var(--yellow); color: #211e19; font-weight: 800; box-shadow: 2px 2px 0 var(--line) }
.menu { position: relative }
.menu > div { position: absolute; z-index: 3; right: 0; display: grid; min-width: 165px; gap: 3px; padding: 12px; border: 2px solid var(--line); background: var(--sheet); box-shadow: var(--shadow) }
.menu button { background: var(--soft); width: 100%; min-height: 42px; border: 1px solid var(--line) }
.ticker { display: flex; align-items: stretch; overflow: hidden; color: white; background: #201f20; border-bottom: 2px solid #201f20; font-size: .8rem; font-weight: 800 }
.ticker > strong { display: grid; place-items: center; flex: none; padding: .6rem 1.2rem; color: white; background: #df101c }
.ticker > div { overflow: hidden; align-content: center; min-width: 0 }
.ticker ul { display: flex; align-items: center; width: max-content; animation: headlines 240s linear infinite }
.ticker:hover ul, .ticker:focus-within ul { animation-play-state: paused }
.ticker li { padding-left: 1.25rem; white-space: nowrap }
.ticker span { color: #ccc; font-size: .72rem }
.ticker b { color: var(--yellow); padding-left: .8rem }
@keyframes headlines { to { transform: translateX(-50%) } }
.cover { background-color: #ffe600; color: #211e19; background-image: radial-gradient(#231f2029 1.1px, transparent 1.8px); background-size: 9px 9px; border-bottom: 3px solid var(--line) }
.cover .wrap { padding-block: 32px 48px }
.issue { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; padding-bottom: 12px; border-bottom: 3px solid #231f20; font-weight: bold; font-size: 1rem; margin-bottom: 36px }
.issue b { font-size: .875rem }
.bubble { border: 2px solid #211e19; background: #fff; padding: .2rem .65rem }
.cover-grid, .features { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: clamp(20px, 3vw, 44px) }
.cover-grid { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: 40px }
.cover-grid > *, .features > * { min-width: 0 }
h1, h2, .display, .feature strong, .briefing strong { font-family: var(--display); font-weight: 400; line-height: 1.15 }
h1 { font-size: clamp(2.75rem, 5.65vw, 4.5rem); line-height: 1.08; letter-spacing: -.035em; word-break: keep-all; text-wrap: balance }
.intro { max-width: 28rem; margin: 1rem 0 1.75rem; font-size: 1.125rem; line-height: 1.6; font-weight: 700 }
.cover nav h2 { font-size: 1.375rem; margin-bottom: 12px }
.cover nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px }
.cover nav li:last-child { grid-column: 1 / -1 }
.cover nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 6px; height: 100%; background: #fff; border: 2px solid #211e19; box-shadow: 3px 3px #211e19; min-height: 64px }
.cover nav i { display:grid; place-items:center; width:36px; height:36px; flex:none; border:2px solid #231f20; border-radius:50%; background:#ffe600 }
.cover nav i .icon { width:17px; height:17px }
.cover nav b, small, .copy > *, .feature-copy > * { display: block }
.cover nav small { color: #514c45; font-size: .8125rem; font-weight:700; line-height: 1.4 }
.lead { position: relative; padding-top: 48px }
.bubble { display: inline-block; position: absolute; inset: 0 auto auto 14px; z-index: 1; padding: 8px 14px; border-radius: 17px; font: 700 1.44rem 'Gaegu', sans-serif }
.story, .panel, .formula, .rank-list ol { background: var(--sheet); color: var(--ink); border: 2px solid var(--line); box-shadow: var(--shadow) }
.bubble::after { content: ""; position: absolute; bottom: -8px; left: 25px; width: 13px; height: 13px; border: solid #211e19; border-width: 0 2px 2px 0; background: white; transform: skewY(-26deg) rotate(45deg) }
.story, .panel { border-radius: 6px; overflow: hidden }
.story-cta { font-weight: 800; float: right }
.story a { display: flex; flex-direction: column; height: 100% }
.art { display: grid; overflow: hidden; aspect-ratio: 16/9; background: var(--soft); place-items: center; border-bottom: 2px solid var(--line) }
.art img { height: 100%; width: 100% }
.image-fallback { display: grid; place-items: center; height: 100%; width: 100%; min-height: 2rem; color: #242124; background: #ffe600; font: 2.5rem var(--display) }
.copy, .feature-copy { min-width: 0; padding: clamp(12px, 2vw, 20px) }
.chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 7px }
.chips b, .tier { display: inline-block; padding: 1px 6px; font-size: .7rem; border: 2px solid var(--line); border-radius: 20px; background: var(--soft) }
.chips b:first-child { color: #211e19; background: #00b4db }
.lead .display { font-size: clamp(1.35rem, 2.4vw, 2rem) }
.summary, .feature-copy > span, .briefing .copy > span { font-size: .9rem; margin-block: 8px }
.story small { margin-top: 8px; font-size: .75rem }
.content { display: grid; gap: clamp(30px, 4vw, 58px); padding-block: 38px 58px }
.section-heading { display: flex; align-items: end; gap: 12px; justify-content: space-between; margin-bottom: 12px }
h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); letter-spacing: -.035em }
.section-heading p { color: var(--muted); font-size: .89rem; margin-top: 3px }
.section-heading > a, .right a, .more { font-weight: 800; font-size: .85rem }
.section-heading > a { flex: none }
.feature, .briefing { display: flex; align-items: center; overflow: hidden }
.feature > img, .briefing > img { width: 40%; max-height: 280px; object-fit: contain; background: var(--soft) }
.feature strong, .briefing strong { font-size: clamp(1.2rem, 2vw, 1.6rem); margin-block: .3rem }
.feature ol { list-style: decimal; padding-left: 1.2rem; font-size: .85rem }
.feature-copy > b, .briefing .copy > b { margin-top: 12px; font-size: .83rem }
.recipes { padding: 9px 14px }
.recipes li + li { border-top: 1px solid var(--line) }
.recipes li a { display: flex; align-items: center; gap: .75rem; padding-block: .45rem }
.recipes img, .recipes .image-fallback { width: 63px; height: 54px; flex: none }
.recipes small { font-size: .73rem }
.more { display: block; padding: 9px 0 }
.briefing > img { width: clamp(130px, 29%, 290px); max-height: 190px }
.right { margin-top: 8px; text-align: right }
.news-desk, .updates { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(185px,100%),1fr)); gap: 12px }
.news-desk .display { font-size: 1.18rem }
.news-desk .summary { font-size: .8rem }
.updates a { display: grid; align-content: start; gap: 8px; padding: 14px }
.updates b { display: flex; gap: 6px; align-items: center; font-size: .78rem }
.updates img { width: 20px; height: 20px; object-fit: contain }
.rank-tabs, .formula dl, .frequency { display: flex; gap: 8px }
.rank-tabs a { padding: 9px 16px; border: 2px solid var(--line); background: var(--sheet) }
.rank-tabs a:first-child { background: var(--yellow); color: #211e19 }
.rank-tabs a:first-child small { color: #544b25 }
.formula { padding: 12px 16px; margin-top: 12px }
summary { font-weight: 800 }
.formula p { margin: .75em 0 }
.formula dl { flex-wrap: wrap; gap: 1.4rem; font-size: .83rem }
.formula dd { font-weight: 800; margin: 0 }
.formula a, .subscribe p a, .subscribe .consent a { text-decoration: underline }
.rank-list ol { margin: 12px 0 24px }
.rank-list li { display: grid; grid-template-columns: 2em minmax(0,1fr) 12% 3.5em minmax(70px,auto); gap: 10px; align-items: center; padding: 9px 14px }
.rank-list li + li { border-top: 1px solid var(--line) }
.place { text-align: center; font-family: var(--display); font-size: 1.3rem }
.rank-entry { display: flex; align-items: center; gap: 10px }
.rank-entry img, .rank-entry .image-fallback { width: 36px; height: 36px; min-width: 36px; border: 1px solid var(--line); object-fit: contain }
.rank-entry small, .go { font-size: .75rem }
.go { display: grid; gap: 3px; text-align: end }
meter { width: 100% }
.center { text-align: center }
.account { max-width: 48rem; padding-block: 40px 80px }
.account h1 { font-size: clamp(2.5rem, 5vw, 3.25rem) }
.account h2 { font-size: 1.25rem; margin-bottom: 8px }
.account .panel { margin-top: 24px; padding: clamp(16px, 3vw, 24px) }
.account dl { margin-block: 12px }
.account dl div { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-block: 7px; border-bottom: 1px dashed var(--line) }
.account dd { margin: 0; font-weight: 800 }
.account section a { text-decoration: underline; font-weight: 700 }
.account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 12px }
.account-actions button { min-height: 42px; padding: 6px 12px; background: var(--sheet); border: 2px solid var(--line); border-radius: 20px }
.auth-page { max-width: 29rem; padding-block: 40px 80px }
.auth-page h1 { font-size: 2.7rem }
.auth-page > p, .auth-page .panel { margin-top: 16px }
.auth-page .panel { padding: 22px; display: grid; gap: 14px }
.auth-page nav { display: flex; gap: 18px }
.auth-page a { text-decoration: underline }
.auth-page [aria-current=page] { font-weight: 800; text-decoration-thickness: 3px }
.auth-page form, .auth-page label { display: grid; gap: 6px }
.auth-page form { gap: 12px }
.auth-page input, .auth-page button { min-height: 44px; padding: 8px 12px; border: 2px solid var(--line); border-radius: 5px; background: var(--sheet); color: var(--ink) }
.auth-page form button { font-weight: 800; background: var(--yellow); color: #231f20 }
.auth-page [role=status]:empty { display: none }
.admin-links { display:flex; flex-wrap:wrap; gap:8px 16px; margin-block:12px }
.admin-links a { display:inline-flex; align-items:center; min-height:36px; text-decoration:underline }
.admin-links [aria-current=page] { font-weight:800; text-decoration-thickness:3px }
.admin-page .visit-list { list-style:decimal; padding-inline-start:2em }
.visit-list li { padding-block:7px; border-bottom:1px dashed var(--line) }
.visit-list b { float:right }
.ad-form { display:grid; gap:12px; padding-block:12px }
.ad-form input:not([type=checkbox]), .ad-form button { display:block; min-height:44px; padding:8px; font:inherit; color:var(--ink); background:var(--sheet); border:2px solid var(--line) }
.ad-form button { justify-self:start; font-weight:800 }
.admin-page pre { white-space:pre-wrap; overflow-wrap:anywhere }
.agent-chat { display:flex; flex-direction:column; height:100dvh; min-height:260px; color:#f8fafc; background:#0f172a; font:16px/1.5 system-ui,sans-serif }
.agent-chat > header, .agent-chat form { display:flex; align-items:center; gap:12px; padding:12px 20px; border:solid #334155; border-width:0 0 1px }
.agent-chat > header > span { font-size:1.6rem }
.agent-chat h1 { font:700 1.1rem system-ui,sans-serif; letter-spacing:0 }
.agent-chat small,.agent-chat [data-chat-empty] {color:#a9b7c9}
.agent-chat > header a { margin-left:auto }
.agent-chat .chat-log { flex:1; min-height:0; overflow-y:auto; padding:18px; display:flex; flex-direction:column; align-items:flex-start; gap:10px }
.chat-log [data-chat-empty] { align-self:center; margin:auto }
.chat-log .from-user,.chat-log .from-agent { max-width:80%; white-space:pre-wrap; border-radius:18px; padding:10px 14px; background:#1e293b }
.chat-log .from-user { align-self:flex-end; background:#06b6d4; color:#0f172a }
.agent-chat form { border-width:1px 0 0; padding-bottom:max(12px,env(safe-area-inset-bottom)) }
.agent-chat form label { position:absolute; clip-path:inset(100%); height:1px; width:1px; overflow:hidden }
.agent-chat input { flex:1; min-width:0; color:white; background:#1e293b; border:0; border-radius:8px; padding:12px }
.agent-chat button { min-height:44px; border:0; border-radius:8px; padding:8px 14px; background:#06b6d4; color:#0f172a; font-weight:700 }
.agent-chat button:disabled { opacity:.5 }
.agent-chat [data-chat-status]:not(:empty) { padding:8px 18px; color:#fde68a; background:#422f14 }
.agent-chat > section { margin:auto; text-align:center }
.agent-chat > section a { display:inline-flex; padding:10px; text-decoration:underline }
.info-page { max-width:52rem; padding-block:42px 86px; font-size:1rem; line-height:1.75 }
.info-page h1 { font-size:clamp(2.3rem,5vw,3.3rem); margin-block:0 1rem }
.info-page section { margin-block:28px; scroll-margin-top:80px }
.info-page h2 { font-size:1.45rem; margin:1rem 0 .6rem }
.info-page h3 { margin:.85rem 0 .4rem }
.info-page p + p { margin-top:.7rem }
.info-page a { text-decoration:underline; text-underline-offset:3px; font-weight:700 }
.info-page ul { list-style:disc; padding-inline-start:1.25rem }
.info-page dl > div {display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:7px; border-bottom:1px solid var(--line)}
.info-page dd {margin:0; font-weight:700}
.recipe-how {display:flex; gap:12px; flex-wrap:wrap; padding:16px 0; counter-reset:step}
.recipe-how li {padding:6px 10px; border:2px solid var(--line); background:var(--sheet); counter-increment:step}
.recipe-how li::before {content:counter(step) " "; font-weight:800}
.recipe-cards {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:20px 0}
.recipe-cards a {display:block; height:100%; text-decoration:none}
.recipe-cards img {display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border-bottom:2px solid var(--line)}
.recipe-cards a > div {padding:14px}
.recipe-cards strong {display:block; margin:7px 0; font:1.5rem var(--display)}
.recipe-cards p,.recipe-cards b {font-size:.9rem}
@media (max-width:560px){.recipe-cards{grid-template-columns:1fr}}
.timeline .panel {margin:13px 0;padding:clamp(14px,3vw,24px);scroll-margin-top:84px}
.timeline .panel h3 {font-size:1.3rem}
.timeline-links,.timeline-kinds {display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin-block:12px}
.timeline-links [aria-current=page] {text-decoration-thickness:3px}
.timeline-links small {display:inline}
.info-page .timeline-kinds {list-style:none;padding:0}
.news-article .panel {padding:20px}
.news-article > img,.news-article iframe,.article-video {display:block;margin:18px auto;max-width:100%;width:100%;aspect-ratio:16/9;object-fit:contain;border:2px solid var(--line);background:var(--soft)}
.article-video {position:relative;padding:0;overflow:hidden}
.article-video img {width:100%;height:100%;object-fit:cover}
.article-video span {position:absolute;inset:auto auto 10% 50%;transform:translateX(-50%);border:2px solid #231f20;border-radius:24px;padding:8px 18px;background:#ffe600;color:#231f20;font-weight:800}
.news-article button[data-share-title] {padding:8px 14px;min-height:44px;background:var(--sheet);border:2px solid var(--line);border-radius:18px}
.news-article a.term {font-weight:inherit;text-decoration-style:dotted}
.briefing-page [data-briefing] {max-width:38rem;margin:22px auto}
#briefing-cards {display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin}
#briefing-cards figure {flex:0 0 100%;margin:0;scroll-snap-align:start}
#briefing-cards img {display:block;width:100%;height:auto}
.card-controls,.briefing-links {display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.card-controls {justify-content:space-between;margin-top:10px}
.card-controls button,.briefing-page [data-share-title] {padding:8px 12px;min-height:44px;border:2px solid var(--line);border-radius:20px;background:var(--sheet)}
.card-controls button:disabled {opacity:.45}
.briefing-page details {padding:16px}
.briefing-page .briefing-links {list-style:none;padding:0}
.briefing-links li {flex:1 1 220px;padding:10px;border:1px solid var(--line)}
.installer-platforms,.installer-variants nav {display:flex;flex-wrap:wrap;gap:8px}
.installer-panel .installer-platforms a,.installer-panel .installer-variants a {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 15px;border:1px solid var(--line);border-radius:8px;text-decoration:none}
.installer-platforms a {flex:1;max-width:10rem}
.installer-panel a[aria-current=true] {background:var(--yellow);color:#231f20;box-shadow:inset 0 0 0 1px #231f20}
.installer-panel .installer-platforms + p {margin:.75rem 0;color:var(--muted)}
.briefing-page .installer-variants {padding:0}
.installer-variants summary {width:fit-content;min-height:44px;padding-block:8px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.installer-panel h4 {margin:1.1rem 0 .35rem}
.briefing-page .installer-files {list-style:none;padding:0;border-top:2px solid var(--line)}
.installer-files li {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.installer-files li > div small {display:block}
.installer-files a {display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 12px;white-space:nowrap;border:1px solid var(--line);border-radius:8px;background:var(--sheet)}
.installer-panel a:hover {text-decoration:underline}
.button { display: inline-block }
.subscribe { width: min(100%, 44rem); margin: auto; padding: clamp(16px, 3vw, 32px) }
.subscribe p, .subscribe form { margin-top: 12px }
.subscribe form { display: grid; gap: 12px }
.subscribe fieldset { border: 0; padding: 0; margin: 0; min-width: 0 }
.subscribe legend { font-weight: 800; margin-bottom: 5px }
.frequency label { flex: 1; padding: .55rem; border: 1px solid var(--line); background: var(--soft) }
.subscribe input[type=email] { display: block; width: 100%; min-height: 44px; padding: 8px; border: 1px solid var(--line); background: var(--sheet); color: var(--ink) }
.subscribe input { accent-color: #766500 }
.subscribe .consent, .subscribe [role=status] { font-size: .85rem }
.subscribe [role=status]:empty { display: none }
.subscribe button { justify-self: start; min-height: 44px }
.foot { padding-block: 25px; background: var(--soft); border-top: 2px solid var(--line) }
.foot nav { flex-wrap: wrap; gap: 5px 16px; margin-block: 10px }
.foot nav a, .foot p { font-size: .8rem }
.mobile-tabs { display: none }
@media (max-width: 760px) {
  .wrap { width: min(100% - 28px, 72rem) }
  .major { display: none }
  .top-main { min-height: 64px; gap: 6px }
  .auth > a { min-height: 40px }
  .cover .wrap { padding-block: 24px 40px }
  .cover-grid, .features { grid-template-columns: 1fr; gap: 24px }
  .news-desk, .updates { grid-template-columns: repeat(2,minmax(0,1fr)) }
  .rank-list li { grid-template-columns: 1.6em minmax(0,1fr) 2.8em; gap: 5px; padding: 8px }
  .rank-list meter { display: none }
  .go { grid-column: 2 / -1; display: flex; gap: 10px; text-align: start }
  .foot { padding-bottom: calc(80px + env(safe-area-inset-bottom)) }
  .mobile-tabs { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; z-index: 9; inset: auto 16px max(10px, env(safe-area-inset-bottom)); background: var(--sheet); border: 1px solid var(--line); border-radius: 28px; padding: 4px; box-shadow: 2px 3px 0 var(--line) }
  .mobile-tabs [aria-current=page] { border-radius:28px; background:#fff5ad; color:#231f20 }
  .mobile-tabs > a, .mobile-tabs summary { display: flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height: 54px; font-size: .76rem; font-weight: 800; list-style: none }
  .mobile-tabs summary::-webkit-details-marker { display: none }
  .mobile-tabs section { position: absolute; inset: auto 0 100%; max-height: 72dvh; overflow: auto; padding: 16px; border: 2px solid var(--line); background: var(--sheet); box-shadow: 0 -6px 22px #0003 }
  .mobile-tabs section > a { display: inline-flex; align-items: center; padding: 8px 10px; min-height: 44px; text-decoration: underline }
  .mobile-tabs section button { float: right; padding: 5px 12px; min-height: 40px; background: var(--soft); border: 1px solid var(--line) }
  .section-heading { flex-wrap: wrap }
}
@media (max-width: 450px) {
  .wrap { width: calc(100% - 32px) }
  .top .brand img { width: 107px }
  .auth > a:last-child { display: none }
  .cover nav ul { grid-template-columns: 1fr }
  .issue { flex-direction: column; align-items: flex-start; margin-bottom: 25px }
  .intro { font-size: 1.0625rem }
  .auth { font-size: .73rem; gap: 5px }
  .auth > a:last-child { padding: .3rem .5rem }
  .tools { gap: 0 }
  .tools a, .tools button { min-width: 32px }
  .news-desk, .updates { grid-template-columns: 1fr }
  .news-desk .story a { flex-direction: row }
  .news-desk .art { width: 30%; flex: none; border: 0; align-self: start }
  .news-desk .summary { display: none }
  .cover nav a { padding: 9px 12px; gap: 12px }
  .feature, .briefing { align-items: flex-start }
  .rank-list .tier { font-size: .65rem }
}
@media (prefers-reduced-motion: reduce) { .ticker ul { animation: none } }
