:root{
    --bg: #faf7f1;
    --surface: #ffffff;
    --ink: #1c1a17;
    --ink-dim: #7a746a;
    --line: #e8e1d3;
    --gold: #a9812f;
    --gold-deep: #8a6a24;
    --gold-soft: #f1e6ce;
    --tag: #b5433a;
    --radius: 2px;
    --serif: 'Cormorant Garamond', serif;
    --sans: 'Inter', sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:15.5px; line-height:1.6;}
  a{color:inherit; text-decoration:none;}
  button{font-family:var(--sans); cursor:pointer;}
  h1,h2,h3,h4{font-family:var(--serif); font-weight:500; margin:0; color:var(--ink);}
  :focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .wrap{max-width:1240px; margin:0 auto; padding:0 28px;}

  /* ---------- TOPBAR ---------- */
  .topbar{background:var(--ink); color:#ddd6c8; font-size:12.5px;}
  .topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding:9px 28px; flex-wrap:wrap; gap:6px;}
  .topbar a:hover{color:var(--gold-soft);}

  /* ---------- HEADER ---------- */
  header.main{background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:70;}
  .header-row{display:flex; align-items:center; justify-content:space-between; padding:20px 28px; gap:24px; flex-wrap:wrap;}
  .logo{font-family:var(--serif); font-size:28px; letter-spacing:.06em; font-weight:600; background:none; border:none; color:var(--ink);}
  .search-box{flex:1; max-width:440px; display:flex; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
  .search-box input{flex:1; border:none; padding:11px 14px; font-family:var(--sans); font-size:14px; background:var(--surface); color:var(--ink);}
  .search-box input:focus{outline:none;}
  .search-box button{background:var(--ink); color:#fff; border:none; padding:0 18px; font-size:13px;}
  .header-icons{display:flex; align-items:center; gap:18px;}
  .icon-btn{position:relative; background:none; border:none; display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--ink); font-size:11px; font-weight:500;}
  .icon-btn svg{width:21px; height:21px;}
  .icon-btn .badge{position:absolute; top:-6px; right:-10px; background:var(--gold); color:#fff; font-size:10px; font-weight:700; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;}

  nav.catnav{background:var(--ink);}
  nav.catnav .wrap{display:flex; gap:2px; padding:0 28px; overflow-x:auto;}
  nav.catnav button{background:none; border:none; color:#d8d1c2; font-size:13.5px; font-weight:500; letter-spacing:.02em; padding:15px 18px; white-space:nowrap; border-bottom:2px solid transparent;}
  nav.catnav button:hover{color:#fff;}
  nav.catnav button[aria-current="true"]{color:#fff; border-bottom-color:var(--gold);}

  /* ---------- HERO PROMO TILES ---------- */
  .hero-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:2px; margin:28px 0;}
  .promo-tile{
    background:var(--surface); border:1px solid var(--line); padding:44px 40px; display:flex; flex-direction:column; justify-content:center; gap:10px;
    position:relative; min-height:230px; overflow:hidden;
  }
  .promo-tile.large{background:linear-gradient(135deg, var(--gold-soft), var(--surface) 70%);}
  .promo-tile .eyebrow{font-family:var(--sans); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600;}
  .promo-tile h2{font-size:32px; margin-top:6px; max-width:320px;}
  .promo-tile .from{font-family:var(--sans); font-size:14px; color:var(--ink-dim); margin-top:4px;}
  .promo-tile .cta{margin-top:16px; align-self:flex-start; background:var(--ink); color:#fff; border:none; padding:12px 22px; font-size:12.5px; font-weight:600; letter-spacing:.03em; border-radius:var(--radius);}
  .promo-tile .cta:hover{background:var(--gold-deep);}
  .promo-tile .ring-icon{position:absolute; right:-10px; bottom:-10px; opacity:.15; width:170px; height:170px;}

  /* ---------- BANNER STRIP ---------- */
  .banner-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-bottom:44px;}
  .banner-tile{
    background:var(--surface); border:1px solid var(--line); padding:26px 20px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px;
  }
  .banner-tile svg{width:34px; height:34px; color:var(--gold);}
  .banner-tile span{font-family:var(--sans); font-size:12.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--ink);}
  .banner-tile:hover{background:var(--gold-soft);}

  /* ---------- SECTION HEAD ---------- */
  .section-title{display:flex; align-items:baseline; justify-content:space-between; margin:56px 0 22px; flex-wrap:wrap; gap:10px;}
  .section-title h2{font-size:28px;}
  .section-title .eyebrow{display:block; font-family:var(--sans); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:6px;}

  /* ---------- PRODUCT GRID / CARD ---------- */
  .prod-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:26px;}
  .prod-card{background:var(--surface); border:1px solid var(--line); position:relative; display:flex; flex-direction:column;}
  .prod-media{position:relative; aspect-ratio:1/1; background:linear-gradient(160deg,#f4efe4,#fff); display:flex; align-items:center; justify-content:center; overflow:hidden;}
  .prod-media svg{width:56%; height:56%; transition:opacity .3s ease, transform .3s ease;}
  .prod-media .glyph-back{position:absolute; opacity:0; transform:scale(.9);}
  .prod-card:hover .glyph-front{opacity:0; transform:scale(1.06);}
  .prod-card:hover .glyph-back{opacity:1; transform:scale(1);}
  .prod-card .ribbon{position:absolute; top:12px; left:12px; background:var(--ink); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.05em; padding:4px 9px; text-transform:uppercase;}
  .prod-card .ribbon.locked{background:var(--tag);}
  .quick-actions{position:absolute; right:12px; top:12px; display:flex; flex-direction:column; gap:8px; opacity:0; transform:translateX(6px); transition:.2s;}
  .prod-card:hover .quick-actions{opacity:1; transform:translateX(0);}
  .quick-actions button{
    width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
    box-shadow:0 3px 8px rgba(0,0,0,.08);
  }
  .quick-actions button svg{width:16px; height:16px;}
  .quick-actions button.active{background:var(--gold); border-color:var(--gold); color:#fff;}
  .prod-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1;}
  .prod-body .cat{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-dim); font-weight:600;}
  .prod-body h3{font-size:19px;}
  .prod-body .price-row{display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:10px;}
  .prod-body .price{font-family:var(--sans); font-weight:700; font-size:16px; color:var(--ink);}
  .prod-body .price.tbd{font-size:12.5px; font-weight:600; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.03em;}
  .add-cart-btn{background:var(--ink); color:#fff; border:none; font-size:12px; font-weight:600; letter-spacing:.03em; padding:9px 14px; border-radius:var(--radius);}
  .add-cart-btn:hover{background:var(--gold-deep);}
  .add-cart-btn:disabled{background:#cfc9ba; cursor:default;}

  /* ---------- FEATURED BANNER ---------- */
  .feature-banner{
    margin:60px 0; background:var(--ink); color:#f3efe4; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:0; overflow:hidden;
  }
  .feature-banner .copy{padding:52px 48px;}
  .feature-banner .eyebrow{color:var(--gold-soft); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600;}
  .feature-banner h2{color:#fff; font-size:34px; margin:10px 0 14px;}
  .feature-banner p{color:#c9c2b1; font-size:15px; max-width:420px;}
  .feature-banner .cta{margin-top:20px; display:inline-block; background:var(--gold); color:#1c1a17; border:none; padding:13px 26px; font-size:12.5px; font-weight:700; letter-spacing:.03em; border-radius:var(--radius);}
  .feature-banner .cta:hover{background:#fff;}
  .feature-banner .art{padding:40px; display:flex; align-items:center; justify-content:center;}
  .feature-banner .art svg{width:190px; height:190px; opacity:.9;}

  /* ---------- CONFIG PANELS (posters / journals / tarot) ---------- */
  .config-card{background:var(--surface); border:1px solid var(--line); display:grid; grid-template-columns:1fr 1.15fr;}
  .config-card .art{padding:36px; display:flex; align-items:center; justify-content:center; border-right:1px solid var(--line); background:linear-gradient(160deg,#f4efe4,#fff);}
  .config-card .art svg{width:150px; height:220px;}
  .config-card .conf{padding:34px;}
  .field-label{display:block; font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:8px;}
  select, input[type=text], input[type=email]{
    width:100%; background:var(--surface); border:1px solid var(--line); color:var(--ink); font-family:var(--sans); font-size:14.5px; padding:11px 12px; border-radius:var(--radius);
  }
  .size-row, .pack-row{display:flex; gap:10px; margin-bottom:20px;}
  .size-opt, .pack-opt{flex:1; text-align:center; padding:12px 8px; border:1px solid var(--line); border-radius:var(--radius); background:none; font-size:12.5px; font-weight:600; color:var(--ink-dim);}
  .size-opt .dim{display:block; font-size:10.5px; font-weight:500; margin-top:4px; opacity:.8;}
  .pack-opt{text-align:left; padding:14px;}
  .pack-opt strong{display:block; font-family:var(--serif); font-size:16px; color:var(--ink); font-weight:500;}
  .size-opt[aria-pressed="true"], .pack-opt[aria-pressed="true"]{border-color:var(--gold); color:var(--gold-deep); background:var(--gold-soft);}
  .size-opt[aria-pressed="true"] .dim, .pack-opt[aria-pressed="true"] strong{color:var(--gold-deep);}
  .qty-row{display:flex; align-items:center; gap:12px; margin-bottom:20px;}
  .qty-row button{width:32px; height:32px; border:1px solid var(--line); background:none; border-radius:var(--radius); font-weight:700;}
  .qty-row span{font-weight:600; min-width:18px; text-align:center;}
  .journal-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px;}
  .journal-card{background:var(--surface); border:1px solid var(--line); padding:30px;}
  .journal-card .eyebrow{font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); font-weight:700;}
  .journal-card h3{font-size:22px; margin:8px 0 10px;}
  .journal-card p{color:var(--ink-dim); font-size:14.5px;}
  .journal-card .bottom-row{display:flex; justify-content:space-between; align-items:center; margin-top:20px; gap:10px;}
  .price-tbd{font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-dim);}
  .ladder{display:flex; align-items:center; gap:0; margin-bottom:30px; padding:16px 20px; border:1px solid var(--line); background:var(--surface); flex-wrap:wrap;}
  .ladder .rung{display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-dim);}
  .ladder .dot{width:7px; height:7px; border-radius:50%; background:var(--gold);}
  .ladder .arrow{margin:0 16px; color:var(--line); font-size:14px;}
  .lexicon-note{margin-top:34px; padding:22px 26px; border:1px dashed var(--line); background:var(--surface); font-size:14.5px; color:var(--ink-dim);}
  .lexicon-note strong{color:var(--ink); font-family:var(--sans);}
  .inline-link{background:none; border:none; padding:0; color:var(--gold-deep); text-decoration:underline; font-weight:600; font-size:14.5px;}

  /* ---------- FEATURE STRIP ---------- */
  .feat-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin:56px 0; background:var(--line); border:1px solid var(--line);}
  .feat-item{background:var(--surface); padding:26px 22px; display:flex; gap:14px; align-items:flex-start;}
  .feat-item svg{width:28px; height:28px; color:var(--gold); flex:none;}
  .feat-item h4{font-family:var(--sans); font-size:14px; font-weight:700; margin-bottom:4px;}
  .feat-item p{font-size:13px; color:var(--ink-dim); margin:0;}

  /* ---------- PANELS ---------- */
  section.panel{display:none;}
  section.panel.active{display:block; animation:fade .3s ease;}
  @keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  /* ---------- PASSWORD GATE ---------- */
  #passwordGate{
    position:fixed; inset:0; z-index:300; background:var(--ink); color:#f3efe4;
    display:flex; align-items:center; justify-content:center; padding:24px;
  }
  #passwordGate.hidden{display:none;}
  .gate-box{max-width:380px; width:100%; text-align:center;}
  .gate-box svg{width:56px; height:56px; margin:0 auto 20px; opacity:.9;}
  .gate-box h2{color:#fff; font-size:26px; margin-bottom:8px;}
  .gate-box p{color:#a8a094; font-size:14px; margin:0 0 26px;}
  .gate-box input{
    width:100%; background:rgba(255,255,255,.06); border:1px solid #3a362f; color:#fff;
    font-family:var(--sans); font-size:15px; padding:13px 14px; border-radius:var(--radius); text-align:center; letter-spacing:.05em;
  }
  .gate-box input::placeholder{color:#7a7469;}
  .gate-box button{
    width:100%; margin-top:14px; background:var(--gold); color:var(--ink); border:none; font-weight:700;
    font-size:13px; letter-spacing:.03em; padding:13px; border-radius:var(--radius);
  }
  .gate-box button:hover{background:var(--gold-soft);}
  .gate-error{color:#e08a7d; font-size:12.5px; margin-top:12px; min-height:16px;}
  .gate-note{color:#7a7469; font-size:11.5px; margin-top:22px; line-height:1.6;}

  /* ---------- COHERENCE INDICATOR ---------- */
  #coherenceDot{
    position:fixed; top:16px; right:16px; z-index:150; width:16px; height:16px; border-radius:50%;
    background:#8a3a34; box-shadow:0 0 0 3px rgba(138,58,52,.25); cursor:help; transition:.4s;
  }
  #coherenceDot[data-state="yellow"]{background:#d8ad3f; box-shadow:0 0 10px 2px rgba(216,173,63,.55);}
  #coherenceDot[data-state="green"]{background:#4f8a5f; box-shadow:0 0 12px 3px rgba(79,138,95,.6);}
  #coherenceDot[data-state="white"]{
    background:#fff; box-shadow:0 0 16px 5px rgba(255,255,255,.75);
    clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
  }
  #coherenceDot:hover::after{
    content:attr(data-label); position:absolute; top:24px; right:0; background:var(--ink); color:#f3efe4;
    font-size:11px; padding:6px 10px; white-space:nowrap; border-radius:var(--radius);
  }

  /* ---------- LEXICON / VISUALIZATIONS ---------- */
  .lex-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:22px;}
  .lex-card{background:var(--surface); border:1px solid var(--line); padding:0; display:flex; flex-direction:column;}
  .lex-media{aspect-ratio:1/1; background:linear-gradient(160deg,#f4efe4,#fff); display:flex; align-items:center; justify-content:center;}
  .lex-media svg{width:62%; height:62%;}
  .lex-body{padding:16px 18px 20px; display:flex; flex-direction:column; gap:8px;}
  .lex-body h3{font-size:17px; line-height:1.3;}
  .lex-body p{font-size:12.5px; color:var(--ink-dim); margin:0; min-height:32px;}
  .lex-body button{margin-top:4px; background:var(--ink); color:#fff; border:none; font-size:11.5px; font-weight:600; letter-spacing:.03em; padding:9px 12px; border-radius:var(--radius);}
  .lex-body button:hover{background:var(--gold-deep);}

  .keepsake-wrap{margin-top:44px; border:1px solid var(--gold); background:linear-gradient(160deg, var(--gold-soft), var(--surface) 60%); padding:36px;}
  .keepsake-wrap .badge-row{display:flex; align-items:center; gap:10px; margin-bottom:6px;}
  .keepsake-wrap .badge-row .dot{width:8px; height:8px; border-radius:50%; background:var(--gold);}
  .keepsake-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px; margin-top:22px;}
  .keepsake-card{background:var(--surface); border:1px solid var(--line); padding:22px; display:flex; flex-direction:column; gap:8px;}
  .keepsake-card h4{font-family:var(--serif); font-size:19px; font-weight:500;}
  .keepsake-card p{font-size:13px; color:var(--ink-dim); margin:0; flex:1;}
  .keepsake-card button{margin-top:6px; background:var(--ink); color:#fff; border:none; font-size:11.5px; font-weight:600; letter-spacing:.03em; padding:9px 12px; border-radius:var(--radius);}
  .keepsake-card button:hover{background:var(--gold-deep);}

  .price-philosophy{max-width:640px; color:var(--ink-dim); font-size:13.5px; font-style:italic; margin:-14px 0 30px; padding-left:16px; border-left:2px solid var(--gold);}

  /* ---------- DRAWER ---------- */
  .scrim{position:fixed; inset:0; background:rgba(20,18,15,.55); z-index:80; opacity:0; pointer-events:none; transition:.25s;}
  .scrim.open{opacity:1; pointer-events:auto;}
  .drawer{position:fixed; top:0; right:0; height:100%; width:min(420px,92vw); background:var(--surface); border-left:1px solid var(--line); z-index:90; transform:translateX(100%); transition:.3s cubic-bezier(.2,.9,.3,1); display:flex; flex-direction:column;}
  .drawer.open{transform:translateX(0);}
  .drawer-head{padding:22px 24px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center;}
  .drawer-head h3{font-size:19px;}
  .drawer-head button{background:none; border:none; font-size:22px; color:var(--ink-dim); line-height:1;}
  .drawer-body{flex:1; overflow-y:auto; padding:20px 24px;}
  .drawer-item{display:flex; justify-content:space-between; gap:10px; padding:14px 0; border-bottom:1px solid var(--line);}
  .drawer-item .name{font-size:15px; font-weight:600;}
  .drawer-item .meta{font-size:11.5px; color:var(--ink-dim); margin-top:3px;}
  .drawer-item .price{font-weight:700;}
  .drawer-item button.rm{background:none; border:none; color:var(--ink-dim); text-decoration:underline; font-size:11px; margin-top:6px; padding:0;}
  .drawer-empty{color:var(--ink-dim); text-align:center; padding:60px 10px; font-family:var(--serif); font-style:italic; font-size:17px;}
  .drawer-foot{border-top:1px solid var(--line); padding:20px 24px;}
  .drawer-foot .total-row{display:flex; justify-content:space-between; font-weight:700; margin-bottom:16px;}
  .drawer-pricing-note{font-size:11.5px; color:var(--ink-dim); font-style:italic; margin:0 0 14px; line-height:1.5;}
  .drawer-foot .checkout-btn{width:100%; background:var(--ink); color:#fff; border:none; padding:14px; font-size:13px; font-weight:700; letter-spacing:.03em; border-radius:var(--radius);}
  .drawer-foot .checkout-btn:hover{background:var(--gold-deep);}

  /* ---------- MODALS ---------- */
  .modal-scrim{position:fixed; inset:0; background:rgba(20,18,15,.6); z-index:100; display:none; align-items:center; justify-content:center; padding:20px;}
  .modal-scrim.open{display:flex;}
  .modal{background:var(--surface); border:1px solid var(--line); max-width:520px; width:100%; max-height:88vh; overflow-y:auto; padding:36px; border-radius:var(--radius);}
  .modal .eyebrow{font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); font-weight:700; display:block; margin-bottom:8px;}
  .modal h3{font-size:23px; margin-bottom:12px;}
  .modal p.desc{color:var(--ink-dim); font-size:14.5px; margin-bottom:18px;}
  .code-box{background:var(--bg); border:1px solid var(--line); padding:13px 16px; margin:8px 0 18px; display:flex; justify-content:space-between; align-items:center; gap:10px; border-radius:var(--radius);}
  .code-box span.val{font-family:monospace; font-size:12.5px; word-break:break-all;}
  .code-box button{background:none; border:1px solid var(--line); font-size:11px; font-weight:600; padding:6px 10px; border-radius:var(--radius);}
  .code-box button:hover{border-color:var(--gold); color:var(--gold-deep);}
  .modal .note{color:var(--ink-dim); font-size:13.5px; margin-bottom:18px;}
  .modal .actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px;}
  .btn-solid{background:var(--ink); color:#fff; border:none; padding:12px 20px; font-size:12.5px; font-weight:700; letter-spacing:.02em; border-radius:var(--radius); display:inline-block;}
  .btn-solid:hover{background:var(--gold-deep);}
  .btn-outline{background:none; border:1px solid var(--line); color:var(--ink); padding:12px 20px; font-size:12.5px; font-weight:700; letter-spacing:.02em; border-radius:var(--radius);}
  .btn-outline:hover{border-color:var(--ink);}
  .field-row label.field-label{margin-top:14px;}

  .toast{position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(140%); background:var(--ink); color:#fff; font-size:13px; font-weight:600; padding:12px 22px; border-radius:var(--radius); z-index:120; transition:.3s;}
  .toast.show{transform:translateX(-50%) translateY(0);}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#cfc8b8; margin-top:70px;}
  .footer-top{padding:56px 28px 40px;}
  .footer-grid{max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:40px;}
  .footer-grid h4{color:#fff; font-family:var(--sans); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:16px;}
  .footer-grid p{font-size:13.5px; line-height:1.7; margin:0 0 8px;}
  .footer-grid a{display:block; font-size:13.5px; margin-bottom:9px; color:#cfc8b8;}
  .footer-grid a:hover{color:var(--gold-soft);}
  .newsletter-row{display:flex; margin-top:10px; border:1px solid #3a362f;}
  .newsletter-row input{flex:1; background:none; border:none; padding:11px 12px; color:#fff; font-size:13.5px;}
  .newsletter-row input::placeholder{color:#8a8375;}
  .newsletter-row button{background:var(--gold); border:none; color:#1c1a17; font-weight:700; font-size:12px; padding:0 18px;}
  .footer-bottom{border-top:1px solid #3a362f; padding:20px 28px; text-align:center; font-size:12.5px; color:#8a8375;}

  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr;}
    .banner-strip{grid-template-columns:repeat(2,1fr);}
    .config-card{grid-template-columns:1fr;}
    .config-card .art{border-right:none; border-bottom:1px solid var(--line);}
    .feature-banner{grid-template-columns:1fr;}
    .feat-strip{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .banner-strip{grid-template-columns:1fr 1fr;}
    .footer-grid{grid-template-columns:1fr;}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none !important; transition:none !important;}}
