  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 108px; }
  /* Site-wide guard: never allow horizontal scroll from decorative/overflowing
     elements. overflow-x:clip (not hidden) so it does not break sticky/fixed. */
  html, body { overflow-x: clip; }
  body {
    margin: 0;
    background: var(--as-paper);
    font-family: var(--as-font-body);
    color: var(--as-ink);
    -webkit-font-smoothing: antialiased;
    padding-top: 96px;            /* clear the floating navbar */
  }
  .wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; }

  /* ---- Floating pill navbar ---- */
  .topbar {
    position: fixed; top: 16px; left: 50%; transform: translateX(-50%);
    z-index: 60; width: min(1120px, calc(100% - 28px));
  }
  .topbar__inner {
    display: flex; align-items: center; gap: 14px;
    height: 62px; padding: 0 10px 0 22px;
    background: rgba(255,255,255,.78);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    border: 1px solid rgba(255,255,255,.6);
    border-radius: var(--as-r-pill);
    box-shadow: 0 10px 34px rgba(26,29,33,.13), 0 2px 8px rgba(26,29,33,.06);
  }
  .topbar__logo { height: 25px; width: auto; }
  .topnav { display: flex; gap: 1px; margin-left: auto; }
  .topnav a {
    font: 600 13.5px/1 var(--as-font-body); color: var(--as-ink);
    padding: 9px 13px; border-radius: var(--as-r-pill); transition: all .18s ease;
  }
  .topnav a:hover { background: var(--as-red-50); color: var(--as-red); }

  /* ---- Tile system ---- */
  .stack { display: flex; flex-direction: column; gap: 16px; padding-bottom: 16px; }
  .tile {
    background: #fff;
    border-radius: var(--as-r-xl);
    padding: clamp(24px, 3.4vw, 46px);
    box-shadow: 0 6px 28px rgba(26,29,33,.08), 0 1px 3px rgba(26,29,33,.05);
  }

  /* ---- Hero tile (the sexy example) ---- */
  .hero {
    position: relative; overflow: hidden;
    background: var(--as-red); color: #fff;
    border-radius: var(--as-r-xl);
    padding: clamp(38px, 5.5vw, 74px);
    box-shadow: var(--as-shadow-red);
  }
  .hero__logo { height: 30px; width: auto; filter: brightness(0) invert(1); }
  .hero h1 {
    font-family: var(--as-font-display); text-transform: uppercase;
    font-size: clamp(46px, 7.5vw, 96px); line-height: 1.0; letter-spacing: .035em;
    color: #fff; margin: 24px 0 0;
  }
  .hero h1 em { font-style: normal; color: #fff; }
  .hero__sub { max-width: 470px; margin: 20px 0 28px; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.92); }
  .hero__meta { display: flex; flex-wrap: wrap; gap: 10px; }
  .hero__pill {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.30);
    border-radius: var(--as-r-pill); padding: 10px 16px; font-size: 13px;
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  }
  .hero__pill span { opacity: .72; }
  .hero__pill b { font-weight: 600; }

  /* ---- Block heads ---- */
  .block__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; }
  .block__head .num { font-family: var(--as-font-display); color: var(--as-red); font-size: 22px; letter-spacing: .03em; }
  .block__head h2 { font-family: var(--as-font-display); text-transform: uppercase;
                    font-size: 30px; color: var(--as-black); margin: 0; line-height: 1; letter-spacing: .035em; }
  .block__head p { margin: 0 0 0 auto; max-width: 360px; font-size: 14px; color: var(--as-ink-soft); text-align: right; }

  .grid { display: grid; gap: 14px; }
  .g2 { grid-template-columns: repeat(2,1fr); }
  .g3 { grid-template-columns: repeat(3,1fr); }
  .g4 { grid-template-columns: repeat(4,1fr); }

  /* ---- Color swatches ---- */
  .swatch { border-radius: var(--as-r-md); overflow: hidden; background: var(--as-paper); }
  .swatch__chip { height: 92px; }
  .swatch__meta { padding: 12px 14px; display:flex; flex-direction:column; gap:2px; }
  .swatch__meta b { font-size: 14px; color: var(--as-black); }
  .swatch__meta code { font: 500 12px/1.4 ui-monospace, monospace; color: var(--as-ink-soft); }

  /* ---- Type specimen ---- */
  .specimen { background: var(--as-paper); border-radius: var(--as-r-lg); padding: 26px 30px; }
  .specimen + .specimen { margin-top: 14px; }
  .specimen .tag { font: 600 12px/1 var(--as-font-body); color: var(--as-ink-soft); letter-spacing:.04em; }
  .specimen .ex { margin-top: 12px; }

  /* ---- Demo cells (nested tiles) ---- */
  .cell { background: var(--as-paper); border-radius: var(--as-r-lg); padding: 24px;
          display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
  .cell--col { flex-direction: column; align-items: stretch; }
  .cell__label { width:100%; font:600 11px/1 var(--as-font-body); letter-spacing:.08em; text-transform:uppercase;
                 color: var(--as-ink-soft); margin-bottom: 4px; }
  .cell--dark { background: var(--as-black); }
  .cell--red { background: var(--as-red); position: relative; overflow: hidden; }

  /* icon set */
  .iconcell { display:flex; flex-direction:column; align-items:center; gap:10px;
              padding:18px 8px; background:var(--as-paper); border-radius:var(--as-r-md); }
  .iconcell .as-icon { width:28px; height:28px; color:var(--as-red); }
  .iconcell span:last-child { font-size:12px; color:var(--as-ink-soft); }

  /* radius demo */
  .radius-demo { display:flex; flex-direction:column; align-items:center; gap:10px; }
  .radius-demo .box { width:100%; height:84px; background:#fff; border:1.5px solid var(--as-red);
                      display:grid; place-items:center; color:var(--as-red); font-weight:700; }
  .radius-demo small { font-size:12px; color:var(--as-ink-soft); }

  /* footer demo */
  .footdemo { position: relative; overflow: hidden; border-radius: var(--as-r-xl);
              background: var(--as-red); color:#fff; padding: 0 clamp(24px,4vw,52px) 38px; }
  .footdemo__fade { position:absolute; top:0; left:0; right:0; height:190px; z-index:0;
              background: linear-gradient(180deg, #fff 0%, #FFD2D2 42%, var(--as-red) 100%); }
  .footdemo__top { text-align:center; padding-top:128px; }
  .footdemo .footlogo { height:38px; filter:brightness(0) invert(1); margin:0 auto 20px; display:block; }
  .footdemo__eyebrow { font:700 12px/1 var(--as-font-body); letter-spacing:.2em; text-transform:uppercase;
              opacity:.82; margin:0 0 12px; }
  .footdemo__title { font-family:var(--as-font-display); text-transform:uppercase; letter-spacing:.03em;
              font-size:clamp(24px,3vw,34px); line-height:1; margin:0 0 26px; }
  .footdemo__stores { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:50px; }
  .footdemo__cols { display:grid; grid-template-columns: repeat(4,1fr); gap: 28px; }
  .footdemo h4 { font:700 12px/1 var(--as-font-body); letter-spacing:.12em; text-transform:uppercase;
              opacity:.82; margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.28); }
  .footdemo__cols a { display:block; color:#fff; opacity:.9; font-size:14.5px; padding:7px 0; }
  .footdemo__cols a:hover { opacity:1; padding-left:4px; transition:.15s; }
  .footdemo__alllink { font-weight:600; display:inline-flex !important; align-items:center; gap:6px; margin-top:8px; }
  .footdemo__social { display:flex; gap:16px; justify-content:center; margin:42px 0 26px; }
  .footdemo__social a { width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(255,255,255,.5);
              display:grid; place-items:center; color:#fff; transition:all .2s ease; }
  .footdemo__social a:hover { background:#fff; color:var(--as-red); border-color:#fff; }
  .footdemo__social svg { width:19px; height:19px; }
  .footdemo__copy { display:flex; gap:8px 16px; justify-content:center; align-items:center; flex-wrap:wrap;
              border-top:1px solid rgba(255,255,255,.22); padding-top:24px; font-size:13.5px; opacity:.92; }
  .footdemo__copy span { white-space:nowrap; }
  .footdemo__copy a { color:#fff; }
  .footdemo__copy .dot { opacity:.5; }

  /* page footer */
  .pagefoot { text-align:center; padding: 12px 0 8px; color: var(--as-ink-soft); font-size:13px; }

  /* blog grid */
  .bloggrid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .blogfoot { text-align:center; margin-top:30px; }

  @media (max-width: 860px) {
    .g4, .g3, .g2, .footdemo__cols, .bloggrid { grid-template-columns: 1fr 1fr; }
    .topnav { display:none; }
  }
  @media (max-width: 560px) {
    .g4, .g3, .g2, .footdemo__cols, .bloggrid { grid-template-columns: 1fr; }
  }
