
    :root{
      --ivory: #fbf6ea;
      --vellum: rgba(255, 250, 243, .78);
      --vellum-2: rgba(255, 250, 243, .62);
      --seafoam: #7fbfb2;
      --sage: #a8b9a4;
      --blush: #e7b6b0;
      --merlot: #5a1f33;
      --merlot-2:#7b2b43;
      --drift: #241a1d;
      --ink: #1f2321;
      --muted: #5c6a64;

      --line: rgba(90, 31, 51, .18);
      --line-2: rgba(36, 26, 29, .14);
      --shadow: 0 18px 45px rgba(36, 26, 29, .12);

      --radius-xl: 26px;
      --radius-lg: 20px;
      --radius-md: 16px;
      --radius-sm: 12px;

      --container: 1140px;
      --focus: 0 0 0 3px rgba(127, 191, 178, .35), 0 0 0 6px rgba(231, 182, 176, .18);

      --serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Garamond, Georgia, serif;
      --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    }

    *{ box-sizing:border-box; }
    html{ scroll-behavior:smooth; }
    body{
      margin:0;
      color:var(--ink);
      background:
        radial-gradient(1200px 800px at 20% -10%, rgba(127,191,178,.28), transparent 55%),
        radial-gradient(900px 700px at 95% 15%, rgba(231,182,176,.22), transparent 52%),
        radial-gradient(900px 700px at 20% 110%, rgba(168,185,164,.22), transparent 55%),
        linear-gradient(180deg, #fffaf1, var(--ivory));
      font-family: var(--sans);
      line-height: 1.6;
      overflow-x:hidden;
    }

    /* Linen grain + sea-salt patina */
    body::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      background:
        repeating-linear-gradient(90deg, rgba(36,26,29,.02) 0 1px, transparent 1px 7px),
        repeating-linear-gradient(0deg, rgba(36,26,29,.015) 0 1px, transparent 1px 6px);
      mix-blend-mode:multiply;
      opacity:.55;
      z-index:-1;
    }

    a{ color: color-mix(in srgb, var(--seafoam) 70%, var(--merlot) 30%); text-decoration: none; }
    a:hover{ color: var(--merlot); }
    a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible{
      outline:none;
      box-shadow: var(--focus);
      border-color: color-mix(in srgb, var(--seafoam) 65%, var(--merlot) 35%);
    }

    .container{
      width:min(var(--container), calc(100% - 2rem));
      margin-inline:auto;
    }

    /* Header / Nav */
    header{
      position:sticky;
      top:0;
      z-index:50;
      background: linear-gradient(180deg, rgba(251,246,234,.86), rgba(251,246,234,.64));
      border-bottom: 1px solid rgba(90,31,51,.10);
      backdrop-filter: blur(10px);
    }
    .topbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding: .9rem 0;
      gap: 1rem;
    }

    .brand{
      display:flex;
      align-items:baseline;
      gap:.75rem;
      min-width: 220px;
    }
    .brand__mark{
      width: 38px; height: 38px;
      border-radius: 14px;
      background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,.8), transparent 45%),
        linear-gradient(135deg, rgba(127,191,178,.9), rgba(231,182,176,.85));
      box-shadow: 0 10px 25px rgba(90,31,51,.14);
      border: 1px solid rgba(90,31,51,.12);
      position:relative;
      overflow:hidden;
    }
    .brand__mark::after{
      content:"";
      position:absolute;
      inset:-2px;
      background:
        radial-gradient(20px 18px at 65% 45%, rgba(90,31,51,.18), transparent 60%),
        radial-gradient(18px 14px at 45% 65%, rgba(36,26,29,.12), transparent 55%),
        radial-gradient(12px 10px at 25% 35%, rgba(255,255,255,.65), transparent 60%);
      transform: rotate(-8deg);
      opacity:.9;
    }
    .brand__title{
      font-family: var(--serif);
      letter-spacing: .02em;
      font-weight: 700;
      color: var(--drift);
      line-height: 1.1;
    }
    .brand__title span{
      display:block;
      font-weight: 600;
      font-style: italic;
      color: color-mix(in srgb, var(--merlot) 74%, var(--drift) 26%);
      letter-spacing: .01em;
    }
    .brand__tag{
      display:none;
      color: var(--muted);
      font-size: .92rem;
      margin-top: .2rem;
    }

    nav{
      display:flex;
      align-items:center;
      justify-content:center;
      flex: 1;
    }
    nav ul{
      list-style:none;
      display:flex;
      gap: 1.1rem;
      padding:0;
      margin:0;
      align-items:center;
      flex-wrap:wrap;
      justify-content:center;
    }
    nav li{ margin:0; padding:0; }
    nav a{
      position:relative;
      display:inline-block;
      padding:.55rem .75rem;
      border-radius: 999px;
      color: color-mix(in srgb, var(--drift) 80%, var(--merlot) 20%);
      border: 1px solid transparent;
      transition: transform .35s ease, background .35s ease, border-color .35s ease, color .35s ease;
      font-weight: 600;
      letter-spacing: .01em;
    }
    nav a::after{
      content:"";
      position:absolute;
      left:.9rem; right:.9rem; bottom:.38rem;
      height: 2px;
      border-radius: 2px;
      background: linear-gradient(90deg, rgba(127,191,178,.0), rgba(127,191,178,.55), rgba(231,182,176,.55), rgba(127,191,178,.0));
      transform: scaleX(.15);
      transform-origin:center;
      opacity:.8;
      transition: transform .45s ease;
    }
    nav a:hover{
      background: rgba(255,250,243,.65);
      border-color: rgba(90,31,51,.12);
      transform: translateY(-1px);
      color: var(--merlot);
    }
    nav a:hover::after{ transform: scaleX(1); }

    .header-actions{
      display:flex;
      gap:.6rem;
      align-items:center;
      justify-content:flex-end;
      min-width: 220px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:.65rem .95rem;
      border-radius: 999px;
      border: 1px solid rgba(90,31,51,.22);
      background:
        radial-gradient(140px 60px at 25% 20%, rgba(255,255,255,.75), transparent 60%),
        linear-gradient(135deg, color-mix(in srgb, var(--blush) 70%, #fff 30%), color-mix(in srgb, var(--merlot-2) 68%, var(--blush) 32%));
      color: #fff;
      font-weight: 700;
      letter-spacing: .02em;
      box-shadow: 0 14px 30px rgba(90,31,51,.18);
      transition: transform .35s ease, box-shadow .35s ease, filter .35s ease, border-color .35s ease;
      text-shadow: 0 1px 0 rgba(36,26,29,.22);
      white-space:nowrap;
    }
    .btn:hover{
      transform: translateY(-2px);
      box-shadow: 0 18px 38px rgba(90,31,51,.22);
      filter: saturate(1.06) brightness(1.02);
      border-color: rgba(255,255,255,.22);
    }
    .btn--ghost{
      background:
        linear-gradient(180deg, rgba(255,250,243,.82), rgba(255,250,243,.58));
      color: var(--merlot);
      text-shadow:none;
      border-color: rgba(90,31,51,.16);
      box-shadow: 0 12px 26px rgba(36,26,29,.08);
    }
    .btn--ghost:hover{
      border-color: rgba(127,191,178,.35);
      box-shadow: 0 16px 34px rgba(36,26,29,.11);
    }

    /* Burger (CSS-only) for <1200px */
    .nav-toggle{
      position:absolute;
      width:1px;height:1px;
      margin:-1px; padding:0;
      overflow:hidden;
      clip: rect(0 0 0 0);
      border:0;
    }
    .burger{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width: 44px; height: 44px;
      border-radius: 14px;
      border: 1px solid rgba(90,31,51,.18);
      background: linear-gradient(180deg, rgba(255,250,243,.78), rgba(255,250,243,.52));
      box-shadow: 0 12px 26px rgba(36,26,29,.09);
      cursor:pointer;
      transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
    }
    .burger:hover{ transform: translateY(-1px); border-color: rgba(127,191,178,.28); box-shadow: 0 16px 30px rgba(36,26,29,.11); }
    .burger span{
      width: 18px; height: 2px; border-radius: 2px;
      background: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%);
      position:relative;
      display:block;
      transition: transform .35s ease, background .35s ease;
    }
    .burger span::before, .burger span::after{
      content:"";
      position:absolute;
      left:0;
      width: 18px; height: 2px;
      border-radius: 2px;
      background: inherit;
      transition: transform .35s ease, top .35s ease, opacity .35s ease;
    }
    .burger span::before{ top:-6px; }
    .burger span::after{ top:6px; }

    .nav-panel{
      display:none;
      border-top: 1px solid rgba(90,31,51,.10);
      background: linear-gradient(180deg, rgba(251,246,234,.88), rgba(251,246,234,.70));
      backdrop-filter: blur(10px);
    }
    .nav-panel nav{ padding: .6rem 0 1rem; }
    .nav-panel nav ul{
      flex-direction:column;
      gap: .35rem;
      align-items:stretch;
    }
    .nav-panel nav a{
      width:100%;
      padding:.8rem 1rem;
      border-radius: 16px;
      border-color: rgba(90,31,51,.10);
      background: rgba(255,250,243,.55);
    }

    /* Toggle behavior */
    #menu:checked ~ .nav-panel{ display:block; }
    #menu:checked ~ .topbar .burger span{ background: transparent; }
    #menu:checked ~ .topbar .burger span::before{ top:0; transform: rotate(45deg); background: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%); }
    #menu:checked ~ .topbar .burger span::after{ top:0; transform: rotate(-45deg); background: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%); }

    /* HERO */
    .hero{
      position:relative;
      padding: 1.4rem 0 2.2rem;
    }
    .hero__grid{
      display:grid;
      gap: 1.2rem;
      align-items:stretch;
    }
    .hero__copy{
      padding: 1.1rem 1.1rem 1.2rem;
      background:
        radial-gradient(420px 220px at 15% 0%, rgba(255,255,255,.72), transparent 65%),
        linear-gradient(180deg, var(--vellum), rgba(255,250,243,.56));
      border: 1px solid rgba(90,31,51,.12);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow);
      position:relative;
      overflow:hidden;
    }
    .hero__copy::before{
      content:"";
      position:absolute;
      inset:-20px;
      background:
        radial-gradient(220px 160px at 12% 18%, rgba(127,191,178,.20), transparent 64%),
        radial-gradient(260px 220px at 90% 20%, rgba(231,182,176,.18), transparent 62%),
        radial-gradient(220px 200px at 78% 85%, rgba(168,185,164,.18), transparent 62%);
      filter: blur(1px);
      opacity:.9;
      pointer-events:none;
    }
    .hero__copy > *{ position:relative; }

    .kicker{
      display:inline-flex;
      align-items:center;
      gap:.55rem;
      font-size: .9rem;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--muted) 65%, var(--merlot) 35%);
      margin:0 0 .6rem;
    }
    .kicker::before{
      content:"";
      width: 26px; height: 10px;
      border-radius: 999px;
      border: 1px solid rgba(90,31,51,.18);
      background: linear-gradient(90deg, rgba(127,191,178,.65), rgba(231,182,176,.60));
      box-shadow: 0 10px 18px rgba(90,31,51,.10);
    }

    .hero h1{
      margin: 0 0 .65rem;
      font-family: var(--serif);
      font-weight: 800;
      letter-spacing: .01em;
      line-height: 1.06;
      color: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%);
      font-size: clamp(2rem, 4.2vw, 3.35rem);
    }
    .hero h1 em{
      font-style: italic;
      font-weight: 700;
      color: var(--merlot);
      letter-spacing: .005em;
    }

    .hero p{
      margin: 0 0 1rem;
      color: var(--muted);
      font-size: 1.04rem;
      max-width: 58ch;
    }

    .hero__cta{
      display:flex;
      flex-wrap:wrap;
      gap: .75rem;
      align-items:center;
      margin-top: .75rem;
    }

    .hero__meta{
      margin-top: 1rem;
      display:grid;
      grid-template-columns: 1fr;
      gap:.65rem;
    }
    .meta-chip{
      display:flex;
      align-items:flex-start;
      gap:.65rem;
      padding: .8rem .9rem;
      border-radius: 18px;
      border: 1px solid rgba(90,31,51,.10);
      background: rgba(255,250,243,.54);
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    }
    .meta-chip:hover{
      transform: translateY(-2px);
      box-shadow: 0 16px 34px rgba(36,26,29,.10);
      border-color: rgba(127,191,178,.22);
    }
    .meta-ico{
      width: 34px; height: 34px;
      border-radius: 14px;
      border: 1px solid rgba(90,31,51,.14);
      background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.75), transparent 55%),
        linear-gradient(135deg, rgba(127,191,178,.60), rgba(231,182,176,.55));
      box-shadow: 0 12px 22px rgba(90,31,51,.10);
      flex: 0 0 auto;
      display:grid;
      place-items:center;
    }
    .meta-ico svg{ width: 18px; height: 18px; opacity:.9; }
    .meta-chip strong{
      display:block;
      font-weight: 800;
      color: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%);
      letter-spacing:.01em;
    }
    .meta-chip span{
      display:block;
      font-size: .95rem;
      color: var(--muted);
      margin-top:.12rem;
    }

    /* Slider (CSS-only, <=600px height) */
    .slider{
      border-radius: var(--radius-xl);
      overflow:hidden;
      border: 1px solid rgba(90,31,51,.12);
      box-shadow: var(--shadow);
      background: rgba(255,250,243,.55);
      max-height: 600px;
      height: min(56vh, 520px);
      position:relative;
    }
    .slides{
      width: 300%;
      height: 100%;
      display:flex;
      animation: glide 16s ease-in-out infinite;
    }
    .slide{
      width: calc(100% / 3);
      height: 100%;
      position:relative;
      display:grid;
      place-items:end start;
      padding: 1.15rem;
      background-size: cover;
      background-position: center;
      filter: saturate(.92) contrast(.98);
    }
    .slide::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(900px 380px at 10% 10%, rgba(255,255,255,.30), transparent 55%),
        linear-gradient(180deg, rgba(36,26,29,.20), rgba(36,26,29,.40));
      mix-blend-mode:multiply;
    }
    .slide__caption{
      position:relative;
      max-width: 52ch;
      background: rgba(255,250,243,.62);
      border: 1px solid rgba(255,255,255,.55);
      border-radius: 18px;
      padding: .85rem .95rem;
      backdrop-filter: blur(6px);
      box-shadow: 0 16px 35px rgba(36,26,29,.18);
    }
    .slide__caption h2{
      font-family: var(--serif);
      margin:0 0 .2rem;
      font-size: 1.2rem;
      color: var(--drift);
      letter-spacing:.01em;
    }
    .slide__caption p{
      margin:0;
      color: var(--muted);
      font-size: .96rem;
    }

    @keyframes glide{
      0%, 26% { transform: translateX(0%); }
      33%, 59% { transform: translateX(-33.3333%); }
      66%, 92% { transform: translateX(-66.6667%); }
      100% { transform: translateX(0%); }
    }

    /* Main sections */
    main{ padding: 1.2rem 0 2rem; }

    .section{
      padding: 2rem 0;
      position:relative;
    }
    .section__head{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap: 1rem;
      margin-bottom: 1rem;
    }
    .section__head h2{
      margin:0;
      font-family: var(--serif);
      font-size: clamp(1.4rem, 2.4vw, 2rem);
      letter-spacing:.01em;
      color: color-mix(in srgb, var(--drift) 70%, var(--merlot) 30%);
    }
    .section__head p{
      margin:0;
      color: var(--muted);
      max-width: 62ch;
      font-size: 1rem;
    }

    .cards{
      display:grid;
      grid-template-columns: 1fr;
      gap: 1rem;
    }

    .card{
      border-radius: var(--radius-lg);
      border: 1px solid rgba(90,31,51,.12);
      overflow:hidden;
      background: linear-gradient(180deg, var(--vellum), rgba(255,250,243,.56));
      box-shadow: 0 16px 34px rgba(36,26,29,.09);
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease, filter .45s ease;
      position:relative;
    }
    .card:hover{
      transform: translateY(-4px);
      box-shadow: 0 24px 50px rgba(36,26,29,.12);
      border-color: rgba(127,191,178,.26);
      filter: saturate(1.02);
    }
    .card__media{
      aspect-ratio: 16 / 10;
      background-size: cover;
      background-position: center;
      position:relative;
      filter: saturate(.92) contrast(.98);
    }
    .card__media::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(700px 240px at 12% 10%, rgba(255,255,255,.26), transparent 55%),
        linear-gradient(180deg, rgba(36,26,29,.06), rgba(36,26,29,.22));
    }
    .card__body{
      padding: 1rem 1rem 1.05rem;
    }
    .card__tag{
      display:inline-flex;
      align-items:center;
      gap:.5rem;
      font-size: .82rem;
      letter-spacing:.08em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--muted) 60%, var(--merlot) 40%);
      margin-bottom: .45rem;
    }
    .card__tag::before{
      content:"";
      width: 10px; height: 10px;
      border-radius: 999px;
      border: 1px solid rgba(90,31,51,.18);
      background: linear-gradient(135deg, rgba(127,191,178,.7), rgba(231,182,176,.6));
    }
    .card h3{
      margin: 0 0 .5rem;
      font-family: var(--serif);
      font-size: 1.2rem;
      letter-spacing:.01em;
      color: var(--drift);
      line-height: 1.2;
    }
    .card p{
      margin: 0 0 .8rem;
      color: var(--muted);
    }
    .card__foot{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: .75rem;
    }
    .read{
      display:inline-flex;
      align-items:center;
      gap:.55rem;
      font-weight: 800;
      color: color-mix(in srgb, var(--seafoam) 70%, var(--merlot) 30%);
      border-bottom: 1px solid rgba(127,191,178,.35);
      padding-bottom: .1rem;
      transition: color .35s ease, border-color .35s ease, transform .35s ease;
    }
    .read:hover{
      color: var(--merlot);
      border-color: rgba(90,31,51,.30);
      transform: translateX(2px);
    }
    .date{
      color: color-mix(in srgb, var(--muted) 80%, var(--drift) 20%);
      font-size: .95rem;
      white-space:nowrap;
    }

    /* Section individuality */
    .section--sea{
      background:
        radial-gradient(1000px 500px at 10% 0%, rgba(127,191,178,.14), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.0), rgba(255,250,243,.0));
    }
    .section--sea .card{
      background:
        radial-gradient(500px 220px at 20% 10%, rgba(127,191,178,.14), transparent 60%),
        linear-gradient(180deg, var(--vellum), rgba(255,250,243,.56));
    }

    .section--rosé{
      background:
        radial-gradient(1000px 520px at 90% 0%, rgba(231,182,176,.16), transparent 62%),
        radial-gradient(900px 460px at 15% 100%, rgba(168,185,164,.10), transparent 62%);
    }
    .section--rosé .card:hover{ transform: translateY(-3px) rotate(-.15deg); }

    .section--merlot{
      background:
        radial-gradient(980px 520px at 40% -10%, rgba(90,31,51,.10), transparent 60%),
        radial-gradient(980px 520px at 90% 110%, rgba(127,191,178,.10), transparent 62%);
    }
    .section--merlot .card{
      border-color: rgba(90,31,51,.16);
    }
    .section--merlot .card__tag::before{
      background: linear-gradient(135deg, rgba(90,31,51,.75), rgba(231,182,176,.55));
    }

    /* Blog list */
    .blog{
      padding: 2.2rem 0;
    }
    .blog__wrap{
      border-radius: var(--radius-xl);
      border: 1px solid rgba(90,31,51,.12);
      background:
        radial-gradient(520px 240px at 12% 10%, rgba(255,255,255,.72), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.72), rgba(255,250,243,.54));
      box-shadow: var(--shadow);
      overflow:hidden;
    }
    .blog__head{
      padding: 1.2rem 1.2rem .8rem;
      border-bottom: 1px solid rgba(90,31,51,.10);
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:1rem;
      flex-wrap:wrap;
    }
    .blog__head h2{
      margin:0;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      font-size: clamp(1.35rem, 2.2vw, 1.9rem);
    }
    .blog__head p{ margin:0; color: var(--muted); max-width: 68ch; }
    .blog ul{
      list-style:none;
      padding: .4rem;
      margin:0;
      display:grid;
      gap: .5rem;
    }
    .blog li{
      display:flex;
      gap: .85rem;
      align-items:center;
      padding: .75rem;
      border-radius: 18px;
      border: 1px solid rgba(90,31,51,.10);
      background: rgba(255,250,243,.52);
      transition: transform .45s ease, border-color .45s ease, box-shadow .45s ease;
    }
    .blog li:hover{
      transform: translateY(-2px);
      border-color: rgba(127,191,178,.22);
      box-shadow: 0 18px 40px rgba(36,26,29,.10);
    }
    .blog img{
      width: 88px; height: 70px;
      border-radius: 16px;
      border: 1px solid rgba(90,31,51,.12);
      object-fit: cover;
      flex: 0 0 auto;
      filter: saturate(.92) contrast(.98);
    }
    .blog a{
      font-weight: 800;
      color: color-mix(in srgb, var(--drift) 72%, var(--merlot) 28%);
      display:inline-block;
      line-height: 1.25;
    }
    .blog a span{
      display:block;
      font-weight: 600;
      color: var(--muted);
      margin-top:.2rem;
      font-size: .95rem;
    }

    /* Content / Article */
    .content{
      padding: 2.2rem 0;
    }
    .content__wrap{
      width: min(920px, calc(100% - 2rem));
      margin: 0 auto;
      border-radius: var(--radius-xl);
      border: 1px solid rgba(90,31,51,.12);
      background:
        radial-gradient(600px 260px at 18% 0%, rgba(255,255,255,.74), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.78), rgba(255,250,243,.56));
      box-shadow: var(--shadow);
      padding: 1.2rem;
      position:relative;
      overflow:hidden;
    }
    .content__wrap::after{
      content:"";
      position:absolute;
      inset:-60px;
      background:
        radial-gradient(380px 240px at 85% 18%, rgba(127,191,178,.16), transparent 62%),
        radial-gradient(420px 280px at 10% 80%, rgba(231,182,176,.14), transparent 62%),
        radial-gradient(360px 260px at 65% 92%, rgba(168,185,164,.12), transparent 62%);
      pointer-events:none;
      opacity:.9;
    }
    .content__wrap > *{ position:relative; }

    .content__image{
      border-radius: 22px;
      overflow:hidden;
      border: 1px solid rgba(90,31,51,.12);
      box-shadow: 0 22px 55px rgba(36,26,29,.12);
      margin: 0 auto;
      max-width: 860px;
      background: rgba(255,250,243,.55);
    }
    .content__image img{
      width:100%;
      height:auto;
      display:block;
      filter: saturate(.92) contrast(.98);
    }

    .rating{
      margin: .75rem auto 0;
      max-width: 860px;
      padding: .8rem 1rem;
      border-radius: 18px;
      border: 1px solid rgba(90,31,51,.12);
      background:
        linear-gradient(180deg, rgba(255,250,243,.78), rgba(255,250,243,.54));
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
    }
    .rating strong{
      font-family: var(--serif);
      letter-spacing:.01em;
      color: var(--drift);
      font-size: 1.05rem;
    }
    .rating .score{
      font-weight: 900;
      color: var(--merlot);
      border: 1px solid rgba(90,31,51,.18);
      padding: .35rem .7rem;
      border-radius: 999px;
      background: rgba(231,182,176,.18);
    }

    hr.divider{
      border:0;
      height:1px;
      background: linear-gradient(90deg, transparent, rgba(90,31,51,.22), rgba(127,191,178,.18), transparent);
      margin: 1.2rem auto;
      max-width: 860px;
    }

    article[itemscope]{
      max-width: 860px;
      margin: 0 auto;
      padding: 1rem 1rem 1.1rem;
      border-radius: 22px;
      border: 1px solid rgba(90,31,51,.12);
      background: rgba(255,250,243,.55);
      box-shadow: 0 18px 45px rgba(36,26,29,.09);
    }
    article h1{
      margin: 0 0 .5rem;
      font-family: var(--serif);
      font-size: clamp(1.6rem, 2.8vw, 2.2rem);
      line-height: 1.12;
      letter-spacing:.01em;
      color: var(--drift);
    }
    .byline{
      display:flex;
      flex-wrap:wrap;
      gap:.6rem 1rem;
      color: var(--muted);
      margin-bottom: .9rem;
      padding-bottom: .85rem;
      border-bottom: 1px solid rgba(90,31,51,.10);
    }
    .byline b{ color: var(--merlot); }
    .article-body{
      color: color-mix(in srgb, var(--ink) 78%, var(--muted) 22%);
      font-size: 1.03rem;
    }
    .article-body p{ margin: 0 0 1rem; }
    .callout{
      margin: 1rem 0;
      border-radius: 20px;
      border: 1px solid rgba(90,31,51,.16);
      background:
        linear-gradient(90deg, rgba(90,31,51,.10) 0 10px, rgba(255,250,243,.55) 10px 100%),
        radial-gradient(280px 120px at 25% 20%, rgba(231,182,176,.18), transparent 60%);
      padding: .95rem 1rem;
      box-shadow: 0 16px 38px rgba(36,26,29,.08);
    }
    .callout h2{
      margin:.1rem 0 .35rem;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      font-size: 1.25rem;
    }
    .callout p{ margin:0; color: var(--muted); }

    .timeline{
      margin: 1rem 0 0;
      padding: 0;
      list-style: none;
      display:grid;
      gap: .75rem;
    }
    .timeline li{
      position:relative;
      padding: .85rem .9rem .85rem 3.1rem;
      border-radius: 18px;
      border: 1px solid rgba(90,31,51,.12);
      background: rgba(255,250,243,.52);
      overflow:hidden;
    }
    .timeline li::before{
      content:"";
      position:absolute;
      left: 1.05rem;
      top: 1rem;
      width: 14px; height: 14px;
      border-radius: 999px;
      background: linear-gradient(135deg, rgba(127,191,178,.70), rgba(231,182,176,.55));
      border: 1px solid rgba(90,31,51,.18);
      box-shadow: 0 10px 20px rgba(36,26,29,.10);
    }
    .timeline li::after{
      content:"";
      position:absolute;
      left: 1.6rem;
      top: 1.7rem;
      bottom: -1rem;
      width: 2px;
      background: linear-gradient(180deg, rgba(90,31,51,.0), rgba(90,31,51,.16), rgba(127,191,178,.14), rgba(90,31,51,.0));
      border-radius: 2px;
      opacity:.8;
    }
    .timeline li:last-child::after{ display:none; }
    .timeline strong{
      display:block;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      margin-bottom:.12rem;
    }
    .timeline span{ color: var(--muted); display:block; }

    .pn{
      max-width: 860px;
      margin: 1.1rem auto 0;
      display:flex;
      justify-content:space-between;
      gap: 1rem;
      flex-wrap:wrap;
    }
    .pn a{
      display:inline-flex;
      align-items:center;
      gap:.6rem;
      padding:.7rem .9rem;
      border-radius: 999px;
      border: 1px solid rgba(90,31,51,.14);
      background: rgba(255,250,243,.55);
      font-weight: 800;
      transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease, color .35s ease;
    }
    .pn a:hover{
      transform: translateY(-2px);
      border-color: rgba(127,191,178,.25);
      box-shadow: 0 16px 36px rgba(36,26,29,.10);
      color: var(--merlot);
    }

    .comments{
      max-width: 860px;
      margin: 1.2rem auto 0;
      border-radius: 22px;
      border: 1px dashed rgba(90,31,51,.22);
      padding: 1rem;
      background: rgba(255,250,243,.46);
    }
    .comments h2{
      margin:0 0 .4rem;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      font-size: 1.3rem;
    }
    .comments .empty{
      color: var(--muted);
      margin:0;
      padding: .6rem .75rem;
      border-radius: 16px;
      border: 1px solid rgba(90,31,51,.10);
      background: rgba(255,250,243,.55);
    }

    .form{
      max-width: 860px;
      margin: .9rem auto 0;
      display:grid;
      gap: .75rem;
    }
    .form .row{
      display:grid;
      gap:.75rem;
    }
    label{
      font-weight: 800;
      color: color-mix(in srgb, var(--drift) 72%, var(--merlot) 28%);
      letter-spacing:.01em;
      display:block;
      margin-bottom: .35rem;
      font-size: .98rem;
    }
    input, textarea{
      width:100%;
      border-radius: 16px;
      border: 1px solid rgba(90,31,51,.16);
      background: rgba(255,250,243,.72);
      padding: .8rem .9rem;
      font: inherit;
      color: var(--ink);
      transition: border-color .35s ease, box-shadow .35s ease, background .35s ease;
    }
    textarea{ min-height: 140px; resize: vertical; }
    .form .actions{
      display:flex;
      gap:.75rem;
      flex-wrap:wrap;
      align-items:center;
    }

    /* Related */
    .related{
      max-width: 980px;
      margin: 1.4rem auto 0;
      border-radius: var(--radius-xl);
      border: 1px solid rgba(90,31,51,.12);
      background:
        radial-gradient(520px 220px at 15% 0%, rgba(127,191,178,.16), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.72), rgba(255,250,243,.55));
      box-shadow: var(--shadow);
      padding: 1.1rem;
    }
    .related h2{
      margin:0 0 .75rem;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      font-size: 1.6rem;
    }
    .related__grid{
      display:grid;
      grid-template-columns: 1fr;
      gap: .9rem;
    }
    .rel{
      display:flex;
      gap: .85rem;
      align-items:center;
      padding: .75rem;
      border-radius: 20px;
      border: 1px solid rgba(90,31,51,.12);
      background: rgba(255,250,243,.55);
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    }
    .rel:hover{
      transform: translateY(-2px);
      border-color: rgba(231,182,176,.28);
      box-shadow: 0 18px 40px rgba(36,26,29,.10);
    }
    .rel img{
      width: 92px; height: 74px;
      border-radius: 16px;
      border: 1px solid rgba(90,31,51,.12);
      object-fit: cover;
      filter: saturate(.92) contrast(.98);
      flex: 0 0 auto;
    }
    .rel a{
      font-weight: 900;
      color: color-mix(in srgb, var(--drift) 72%, var(--merlot) 28%);
      line-height: 1.25;
    }
    .rel p{
      margin:.2rem 0 0;
      color: var(--muted);
      font-size: .95rem;
    }

    /* Contacts */
    .contacts{
      padding: 2.2rem 0 1.6rem;
    }
    .contacts__wrap{
      border-radius: var(--radius-xl);
      border: 1px solid rgba(90,31,51,.12);
      background:
        radial-gradient(600px 260px at 12% 0%, rgba(255,255,255,.74), transparent 60%),
        radial-gradient(520px 260px at 92% 40%, rgba(231,182,176,.14), transparent 62%),
        linear-gradient(180deg, rgba(255,250,243,.78), rgba(255,250,243,.56));
      box-shadow: var(--shadow);
      padding: 1.1rem;
    }
    .contacts__grid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 1rem;
      align-items:start;
    }
    .panel{
      border-radius: 22px;
      border: 1px solid rgba(90,31,51,.12);
      background: rgba(255,250,243,.55);
      padding: 1rem;
    }
    .panel h2{
      margin:0 0 .5rem;
      font-family: var(--serif);
      color: var(--drift);
      letter-spacing:.01em;
      font-size: 1.6rem;
    }
    .panel p{ margin:0 0 .75rem; color: var(--muted); }
    .address{
      color: var(--muted);
      border-left: 3px solid rgba(90,31,51,.18);
      padding-left: .85rem;
      margin: .8rem 0 0;
    }
    .map{
      border-radius: 22px;
      border: 1px solid rgba(90,31,51,.12);
      overflow:hidden;
      background: rgba(255,250,243,.55);
      min-height: 260px;
    }
    .map iframe{
      width:100%;
      height: 320px;
      border:0;
      display:block;
      filter: saturate(.92) contrast(.98);
    }

    /* Aside promos + CSS-only modal */
    aside{
      padding: 1.8rem 0 2.3rem;
    }
    .promos{
      display:grid;
      grid-template-columns: 1fr;
      gap: 1rem;
      align-items:stretch;
    }
    .promo{
      border-radius: var(--radius-xl);
      border: 1px solid rgba(90,31,51,.12);
      background:
        radial-gradient(480px 200px at 18% 0%, rgba(127,191,178,.14), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.74), rgba(255,250,243,.56));
      box-shadow: 0 18px 44px rgba(36,26,29,.09);
      padding: 1rem 1rem 1.05rem;
      position:relative;
      overflow:hidden;
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    }
    .promo:hover{
      transform: translateY(-3px);
      box-shadow: 0 24px 56px rgba(36,26,29,.12);
      border-color: rgba(127,191,178,.24);
    }
    .promo h2{
      margin:.1rem 0 .3rem;
      font-family: var(--serif);
      letter-spacing:.01em;
      color: var(--drift);
      font-size: 1.5rem;
    }
    .promo p{ margin:0 0 .8rem; color: var(--muted); }
    .promo .actions{ display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }

    /* Modal: pure CSS with :target */
    .modal{
      position:fixed;
      inset:0;
      display:none;
      align-items:center;
      justify-content:center;
      padding: 1rem;
      z-index:100;
    }
    .modal:target{ display:flex; }
    .modal__backdrop{
      position:absolute;
      inset:0;
      background: rgba(36,26,29,.55);
      backdrop-filter: blur(6px);
    }
    .modal__dialog{
      position:relative;
      width: min(560px, 100%);
      border-radius: 26px;
      border: 1px solid rgba(255,255,255,.22);
      background:
        radial-gradient(520px 220px at 12% 0%, rgba(255,255,255,.72), transparent 60%),
        linear-gradient(180deg, rgba(255,250,243,.88), rgba(255,250,243,.68));
      box-shadow: 0 40px 110px rgba(0,0,0,.35);
      padding: 1rem;
      overflow:hidden;
    }
    .modal__dialog::after{
      content:"";
      position:absolute;
      inset:-40px;
      background:
        radial-gradient(360px 220px at 90% 10%, rgba(231,182,176,.18), transparent 62%),
        radial-gradient(360px 240px at 15% 85%, rgba(127,191,178,.16), transparent 62%);
      pointer-events:none;
      opacity:.9;
    }
    .modal__dialog > *{ position:relative; }
    .modal__head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap: 1rem;
      padding: .25rem .25rem .75rem;
      border-bottom: 1px solid rgba(90,31,51,.10);
    }
    .modal__head h2{
      margin:0;
      font-family: var(--serif);
      letter-spacing:.01em;
      color: var(--drift);
      font-size: 1.5rem;
    }
    .modal__head p{
      margin:.2rem 0 0;
      color: var(--muted);
      max-width: 56ch;
    }
    .modal__close{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width: 42px; height: 42px;
      border-radius: 16px;
      border: 1px solid rgba(90,31,51,.14);
      background: rgba(255,250,243,.65);
      color: var(--merlot);
      font-weight: 900;
      transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
      flex: 0 0 auto;
    }
    .modal__close:hover{
      transform: translateY(-1px);
      box-shadow: 0 14px 30px rgba(36,26,29,.14);
      border-color: rgba(127,191,178,.24);
    }

    /* Footer */
    footer{
      background:
        radial-gradient(1100px 520px at 20% 0%, rgba(127,191,178,.10), transparent 60%),
        radial-gradient(1000px 520px at 80% 10%, rgba(231,182,176,.10), transparent 62%),
        linear-gradient(180deg, color-mix(in srgb, var(--drift) 88%, #000 12%), #120c0f);
      color: rgba(255,250,243,.88);
      border-top: 1px solid rgba(255,255,255,.10);
      padding: 2.2rem 0 1.4rem;
      position:relative;
      overflow:hidden;
    }
    footer::before{
      content:"";
      position:absolute;
      inset:-60px;
      background:
        repeating-linear-gradient(120deg, rgba(255,255,255,.05) 0 1px, transparent 1px 12px),
        radial-gradient(520px 240px at 15% 20%, rgba(127,191,178,.08), transparent 60%);
      opacity:.35;
      pointer-events:none;
    }
    .footer__grid{
      position:relative;
      display:grid;
      grid-template-columns: 1fr;
      gap: 1.2rem;
      align-items:start;
    }
    .footer__slogan{
      font-family: var(--serif);
      font-size: 1.6rem;
      letter-spacing:.01em;
      margin:0 0 .3rem;
    }
    .footer__about{
      margin:0;
      color: rgba(255,250,243,.78);
      max-width: 72ch;
    }
    .social{
      display:flex;
      gap:.6rem;
      flex-wrap:wrap;
      padding:0;
      margin:.4rem 0 0;
      list-style:none;
    }
    .social a{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:.6rem .85rem;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.18);
      background: rgba(255,255,255,.06);
      color: rgba(255,250,243,.90);
      font-weight: 800;
      transition: transform .35s ease, background .35s ease, border-color .35s ease;
    }
    .social a:hover{
      transform: translateY(-2px);
      background: rgba(127,191,178,.14);
      border-color: rgba(127,191,178,.30);
    }
    .copyright{
      margin: 1.2rem 0 0;
      color: rgba(255,250,243,.62);
      font-size: .95rem;
      border-top: 1px solid rgba(255,255,255,.10);
      padding-top: 1rem;
    }

    /* Tablet */
    @media (min-width: 768px){
      .hero__grid{ grid-template-columns: 1.05fr .95fr; gap: 1.2rem; }
      .hero__meta{ grid-template-columns: 1fr; }
      .cards{ grid-template-columns: repeat(2, 1fr); }
      .blog ul{ grid-template-columns: repeat(2, 1fr); }
      .related__grid{ grid-template-columns: repeat(2, 1fr); }
      .contacts__grid{ grid-template-columns: 1.1fr .9fr; }
      .form .row{ grid-template-columns: 1fr 1fr; }
      .footer__grid{ grid-template-columns: 1.2fr .8fr; }
      .brand__tag{ display:block; }
    }

    /* Desktop */
    @media (min-width: 1200px){
      .burger{ display:none; }
      .nav-panel{ display:none !important; }
      .topbar{ padding: 1.05rem 0; }
      .cards{ grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
      .hero{ padding: 2rem 0 2.4rem; }
      .hero__copy{ padding: 1.35rem 1.35rem 1.4rem; }
      .blog ul{ grid-template-columns: repeat(3, 1fr); }
      .related__grid{ grid-template-columns: repeat(3, 1fr); }
      nav{ display:flex; }
    }

    /* Mobile (<1200px): hide desktop nav in topbar, show burger */
    @media (max-width: 1199.98px){
      .topbar nav{ display:none; }
    }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce){
      *{ transition:none !important; animation:none !important; scroll-behavior:auto !important; }
    }
  