/* SEOUL INK · approved A identity, 2026-09-05. Load after component styles.
   Keep article/rights data independent. No network fonts, motion or tracking. */
@font-face {
  font-family: "Source Serif 4";
  src: url("../fonts/source-serif-4-italic-latin.woff2") format("woff2");
  font-style: italic;
  font-weight: 400 650;
  font-display: swap;
}
html { color-scheme: light; }
body { font-synthesis: none; font-optical-sizing: auto; line-height: 1.6; }
h1, h2, h3 { text-wrap: pretty; }
.site-header { background: var(--white); border-bottom: 1px solid var(--line); }
.edition-bar { background: var(--white); color: var(--ash); border-color: var(--line); font-size: .65rem; font-weight: 500; letter-spacing: .065em; }
.edition-bar__inner { min-height: 30px; }
.live-dot { background: var(--accent); width: .32rem; height: .32rem; }
.header-main { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 2.5rem; align-items: center; min-height: 110px; }
body .header-main .masthead-wrap { padding: 1.4rem 0 1.25rem; text-align: left; min-width: 0; }
body .header-main .masthead { display: flex; align-items: center; min-height: 38px; width: 100%; font-size: 1rem; line-height: 1; transform: none; overflow: visible; }
.masthead img { display: block; width: 100%; height: auto; }
body .header-main .masthead::after, .footer-brand > a::after { content: none; }
body .header-main .tagline { margin: .55rem 0 0; font-size: .58rem; font-weight: 500; letter-spacing: .20em; line-height: 1.4; color: var(--ash); }
.tagline::after { content: ""; display: inline-block; width: 20px; height: 2px; margin-left: 10px; vertical-align: middle; background: var(--accent); }
.header-main .nav-wrap { width: 100%; border: 0; gap: .5rem; }
.header-main .primary-nav { justify-content: flex-end; flex-wrap: nowrap; gap: clamp(.7rem, 1.2vw, 1.4rem); min-height: 48px; }
.primary-nav a { font-size: .79rem; font-weight: 550; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.primary-nav a::after { bottom: 2px; height: 1px; }
.search-toggle { width: 44px; height: 44px; }
.search-dialog { border: 1px solid var(--line-strong); box-shadow: 0 12px 40px rgb(32 38 35 / 12%); }
.search-dialog::backdrop { background: rgb(32 38 35 / 50%); }
.eyebrow, .story-meta, .pulse-kicker, .footer-heading { font-size: .75rem; line-height: 1.5; font-weight: 600; letter-spacing: .09em; }
.button { border-color: currentColor; font-size: .8rem; font-weight: 600; letter-spacing: .03em; }
.button--orange, .button--ink:hover, .button--paper:hover, .return-desk .button { background: var(--accent); color: var(--white); border-color: var(--accent); }
.button--orange:hover, .return-desk .button:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.text-link { font-weight: 600; }
.filter-chips a:hover, .filter-chips a[aria-current="page"] { color: var(--white); }
.feature-insider-lens, .feature-series-nav { background: var(--celadon); color: var(--ink); }

/* One calm introduction and a strong current article — the A mockup in real content. */
.frontpage-hero { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 4vw, 4.5rem); margin-top: clamp(1.75rem, 3vw, 3rem); background: transparent; color: var(--ink); border: 0; }
.frontpage-hero .utility-hero__promise { min-height: 0; padding: 1rem 0; border: 0; justify-content: center; }
.frontpage-hero .utility-hero__promise > .eyebrow { font-size: .68rem; letter-spacing: .08em; max-width: 40ch; }
.frontpage-hero .utility-hero__promise h1 { margin: .75rem 0 1.25rem; font: 500 clamp(2.75rem, 4.4vw, 4.7rem)/1.05 var(--serif); letter-spacing: -.035em; max-width: none; }
.frontpage-hero .utility-hero__promise h1 em { color: var(--ink); font-family: inherit; font-weight: 450; }
.frontpage-hero .utility-hero__deck { color: var(--ink); font-family: var(--sans); font-size: 1.03rem; line-height: 1.6; max-width: 40ch; margin: 0 0 1.5rem; }
.frontpage-routes { border-top: 1px solid var(--line-strong); margin-top: .25rem; }
.frontpage-routes a { border-color: var(--line); min-height: 52px; padding-block: .7rem; }
.frontpage-routes strong { font-weight: 500; font-size: .95rem; }
.frontpage-promise { color: var(--ash); font-size: .8rem; line-height: 1.6; margin-top: 1.1rem; max-width: 38ch; }
.frontpage-hero .utility-hero__lead { background: transparent; color: var(--ink); display: grid; grid-template-rows: auto auto; align-content: start; }
.frontpage-hero .utility-hero__image { aspect-ratio: 16 / 9; min-height: 0; }
.frontpage-hero .utility-hero__lead > div { padding: 1.15rem 0 0; border: 0; }
.frontpage-hero .utility-hero__lead .eyebrow { margin-bottom: .45rem; font-size: .7rem; }
.frontpage-hero .utility-hero__lead h2 { font-size: clamp(1.65rem, 2.25vw, 2.3rem); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; margin-bottom: .6rem; }
.frontpage-hero .utility-hero__lead > div > p:not(.eyebrow) { font: 400 .95rem/1.6 var(--sans); margin-bottom: .7rem; }
.frontpage-image-note { color: var(--ash); font-size: .75rem; margin-top: .65rem; }
.discovery-home { margin-top: 2.75rem; border-top: 1px solid var(--line-strong); padding-top: 1.5rem; }
.frontpage-section-head { margin-bottom: 1.3rem; }
.frontpage-section-head h2 { font: 500 clamp(1.9rem, 3vw, 2.7rem)/1.12 var(--serif); letter-spacing: -.03em; }
.frontpage-section-head > p { font: 400 .95rem/1.5 var(--sans); color: var(--ash); }
.discovery-grid { gap: clamp(1.2rem, 2.2vw, 2rem); }
.discovery-card { background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.discovery-card__body { padding: 1rem 0 1.3rem; }
.discovery-card .eyebrow { font-size: .68rem; margin-bottom: .5rem; }
.discovery-card h3 { font-size: clamp(1.35rem, 1.8vw, 1.85rem); font-weight: 500; line-height: 1.2; letter-spacing: -.02em; margin: .5rem 0 .8rem; }
.discovery-card p { font-size: .95rem; line-height: 1.55; }
.discovery-card small { color: var(--ash); line-height: 1.6; }
.weekend-teaser { background: var(--celadon); border: 0; padding: clamp(1.5rem, 3vw, 3rem); }
.weekend-teaser h2, .concert-home h2, .return-desk h2 { font-family: var(--serif); font-weight: 500; line-height: 1.12; letter-spacing: -.03em; }
.weekend-teaser li { border-color: var(--line-strong); }
.weekend-teaser .eyebrow { color: var(--ink); }
.weekend-teaser strong { font-weight: 550; }
.concert-home { border: 1px solid var(--line); border-top: 2px solid var(--green); background: var(--white); margin-top: 3rem; }
.concert-home h2 em { color: var(--ink); }
.concert-row h3 { font-weight: 550; letter-spacing: -.025em; line-height: 1.15; }
.concert-date strong { letter-spacing: -.03em; }
.concert-hero h1, .concert-detail__hero h1, .weekend-hero h1 { font-family: var(--serif); font-weight: 500; line-height: 1.06; letter-spacing: -.035em; }
.concert-hero, .concert-detail__hero { border-bottom-width: 1px; }
.action-deck, .discovery-home, .concert-explain { border-top-width: 1px; }
.action-deck { border-bottom-width: 1px; }
.action-deck__heading h2, .section-heading h2, .intent-board h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.025em; line-height: 1.12; }
.action-card strong { font-weight: 550; letter-spacing: -.02em; line-height: 1.2; }
.section-heading h2 { text-transform: none; }
.newsletter-callout { border: 0; background: var(--celadon); }
.newsletter-callout h2 { font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.article-page { padding-block: clamp(2rem, 4vw, 4rem); }
.article-header h1 { font-size: clamp(2.6rem, 5.5vw, 5.7rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; }
.article-deck { border-top-width: 1px; line-height: 1.55; }
.article-meta, .article-image figcaption { font-size: .78rem; line-height: 1.65; }
.article-copy > p, .article-copy .feature-article-section > p { line-height: 1.75; }
.article-copy .feature-article-section h2 { letter-spacing: -.025em; line-height: 1.18; }
.category-hero, .archive-hero { padding-block: clamp(2.5rem, 5vw, 5rem); border-bottom-width: 1px; }
:is(.category-hero, .archive-hero, .about-hero, .start-hero, .now-hero, .newsletter-hero, .editorial-desk-hero) h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(3rem, 6.5vw, 6.5rem); line-height: 1.05; letter-spacing: -.035em; max-width: none; }
.category-hero__copy, .archive-hero__copy { border-top-width: 2px; }
.collection-hero { border-width: 1px; }
.collection-hero h1 { color: var(--white); font-weight: 500; font-size: clamp(3rem, 7vw, 7.5rem); line-height: 1.05; letter-spacing: -.035em; }
.collection-hero__copy { border-top-width: 1px; }
.section-heading { border-bottom-width: 1px; }

/* Low-saturation editorial panels; keep warnings and sponsorship distinguishable. */
:is(.site-footer, .culture-project, .kpop-series-home, .living-seoul__heading, .living-seoul__grid, .concert-related, .return-desk) .eyebrow { color: var(--celadon); }
:is(.feature-band, .collection-lead, .category-series, .forecast-card, .intent-board) .eyebrow { color: var(--white); }
.partner-banner .eyebrow, .network-banner--lawhale .network-banner__action span { color: var(--celadon); }
.footer-brand > a { display: block; width: min(100%, 272px); line-height: 1; }
.footer-brand img { width: 100%; height: auto; }
.footer-brand > p:not(.footer-small) { margin-top: 1rem; font-size: .65rem; font-weight: 500; }
.footer-small { font-size: .9rem; line-height: 1.65; color: #c4cbc1; }
.footer-grid > div > a:not(:first-child) { font-size: .85rem; min-height: 32px; }
.footer-grid > div > a:hover { color: var(--white); text-decoration: underline; }
.footer-bottom { color: #b6bfb3; font-size: .7rem; gap: 1rem; flex-wrap: wrap; }
.footer-status > p:not(.footer-heading) { font-size: .82rem; }
.network-banner { box-shadow: none; }
.network-banner:hover { transform: none; box-shadow: none; }

@media (min-width: 761px) and (max-width: 1179px) {
  .header-main { grid-template-columns: 1fr; gap: 0; min-height: 0; }
  body .header-main .masthead-wrap { display: flex; align-items: center; gap: 2rem; padding: 1.2rem 0 .6rem; }
  body .header-main .masthead { width: 236px; }
  body .header-main .tagline { margin: 0; }
  .header-main .primary-nav { justify-content: flex-start; gap: clamp(.8rem, 2vw, 1.5rem); }
  .header-main .nav-wrap { padding-bottom: .3rem; }
  .frontpage-hero { gap: 2rem; }
}
@media (max-width: 760px) {
  :root { --shell: calc(100% - 36px); }
  .edition-bar__inner { display: flex; justify-content: space-between; min-height: 27px; font-size: .58rem; gap: .5rem; }
  .edition-bar__inner > :last-child { display: none; }
  .header-main { grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; min-height: 83px; position: relative; }
  body .header-main .masthead-wrap { padding: 1rem 0; }
  body .header-main .masthead { width: min(100%, 208px); min-height: 24px; }
  body .header-main .tagline { font-size: .51rem; letter-spacing: .12em; margin-top: .5rem; }
  .tagline::after { width: 16px; margin-left: 8px; }
  .header-main .nav-wrap { width: auto; position: static; display: flex; gap: .25rem; min-height: 44px; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: .72rem; font-weight: 600; text-transform: none; letter-spacing: 0; }
  .search-toggle { width: 44px; min-width: 44px; padding: .5rem; }
  .header-main .primary-nav { display: none; position: absolute; z-index: 20; inset: 100% 0 auto; flex-direction: column; align-items: stretch; gap: 0; padding: .65rem 1rem; border: 1px solid var(--line-strong); background: var(--white); box-shadow: 0 12px 24px rgb(32 38 35 / 10%); }
  .header-main .primary-nav.is-open { display: flex; }
  .primary-nav a { font-size: .92rem; border-bottom: 1px solid var(--line); min-height: 46px; }
  .primary-nav a:last-child { border-bottom: 0; }
  .frontpage-hero { display: grid; grid-template-columns: 1fr; gap: 1.8rem; margin-top: 1.4rem; }
  .frontpage-hero .utility-hero__promise { padding: .6rem 0 0; }
  .frontpage-hero .utility-hero__promise h1 { font-size: clamp(2.6rem, 9vw, 4rem); margin: .6rem 0 1rem; line-height: 1.08; }
  .frontpage-hero .utility-hero__deck { font-size: 1rem; margin-bottom: 1rem; }
  .frontpage-routes strong { font-size: .93rem; }
  .frontpage-promise { max-width: none; }
  .frontpage-hero .utility-hero__lead { border: 0; grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .frontpage-hero .utility-hero__lead > div { padding: 1rem 0 0; }
  .frontpage-hero .utility-hero__lead h2 { font-size: 1.8rem; }
  .discovery-home { margin-top: 2rem; }
  .frontpage-section-head { display: block; }
  .frontpage-section-head > p { margin-top: .7rem; max-width: 36ch; }
  .discovery-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .discovery-card h3 { font-size: 1.65rem; }
  .weekend-teaser, .return-desk { grid-template-columns: 1fr; gap: 1.5rem; }
  .weekend-teaser { padding: 1.4rem; }
  .article-header h1 { font-size: clamp(2.3rem, 9vw, 3.8rem); }
  .article-image figcaption { flex-wrap: wrap; }
  .footer-grid > div > a:not(:first-child) { min-height: 44px; display: flex; align-items: center; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }
