:root {
    --hi-ink: #111827;
    --hi-muted: #667085;
    --hi-paper: #ffffff;
    --hi-canvas: #f4f2ed;
    --hi-border: #dedbd3;
    --hi-accent: #d94b2b;
    --hi-accent-dark: #a8321d;
    --hi-dark: #0d1726;
    --hi-radius: 18px;
    --hi-shadow: 0 18px 45px rgba(17, 24, 39, .09);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--hi-canvas);
    color: var(--hi-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; }
.utility-bar { background: var(--hi-dark); color: rgba(255,255,255,.78); font-size: .75rem; letter-spacing: .04em; padding: .65rem 0; }
.brand-bar { background: var(--hi-paper); border-bottom: 1px solid var(--hi-border); }
.brand-lockup { display: inline-flex; align-items: center; gap: .9rem; text-decoration: none; color: var(--hi-ink); }
.brand-lockup strong { display: block; font-family: Georgia, serif; font-size: clamp(1.7rem,3vw,2.6rem); line-height: .9; }
.brand-lockup small { display: block; color: var(--hi-muted); margin-top: .35rem; font-size: .78rem; }
.brand-mark { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--hi-accent); color: white; font-weight: 900; letter-spacing: -.05em; }
.main-nav { background: var(--hi-paper); border-bottom: 1px solid var(--hi-border); }
.main-nav .nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.main-nav .nav::-webkit-scrollbar { display:none; }
.main-nav .nav-link { padding: .95rem 1.05rem; color: var(--hi-ink); font-size: .86rem; font-weight: 750; white-space: nowrap; border-bottom: 3px solid transparent; }
.main-nav .nav-link:hover { color: var(--hi-accent); border-color: var(--hi-accent); }
.mobile-nav-link { display:block; text-decoration:none; border-bottom:1px solid var(--hi-border); padding:1rem 0; font-weight:700; }
.homepage-section { padding: 2rem 0; }
.homepage-hero { padding-top: 1.35rem; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,.75fr); gap:1rem; }
.hero-primary-full { grid-column: 1/-1; }
.hero-media { display:block; min-height:560px; position:relative; overflow:hidden; border-radius:var(--hi-radius); color:white; background:var(--hi-dark); box-shadow:var(--hi-shadow); }
.hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.hero-media:hover img { transform:scale(1.025); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,10,18,.05) 25%,rgba(5,10,18,.88) 100%); }
.hero-content { position:absolute; left:clamp(1.25rem,4vw,3rem); right:clamp(1.25rem,4vw,3rem); bottom:clamp(1.5rem,5vw,3rem); z-index:2; }
.hero-content h1 { font-family:Georgia,serif; max-width:900px; font-size:clamp(2.2rem,5vw,4.8rem); line-height:.98; margin:.6rem 0 1rem; letter-spacing:-.045em; }
.hero-summary { max-width:700px; display:block; font-size:clamp(1rem,1.5vw,1.22rem); color:rgba(255,255,255,.82); }
.eyebrow,.section-kicker { color:var(--hi-accent); font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; font-weight:900; }
.hero-secondary { display:grid; gap:1rem; }
.section-heading-row { display:flex; justify-content:space-between; align-items:end; border-top:4px solid var(--hi-ink); padding-top:1rem; margin-bottom:1.3rem; }
.section-heading-row h2 { font-family:Georgia,serif; font-size:clamp(1.7rem,3vw,2.7rem); margin:.25rem 0 0; letter-spacing:-.035em; }
.section-heading-row p { color:var(--hi-muted); margin:.35rem 0 0; }
.stories-grid { display:grid; gap:1rem; }
.stories-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.stories-grid-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.stories-list { display:grid; gap:.7rem; }
.stories-feature-list { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:1rem; }
.story-card { background:var(--hi-paper); border:1px solid var(--hi-border); border-radius:var(--hi-radius); overflow:hidden; box-shadow:0 8px 24px rgba(17,24,39,.04); min-width:0; }
.story-image { display:block; aspect-ratio:16/10; background:#e7e3dc; overflow:hidden; }
.story-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.story-card:hover .story-image img { transform:scale(1.035); }
.image-placeholder { display:grid; width:100%; height:100%; place-items:center; font-size:2rem; color:#9b968c; background:linear-gradient(135deg,#ebe8e2,#ded8cf); }
.story-card-body { padding:1.15rem; }
.story-card h3 { font-family:Georgia,serif; font-size:clamp(1.18rem,2vw,1.55rem); line-height:1.12; margin:.45rem 0 .6rem; }
.story-card h3 a { text-decoration:none; }
.story-card h3 a:hover { color:var(--hi-accent); }
.story-card p { color:var(--hi-muted); line-height:1.55; margin:0 0 .8rem; }
.story-meta { color:#8a8590; font-size:.76rem; font-weight:650; }
.story-card-horizontal { display:grid; grid-template-columns:120px minmax(0,1fr); }
.story-card-horizontal .story-image { aspect-ratio:auto; min-height:140px; }
.story-card-horizontal .story-card-body { padding:.9rem; }
.story-card-horizontal h3 { font-size:1.08rem; }
.story-card-horizontal p { display:none; }
.archive-header,.article-header { background:var(--hi-paper); border-bottom:1px solid var(--hi-border); padding:clamp(3rem,8vw,6.5rem) 0; }
.archive-header h1,.article-header h1 { font-family:Georgia,serif; font-size:clamp(3rem,8vw,6.6rem); line-height:.92; max-width:1050px; margin:.65rem 0 1.2rem; letter-spacing:-.055em; }
.archive-header p,.article-standfirst { color:var(--hi-muted); font-size:clamp(1.1rem,2vw,1.45rem); line-height:1.55; max-width:850px; }
.article-breadcrumb { display:flex; gap:.55rem; margin-bottom:2rem; color:var(--hi-muted); font-size:.86rem; }
.article-breadcrumb a { text-decoration:none; }
.article-byline { display:flex; flex-wrap:wrap; gap:.8rem 1.4rem; font-size:.83rem; font-weight:700; color:var(--hi-muted); margin-top:1.5rem; }
.article-hero { margin-top:2rem; }
.article-hero img { display:block; width:100%; max-height:760px; object-fit:cover; border-radius:var(--hi-radius); box-shadow:var(--hi-shadow); }
.article-hero figcaption { display:flex; justify-content:space-between; gap:1rem; color:var(--hi-muted); font-size:.78rem; padding:.7rem .25rem; }
.article-layout { display:grid; grid-template-columns:minmax(0,760px) minmax(240px,1fr); gap:clamp(2rem,6vw,6rem); align-items:start; padding:clamp(3rem,7vw,6rem) 0; }
.prose { font-family:Georgia,serif; font-size:1.17rem; line-height:1.82; }
.prose h2,.prose h3 { color:var(--hi-ink); line-height:1.12; margin:2.4rem 0 1rem; }
.prose h2 { font-size:2.15rem; }
.prose h3 { font-size:1.65rem; }
.prose a { color:var(--hi-accent-dark); }
.prose blockquote { border-left:5px solid var(--hi-accent); padding:1rem 0 1rem 1.5rem; font-size:1.45rem; font-style:italic; color:#38312d; }
.prose img { border-radius:12px; height:auto; }
.aside-card { position:sticky; top:2rem; background:var(--hi-dark); color:white; padding:1.5rem; border-radius:var(--hi-radius); }
.aside-card strong { display:block; font-family:Georgia,serif; font-size:1.8rem; margin:.35rem 0 .8rem; }
.aside-card p { color:rgba(255,255,255,.72); margin:0; }
.public-search-form { display:flex; max-width:800px; gap:.7rem; }
.public-search-form .form-control { min-height:54px; border-radius:12px; }
.empty-publication,.error-page { min-height:55vh; display:grid; align-items:center; }
.empty-publication-card,.error-card { background:var(--hi-paper); border:1px solid var(--hi-border); border-radius:var(--hi-radius); padding:clamp(2rem,7vw,5rem); box-shadow:var(--hi-shadow); }
.empty-publication-card h1,.error-card h1 { font-family:Georgia,serif; font-size:clamp(2.6rem,6vw,5rem); letter-spacing:-.05em; }
.error-card { max-width:850px; }
.error-code { color:var(--hi-accent); font-weight:900; font-size:1rem; letter-spacing:.16em; }
.site-footer { background:var(--hi-dark); color:white; }
.footer-brand { display:flex; align-items:center; gap:.8rem; font-family:Georgia,serif; font-size:1.6rem; }
.footer-heading { font-size:.76rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.55); }
.site-footer a { display:block; color:rgba(255,255,255,.8); text-decoration:none; margin:.55rem 0; }
.site-footer a:hover { color:white; }
.footer-copy { color:rgba(255,255,255,.63); line-height:1.6; }
.footer-base { border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.55); font-size:.78rem; }

@media (max-width: 991.98px) {
    .hero-grid,.stories-feature-list,.article-layout { grid-template-columns:1fr; }
    .hero-media { min-height:500px; }
    .hero-secondary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .story-card-horizontal { display:block; }
    .story-card-horizontal .story-image { aspect-ratio:16/10; }
    .stories-grid-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .aside-card { position:static; }
}
@media (max-width: 767.98px) {
    .stories-grid-three,.stories-grid-four,.hero-secondary { grid-template-columns:1fr; }
    .hero-media { min-height:480px; }
    .homepage-section { padding:1.35rem 0; }
    .story-card-horizontal { display:grid; grid-template-columns:120px minmax(0,1fr); }
    .story-card-horizontal .story-image { aspect-ratio:auto; }
    .article-hero { padding:0; margin-top:0; }
    .article-hero img { border-radius:0; }
    .public-search-form { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* UX-003 — HeatInk Public Homepage Design System */
:root,[data-theme="blue"]{--hi-primary:#1268e8;--hi-primary-dark:#0752bd;--hi-accent:#13a66a;--hi-accent-soft:#e9fbf3;--hi-primary-soft:#edf5ff;--hi-ink:#0b1324;--hi-muted:#667085;--hi-paper:#fff;--hi-canvas:#fff;--hi-border:#e7ebf1;--hi-dark:#08111f;--hi-radius:22px;--hi-shadow:0 24px 70px rgba(11,19,36,.09)}
[data-theme="green"]{--hi-primary:#078a57;--hi-primary-dark:#056a44;--hi-accent:#1776e8;--hi-accent-soft:#edf5ff;--hi-primary-soft:#eafaf3}
body{background:#fff}.utility-bar{background:var(--hi-dark)}.brand-bar,.main-nav{border-color:var(--hi-border)}.brand-mark{background:linear-gradient(145deg,var(--hi-primary),var(--hi-accent));box-shadow:0 12px 30px color-mix(in srgb,var(--hi-primary) 25%,transparent)}
.brand-lockup strong{font-family:Inter,ui-sans-serif,sans-serif;font-weight:850;letter-spacing:-.06em}.brand-lockup small{font-weight:550}.main-nav .nav-link:hover{color:var(--hi-primary);border-color:var(--hi-primary)}
.theme-switcher{display:flex;padding:4px;border:1px solid var(--hi-border);border-radius:999px;background:#fff}.theme-switcher button{border:0;background:transparent;width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.theme-switcher button[aria-pressed="true"]{background:var(--hi-primary-soft)}.theme-dot{width:13px;height:13px;border-radius:50%;display:block}.theme-dot-blue{background:#1268e8}.theme-dot-green{background:#078a57}.header-search,.menu-button{min-height:40px;border:1px solid var(--hi-border);border-radius:999px;background:#fff;color:var(--hi-ink);display:inline-flex;align-items:center;gap:.5rem;padding:0 .9rem;text-decoration:none;font-weight:700}.menu-button{padding:0 .75rem}.nav-link-commercial{color:var(--hi-primary)!important}
.hi-intro{padding:clamp(4rem,9vw,9rem) 0 3.5rem;background:radial-gradient(circle at 85% 10%,var(--hi-primary-soft),transparent 34%),#fff}.hi-intro-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(2rem,7vw,8rem);align-items:end}.hi-kicker{display:block;color:var(--hi-primary);font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem}.hi-intro h1{font-size:clamp(3.4rem,8vw,7.8rem);line-height:.88;letter-spacing:-.075em;font-weight:850;margin:0;max-width:1050px}.hi-intro-copy p{font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.65;color:var(--hi-muted)}.hi-intro-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}.hi-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-radius:999px;padding:.9rem 1.35rem;text-decoration:none;font-weight:800;transition:.2s ease}.hi-button-primary{background:var(--hi-primary);color:#fff}.hi-button-primary:hover{background:var(--hi-primary-dark);color:#fff;transform:translateY(-2px)}.hi-button-quiet{border:1px solid var(--hi-border);background:#fff}.hi-button-quiet:hover{border-color:var(--hi-primary);color:var(--hi-primary)}
.homepage-section{padding:clamp(2.5rem,6vw,5.5rem) 0}.homepage-hero{padding-top:1.5rem}.section-heading-row{border-top:0;padding-top:0}.section-heading-row h2,.hi-heading-line h2,.hi-section-intro h2{font-family:Inter,ui-sans-serif,sans-serif;font-weight:830;letter-spacing:-.055em}.eyebrow,.section-kicker{color:var(--hi-primary)}.hero-media{border-radius:28px}.story-card{border-color:var(--hi-border);box-shadow:none}.story-card:hover{box-shadow:var(--hi-shadow);transform:translateY(-3px)}.story-card{transition:.25s ease}
.hi-commercial-strip{padding:1rem 0}.hi-commercial-strip .container-xl{position:relative}.hi-commercial-strip img{display:block;max-height:160px;width:100%;object-fit:contain;background:#fafafa;border:1px solid var(--hi-border);border-radius:16px}.hi-ad-label{display:block;text-align:center;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--hi-muted);margin-bottom:.45rem}.hi-empty{padding:4rem;border:1px dashed var(--hi-border);border-radius:24px;text-align:center;color:var(--hi-muted)}
.hi-intelligence-band{padding:clamp(4rem,8vw,7rem) 0;background:var(--hi-dark);color:#fff}.hi-section-intro{max-width:850px}.hi-section-intro h2{font-size:clamp(2.6rem,5vw,5rem);line-height:.95;margin:0 0 1.2rem}.hi-section-intro p{color:rgba(255,255,255,.65);font-size:1.15rem}.hi-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.12);margin-top:3rem;border:1px solid rgba(255,255,255,.12);border-radius:22px;overflow:hidden}.hi-stat{background:var(--hi-dark);padding:1.5rem;text-decoration:none;display:flex;flex-direction:column;min-height:165px;transition:.2s}.hi-stat:hover{background:color-mix(in srgb,var(--hi-primary) 18%,var(--hi-dark));color:#fff}.hi-stat i{color:var(--hi-accent);font-size:1.2rem}.hi-stat strong{font-size:2.5rem;letter-spacing:-.05em;margin-top:auto}.hi-stat span{color:rgba(255,255,255,.62);font-size:.82rem}
.hi-white-section{background:#fff}.hi-soft-section{background:#f7f9fc}.hi-heading-line{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}.hi-heading-line h2{font-size:clamp(2.2rem,4vw,4rem);margin:0}.hi-heading-line>a{color:var(--hi-primary);font-weight:800;text-decoration:none;white-space:nowrap}.hi-editorial-grid,.hi-product-grid,.hi-guide-grid,.hi-event-grid{display:grid;gap:1rem}.hi-editorial-grid-three,.hi-guide-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hi-feature-card{border-radius:24px;overflow:hidden;background:#fff;border:1px solid var(--hi-border)}.hi-feature-image{display:block;aspect-ratio:16/10;position:relative;overflow:hidden;background:#edf0f4}.hi-feature-image img{width:100%;height:100%;object-fit:cover;transition:.35s}.hi-feature-card:hover img{transform:scale(1.03)}.hi-score{position:absolute;right:1rem;bottom:1rem;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--hi-primary);color:#fff;font-size:1.15rem;font-weight:900;box-shadow:0 8px 28px rgba(0,0,0,.2)}.hi-feature-body{padding:1.35rem}.hi-card-meta{display:block;color:var(--hi-primary);font-size:.7rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.hi-feature-body h3{font-size:1.45rem;line-height:1.08;letter-spacing:-.035em;margin:.6rem 0}.hi-feature-body h3 a{text-decoration:none}.hi-feature-body p{color:var(--hi-muted);line-height:1.6;margin:0}
.hi-guide{padding:2rem;border-radius:24px;background:#fff;border:1px solid var(--hi-border);text-decoration:none;display:flex;flex-direction:column;min-height:330px;transition:.25s}.hi-guide:hover{transform:translateY(-5px);box-shadow:var(--hi-shadow);color:var(--hi-ink)}.hi-guide-icon{width:52px;height:52px;border-radius:16px;background:var(--hi-primary-soft);color:var(--hi-primary);display:grid;place-items:center;font-size:1.3rem;margin-bottom:2.4rem}.hi-guide strong{font-size:1.55rem;line-height:1.08;letter-spacing:-.035em;margin:.55rem 0}.hi-guide>span:not(.hi-guide-icon):not(.hi-card-meta){color:var(--hi-muted);line-height:1.55}.hi-guide em{font-style:normal;color:var(--hi-primary);font-weight:800;margin-top:auto;padding-top:1.5rem}
.hi-product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hi-product{display:flex;flex-direction:column;text-decoration:none;border:1px solid var(--hi-border);border-radius:22px;padding:1rem;min-width:0;transition:.25s}.hi-product:hover{transform:translateY(-5px);box-shadow:var(--hi-shadow);color:var(--hi-ink)}.hi-product-image{height:210px;border-radius:16px;background:#f7f8fa;display:grid;place-items:center;overflow:hidden;margin-bottom:1rem}.hi-product-image img{width:100%;height:100%;object-fit:contain;padding:1rem}.hi-product-image i{font-size:2.4rem;color:#aab1bd}.hi-product strong{font-size:1.15rem;margin:.35rem 0}.hi-product-bottom{margin-top:auto;padding-top:1.2rem;display:flex;justify-content:space-between;align-items:center;color:var(--hi-primary)}
.hi-dark-section{background:var(--hi-dark);color:#fff}.hi-dark-section .hi-heading-line>a{color:var(--hi-accent)}.hi-event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hi-event{display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:1.5rem;color:#fff;text-decoration:none;transition:.2s}.hi-event:hover{background:rgba(255,255,255,.06);color:#fff}.hi-event-date{width:66px;height:72px;border-radius:16px;background:var(--hi-primary);display:flex;flex-direction:column;align-items:center;justify-content:center}.hi-event-date b{font-size:1.7rem;line-height:1}.hi-event-date small{font-size:.68rem;letter-spacing:.1em}.hi-event span:nth-child(2){display:flex;flex-direction:column}.hi-event em{font-style:normal;color:var(--hi-accent);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.hi-event strong{font-size:1.1rem;margin:.25rem 0}.hi-event small{color:rgba(255,255,255,.58)}
.hi-logo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}.hi-logo-grid a{height:120px;border:1px solid var(--hi-border);border-radius:18px;display:grid;place-items:center;padding:1rem;text-decoration:none}.hi-logo-grid img{max-width:100%;max-height:70px;object-fit:contain;filter:grayscale(1);opacity:.72;transition:.2s}.hi-logo-grid a:hover img{filter:none;opacity:1}.hi-partner-section{padding:clamp(3rem,7vw,7rem) 0;background:#fff}.hi-partner-card{border-radius:30px;background:linear-gradient(135deg,var(--hi-primary),color-mix(in srgb,var(--hi-primary) 45%,var(--hi-accent)));color:#fff;padding:clamp(2rem,6vw,5rem);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3rem;align-items:end}.hi-partner-card h2{font-size:clamp(2.5rem,5vw,5.2rem);line-height:.93;letter-spacing:-.06em;font-weight:850;margin:0 0 1rem}.hi-partner-card p{max-width:780px;color:rgba(255,255,255,.8);font-size:1.1rem}.hi-partner-card .hi-kicker{color:#fff}.hi-button-light{background:#fff;color:var(--hi-primary);white-space:nowrap}
.site-footer{background:#050b14}.footer-brand{font-family:Inter,sans-serif;font-weight:850}.footer-heading{color:rgba(255,255,255,.48)}
@media(max-width:1199px){.hi-stat-grid{grid-template-columns:repeat(3,1fr)}.hi-product-grid{grid-template-columns:repeat(2,1fr)}.hi-logo-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:991px){.hi-intro-grid,.hi-partner-card{grid-template-columns:1fr}.hi-editorial-grid-three,.hi-guide-grid,.hi-event-grid{grid-template-columns:1fr}.hi-intro h1{font-size:clamp(3.2rem,12vw,6rem)}}
@media(max-width:767px){.hi-stat-grid{grid-template-columns:repeat(2,1fr)}.hi-product-grid,.hi-logo-grid{grid-template-columns:1fr 1fr}.hi-heading-line{align-items:start;flex-direction:column}.hi-intro{padding-top:3.5rem}.hi-intro h1{font-size:3.5rem}.hi-logo-grid a{height:95px}}
@media(max-width:480px){.hi-product-grid,.hi-logo-grid{grid-template-columns:1fr}.theme-switcher{display:none}.hi-stat strong{font-size:2rem}}
