
    :root{
      --loch-900:#061824;
      --loch-800:#0a2233;
      --loch-700:#103149;
      --loch-600:#1b4663;
      --sky-100:#eaf2f6;
      --mist-50:#f6f7f5;
      --slate-200:#c8d1d6;
      --slate-400:#7d8d97;
      --slate-700:#364550;

      --heather-700:#4a365a;
      --heather-500:#6a4f86;
      --moss-600:#2e5a49;
      --peat-800:#2a201a;
      --peat-700:#3a2c24;

      --vellum: rgba(246,247,245,.78);
      --vellum-strong: rgba(246,247,245,.88);
      --hairline: rgba(200,209,214,.45);
      --pinstripe: rgba(106,79,134,.35);

      --shadow: 0 18px 50px rgba(6,24,36,.22);
      --shadow-soft: 0 10px 30px rgba(6,24,36,.16);

      --radius-lg: 26px;
      --radius-md: 18px;
      --radius-sm: 14px;

      --container: 1160px;

      --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;

      --focus: 0 0 0 4px rgba(106,79,134,.24), 0 0 0 1px rgba(234,242,246,.95) inset;
    }

    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      color:var(--loch-900);
      background:
        radial-gradient(1200px 700px at 70% -10%, rgba(234,242,246,.95), rgba(234,242,246,.35) 60%, rgba(246,247,245,.9) 100%),
        linear-gradient(180deg, var(--sky-100) 0%, var(--mist-50) 40%, #f3f0ea 100%);
      font-family:var(--sans);
      line-height:1.55;
      overflow-x:hidden;
    }

    /* Subtle grain + mist */
    body::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,0)),
        repeating-linear-gradient(135deg, rgba(58,44,36,.04) 0 1px, rgba(58,44,36,0) 1px 7px);
      mix-blend-mode:multiply;
      opacity:.55;
      z-index:-1;
    }

    a{color:var(--loch-600); text-decoration:none}
    a:hover{text-decoration:underline}
    a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible{
      outline:none;
      box-shadow:var(--focus);
      border-radius:10px;
    }

    /* Layout helpers */
    .container{width:min(var(--container), calc(100% - 2rem)); margin-inline:auto}
    .section-pad{padding:3rem 0}
    .kicker{
      font-family:var(--sans);
      letter-spacing:.18em;
      text-transform:uppercase;
      color:rgba(16,49,73,.72);
      font-size:.78rem;
    }
    .h2{
      font-family:var(--serif);
      font-weight:650;
      letter-spacing:.06em;
      text-transform:uppercase;
      margin:.35rem 0 1.1rem;
      font-size:1.35rem;
      color:var(--loch-900);
    }
    .lede{color:rgba(6,24,36,.76); max-width:68ch}

    /* Header / Nav (nav contains only ul li a) */
    header{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter: blur(10px);
      background:
        linear-gradient(180deg, rgba(246,247,245,.88), rgba(246,247,245,.68));
      border-bottom:1px solid var(--hairline);
    }

    header::after{
      content:"";
      display:block;
      height:1px;
      background:
        linear-gradient(90deg, transparent, rgba(106,79,134,.55), rgba(46,90,73,.35), transparent);
      opacity:.8;
    }

    nav ul{
      list-style:none;
      margin:0;
      padding: .85rem 0;
      display:flex;
      gap:.8rem;
      align-items:center;
      justify-content:space-between;
      flex-wrap:wrap;
    }
    nav li{margin:0; padding:0}
    nav a{
      display:inline-block;
      padding:.55rem .85rem;
      border-radius:999px;
      border:1px solid rgba(16,49,73,.16);
      background:rgba(234,242,246,.45);
      color:var(--loch-800);
      transition: transform .4s ease, background .4s ease, border-color .4s ease, box-shadow .4s ease;
      letter-spacing:.03em;
      font-size:.95rem;
    }
    nav a:hover{
      text-decoration:none;
      background:rgba(234,242,246,.75);
      border-color:rgba(106,79,134,.28);
      box-shadow:0 10px 24px rgba(6,24,36,.10);
      transform: translateY(-1px);
    }

    /* Burger on <1200px (CSS-only: checkbox hack) */
    .nav-shell{position:relative}
    .brandbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
      padding:.9rem 0 .25rem;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:.8rem;
      min-width: 240px;
    }
    .mark{
      width:42px;height:42px;border-radius:14px;
      background:
        radial-gradient(16px 14px at 30% 35%, rgba(234,242,246,.9), rgba(234,242,246,0) 65%),
        linear-gradient(135deg, var(--loch-700), var(--heather-700));
      border:1px solid rgba(16,49,73,.28);
      box-shadow: inset 0 0 0 1px rgba(234,242,246,.35);
      position:relative;
      overflow:hidden;
    }
    .mark::after{
      content:"";
      position:absolute; inset:-40%;
      background:repeating-linear-gradient(90deg, rgba(246,247,245,.0) 0 12px, rgba(246,247,245,.06) 12px 14px);
      transform: rotate(18deg);
    }
    .brand-title{
      display:flex; flex-direction:column; line-height:1.1;
    }
    .brand-title strong{
      font-family:var(--serif);
      font-size:1.08rem;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:var(--loch-900);
      font-weight:700;
    }
    .brand-title span{
      font-size:.86rem;
      color:rgba(54,69,80,.8);
      letter-spacing:.05em;
    }

    .nav-tools{
      display:flex;
      align-items:center;
      gap:.6rem;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:.55rem;
      padding:.72rem 1.05rem;
      border-radius:999px;
      border:1px solid rgba(234,242,246,.35);
      background: linear-gradient(180deg, rgba(16,49,73,.92), rgba(10,34,51,.92));
      color:rgba(234,242,246,.98);
      box-shadow: inset 0 0 0 1px rgba(106,79,134,.18);
      cursor:pointer;
      transition: transform .45s ease, box-shadow .45s ease, filter .45s ease, border-color .45s ease;
      font-weight:650;
      letter-spacing:.03em;
      text-decoration:none;
      white-space:nowrap;
    }
    .btn:hover{
      text-decoration:none;
      transform: translateY(-1px);
      border-color: rgba(106,79,134,.4);
      box-shadow: 0 14px 34px rgba(6,24,36,.22), 0 0 0 6px rgba(106,79,134,.10);
      filter:saturate(1.05) brightness(1.03);
    }

    .btn-ghost{
      background: rgba(234,242,246,.55);
      color: var(--loch-800);
      border:1px solid rgba(16,49,73,.18);
      box-shadow:none;
      font-weight:600;
    }
    .btn-ghost:hover{
      box-shadow: 0 14px 34px rgba(6,24,36,.12), 0 0 0 6px rgba(46,90,73,.10);
      border-color: rgba(46,90,73,.35);
    }

    .burger{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:44px;height:44px;
      border-radius:999px;
      border:1px solid rgba(16,49,73,.18);
      background:rgba(234,242,246,.55);
      cursor:pointer;
      transition: transform .4s ease, box-shadow .4s ease, border-color .4s ease;
    }
    .burger:hover{
      transform: translateY(-1px);
      box-shadow:0 12px 26px rgba(6,24,36,.12);
      border-color:rgba(106,79,134,.28);
    }
    .burger span{
      width:18px;height:12px; position:relative; display:block;
    }
    .burger span::before,
    .burger span::after,
    .burger span i{
      content:"";
      position:absolute; left:0; right:0;
      height:2px;
      background:rgba(16,49,73,.85);
      border-radius:2px;
    }
    .burger span::before{top:0}
    .burger span i{top:5px}
    .burger span::after{bottom:0}

    #navToggle{position:absolute; left:-9999px}
    .nav-links{
      display:none;
      padding-bottom:.9rem;
    }

    /* Mobile nav layout */
    #navToggle:checked ~ .nav-links{display:block}
    .nav-links nav ul{
      flex-direction:column;
      align-items:stretch;
      gap:.55rem;
    }
    .nav-links nav a{
      width:100%;
      justify-content:center;
      background: rgba(246,247,245,.78);
    }

    /* Desktop nav shows inline */
    @media (min-width:1200px){
      .burger{display:none}
      .nav-links{display:block; padding-bottom:0}
      .nav-links nav ul{
        padding:.85rem 0;
        flex-direction:row;
        align-items:center;
        justify-content:flex-end;
        gap:.65rem;
      }
      .nav-shell{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:1.25rem;
      }
      .brandbar{padding:.9rem 0}
    }

    /* HERO */
    .hero{
      padding: 2.2rem 0 1.2rem;
      position:relative;
    }
    .hero-grid{
      display:grid;
      gap:1.2rem;
      align-items:stretch;
    }
    .hero-panel{
      background: var(--vellum);
      border:1px solid rgba(16,49,73,.16);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-soft);
      overflow:hidden;
      position:relative;
    }

    .hero-panel::before{
      content:"";
      position:absolute; inset:0;
      background:
        radial-gradient(700px 220px at 30% 0%, rgba(234,242,246,.75), rgba(234,242,246,0) 60%),
        linear-gradient(180deg, rgba(106,79,134,.08), rgba(46,90,73,.05));
      pointer-events:none;
    }

    .hero-copy{
      padding: 1.6rem 1.35rem 1.25rem;
      position:relative;
    }
    .hero h1{
      margin:.35rem 0 .55rem;
      font-family: var(--serif);
      letter-spacing:.13em;
      text-transform:uppercase;
      font-weight:760;
      font-size:1.65rem;
      line-height:1.15;
      color:var(--loch-900);
    }
    .hero p{
      margin:0 0 1rem;
      color:rgba(6,24,36,.76);
      max-width:60ch;
    }
    .hero-actions{
      display:flex;
      gap:.7rem;
      flex-wrap:wrap;
      align-items:center;
    }
    .meta-line{
      margin-top:1rem;
      padding-top:1rem;
      border-top:1px solid rgba(16,49,73,.12);
      display:flex;
      gap:1rem;
      flex-wrap:wrap;
      color:rgba(54,69,80,.8);
      font-size:.95rem;
    }
    .meta-chip{
      display:inline-flex; gap:.55rem; align-items:center;
      padding:.35rem .7rem;
      border-radius:999px;
      border:1px solid rgba(16,49,73,.14);
      background:rgba(234,242,246,.55);
    }
    .meta-chip svg{width:16px;height:16px; opacity:.85}

    /* Slider (CSS-only, max 600px) */
    .slider{
      position:relative;
      height:min(56vh, 600px);
      min-height: 320px;
      border-top:1px solid rgba(16,49,73,.12);
      background:
        radial-gradient(900px 360px at 70% 20%, rgba(234,242,246,.65), rgba(234,242,246,0) 60%),
        linear-gradient(135deg, rgba(16,49,73,.08), rgba(106,79,134,.07));
      overflow:hidden;
    }
    .slides{
      height:100%;
      width:400%;
      display:flex;
      animation: drift 24s infinite;
    }
    .slide{
      width:25%;
      height:100%;
      position:relative;
      background-size:cover;
      background-position:center;
      filter: saturate(.95) contrast(1.02);
    }
    .slide::after{
      content:"";
      position:absolute; inset:0;
      background:
        radial-gradient(500px 240px at 55% 20%, rgba(255,255,255,.35), rgba(255,255,255,0) 60%),
        linear-gradient(90deg, rgba(6,24,36,.20), rgba(6,24,36,.06) 45%, rgba(6,24,36,.18));
      opacity:.9;
    }
    .slide-label{
      position:absolute;
      left:1.1rem; right:1.1rem;
      bottom:1rem;
      padding:.9rem 1rem;
      border-radius: 18px;
      background: rgba(246,247,245,.78);
      border:1px solid rgba(16,49,73,.16);
      box-shadow: 0 14px 36px rgba(6,24,36,.18);
      backdrop-filter: blur(10px);
      z-index:1;
    }
    .slide-label strong{
      display:block;
      font-family:var(--serif);
      letter-spacing:.09em;
      text-transform:uppercase;
      font-size:1.02rem;
      color:var(--loch-900);
      margin-bottom:.15rem;
    }
    .slide-label span{
      color:rgba(54,69,80,.86);
      font-size:.95rem;
    }

    @keyframes drift{
      0%, 20%{transform:translateX(0)}
      25%, 45%{transform:translateX(-25%)}
      50%, 70%{transform:translateX(-50%)}
      75%, 95%{transform:translateX(-75%)}
      100%{transform:translateX(0)}
    }

    @media (min-width:768px){
      .hero-grid{grid-template-columns: 1.05fr .95fr; gap:1.25rem}
      .hero h1{font-size:2.05rem}
      .hero-copy{padding: 2rem 1.8rem 1.5rem}
      .slider{min-height:380px}
    }
    @media (min-width:1200px){
      .hero{padding: 2.6rem 0 1.6rem}
      .hero h1{font-size:2.35rem}
      .hero-panel{border-radius: 30px}
    }

    /* Section shells */
    section{
      position:relative;
    }
    .section-head{
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:1rem;
      flex-wrap:wrap;
      margin-bottom:1.2rem;
    }
    .section-head .lede{margin:0}

    .cards{
      display:grid;
      grid-template-columns:1fr;
      gap:1rem;
    }
    @media (min-width:768px){
      .cards{grid-template-columns:repeat(2, 1fr)}
    }
    @media (min-width:1200px){
      .cards{grid-template-columns:repeat(3, 1fr); gap:1.1rem}
    }

    article.card{
      background: var(--vellum);
      border:1px solid rgba(16,49,73,.14);
      border-radius: var(--radius-md);
      overflow:hidden;
      box-shadow: 0 12px 30px rgba(6,24,36,.10);
      transition: transform .5s ease, box-shadow .5s ease, border-color .5s ease, filter .5s ease;
      position:relative;
    }
    .card:hover{
      transform: translateY(-3px);
      box-shadow: 0 22px 55px rgba(6,24,36,.16);
      border-color: rgba(106,79,134,.30);
      filter: saturate(1.02);
    }
    .card .thumb{
      aspect-ratio: 16/10;
      width:100%;
      display:block;
      object-fit:cover;
      filter: saturate(.95);
    }
    .card .body{
      padding:1.05rem 1.05rem 1.1rem;
    }
    .card .tagrow{
      display:flex; gap:.55rem; flex-wrap:wrap;
      margin-bottom:.55rem;
    }
    .pill{
      display:inline-flex;
      align-items:center;
      gap:.4rem;
      padding:.25rem .55rem;
      border-radius:999px;
      font-size:.78rem;
      letter-spacing:.06em;
      text-transform:uppercase;
      border:1px solid rgba(16,49,73,.14);
      background: rgba(234,242,246,.55);
      color: rgba(16,49,73,.86);
    }
    .card h3{
      margin:.1rem 0 .45rem;
      font-family:var(--serif);
      font-weight:700;
      letter-spacing:.04em;
      color:var(--loch-900);
      font-size:1.1rem;
      line-height:1.25;
    }
    .card p{
      margin:0 0 .85rem;
      color:rgba(54,69,80,.86);
    }
    .card .card-foot{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:.8rem;
      padding-top:.8rem;
      border-top:1px solid rgba(16,49,73,.10);
      color:rgba(54,69,80,.78);
      font-size:.92rem;
    }
    .link{
      color:var(--loch-600);
      font-weight:650;
      letter-spacing:.02em;
      position:relative;
      text-decoration:none;
    }
    .link::after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:-3px;
      height:2px;
      background: linear-gradient(90deg, rgba(27,70,99,.0), rgba(27,70,99,.55), rgba(106,79,134,.35), rgba(27,70,99,.0));
      transform: scaleX(.35);
      transform-origin:left;
      opacity:.9;
      transition: transform .45s ease;
    }
    .link:hover::after{transform:scaleX(1)}
    .link:hover{text-decoration:none}

    /* Section individuality */
    .s1{
      background:
        linear-gradient(180deg, rgba(234,242,246,.62), rgba(246,247,245,.0));
      border-top:1px solid rgba(16,49,73,.08);
    }
    .s1 .card{border-color: rgba(16,49,73,.12)}
    .s1 .card:hover{border-color: rgba(27,70,99,.33)}
    .s1 .pill{background: rgba(234,242,246,.62)}

    .s2{
      background:
        radial-gradient(900px 420px at 25% 0%, rgba(106,79,134,.10), rgba(106,79,134,0) 60%),
        linear-gradient(180deg, rgba(246,247,245,.55), rgba(246,247,245,.0));
      border-top:1px solid rgba(106,79,134,.16);
    }
    .s2 .card{
      background: rgba(246,247,245,.80);
      border-color: rgba(106,79,134,.18);
    }
    .s2 .card:hover{
      border-color: rgba(106,79,134,.38);
      transform: translateY(-4px) rotate(-.12deg);
    }
    .s2 .pill{
      border-color: rgba(106,79,134,.22);
      background: rgba(106,79,134,.08);
      color: rgba(74,54,90,.92);
    }

    .s3{
      background:
        radial-gradient(900px 420px at 70% 0%, rgba(46,90,73,.12), rgba(46,90,73,0) 62%),
        linear-gradient(180deg, rgba(234,242,246,.34), rgba(246,247,245,0));
      border-top:1px solid rgba(46,90,73,.16);
    }
    .s3 .card{
      border-color: rgba(46,90,73,.18);
    }
    .s3 .card:hover{
      border-color: rgba(46,90,73,.38);
      transform: translateY(-3px) rotate(.10deg);
    }
    .s3 .pill{
      border-color: rgba(46,90,73,.22);
      background: rgba(46,90,73,.08);
      color: rgba(46,90,73,.96);
    }

    /* Blog list block */
    .blog-wrap{
      padding: 2.2rem 0 2.8rem;
    }
    .blog-block{
      background: rgba(246,247,245,.78);
      border:1px solid rgba(16,49,73,.14);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-soft);
      overflow:hidden;
    }
    .blog-head{
      padding: 1.4rem 1.35rem;
      background:
        linear-gradient(90deg, rgba(74,54,90,.92), rgba(16,49,73,.90));
      color: rgba(246,247,245,.98);
      position:relative;
    }
    .blog-head::after{
      content:"";
      position:absolute; inset:0;
      background:
        repeating-linear-gradient(90deg, rgba(246,247,245,.06) 0 1px, rgba(246,247,245,0) 1px 14px),
        repeating-linear-gradient(0deg, rgba(246,247,245,.04) 0 1px, rgba(246,247,245,0) 1px 18px);
      opacity:.45;
      pointer-events:none;
    }
    .blog-head h2{
      margin:0;
      font-family:var(--serif);
      letter-spacing:.12em;
      text-transform:uppercase;
      font-size:1.2rem;
      position:relative;
      z-index:1;
    }
    .blog-head p{margin:.45rem 0 0; opacity:.92; position:relative; z-index:1}

    .blog-list{
      list-style:none;
      margin:0;
      padding: .35rem;
      display:grid;
      gap:.65rem;
    }
    .blog-item{
      display:grid;
      grid-template-columns: 92px 1fr;
      gap:.9rem;
      align-items:center;
      padding:.75rem;
      border-radius: 18px;
      border:1px solid rgba(16,49,73,.10);
      background: rgba(234,242,246,.40);
      transition: transform .45s ease, box-shadow .45s ease, background .45s ease, border-color .45s ease;
    }
    .blog-item:hover{
      transform: translateY(-2px);
      background: rgba(234,242,246,.60);
      border-color: rgba(27,70,99,.24);
      box-shadow: 0 16px 40px rgba(6,24,36,.12);
    }
    .blog-item img{
      width:92px; height:68px;
      border-radius: 14px;
      object-fit:cover;
      border:1px solid rgba(16,49,73,.14);
      filter:saturate(.95);
    }
    .blog-item a{
      display:block;
      color: var(--loch-900);
      text-decoration:none;
    }
    .blog-item a strong{
      font-family:var(--serif);
      letter-spacing:.04em;
      font-size:1.02rem;
    }
    .blog-item a span{
      display:block;
      color: rgba(54,69,80,.84);
      margin-top:.2rem;
      font-size:.95rem;
    }

    @media (min-width:768px){
      .blog-list{grid-template-columns: repeat(2, 1fr); padding:.75rem}
      .blog-item{grid-template-columns: 110px 1fr}
      .blog-item img{width:110px; height:76px}
      .blog-head{padding: 1.55rem 1.6rem}
    }
    @media (min-width:1200px){
      .blog-list{grid-template-columns: repeat(3, 1fr)}
    }

    /* Content block (centered) */
    .content-wrap{
      padding: 2.2rem 0 3.2rem;
    }
    .content{
      width:min(900px, calc(100% - 2rem));
      margin-inline:auto;
      background: rgba(246,247,245,.84);
      border:1px solid rgba(16,49,73,.14);
      border-radius: 30px;
      box-shadow: var(--shadow);
      overflow:hidden;
      position:relative;
    }
    .content::before{
      content:"";
      position:absolute; inset:0;
      background:
        radial-gradient(800px 260px at 60% 0%, rgba(234,242,246,.80), rgba(234,242,246,0) 60%),
        linear-gradient(180deg, rgba(16,49,73,.06), rgba(74,54,90,.04));
      pointer-events:none;
    }
    .content-inner{padding: 1.25rem 1.1rem 1.5rem; position:relative}
    .content-media{
      padding: 1.1rem 1.1rem 0;
      position:relative;
    }
    .content-media img{
      width:100%;
      height:auto;
      display:block;
      border-radius: 24px;
      border:1px solid rgba(16,49,73,.14);
      box-shadow: 0 18px 45px rgba(6,24,36,.16);
      object-fit:cover;
      aspect-ratio: 16/9;
      max-height: 520px;
    }
    .rating{
      margin: .85rem 1.1rem 0;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:.75rem;
      flex-wrap:wrap;
      padding:.75rem .95rem;
      border-radius: 18px;
      background: rgba(234,242,246,.55);
      border:1px solid rgba(16,49,73,.12);
      color: rgba(6,24,36,.82);
    }
    .rating strong{
      letter-spacing:.10em;
      text-transform:uppercase;
      font-size:.85rem;
      color: rgba(54,69,80,.85);
    }
    .rating b{
      font-family:var(--serif);
      font-size:1.15rem;
      letter-spacing:.04em;
      color: var(--loch-900);
    }
    .divider{
      margin: 1.1rem 0;
      height:1px;
      background: linear-gradient(90deg, transparent, rgba(16,49,73,.22), rgba(106,79,134,.22), transparent);
      border:0;
    }

    .prose h1{
      margin:.25rem 0 .6rem;
      font-family:var(--serif);
      letter-spacing:.11em;
      text-transform:uppercase;
      font-weight:780;
      font-size:1.55rem;
      line-height:1.15;
    }
    .byline{
      display:flex;
      gap:.75rem;
      flex-wrap:wrap;
      align-items:center;
      color: rgba(54,69,80,.82);
      font-size:.95rem;
      margin:.25rem 0 1rem;
    }
    .byline span{
      display:inline-flex;
      align-items:center;
      gap:.5rem;
      padding:.25rem .6rem;
      border-radius:999px;
      border:1px solid rgba(16,49,73,.12);
      background: rgba(234,242,246,.50);
    }
    .prose p{margin:.85rem 0; color: rgba(6,24,36,.80)}
    .prose blockquote{
      margin: 1.15rem 0;
      padding: .9rem 1rem;
      border-left: 3px solid rgba(106,79,134,.45);
      background: rgba(106,79,134,.06);
      border-radius: 14px;
      color: rgba(54,69,80,.88);
      font-family: var(--serif);
    }

    .pager{
      display:flex;
      justify-content:space-between;
      gap:.8rem;
      flex-wrap:wrap;
      margin-top: 1rem;
      padding-top: 1rem;
      border-top:1px solid rgba(16,49,73,.10);
    }

    /* Comments */
    .comments{
      margin-top: 1.25rem;
      padding: 1rem;
      border-radius: 22px;
      border:1px solid rgba(16,49,73,.12);
      background: rgba(234,242,246,.40);
    }
    .comments h2{
      margin:0 0 .7rem;
      font-family:var(--serif);
      letter-spacing:.12em;
      text-transform:uppercase;
      font-size:1.05rem;
    }
    .empty-comments{
      min-height: 90px;
      border-radius: 18px;
      border:1px dashed rgba(16,49,73,.22);
      background:
        radial-gradient(700px 220px at 40% 10%, rgba(234,242,246,.70), rgba(234,242,246,0) 60%),
        rgba(246,247,245,.62);
      padding: .9rem;
      color: rgba(54,69,80,.76);
    }
    form.comment-form{
      margin-top: .9rem;
      display:grid;
      gap:.7rem;
    }
    .field{
      display:grid;
      gap:.35rem;
    }
    label{
      font-size:.92rem;
      color: rgba(54,69,80,.86);
      letter-spacing:.02em;
    }
    input, textarea{
      width:100%;
      padding:.8rem .9rem;
      border-radius: 16px;
      border:1px solid rgba(16,49,73,.18);
      background: rgba(246,247,245,.86);
      font: inherit;
      transition: border-color .35s ease, box-shadow .35s ease, background .35s ease;
    }
    textarea{min-height:120px; resize:vertical}
    input:focus-visible, textarea:focus-visible{
      border-color: rgba(106,79,134,.45);
      background: rgba(246,247,245,.96);
    }

    /* Related */
    .related{
      margin-top: 1.2rem;
      padding: 1.1rem;
      border-radius: 22px;
      border:1px solid rgba(16,49,73,.12);
      background: rgba(246,247,245,.75);
    }
    .related h2{
      margin:0 0 .75rem;
      font-family:var(--serif);
      letter-spacing:.12em;
      text-transform:uppercase;
      font-size:1.05rem;
    }
    .related-grid{
      display:grid;
      gap:.8rem;
      grid-template-columns:1fr;
    }
    .rel{
      display:grid;
      grid-template-columns: 110px 1fr;
      gap:.85rem;
      align-items:center;
      border-radius: 18px;
      border:1px solid rgba(16,49,73,.10);
      background: rgba(234,242,246,.40);
      padding:.75rem;
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    }
    .rel:hover{
      transform: translateY(-2px);
      box-shadow: 0 16px 40px rgba(6,24,36,.12);
      border-color: rgba(46,90,73,.30);
    }
    .rel img{
      width:110px; height:78px;
      border-radius: 14px;
      object-fit:cover;
      border:1px solid rgba(16,49,73,.12);
    }
    .rel a{color:var(--loch-900); text-decoration:none}
    .rel a strong{
      font-family:var(--serif);
      letter-spacing:.04em;
      font-size:1.02rem;
    }
    .rel a span{display:block; margin-top:.2rem; color:rgba(54,69,80,.84); font-size:.95rem}

    @media (min-width:768px){
      .content-inner{padding: 1.4rem 1.7rem 1.8rem}
      .content-media{padding: 1.35rem 1.7rem 0}
      .rating{margin: .9rem 1.7rem 0}
      .prose h1{font-size:1.9rem}
      .related-grid{grid-template-columns: repeat(2, 1fr)}
    }

    /* Contacts block */
    .contacts-wrap{padding: 2.2rem 0 3.2rem}
    .contacts{
      background: rgba(246,247,245,.80);
      border:1px solid rgba(16,49,73,.14);
      border-radius: 30px;
      box-shadow: var(--shadow-soft);
      overflow:hidden;
    }
    .contacts-top{
      padding: 1.35rem 1.35rem 1rem;
      background:
        linear-gradient(90deg, rgba(46,90,73,.88), rgba(16,49,73,.90));
      color: rgba(246,247,245,.98);
      position:relative;
    }
    .contacts-top::after{
      content:"";
      position:absolute; inset:0;
      background:
        repeating-linear-gradient(90deg, rgba(246,247,245,.06) 0 1px, rgba(246,247,245,0) 1px 16px),
        radial-gradient(900px 240px at 70% 0%, rgba(246,247,245,.20), rgba(246,247,245,0) 60%);
      opacity:.5;
      pointer-events:none;
    }
    .contacts-top h2{
      margin:0;
      font-family:var(--serif);
      letter-spacing:.12em;
      text-transform:uppercase;
      font-size:1.2rem;
      position:relative;
      z-index:1;
    }
    .contacts-body{
      padding: 1.1rem;
      display:grid;
      gap:1rem;
    }
    .contact-card{
      border-radius: 22px;
      border:1px solid rgba(16,49,73,.12);
      background: rgba(234,242,246,.40);
      padding: 1rem;
    }
    .contact-card h3{
      margin:.2rem 0 .6rem;
      font-family:var(--serif);
      letter-spacing:.06em;
      font-size:1.08rem;
    }
    .map{
      border-radius: 22px;
      overflow:hidden;
      border:1px solid rgba(16,49,73,.12);
      background: rgba(234,242,246,.35);
      min-height: 240px;
    }
    .map iframe{
      width:100%;
      height:100%;
      border:0;
      filter: saturate(.9) contrast(1.02);
    }

    @media (min-width:768px){
      .contacts-body{grid-template-columns: 1fr 1fr; padding: 1.35rem}
      .map{grid-column: 1 / -1; min-height: 320px}
      .contacts-top{padding: 1.55rem 1.6rem 1.1rem}
    }
    @media (min-width:1200px){
      .contacts-body{grid-template-columns: 1.1fr .9fr; align-items:start}
      .map{grid-column:auto; min-height: 420px}
    }

    /* Aside: promos + hidden modal form for header buttons */
    aside{
      padding: 1.6rem 0 2.8rem;
    }
    .promo-grid{
      display:grid;
      grid-template-columns: 1fr;
      gap:.9rem;
    }
    .promo{
      display:flex;
      flex-direction:column;
      gap:.6rem;
      padding: 1rem;
      border-radius: 24px;
      border:1px solid rgba(16,49,73,.14);
      background: rgba(246,247,245,.74);
      box-shadow: 0 14px 36px rgba(6,24,36,.10);
      position:relative;
      overflow:hidden;
      transition: transform .45s ease, box-shadow .45s ease, border-color .45s ease;
    }
    .promo::before{
      content:"";
      position:absolute; inset:-30%;
      background:
        radial-gradient(420px 240px at 40% 30%, rgba(106,79,134,.12), rgba(106,79,134,0) 60%),
        radial-gradient(420px 240px at 70% 60%, rgba(46,90,73,.12), rgba(46,90,73,0) 60%);
      transform: rotate(10deg);
      opacity:.9;
    }
    .promo:hover{
      transform: translateY(-2px);
      box-shadow: 0 22px 55px rgba(6,24,36,.14);
      border-color: rgba(106,79,134,.26);
    }
    .promo a{
      position:relative;
      z-index:1;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:.75rem;
      padding:.85rem 1rem;
      border-radius: 18px;
      border:1px solid rgba(16,49,73,.14);
      background: rgba(234,242,246,.46);
      color: var(--loch-900);
      text-decoration:none;
      transition: background .4s ease, border-color .4s ease;
      font-weight:650;
      letter-spacing:.02em;
    }
    .promo a:hover{
      background: rgba(234,242,246,.66);
      border-color: rgba(46,90,73,.28);
    }
    .promo a span{
      font-weight:700;
      color: rgba(27,70,99,.95);
    }
    .promo p{
      position:relative;
      z-index:1;
      margin:0;
      color: rgba(54,69,80,.86);
    }
    @media (min-width:768px){
      .promo-grid{grid-template-columns: repeat(2, 1fr)}
    }
    @media (min-width:1200px){
      .promo-grid{grid-template-columns: repeat(4, 1fr)}
    }

    /* Pure CSS Modal (target) */
    .modal{
      position:fixed;
      inset:0;
      display:none;
      place-items:center;
      padding: 1.2rem;
      z-index:100;
    }
    .modal:target{display:grid}
    .modal .overlay{
      position:absolute; inset:0;
      background: rgba(6,24,36,.56);
      backdrop-filter: blur(8px);
    }
    .modal .dialog{
      position:relative;
      width:min(520px, 100%);
      border-radius: 26px;
      background: rgba(246,247,245,.92);
      border:1px solid rgba(234,242,246,.18);
      box-shadow: 0 30px 90px rgba(0,0,0,.25);
      overflow:hidden;
    }
    .modal .dialog header{
      position:static;
      background:
        linear-gradient(90deg, rgba(16,49,73,.94), rgba(74,54,90,.90));
      border-bottom:1px solid rgba(234,242,246,.14);
    }
    .modal .dialog header .bar{
      padding: 1rem 1.1rem;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:1rem;
    }
    .modal .dialog header h2{
      margin:0;
      color: rgba(246,247,245,.98);
      font-family: var(--serif);
      letter-spacing:.12em;
      text-transform:uppercase;
      font-size:1.05rem;
    }
    .modal .close{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:40px;height:40px;
      border-radius:999px;
      border:1px solid rgba(234,242,246,.28);
      background: rgba(234,242,246,.12);
      color: rgba(246,247,245,.98);
      text-decoration:none;
      transition: transform .4s ease, background .4s ease;
      font-weight:900;
    }
    .modal .close:hover{
      transform: translateY(-1px);
      background: rgba(234,242,246,.18);
      text-decoration:none;
    }
    .modal .content{
      width:100%;
      margin:0;
      border:0;
      border-radius:0;
      box-shadow:none;
      background: transparent;
      overflow:visible;
    }
    .modal .dialog .body{
      padding: 1rem 1.1rem 1.2rem;
    }
    .modal .dialog p{
      margin:.2rem 0 .9rem;
      color: rgba(54,69,80,.84);
    }
    .modal .dialog form{
      display:grid;
      gap:.7rem;
    }

    /* Footer */
    footer{
      background:
        radial-gradient(900px 340px at 50% 0%, rgba(27,70,99,.20), rgba(27,70,99,0) 62%),
        linear-gradient(180deg, var(--peat-800), #140f0c);
      color: rgba(234,242,246,.92);
      border-top: 1px solid rgba(234,242,246,.10);
      position:relative;
    }
    footer::before{
      content:"";
      position:absolute; inset:0;
      background:
        repeating-linear-gradient(90deg, rgba(234,242,246,.05) 0 1px, rgba(234,242,246,0) 1px 18px),
        linear-gradient(180deg, rgba(234,242,246,.08), rgba(234,242,246,0) 35%);
      opacity:.55;
      pointer-events:none;
    }
    .footer-inner{
      position:relative;
      padding: 2.2rem 0 1.8rem;
      display:grid;
      gap:1.2rem;
    }
    .footer-inner h2{
      margin:0 0 .5rem;
      font-family:var(--serif);
      letter-spacing:.14em;
      text-transform:uppercase;
      font-size:1.15rem;
    }
    .footer-inner p{margin:.35rem 0; color: rgba(234,242,246,.80)}
    .footer-links{
      display:flex;
      gap:.75rem;
      flex-wrap:wrap;
      margin-top:.35rem;
    }
    .footer-links a{
      color: rgba(234,242,246,.92);
      border:1px solid rgba(234,242,246,.14);
      background: rgba(234,242,246,.06);
      padding:.55rem .8rem;
      border-radius:999px;
      text-decoration:none;
      transition: transform .45s ease, background .45s ease, border-color .45s ease;
    }
    .footer-links a:hover{
      transform: translateY(-1px);
      background: rgba(234,242,246,.10);
      border-color: rgba(106,79,134,.35);
    }
    .copyright{
      margin-top: .85rem;
      padding-top: .9rem;
      border-top: 1px solid rgba(234,242,246,.12);
      color: rgba(234,242,246,.70);
      font-size:.92rem;
      letter-spacing:.03em;
    }

    @media (min-width:768px){
      .footer-inner{grid-template-columns: 1.1fr .9fr}
    }
  