/* ═══════════════════════════════════════════════
       DESIGN TOKENS
    ═══════════════════════════════════════════════ */
    :root {
      --void:        #030608;
      --midnight:    #060c14;
      --deep-teal:   #0a1d2e;
      --teal:        #0e2a40;
      --teal-mid:    #153550;
      --ice:         #6bbdd4;
      --ice-15:      rgba(107,189,212,0.15);
      --ice-08:      rgba(107,189,212,0.08);
      --dragonfly:   #5cc4b8;
      --silver:      #b8cad4;
      --silver-50:   rgba(184,202,212,0.50);
      --silver-20:   rgba(184,202,212,0.20);
      --bark:        #0d0804;
      --amber-dk:    #1c0d03;
      --amber:       #7a3a08;
      --gold:        #b87818;
      --honey:       #d89818;
      --honey-20:    rgba(216,152,24,0.20);
      --cream:       #ecd890;
      --parchment:   #f8ecc8;
      --f-display:   'Cormorant', 'Georgia', serif;
      --f-caps:      'Cinzel', serif;
      --f-body:      'Crimson Pro', 'Georgia', serif;
      --ease-silk:   cubic-bezier(0.22, 1, 0.36, 1);
      --ease-cinema: cubic-bezier(0.16, 1, 0.30, 1);
      --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
    body { background: var(--midnight); color: var(--silver); font-family: var(--f-body); line-height: 1.7; overflow-x: hidden; }

    body::after {
      content: '';
      position: fixed; inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='250' height='250' filter='url(%23n)'/%3E%3C/svg%3E");
      opacity: 0.038; pointer-events: none; z-index: 9998; mix-blend-mode: screen;
    }

    img { display: block; max-width: 100%; }
    a   { text-decoration: none; color: inherit; }
    ::-webkit-scrollbar { width: 2px; }
    ::-webkit-scrollbar-track { background: var(--void); }
    ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, var(--ice), var(--honey)); }
    .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

    /* ─── Particle canvas ─── */
    #particles { position: fixed; inset: 0; pointer-events: none; z-index: 1; }

    /* ─── Custom cursor ─── */
    .cursor { position: fixed; width: 8px; height: 8px; border-radius: 50%; background: var(--ice); pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: width .25s var(--ease-silk), height .25s var(--ease-silk), background .4s, opacity .3s; mix-blend-mode: screen; }
    .cursor-ring { position: fixed; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(107,189,212,.45); pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: width .4s var(--ease-silk), height .4s var(--ease-silk), border-color .4s, opacity .3s; }
    body.cursor-hover .cursor { width: 14px; height: 14px; background: var(--honey); }
    body.cursor-hover .cursor-ring { width: 52px; height: 52px; border-color: rgba(216,152,24,.4); }
    @media (hover: none) { .cursor, .cursor-ring { display: none; } }

    /* ═══════════════════════════════════════════════
       NAVIGATION
    ═══════════════════════════════════════════════ */
    .nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 200;
      padding: 2rem 3.5rem;
      display: flex; align-items: center; justify-content: space-between;
      transition: padding .5s var(--ease-silk), background .5s, border-color .5s;
      border-bottom: 1px solid transparent;
    }
    .nav.stuck { padding: 1rem 3.5rem; background: rgba(4,8,14,.92); backdrop-filter: blur(18px) saturate(1.4); border-bottom-color: rgba(107,189,212,.06); }
    .nav-brand { display: flex; align-items: center; }
    .nav-brand-svg { height: 40px; width: auto; flex-shrink: 0; display: block; }
    .nav-links { display: flex; align-items: center; gap: 2.5rem; list-style: none; }
    .nav-links a { font-family: var(--f-caps); font-size: .58rem; letter-spacing: .20em; color: var(--silver); opacity: .60; position: relative; transition: opacity .3s, color .3s; }
    .nav-links a::after { content: ''; position: absolute; bottom: -3px; left: 0; width: 0; height: 1px; background: var(--ice); transition: width .35s var(--ease-silk); }
    .nav-links a:hover, .nav-links a.nav-active { opacity: 1; color: var(--ice); }
    .nav-links a:hover::after, .nav-links a.nav-active::after { width: 100%; }
    .nav-cta { opacity: 1 !important; color: var(--ice) !important; border: 1px solid rgba(107,189,212,.25); padding: .5rem 1.1rem; transition: background .3s, box-shadow .3s !important; }
    .nav-cta::after { display: none !important; }
    .nav-cta:hover { background: var(--ice-15); }

    .nav-right { display: flex; align-items: center; gap: 1.6rem; }
    .cart-nav-btn { position: relative; background: none; border: none; cursor: pointer; padding: .4rem; color: var(--silver); opacity: .65; transition: opacity .3s, color .3s; }
    .cart-nav-btn:hover { opacity: 1; color: var(--ice); }
    .cart-nav-btn svg { width: 22px; height: 22px; display: block; }
    .cart-badge {
      position: absolute; top: -5px; right: -7px;
      background: var(--honey); color: var(--midnight);
      border-radius: 50%; width: 18px; height: 18px;
      font-family: var(--f-caps); font-size: .48rem; font-weight: 600;
      display: flex; align-items: center; justify-content: center;
      opacity: 0; transform: scale(0);
      transition: opacity .3s var(--ease-spring), transform .3s var(--ease-spring);
      pointer-events: none;
    }
    .cart-badge.visible { opacity: 1; transform: scale(1); }
    .cart-badge.pop { animation: badgePop .4s var(--ease-spring); }
    @keyframes badgePop { 0%,100% { transform: scale(1); } 50% { transform: scale(1.6); } }

    /* ═══════════════════════════════════════════════
       SHOP HERO
    ═══════════════════════════════════════════════ */
    .shop-hero {
      position: relative; z-index: 2;
      height: 52vh; min-height: 380px;
      display: flex; align-items: center; justify-content: center;
      overflow: hidden;
      background: linear-gradient(160deg, var(--deep-teal) 0%, var(--midnight) 50%, var(--bark) 100%);
    }
    .sh-orbs { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
    .sh-orb { position: absolute; border-radius: 50%; filter: blur(55px); will-change: transform; }
    .sh-orb-1 { width: 700px; height: 700px; background: radial-gradient(circle at 45% 45%, rgba(107,189,212,.24) 0%, rgba(14,42,64,.10) 45%, transparent 68%); top: -20%; left: -15%; animation: sweepA 10s ease-in-out infinite; }
    .sh-orb-2 { width: 520px; height: 520px; background: radial-gradient(circle at 50% 50%, rgba(216,152,24,.18) 0%, rgba(122,58,8,.08) 45%, transparent 68%); bottom: -15%; right: -10%; animation: sweepD 11s ease-in-out infinite; }
    .sh-orb-3 { width: 420px; height: 420px; background: radial-gradient(circle at 50% 50%, rgba(92,196,184,.14) 0%, transparent 68%); top: 30%; left: 45%; transform: translate(-50%,-50%); animation: sweepC 9s ease-in-out infinite; }

    @keyframes sweepA { 0%,100% { transform: translate(0,0) scale(1); } 30% { transform: translate(500px,180px) scale(1.08); } 60% { transform: translate(300px,450px) scale(.94); } }
    @keyframes sweepB { 0%,100% { transform: translate(0,0) scale(1); } 35% { transform: translate(-480px,350px) scale(1.06); } 70% { transform: translate(-220px,580px) scale(.94); } }
    @keyframes sweepC { 0%,100% { transform: translate(-50%,-50%) scale(1); } 25% { transform: translate(calc(-50% + 280px),calc(-50% - 180px)) scale(1.10); } 50% { transform: translate(calc(-50% - 250px),calc(-50% + 160px)) scale(.90); } 75% { transform: translate(calc(-50% + 180px),calc(-50% + 220px)) scale(1.06); } }
    @keyframes sweepD { 0%,100% { transform: translate(0,0) scale(1); } 40% { transform: translate(-520px,-380px) scale(1.10); } 70% { transform: translate(-270px,-540px) scale(.92); } }
    @keyframes sweepE { 0%,100% { transform: translate(0,0) scale(1); } 40% { transform: translate(420px,-260px) scale(1.08); } 75% { transform: translate(580px,-130px) scale(.95); } }

    .shop-hero-inner { position: relative; z-index: 2; text-align: center; padding: 0 2rem; }
    .shop-breadcrumb { font-family: var(--f-caps); font-size: .50rem; letter-spacing: .22em; color: var(--silver); opacity: .40; margin-bottom: 1.6rem; }
    .shop-breadcrumb a:hover { opacity: .8; transition: opacity .25s; }
    .shop-hero-title { font-family: var(--f-caps); font-size: clamp(2.4rem, 6vw, 5rem); font-weight: 400; letter-spacing: .30em; color: var(--silver); line-height: 1; margin-bottom: 1.1rem; }
    .shop-hero-sub { font-family: var(--f-display); font-style: italic; font-size: clamp(1.05rem, 2.2vw, 1.5rem); font-weight: 300; color: var(--ice); opacity: .75; letter-spacing: .04em; }

    /* ═══════════════════════════════════════════════
       SHOP SECTION
    ═══════════════════════════════════════════════ */
    .shop-section { position: relative; z-index: 2; background: var(--midnight); padding: 5.5rem 0 11rem; }
    .shop-inner { max-width: 1180px; margin: 0 auto; padding: 0 3.5rem; }

    /* World dividers */
    .world-div { display: flex; align-items: center; gap: 1.8rem; margin-bottom: 3.5rem; }
    .world-div::before, .world-div::after { content: ''; flex: 1; height: 1px; }
    .world-div.dark::before { background: linear-gradient(to right, transparent, rgba(107,189,212,.18)); }
    .world-div.dark::after  { background: linear-gradient(to left,  transparent, rgba(107,189,212,.18)); }
    .world-div.light::before { background: linear-gradient(to right, transparent, rgba(216,152,24,.20)); }
    .world-div.light::after  { background: linear-gradient(to left,  transparent, rgba(216,152,24,.20)); }
    .world-div-label { font-family: var(--f-caps); font-size: .48rem; letter-spacing: .30em; white-space: nowrap; }
    .world-div.dark .world-div-label  { color: var(--ice);   opacity: .65; }
    .world-div.light .world-div-label { color: var(--honey); opacity: .70; }

    /* Light-world spacer */
    .world-gap { margin-top: 5.5rem; }

    /* Books grid */
    .books-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 2.2rem; }

    /* ═══════════════════════════════════════════════
       BOOK CARD
    ═══════════════════════════════════════════════ */
    .book-card {
      flex: 0 0 calc(33.33% - 1.5rem);
      max-width: 340px;
      background: rgba(6,12,20,.65);
      border: 1px solid rgba(107,189,212,.06);
      cursor: pointer;
      transform-style: preserve-3d;
      transform: perspective(1000px);
      will-change: transform;
      overflow: hidden;
      position: relative;
      transition: border-color .45s, box-shadow .5s, transform .6s var(--ease-silk);
    }
    .book-card[data-world="light"] { border-color: rgba(216,152,24,.06); }
    .book-card:hover { border-color: rgba(107,189,212,.22); box-shadow: 0 28px 70px rgba(107,189,212,.08), 0 0 0 1px rgba(107,189,212,.09); }
    .book-card[data-world="light"]:hover { border-color: rgba(216,152,24,.26); box-shadow: 0 28px 70px rgba(216,152,24,.10), 0 0 0 1px rgba(216,152,24,.12); }

    /* Top glow on hover */
    .book-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% -10%, rgba(107,189,212,.09) 0%, transparent 65%); opacity: 0; transition: opacity .5s; pointer-events: none; z-index: 1; }
    .book-card[data-world="light"]::before { background: radial-gradient(ellipse at 50% -10%, rgba(216,152,24,.10) 0%, transparent 65%); }
    .book-card:hover::before { opacity: 1; }

    .book-card-cover {
      position: relative;
      overflow: hidden;
      background: transparent;
      line-height: 0;
    }
    .book-card-cover img {
      position: relative;
      width: 100%;
      height: auto;
      display: block;
      vertical-align: bottom;
      filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.55));
      transition: transform .75s var(--ease-silk), filter .75s var(--ease-silk);
    }
    .book-card:hover .book-card-cover img {
      transform: scale(1.04);
      filter: drop-shadow(0 14px 32px rgba(0, 0, 0, 0.65));
    }

    /* Hover overlay CTA */
    .card-cta-overlay { position: absolute; inset: 0; background: rgba(6,12,20,.52); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .38s; z-index: 2; }
    .book-card:hover .card-cta-overlay { opacity: 1; }
    .card-cta-label { font-family: var(--f-caps); font-size: .60rem; letter-spacing: .24em; color: #fff; border: 1px solid rgba(255,255,255,.38); padding: .65rem 1.4rem; background: rgba(107,189,212,.14); }
    .book-card[data-world="light"] .card-cta-label { background: rgba(216,152,24,.18); border-color: rgba(216,152,24,.45); }

    .book-card-info { padding: 0.85rem 1.6rem 1.75rem; position: relative; z-index: 2; }
    .book-card-meta { font-family: var(--f-caps); font-size: .44rem; letter-spacing: .28em; display: flex; align-items: center; gap: .6rem; margin-bottom: .5rem; }
    .book-card-meta, .book-card-meta * { color: var(--ice); opacity: .65; }
    .book-card[data-world="light"] .book-card-meta, .book-card[data-world="light"] .book-card-meta * { color: var(--honey); opacity: .70; }
    .meta-dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
    .book-card-title { font-family: var(--f-display); font-weight: 400; font-size: 1.02rem; line-height: 1.32; color: var(--silver); margin-bottom: 1rem; }
    .book-card-price { font-family: var(--f-caps); font-size: .50rem; letter-spacing: .16em; color: var(--silver); opacity: .40; }
    .book-card-price strong { font-weight: 500; font-size: .58rem; margin-right: .25rem; opacity: 1; }
    .book-card[data-world="dark"] .book-card-price strong { color: var(--ice); }
    .book-card[data-world="light"] .book-card-price strong { color: var(--honey); }

    /* ─── Scroll reveal ─── */
    .reveal { opacity: 0; transform: translateY(30px); transition: opacity .9s var(--ease-cinema), transform .9s var(--ease-cinema); }
    .reveal.in-view { opacity: 1; transform: translateY(0); }
    .delay-1 { transition-delay: .06s; }
    .delay-2 { transition-delay: .13s; }
    .delay-3 { transition-delay: .20s; }
    .delay-4 { transition-delay: .08s; }
    .delay-5 { transition-delay: .16s; }

    /* ═══════════════════════════════════════════════
       FORMAT MODAL
    ═══════════════════════════════════════════════ */
    .modal-backdrop {
      position: fixed; inset: 0; z-index: 700;
      background: rgba(3,6,8,.82);
      backdrop-filter: blur(14px) saturate(1.1);
      display: flex; align-items: center; justify-content: center;
      padding: 1.5rem;
      opacity: 0; visibility: hidden;
      transition: opacity .35s, visibility 0s .35s;
    }
    .modal-backdrop.open { opacity: 1; visibility: visible; transition: opacity .35s; }

    .format-modal {
      width: 100%; max-width: 900px; max-height: 92vh;
      background: var(--deep-teal);
      border: 1px solid rgba(107,189,212,.09);
      box-shadow: 0 60px 180px rgba(0,0,0,.6), 0 0 0 1px rgba(107,189,212,.05);
      display: grid; grid-template-columns: 290px 1fr;
      position: relative; overflow: hidden;
      transform: scale(.93) translateY(20px);
      opacity: 0;
      transition: transform .48s var(--ease-spring), opacity .35s;
    }
    .modal-backdrop.open .format-modal { transform: scale(1) translateY(0); opacity: 1; }

    .modal-close-btn {
      position: absolute; top: 1.1rem; right: 1.3rem;
      background: none; border: none; cursor: pointer;
      font-family: var(--f-caps); font-size: .50rem; letter-spacing: .18em;
      color: var(--silver); opacity: .38; padding: .4rem .65rem;
      transition: opacity .25s; z-index: 3;
    }
    .modal-close-btn:hover { opacity: 1; }

    /* Cover side */
    .modal-cover { position: relative; overflow: hidden; min-height: 420px; background: var(--void); }
    .modal-cover img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: contain;
      object-position: center center;
      filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.5));
    }
    .modal-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, transparent 55%, var(--deep-teal) 100%); }

    /* Info side */
    .modal-info {
      padding: 2.6rem 2.8rem 2.4rem 2.2rem;
      overflow-y: auto; max-height: 92vh;
      display: flex; flex-direction: column;
    }
    .modal-info::-webkit-scrollbar { width: 2px; }
    .modal-info::-webkit-scrollbar-thumb { background: rgba(107,189,212,.18); }
    .modal-badge { font-family: var(--f-caps); font-size: .46rem; letter-spacing: .28em; color: var(--ice); opacity: .62; margin-bottom: .8rem; }
    .modal-title-h { font-family: var(--f-display); font-weight: 400; font-size: 1.62rem; line-height: 1.22; color: var(--silver); margin-bottom: .85rem; }
    .modal-desc-p {
      font-family: var(--f-display);
      font-style: italic;
      font-weight: 300;
      font-size: 1.02rem;
      line-height: 1.65;
      letter-spacing: 0.01em;
      color: var(--silver);
      opacity: .72;
      margin-bottom: 2rem;
    }

    /* Divider */
    .modal-divider { height: 1px; background: rgba(107,189,212,.08); margin-bottom: 1.6rem; }

    /* Format tiles */
    .modal-formats { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: 1.5rem; }
    .format-tile {
      border: 1.5px solid rgba(107,189,212,.11);
      padding: 1.1rem 1.0rem 1.0rem;
      cursor: pointer; position: relative; overflow: hidden;
      transition: border-color .3s, background .3s, box-shadow .3s;
    }
    .format-tile:hover { border-color: rgba(107,189,212,.26); background: rgba(107,189,212,.03); }
    .format-tile[data-format="paperback"]:hover { border-color: rgba(216,152,24,.26); background: rgba(216,152,24,.03); }
    .format-tile.selected[data-format="ebook"] { border-color: var(--ice); background: rgba(107,189,212,.07); box-shadow: inset 0 0 24px rgba(107,189,212,.04); }
    .format-tile.selected[data-format="paperback"] { border-color: var(--honey); background: rgba(216,152,24,.07); box-shadow: inset 0 0 24px rgba(216,152,24,.04); }

    .fmt-icon { font-size: 1.5rem; margin-bottom: .45rem; display: block; line-height: 1; }
    .fmt-name { font-family: var(--f-caps); font-size: .50rem; letter-spacing: .24em; margin-bottom: .28rem; }
    .format-tile[data-format="ebook"] .fmt-name { color: var(--ice); }
    .format-tile[data-format="paperback"] .fmt-name { color: var(--honey); }
    .fmt-price { font-family: var(--f-display); font-size: 1.72rem; font-weight: 500; color: var(--silver); line-height: 1; margin-bottom: .32rem; }
    .fmt-note { font-family: var(--f-body); font-size: .80rem; color: var(--silver); opacity: .42; line-height: 1.45; }
    .fmt-check {
      position: absolute; top: .75rem; right: .75rem;
      width: 18px; height: 18px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .62rem; opacity: 0; transform: scale(0);
      transition: opacity .25s, transform .28s var(--ease-spring);
    }
    .format-tile.selected[data-format="ebook"] .fmt-check { background: var(--ice); color: var(--midnight); opacity: 1; transform: scale(1); }
    .format-tile.selected[data-format="paperback"] .fmt-check { background: var(--honey); color: var(--midnight); opacity: 1; transform: scale(1); }

    /* Qty row */
    .modal-qty-row { display: flex; align-items: center; gap: 1.2rem; margin-bottom: 1.4rem; }
    .qty-lbl { font-family: var(--f-caps); font-size: .48rem; letter-spacing: .22em; color: var(--silver); opacity: .45; }
    .qty-ctrl { display: flex; align-items: center; border: 1px solid rgba(107,189,212,.14); }
    .qty-btn { background: none; border: none; width: 32px; height: 32px; cursor: pointer; color: var(--silver); font-size: 1rem; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s; font-family: var(--f-body); }
    .qty-btn:hover { background: rgba(107,189,212,.10); color: var(--ice); }
    .qty-n { font-family: var(--f-display); font-size: 1.05rem; color: var(--silver); min-width: 38px; text-align: center; }

    /* CTAs */
    .modal-ctas { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: .9rem; }
    .modal-btn {
      font-family: var(--f-caps); font-size: .52rem; letter-spacing: .20em;
      padding: 1.0rem 1rem; border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center; gap: .5rem;
      transition: background .3s, box-shadow .3s, opacity .3s, transform .2s;
    }
    .modal-btn:active { transform: scale(.97); }
    .btn-add-cart { background: rgba(107,189,212,.12); color: var(--ice); border: 1px solid rgba(107,189,212,.28); }
    .btn-add-cart:hover:not(:disabled) { background: rgba(107,189,212,.22); box-shadow: 0 0 26px rgba(107,189,212,.12); }
    .btn-add-cart.success { background: rgba(107,189,212,.22) !important; border-color: var(--ice) !important; color: var(--ice) !important; }
    .btn-buy-now { background: var(--honey); color: var(--midnight); font-weight: 600; }
    .btn-buy-now:hover:not(:disabled) { background: var(--gold); box-shadow: 0 0 30px rgba(216,152,24,.30); }
    .modal-btn:disabled { opacity: .30; cursor: not-allowed; pointer-events: none; }
    .modal-hint { font-family: var(--f-body); font-size: .82rem; color: var(--silver); opacity: .32; text-align: center; margin-top: .2rem; }
    .modal-security { font-family: var(--f-caps); font-size: .40rem; letter-spacing: .16em; color: var(--silver); opacity: .22; text-align: center; margin-top: .8rem; }

    /* ═══════════════════════════════════════════════
       CART DRAWER
    ═══════════════════════════════════════════════ */
    .cart-overlay { position: fixed; inset: 0; z-index: 800; pointer-events: none; }
    .cart-overlay.open { pointer-events: all; }
    .cart-bg { position: absolute; inset: 0; background: rgba(3,6,8,.58); opacity: 0; transition: opacity .38s; }
    .cart-overlay.open .cart-bg { opacity: 1; }

    .cart-drawer {
      position: absolute; top: 0; right: 0;
      width: 430px; max-width: 100vw; height: 100%;
      background: var(--midnight);
      border-left: 1px solid rgba(107,189,212,.07);
      box-shadow: -20px 0 80px rgba(0,0,0,.5);
      transform: translateX(100%);
      transition: transform .5s var(--ease-silk);
      display: flex; flex-direction: column; overflow: hidden;
    }
    .cart-overlay.open .cart-drawer { transform: translateX(0); }

    .cart-head { padding: 1.8rem 1.8rem 1.3rem; border-bottom: 1px solid rgba(107,189,212,.06); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
    .cart-head-title { font-family: var(--f-caps); font-size: .56rem; letter-spacing: .26em; color: var(--silver); }
    .cart-head-count { font-family: var(--f-body); font-size: .88rem; color: var(--silver); opacity: .35; margin-left: .7rem; }
    .cart-x-btn { background: none; border: none; cursor: pointer; color: var(--silver); opacity: .38; font-size: 1.1rem; padding: .3rem; transition: opacity .25s; }
    .cart-x-btn:hover { opacity: 1; }

    .cart-body { flex: 1; overflow-y: auto; padding: 1rem 1.8rem; }
    .cart-body::-webkit-scrollbar { width: 2px; }
    .cart-body::-webkit-scrollbar-thumb { background: rgba(107,189,212,.18); }

    .cart-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; padding: 3rem 1.5rem; }
    .cart-empty-icon { font-size: 3.2rem; margin-bottom: 1.2rem; opacity: .28; }
    .cart-empty-msg { font-family: var(--f-display); font-style: italic; font-size: 1.3rem; color: var(--silver); opacity: .45; margin-bottom: .6rem; }
    .cart-empty-sub { font-family: var(--f-body); font-size: .92rem; color: var(--silver); opacity: .28; }

    .cart-item {
      display: grid; grid-template-columns: 58px 1fr auto;
      gap: .9rem; align-items: start;
      padding: 1.1rem 0; border-bottom: 1px solid rgba(107,189,212,.05);
      animation: slideIn .4s var(--ease-spring);
    }
    @keyframes slideIn { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: translateX(0); } }
    .cart-item:last-child { border-bottom: none; }
    .ci-cover { width: 58px; height: 86px; object-fit: contain; background: var(--void); flex-shrink: 0; }
    .ci-info { display: flex; flex-direction: column; gap: .22rem; }
    .ci-title { font-family: var(--f-display); font-size: .95rem; line-height: 1.30; color: var(--silver); }
    .ci-format { font-family: var(--f-caps); font-size: .40rem; letter-spacing: .20em; opacity: .55; }
    .ci-format.ebook { color: var(--ice); }
    .ci-format.paperback { color: var(--honey); }
    .ci-qty-row { display: flex; align-items: center; gap: .45rem; margin-top: .45rem; }
    .ci-qty-btn { background: none; border: 1px solid rgba(107,189,212,.12); width: 22px; height: 22px; cursor: pointer; color: var(--silver); opacity: .55; font-size: .85rem; display: flex; align-items: center; justify-content: center; transition: opacity .2s, border-color .2s; border-radius: 0; }
    .ci-qty-btn:hover { opacity: 1; border-color: rgba(107,189,212,.30); }
    .ci-qty-n { font-family: var(--f-body); font-size: .92rem; color: var(--silver); min-width: 20px; text-align: center; }
    .ci-right { display: flex; flex-direction: column; align-items: flex-end; gap: .5rem; }
    .ci-price { font-family: var(--f-display); font-size: 1.05rem; color: var(--silver); white-space: nowrap; }
    .ci-remove { background: none; border: none; cursor: pointer; color: var(--silver); opacity: .22; font-size: 1rem; transition: opacity .25s; padding: 0; }
    .ci-remove:hover { opacity: .80; }

    .cart-foot { padding: 1.3rem 1.8rem 2rem; border-top: 1px solid rgba(107,189,212,.06); flex-shrink: 0; }
    .cart-sub-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: .4rem; }
    .cart-sub-lbl { font-family: var(--f-caps); font-size: .50rem; letter-spacing: .18em; color: var(--silver); opacity: .45; }
    .cart-sub-val { font-family: var(--f-display); font-size: 1.45rem; color: var(--silver); }
    .cart-ship-note { font-family: var(--f-body); font-size: .82rem; color: var(--silver); opacity: .28; margin-bottom: 1.3rem; }
    .cart-checkout-cta {
      width: 100%; padding: 1.1rem;
      background: var(--honey); color: var(--midnight);
      border: none; cursor: pointer;
      font-family: var(--f-caps); font-size: .56rem; letter-spacing: .22em;
      display: flex; align-items: center; justify-content: center; gap: .8rem;
      transition: background .3s, box-shadow .3s;
    }
    .cart-checkout-cta:hover { background: var(--gold); box-shadow: 0 0 30px rgba(216,152,24,.25); }

    /* ═══════════════════════════════════════════════
       FOOTER
    ═══════════════════════════════════════════════ */
    .site-footer {
      position: relative; z-index: 2;
      background: var(--void);
      border-top: 1px solid rgba(107,189,212,.05);
      padding: 2rem 3.5rem;
      display: flex; align-items: center; justify-content: space-between;
    }
    .footer-brand { display: flex; align-items: center; gap: .9rem; }
    .footer-brand svg { height: 28px; width: auto; display: block; opacity: .45; }
    .footer-brand-text { font-family: var(--f-body); font-style: italic; font-size: .92rem; color: var(--silver); opacity: .38; }
    .footer-copy { font-family: var(--f-caps); font-size: .42rem; letter-spacing: .20em; color: var(--silver); opacity: .22; }

    /* ═══════════════════════════════════════════════
       RESPONSIVE
    ═══════════════════════════════════════════════ */
    @media (max-width: 1050px) { .book-card { flex: 0 0 calc(50% - 1.1rem); max-width: 380px; } }
    @media (max-width: 768px) {
      .nav { padding: 1.3rem 1.8rem; }
      .nav.stuck { padding: .9rem 1.8rem; }
      .nav-links { display: none; }
      .shop-inner { padding: 0 1.8rem; }
      .shop-hero-title { letter-spacing: .18em; }
    }
    @media (max-width: 640px) {
      .book-card { flex: 0 0 100%; max-width: 400px; }
      .format-modal { grid-template-columns: 1fr; }
      .modal-cover { display: none; }
      .modal-info { padding: 2rem 1.6rem; max-height: 88vh; }
      .modal-ctas { grid-template-columns: 1fr; }
      .cart-drawer { width: 100vw; max-width: 100vw; }
      .shop-footer { flex-direction: column; gap: 1rem; text-align: center; padding: 1.6rem; }
      .site-footer { flex-direction: column; gap: .8rem; text-align: center; padding: 1.6rem; }
    }

/* ═══════════════════════════════════════════════════════════
   WOOCOMMERCE — single product & product-browse skin
   (shop.css loads on all is_woocommerce() screens)
═══════════════════════════════════════════════════════════ */
.dm-woo { position: relative; z-index: 2; min-height: 60vh; }
.dm-woo-single { padding: 9rem 0 6rem; }
.dm-woo-inner { max-width: 1100px; margin: 0 auto; padding: 0 3.5rem; }
.dm-woo a { color: var(--ice); }
.dm-woo .woocommerce { color: var(--silver); }

.dm-woo .woocommerce-message,
.dm-woo .woocommerce-info,
.dm-woo .woocommerce-error {
	background: rgba(6,12,20,.6);
	border: 1px solid rgba(107,189,212,.14);
	border-left: 3px solid var(--honey);
	color: var(--silver);
	font-family: var(--f-body);
	padding: 1rem 1.3rem; margin-bottom: 1.5rem; list-style: none; border-radius: 0;
}
.dm-woo .woocommerce-error { border-left-color: #d05050; }

.dm-woo-single .product_title,
.dm-woo-single .product .product_title {
	font-family: var(--f-display); font-weight: 300; color: var(--silver);
	font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.1; margin-bottom: 1rem;
}
.dm-woo-single .price,
.dm-woo-single .price .woocommerce-Price-amount {
	font-family: var(--f-display); color: var(--ice); font-size: 1.7rem;
}
.dm-woo-single .woocommerce-product-details__short-description {
	font-family: var(--f-display); font-style: italic; color: var(--silver);
	opacity: .8; line-height: 1.75; margin: 1rem 0 1.5rem;
}
.dm-woo-single table.variations { border: none; margin-bottom: 1.2rem; }
.dm-woo-single table.variations td, .dm-woo-single table.variations th { border: none; padding: .5rem .5rem .5rem 0; }
.dm-woo-single table.variations label { font-family: var(--f-caps); font-size: .5rem; letter-spacing: .18em; color: var(--silver); opacity: .7; }
.dm-woo-single table.variations select {
	background: rgba(3,6,8,.5); border: 1px solid rgba(107,189,212,.14); color: var(--silver);
	font-family: var(--f-body); padding: .6rem .9rem; border-radius: 0;
}
.dm-woo-single .quantity input.qty {
	background: rgba(3,6,8,.5); border: 1px solid rgba(107,189,212,.14); color: var(--silver);
	font-family: var(--f-body); padding: .6rem; width: 70px; border-radius: 0;
}
.dm-woo-single .single_add_to_cart_button,
.dm-woo-single .button.alt {
	background: var(--honey) !important; color: var(--midnight) !important; border: none !important;
	font-family: var(--f-caps); font-size: .56rem; letter-spacing: .2em; padding: 1rem 2rem !important;
	border-radius: 0; cursor: pointer; transition: background .3s, box-shadow .3s;
}
.dm-woo-single .single_add_to_cart_button:hover,
.dm-woo-single .button.alt:hover { background: var(--gold) !important; box-shadow: 0 0 28px rgba(216,152,24,.26); }
.dm-woo-single .woocommerce-tabs ul.tabs { list-style: none; padding: 0; margin: 2.5rem 0 1rem; display: flex; gap: 1.5rem; border-bottom: 1px solid rgba(107,189,212,.1); }
.dm-woo-single .woocommerce-tabs ul.tabs li a { font-family: var(--f-caps); font-size: .5rem; letter-spacing: .18em; color: var(--silver); opacity: .6; padding-bottom: .6rem; display: inline-block; }
.dm-woo-single .woocommerce-tabs ul.tabs li.active a { color: var(--ice); opacity: 1; }
.dm-woo-single .related.products > h2, .dm-woo-single .upsells > h2 {
	font-family: var(--f-display); font-weight: 300; color: var(--silver); font-size: 1.8rem; margin: 3rem 0 1.5rem;
}
@media (max-width: 768px) { .dm-woo-inner { padding: 0 1.8rem; } .dm-woo-single { padding-top: 8rem; } }

/* WordPress admin bar offset (logged-in only; visitors unaffected) */
.admin-bar .nav { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .nav { top: 46px; } }
