
  :root{
    --bg:#f1f4ff;
    --ink:#1c2030;
    --ink-soft:#2a2f45;
    --muted:#5b6275;
    --faint:#8a90a6;
    --card:#ffffff;
    --line:#e4e8f6;
    --line-strong:#d4daf0;
    --navy:#39406e;
    --burgundy:#7a3b4d;
    --forest:#3f5a4a;
    --shadow:0 18px 45px -22px rgba(44,52,90,.35);
    --shadow-soft:0 8px 28px -16px rgba(44,52,90,.22);
    --serif:Georgia,"Palatino Linotype","Book Antiqua","Times New Roman",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  }

  *{box-sizing:border-box;margin:0;padding:0}

  html{scroll-behavior:smooth}

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }

  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}

  /* ---------- decorative background ---------- */
  .halo{
    position:relative;
    overflow:hidden;
  }
  .halo::before{
    content:"";
    position:absolute;
    top:-180px;left:50%;transform:translateX(-50%);
    width:900px;height:560px;
    background:radial-gradient(circle at center,rgba(57,64,110,.14),rgba(57,64,110,0) 62%);
    pointer-events:none;
    z-index:0;
  }

  /* ---------- header ---------- */
  header{
    padding:30px 0 0;
    position:relative;
    z-index:2;
  }
  .topline{
    display:flex;align-items:center;justify-content:space-between;
    padding-bottom:18px;border-bottom:1px solid var(--line-strong);
  }
  .topline .mark{
    font-family:var(--serif);
    font-size:19px;letter-spacing:.4px;color:var(--ink);
  }
  .topline .mark em{font-style:italic;color:var(--navy)}
  .topline .tag{
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);
    font-weight:600;
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;z-index:1;
    display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
    padding:72px 0 60px;
  }
  .eyebrow{
    font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--navy);
    font-weight:700;margin-bottom:20px;
  }
  .hero h1{
    font-family:var(--serif);
    font-weight:500;
    font-size:clamp(38px,5.6vw,62px);
    line-height:1.06;letter-spacing:-.01em;color:var(--ink);
    margin-bottom:26px;
  }
  .hero h1 em{font-style:italic;color:var(--navy)}
  .hero .lede{
    font-size:17.5px;color:var(--muted);max-width:44ch;margin-bottom:30px;
  }
  .hero .lede strong{color:var(--ink-soft);font-weight:600}
  .swatches{display:flex;gap:12px;align-items:center}
  .swatch{
    width:30px;height:30px;border-radius:50%;
    border:3px solid #fff;box-shadow:0 0 0 1px var(--line-strong),var(--shadow-soft);
  }
  .swatches .lbl{font-size:12.5px;letter-spacing:.08em;color:var(--faint);margin-left:6px;text-transform:uppercase}

  .hero-figure{
    position:relative;
  }
  .hero-figure .frame{
    background:#fff;border-radius:22px;padding:14px;box-shadow:var(--shadow);
  }
  .hero-figure img{
    display:block;width:100%;height:auto;border-radius:14px;
  }
  .hero-figure .note{
    position:absolute;right:-6px;bottom:-16px;
    background:#fff;border-radius:12px;padding:10px 16px;
    font-size:12.5px;color:var(--ink-soft);box-shadow:var(--shadow-soft);
    letter-spacing:.02em;
  }
  .hero-figure .note b{color:var(--navy)}

  /* ---------- section scaffolding ---------- */
  section{position:relative;z-index:1;padding:66px 0}
  .rule{height:1px;background:var(--line-strong);border:none;margin:0}
  .sec-head{margin-bottom:38px}
  .sec-head .num{
    font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-weight:700;
    margin-bottom:10px;
  }
  .sec-head h2{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(28px,3.6vw,40px);line-height:1.14;color:var(--ink);
  }
  .sec-head h2 em{font-style:italic;color:var(--navy)}
  .sec-head p{color:var(--muted);margin-top:14px;max-width:60ch}

  /* ---------- intro story ---------- */
  .story{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .story p{font-size:15.5px;color:var(--muted)}
  .story p strong{color:var(--ink-soft);font-weight:600}
  .story .lead-in{
    grid-column:1 / -1;
    font-family:var(--serif);font-size:22px;line-height:1.5;color:var(--ink-soft);
    border-left:3px solid var(--navy);padding-left:22px;margin-bottom:8px;
  }

  /* ---------- gallery ---------- */
  .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 28px}
  .figure{display:flex;flex-direction:column}
  .figure .role{
    font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);
    font-weight:700;margin-bottom:12px;
  }
  .figure .shot{
    background:#fff;border-radius:16px;padding:8px;box-shadow:var(--shadow-soft);
  }
  .figure .shot img{display:block;width:100%;height:auto;border-radius:11px}
  .figure figcaption{margin-top:14px}
  .figure figcaption h3{
    font-family:var(--serif);font-weight:500;font-size:19px;color:var(--ink);margin-bottom:5px;
  }
  .figure figcaption p{font-size:14px;color:var(--muted);line-height:1.55}

  .group-label{
    grid-column:1 / -1;
    display:flex;align-items:center;gap:16px;
    margin-top:18px;padding-top:6px;
  }
  .group-label:first-of-type{margin-top:0}
  .group-label span{
    font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);font-weight:700;
    white-space:nowrap;
  }
  .group-label .line{flex:1;height:1px;background:var(--line-strong)}

  /* ---------- features ---------- */
  .features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .feat{
    background:var(--card);border:1px solid var(--line);border-radius:18px;
    padding:28px 26px;box-shadow:var(--shadow-soft);
  }
  .feat .icon{
    font-family:var(--serif);font-size:30px;color:var(--navy);line-height:1;margin-bottom:16px;
  }
  .feat h3{font-family:var(--serif);font-weight:500;font-size:19px;margin-bottom:10px;color:var(--ink)}
  .feat p{font-size:14.5px;color:var(--muted)}

  /* ---------- colorways / occasions ---------- */
  .duo{display:grid;grid-template-columns:1fr 1fr;gap:28px}
  .panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 28px;box-shadow:var(--shadow-soft)}
  .panel h3{font-family:var(--serif);font-weight:500;font-size:21px;margin-bottom:18px}
  .panel ul{list-style:none}
  .panel li{
    display:flex;align-items:center;gap:12px;padding:10px 0;
    border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-soft);
  }
  .panel li:last-child{border-bottom:none}
  .dot{width:16px;height:16px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}

  /* ---------- faq ---------- */
  .faq{display:flex;flex-direction:column;gap:0}
  .faq-item{padding:24px 4px;border-bottom:1px solid var(--line-strong)}
  .faq-item:last-child{border-bottom:none}
  .faq-item .q{
    font-family:var(--serif);font-weight:500;font-size:19px;color:var(--ink);
    margin-bottom:9px;padding-left:0;position:relative;
  }
  .faq-item .q::before{
    content:"Q";font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;
    color:var(--burgundy);margin-right:12px;vertical-align:middle;
  }
  .faq-item .a{color:var(--muted);font-size:15px;max-width:78ch;padding-left:34px}

  /* ---------- footer ---------- */
  footer{padding:52px 0 64px;text-align:center;position:relative;z-index:1}
  footer .line{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink-soft)}
  footer .sub{margin-top:10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}

  /* ---------- responsive ---------- */
  @media (max-width:900px){
    .hero{grid-template-columns:1fr;gap:40px;padding:48px 0}
    .hero h1{font-size:clamp(34px,9vw,48px)}
    .story{grid-template-columns:1fr}
    .story .lead-in{grid-column:auto;font-size:20px}
    .gallery-grid{grid-template-columns:repeat(2,1fr);gap:26px 18px}
    .features{grid-template-columns:1fr 1fr}
    .duo{grid-template-columns:1fr}
    .topline{flex-direction:column;gap:8px;align-items:flex-start}
  }
  @media (max-width:560px){
    .wrap{padding:0 18px}
    .gallery-grid{grid-template-columns:1fr}
    .features{grid-template-columns:1fr}
    .hero-figure .note{position:static;margin-top:12px;display:inline-block}
    .figure figcaption h3{font-size:18px}
  }
