/* Shared one-column page composition. Public sizing is maintained here. */
@container public-site (min-width: 0px) {
  .hero-grid { gap: 38px; grid-template-columns: 1fr; }
  .hero-visual { width: min(100%, 760px); margin-inline: auto; min-height: 520px; margin-top: -10px; }
  .intelligence-panel { transform: none; padding: 14px; border-radius: 22px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .metric-card { min-height: 91px; padding: 12px; }
  .feature-grid { grid-template-columns: 1fr; }
  .site-header { --header-height: 72px; height: auto; min-height: var(--header-height); }
  .hero { min-height: auto; padding: 50px 0 48px; }
  .hero-copy { max-width: 820px; }
  .engine-grid { grid-template-columns: 1fr; }
  .engine-copy { max-width: 800px; }
  .category-grid { grid-template-columns: 1fr; }
  .detail-grid { grid-template-columns: 1fr; }
  .cta-panel { padding: 42px 28px; grid-template-columns: minmax(0, 1fr); }
  .container, .container-narrow { width: min(calc(100% - 30px), var(--content-max-width)); }
  .section { padding-block: 78px; }
  .section-compact { padding-block: 58px; }
  .header-inner { position: relative; flex-wrap: wrap; gap: 8px; padding-block: 14px; }
  .brand-sub { display: none; }
  .header-actions { margin-left: auto; gap: 6px; }
  .header-actions .button-quiet { display: none; }
  .hero h1 { font-size: clamp(2.9rem, 12.2cqw, 3.8rem); }
  .hero-visual:hover .intelligence-panel { transform: translateY(-2px); }
  .floating-shield { display: none; }
  .floating-core { left: -4px; bottom: 38px; width: 70px; height: 70px; }
  .panel-lower { grid-template-columns: 1fr; }
  .panel-module:last-child { display: none; }
  .feature-card { min-height: 250px; padding: 22px; }
  .feature-icon { margin-bottom: 34px; }
  .process-panel { padding: 36px 26px; }
  .process-grid { grid-template-columns: 1fr; gap: 42px; }
  .process-grid::before { top: 48px; bottom: 48px; right: auto; width: 1px; height: auto; left: 39px; }
  .process-step { display: grid; text-align: left; align-items: center; grid-template-columns: 78px 1fr; gap: 15px; }
  .process-icon { margin: 0; width: 78px; height: 78px; }
  .process-step p { max-width: none; margin: 0; }
  .process-number { right: auto; left: 61px; }
  .engine-visual { padding: 20px; min-height: 420px; width: 100%; max-width: 430px; margin-inline: auto; }
  .engine-core { min-height: 380px; }
  .core-orbit.one { width: 270px; height: 270px; }
  .engine-node { padding: 9px 11px; min-width: 104px; max-width: 116px; }
  .project-list-head { display: none; }
  .project-row { gap: 12px; padding: 17px; grid-template-columns: 1fr auto; }
  .project-category, .project-network, .project-trend { display: none; }
  .project-identity { grid-template-columns: 40px 1fr; }
  .project-logo { width: 40px; height: 40px; }
  .toolbar { align-items: flex-start; flex-direction: column; }
  .page-hero { padding-top: 56px; }
  .page-hero-grid, .project-header-grid { grid-template-columns: 1fr; }
  .project-actions { justify-self: start; width: 100%; flex-direction: column; }
  .detail-metrics { grid-template-columns: 1fr; }
  .method-grid { grid-template-columns: 1fr; }
  .site-header, .page, .site-footer { font-size: 15px; }
  .preview-pill { display: none; }
  .brand-name { font-size: 0.94rem; }
  .hero-copy .body-large { font-size: 1rem; }
  .search-control { grid-template-columns: 22px 1fr auto; min-height: 62px; padding-left: 15px; border-radius: 18px; }
  .search-submit { width: 42px; min-height: 42px; padding: 0; }
  .search-submit span { display: none; }
  .search-hint { font-size: 0.7rem; }
  .hero-meta { display: grid; gap: 8px; }
  .panel-title h2 { font-size: 0.8rem; }
  .panel-status { display: none; }
  .metric-label { font-size: 0.57rem; }
  .metric-value { font-size: 1.28rem; }
  .metric-trend { font-size: 0.58rem; }
  .panel-module { min-height: 196px; padding: 14px; }
  .donut-wrap { grid-template-columns: 94px 1fr; gap: 10px; }
  .donut { width: 92px; }
  .donut::after { inset: 15px; }
  .core-orbit.two { width: 210px; height: 210px; }
  .core-object { width: 108px; height: 108px; border-radius: 31px; }
  .engine-node strong { font-size: 0.65rem; }
  .engine-node.source { left: -8px; top: 11%; }
  .engine-node.verify { right: -8px; top: 18%; }
  .engine-node.analysis { left: -8px; bottom: 13%; }
  .engine-node.output { right: -8px; bottom: 10%; }
  .project-verification { display: none; }
  .category-card { min-height: 190px; }
  .project-title-wrap { align-items: flex-start; }
  .project-title-logo { width: 58px; height: 58px; border-radius: 17px; }
  .project-actions .button { width: 100%; }
  .timeline-row { grid-template-columns: 16px 1fr; }
  .timeline-time { grid-column: 2; }
  .cta-actions { flex-direction: column; }
  .cta-actions .button { width: 100%; }
  .site-header .nav { position: absolute; top: 100%; right: 0; left: 0; display: none; max-height: calc(100dvh - 160px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #52748c transparent; clip-path: inset(0 round 18px); padding: 12px; border: 1px solid var(--glass-border); border-radius: 18px; background: rgba(4, 18, 34, 0.97); box-shadow: 0 24px 60px rgba(0, 4, 14, 0.64); }
  .site-header .nav.open { display: grid; }
  .site-header .nav-link { padding: 12px 9px; }
  .site-header .nav-session-link { display: block; }
  .site-header .menu-toggle { display: inline-grid; width: 42px; height: 42px; place-content: center; padding: 0; }
  .hero-copy .search-control { grid-template-columns: 22px minmax(0,1fr) auto; }
  .hero-copy .search-submit { width: 44px; padding: 0; }
}

/* Desktop framing uses the viewport; page content retains its reading width. */
@container public-site (min-width: 821px) {
  .container { width: min(calc(100% - 64px), 1280px); }
  .container-narrow { width: min(calc(100% - 64px), 1000px); }
  .site-header > .container, .site-footer > .container { width: min(calc(100% - 64px), 1760px); }
  .site-header, .page, .site-footer { font-size: 1rem; }
  .header-inner { min-height: 76px; gap: 16px; }
  .site-header .nav { left: auto; width: 320px; }
  .brand-name { font-size: 1.05rem; }
  .header-actions { gap: 10px; }

  h2 { font-size: clamp(2.15rem, 3.5cqw, 3rem); }
  .page-hero h1 { font-size: clamp(2.6rem, 4.3cqw, 3.5rem); }
  .body-large { font-size: 1.125rem; }
  .hero { padding-block: 40px 56px; }
  .hero-grid { gap: 36px; }
  .hero-copy { max-width: none; min-width: 0; }
  .hero h1 { max-width: 1040px; margin-bottom: 24px; font-size: clamp(3rem, 4.4cqw, 3.5rem); }
  .hero-copy .body-large { max-width: 860px; margin-bottom: 28px; font-size: 1.125rem; }
  .hero-copy .search-control { max-width: 1040px; min-height: 64px; }
  .search-hint { max-width: 1040px; font-size: 0.875rem; }
  .hero-meta { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; font-size: 0.875rem; }

  .engine-visual { max-width: 560px; min-height: 480px; padding: 24px; }
  .engine-core { min-height: 430px; }
  .core-orbit.one { width: 330px; height: 330px; }
  .core-orbit.two { width: 260px; height: 260px; }
  .core-object { width: 132px; height: 132px; }
  .engine-node { min-width: 140px; max-width: 156px; padding: 12px; }
  .engine-node .label { font-size: 0.75rem; }
  .engine-node strong { font-size: 0.875rem; }
  .engine-node.source, .engine-node.analysis { left: 0; }
  .engine-node.verify, .engine-node.output { right: 0; }
}

/* Footer columns wrap only when the available width requires it. */
@container public-site (min-width: 821px) and (max-width: 1099px) {
  .footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand p { max-width: 600px; }
}
@container public-site (max-width: 820px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}
@container public-site (max-width: 540px) {
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-brand { grid-column: auto; }
}
@container public-site (max-width: 380px) {
  .language-option { min-width: 26px; padding-inline: 4px; }
  .site-header .menu-toggle { width: 34px; }
}
