/* =========================================================================
   KBR Magazine — Kaye Bender Rembaum, P.L.

   THESIS    The magazine is a bound volume on the desk; the interface is its
             ruled margins and running heads. Refuses the SaaS default of
             glass cards, glowing gradients and sparkle icons.
   OWN-WORLD Coated-stock white and pure white, near-black ink, KBR buckram
             teal carried as a real field (mastheads, the spine mark, primary
             actions). 1px hairline rules, square-ish 6px corners, Libre Caslon
             Display for headlines, Geist for every interface word, tabular
             figures for money. § is the only ornament.
   STORY     Advertisers see the real issue, see what is open, and book it in
             a few clear steps; the firm's staff build and approve in calm,
             scannable tools.
   FIRST VIEWPORT  Storefront: a teal masthead band with the offer in Caslon,
             the live flip-book overlapping its lower edge, booking panel right.
   FORM      Law-reporter / firm review, brief-pinned "light editorial".

   Magazine pages (.page-face and everything inside) paint themselves from
   each issue's own theme — those rules are kept verbatim in the BOOK and
   EDITORIAL sections below.
   ========================================================================= */
:root{
  /* KBR system */
  --k-paper:#f2f3f1;       /* page ground: cool coated stock */
  --k-surface:#ffffff;
  --k-sunken:#f7f8f7;
  --k-ink:#121414;
  --k-ink-2:#454c4b;
  --k-ink-3:#6b7473;
  --k-rule:#e2e5e4;
  --k-rule-2:#cdd2d1;
  --k-teal:#0e4b52;        /* buckram */
  --k-teal-2:#1c6e78;      /* logo teal */
  --k-teal-3:#d9e7e8;
  --k-teal-4:#eef5f5;
  --k-on-teal:#e9f2f2;
  --k-on-teal-2:#a9c7ca;
  --k-green:#1f7a4f; --k-green-t:#e7f3ec;
  --k-red:#b3261e;   --k-red-t:#fbeceb;
  --k-amber:#8a5a00; --k-amber-t:#fbf1dd;

  --f-ui:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-display:"Libre Caslon Display","Libre Caslon Text",Georgia,serif;
  --f-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --ease:cubic-bezier(.23,1,.32,1);          /* strong ease-out */
  --ease-io:cubic-bezier(.77,0,.175,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
  --r:8px; --r-sm:6px;
  --shadow-1:0 1px 2px rgba(18,20,20,.05);
  --shadow-2:0 1px 2px rgba(18,20,20,.04),0 6px 20px -8px rgba(18,20,20,.14);
  --shadow-3:0 2px 6px rgba(18,20,20,.06),0 28px 64px -18px rgba(18,20,20,.32);

  /* legacy names still referenced by shared rules — mapped onto KBR */
  --text:var(--k-ink); --text-2:var(--k-ink-2); --text-3:var(--k-ink-3);
  --line:var(--k-rule); --line-2:var(--k-rule-2);
  --card:var(--k-surface); --card-2:var(--k-sunken);
  --surface:#fbfaf6; --surface-ink:#0f2524; --surface-muted:#5b7f80; --surface-line:#e3e7ef;
  --gold:var(--k-teal); --gold-2:var(--k-teal-2);
  --ink-950:#0b0d0d; --ink-900:#121414; --ink-800:#1d2222; --ink-700:#2a3130;
  --blue-600:#1c6e78; --blue-500:#2a7f89; --blue-400:#4f9aa3; --blue-300:#1c6e78; --blue-200:#454c4b; --blue-100:#121414;
  --green:var(--k-green); --green-d:#17603d; --red:var(--k-red); --amber:#b26b00; --violet:#5b4bb0;
  color-scheme:light;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;min-height:100vh;background:var(--k-paper);color:var(--k-ink);font:400 14px/1.5 var(--f-ui);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;overflow-x:hidden;}
body.locked{overflow:hidden;}
a{color:inherit;}
button,input,select,textarea{font:inherit;color:inherit;}
:focus-visible{outline:2px solid var(--k-teal-2);outline-offset:2px;}
::selection{background:var(--k-teal-3);color:var(--k-ink);}
[hidden]{display:none!important;}
.muted{color:var(--k-ink-3);} .small{font-size:12px;} .pad{padding:24px;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 12.5px/1.2 var(--f-ui);color:var(--k-teal-2);}
.ico{flex:none;display:block;}

/* boot: no loader — the view settles in once data arrives */
body.booting #view{opacity:0;transform:translateY(6px);}
#view{transition:opacity .4s var(--ease),transform .4s var(--ease);}
.view{min-height:calc(100vh - 57px);}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}}
@keyframes riseIn{from{opacity:0;transform:translateY(12px);}}
@keyframes wordUp{from{opacity:0;transform:translateY(.35em);}}
@keyframes itemIn{from{opacity:0;transform:translateY(4px);}}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(31,122,79,.45);}100%{box-shadow:0 0 0 6px rgba(31,122,79,0);}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes shakeX{20%,60%{transform:translateX(-3px);}40%,80%{transform:translateX(3px);}}

/* ---------------- top bar ---------------- */
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:18px;height:57px;padding:0 28px;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--k-rule);}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--k-ink);}
.mark{height:32px;padding:0 9px;border-radius:3px;background:var(--k-teal);display:grid;place-items:center;font:400 14px/1 var(--f-display);letter-spacing:.14em;color:var(--k-on-teal);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 0 -6px 10px rgba(0,0,0,.12);}
.brand-t{display:flex;flex-direction:column;line-height:1.15;}
.brand-t b{white-space:nowrap;font:400 18px/1.1 var(--f-display);letter-spacing:-.005em;}
.brand-t small{font-size:11.5px;color:var(--k-ink-3);}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px;}
.topbar .mode-badge{display:none;}
.mode-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--k-ink-3);white-space:nowrap;}
.auth-who{font-size:13px;color:var(--k-ink-2);}
.pill-btn{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:var(--k-surface);border:1px solid var(--k-rule-2);border-radius:var(--r-sm);font-size:13px;font-weight:500;cursor:pointer;position:relative;transition:background .15s,transform .12s var(--ease);}
.pill-btn:hover{background:var(--k-sunken);}
.pill-btn:active{transform:scale(.97);}
.pill-btn svg{width:15px;height:15px;}
.todo-dot{position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px #fff;}
.count-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--k-teal);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
.count-badge.pulse{animation:none;}
.bump{animation:bump .3s var(--ease);}
@keyframes bump{40%{transform:scale(1.18);}}

/* ---------------- controls ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--k-rule-2);background:var(--k-surface);color:var(--k-ink);font:500 13px/1 var(--f-ui);cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-1);transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .12s var(--ease);-webkit-tap-highlight-color:transparent;}
.btn:hover:not(:disabled){background:var(--k-sunken);border-color:#bfc5c4;}
.btn:active:not(:disabled){transform:scale(.97);}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}
.btn .ico{width:15px;height:15px;margin-left:-2px;}
.btn.primary{background:var(--k-teal);border-color:var(--k-teal);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 1px 2px rgba(14,75,82,.3);}
.btn.primary:hover:not(:disabled){background:#0b3f45;border-color:#0b3f45;}
.btn.accent{background:var(--k-ink);border-color:var(--k-ink);color:#fff;}
.btn.accent:hover:not(:disabled){background:#2a3130;border-color:#2a3130;}
.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--k-ink-2);}
.btn.ghost:hover:not(:disabled){background:rgba(18,20,20,.05);border-color:transparent;color:var(--k-ink);}
.btn.danger{background:var(--k-red);border-color:var(--k-red);color:#fff;}
.btn.danger:hover:not(:disabled){background:#961f18;border-color:#961f18;}
.btn.danger.ghost{background:transparent;border-color:#e7c3c0;color:var(--k-red);}
.btn.danger.ghost:hover:not(:disabled){background:var(--k-red-t);}
.btn.warn{background:#b26b00;border-color:#b26b00;color:#fff;}
.btn.warn.ghost{background:transparent;border-color:#e8d2a8;color:var(--k-amber);}
.btn.warn.ghost:hover:not(:disabled){background:var(--k-amber-t);}
.btn.link{height:auto;background:none;border:none;box-shadow:none;padding:4px 2px;color:var(--k-teal-2);text-decoration:underline;text-decoration-color:rgba(28,110,120,.35);text-underline-offset:3px;}
.btn.link:hover:not(:disabled){background:none;color:var(--k-teal);text-decoration-color:currentColor;}
.btn.sm{height:30px;padding:0 10px;font-size:12.5px;}
.btn.big{height:44px;padding:0 18px;font-size:14px;}
.btn.icon{width:30px;padding:0;}
.btn.loading{position:relative;pointer-events:none;}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;animation:spin .7s linear infinite;}
.round-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--k-rule-2);background:var(--k-surface);font-size:19px;line-height:1;cursor:pointer;display:grid;place-items:center;color:var(--k-ink);box-shadow:var(--shadow-1);transition:background .15s,transform .12s var(--ease);}
.round-btn:hover:not(:disabled){background:var(--k-sunken);}
.round-btn:active:not(:disabled){transform:scale(.94);}
.round-btn:disabled{opacity:.35;cursor:default;}
.round-btn.sm{width:30px;height:30px;font-size:16px;}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0;}
.field>span{font-size:12.5px;font-weight:500;color:var(--k-ink-2);display:flex;justify-content:space-between;gap:8px;}
.field>span em{font-style:normal;font-weight:400;color:var(--k-ink-3);}
.field-in{width:100%;min-height:38px;padding:8px 11px;border-radius:var(--r-sm);border:1px solid var(--k-rule-2);background:var(--k-surface);color:var(--k-ink);outline:none;box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .15s;}
.field-in::placeholder{color:#8b9392;}
.field-in:hover{border-color:#b9c0bf;}
.field-in:focus{border-color:var(--k-teal-2);box-shadow:0 0 0 3px rgba(28,110,120,.16);}
.field-in.invalid{border-color:var(--k-red);box-shadow:0 0 0 3px rgba(179,38,30,.12);animation:shakeX .3s;}
.field-in.valid{border-color:#8cc2a5;}
select.field-in{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--k-ink-3) 50%),linear-gradient(135deg,var(--k-ink-3) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;}
textarea.field-in{resize:vertical;line-height:1.5;}
.field-in[type=date]{padding:8px;font-size:13px;}
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.affix{position:relative;} .affix i{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--k-ink-3);} .affix .field-in{padding-left:22px;}
.check{display:flex;align-items:center;gap:9px;margin:4px 0 14px;font-size:13px;color:var(--k-ink-2);cursor:pointer;}
.check input{width:16px;height:16px;accent-color:var(--k-teal);}
.hint{font-size:12.5px;color:var(--k-ink-3);line-height:1.5;margin:6px 0 0;}
.seg{display:inline-flex;padding:2px;border-radius:var(--r-sm);background:#e9ecea;flex-wrap:wrap;gap:2px;}
.seg button{border:none;background:none;height:28px;padding:0 11px;border-radius:5px;font-size:12.5px;font-weight:500;color:var(--k-ink-2);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;}
.seg button:hover{color:var(--k-ink);}
.seg button.on{background:var(--k-surface);color:var(--k-ink);box-shadow:0 1px 2px rgba(18,20,20,.12);}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 8px;border-radius:4px;white-space:nowrap;background:#eef0ef;color:var(--k-ink-2);}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.s-published,.s-approved{background:var(--k-green-t);color:var(--k-green);}
.s-draft{background:#eef0ef;color:var(--k-ink-2);}
.s-submitted{background:var(--k-teal-4);color:var(--k-teal-2);}
.s-booked{background:#eef2f6;color:#3b5570;}
.s-changes{background:var(--k-amber-t);color:var(--k-amber);}
.s-rejected,.s-err{background:var(--k-red-t);color:var(--k-red);}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#35c47f;animation:livePulse 2.4s ease-out infinite;flex:none;}
kbd{font:500 11px var(--f-mono);background:var(--k-surface);border:1px solid var(--k-rule-2);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--k-ink-2);}

/* ---------------- toasts (stacked, bottom-right) ---------------- */
.toasts{position:fixed;right:20px;bottom:20px;z-index:900;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none;width:min(380px,calc(100% - 24px));}
.toast{pointer-events:auto;position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border-radius:var(--r);background:var(--k-surface);border:1px solid var(--k-rule);box-shadow:var(--shadow-3);font-size:13.5px;color:var(--k-ink);animation:toastIn .32s var(--ease) both;}
.toast.out{animation:toastOut .2s var(--ease) both;}
.toast-ic{display:grid;place-items:center;flex:none;color:var(--k-green);}
.toast-ic .ico{width:17px;height:17px;}
.t-err .toast-ic{color:var(--k-red);} .t-info .toast-ic,.t-warn .toast-ic,.t-ai .toast-ic{color:var(--k-teal-2);}
.toast-msg{flex:1;min-width:0;}
.toast-act{border:1px solid var(--k-rule-2);background:var(--k-surface);color:var(--k-ink);font-weight:500;font-size:12.5px;height:28px;padding:0 10px;border-radius:5px;cursor:pointer;flex:none;transition:background .15s,transform .12s var(--ease);}
.toast-act:hover{background:var(--k-sunken);} .toast-act:active{transform:scale(.96);}
.toast-bar{display:none;}
@keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.98);}}
@keyframes toastOut{to{opacity:0;transform:translateY(4px) scale(.98);}}

/* ---------------- modal ---------------- */
.modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-scrim{position:absolute;inset:0;background:rgba(18,20,20,.38);opacity:0;transition:opacity .2s var(--ease);}
.modal.open .modal-scrim{opacity:1;}
.modal-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;overscroll-behavior:contain;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;box-shadow:var(--shadow-3);padding:26px 28px;opacity:0;transform:scale(.96);transition:opacity .2s var(--ease),transform .25s var(--ease);}
.modal-card.wide{width:min(980px,100%);}
.modal.open .modal-card{opacity:1;transform:none;}
.modal.closing .modal-card{opacity:0;transform:scale(.98);transition-duration:.15s;}
.modal.closing .modal-scrim{opacity:0;transition-duration:.15s;}
.modal-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:var(--r-sm);border:none;background:transparent;cursor:pointer;color:var(--k-ink-3);z-index:2;display:grid;place-items:center;transition:background .15s,color .15s;}
.modal-x:hover{background:rgba(18,20,20,.06);color:var(--k-ink);}
.modal-head h3{margin:0 40px 6px 0;font:400 27px/1.15 var(--f-display);letter-spacing:-.01em;color:var(--k-ink);text-wrap:balance;}
.modal-head p{margin:0 0 20px;color:var(--k-ink-2);font-size:13.5px;line-height:1.55;}
.modal-head p b{color:var(--k-ink);font-weight:600;}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap;}
.modal-sm .modal-card{width:min(440px,100%);}
.confirm-msg{margin:0;color:var(--k-ink-2);line-height:1.55;}
.confirm-in{margin-top:12px;}

/* ---------------- drawer (Vaul-style slide) ---------------- */
.drawer{position:fixed;inset:0;z-index:250;}
.drawer-scrim{position:absolute;inset:0;background:rgba(18,20,20,.32);opacity:0;transition:opacity .35s var(--ease-drawer);}
.drawer-panel{position:absolute;top:8px;right:8px;bottom:8px;width:min(440px,calc(100% - 16px));background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;box-shadow:var(--shadow-3);transform:translateX(calc(100% + 16px));transition:transform .45s var(--ease-drawer);display:flex;flex-direction:column;overflow:hidden;}
.drawer.open .drawer-scrim{opacity:1;} .drawer.open .drawer-panel{transform:none;}
.drawer-panel header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--k-rule);}
.drawer-panel header h3{margin:0;font:400 23px var(--f-display);}
.drawer-panel header .modal-x{position:static;}
.drawer-body{flex:1;overflow:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--k-sunken);}
.drawer-empty{text-align:center;color:var(--k-ink-2);padding:64px 24px;} .drawer-empty div{font:400 40px var(--f-display);color:var(--k-teal-2);margin-bottom:6px;}

/* ---------------- pop menu ---------------- */
.pop-menu{position:absolute;z-index:400;width:224px;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:var(--r);padding:4px;box-shadow:var(--shadow-3);display:flex;flex-direction:column;transform-origin:top right;animation:popIn .16s var(--ease);}
@keyframes popIn{from{opacity:0;transform:scale(.96) translateY(-2px);}}
.pop-menu button{border:none;background:none;text-align:left;height:32px;padding:0 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--k-ink);}
.pop-menu button:hover{background:var(--k-sunken);} .pop-menu .danger{color:var(--k-red);} .pop-menu .danger:hover{background:var(--k-red-t);}

/* ---------------- confetti + fly chip ---------------- */
.confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:1000;overflow:hidden;}
.confetti-layer i{position:absolute;border-radius:1px;animation:confetti 1.4s cubic-bezier(.2,.6,.35,1) both;}
@keyframes confetti{0%{transform:translate(0,0) rotate(0);opacity:1;}100%{transform:translate(var(--dx),calc(var(--dy) + 600px)) rotate(var(--r));opacity:0;}}
.fly-chip{position:fixed;z-index:950;transform-origin:center;pointer-events:none;translate:-50% -50%;background:var(--k-teal);color:#fff;font-weight:600;font-size:12px;padding:5px 10px;border-radius:999px;box-shadow:var(--shadow-2);transition:transform .6s var(--ease-io),opacity .6s;}


/* =================== BOOK =================== */
.bk-fit{position:relative;margin:0 auto;}
.bk-scale{position:absolute;left:0;top:0;width:960px;height:660px;transform-origin:0 0;}
.stage{perspective:2600px;width:960px;height:660px;touch-action:pan-y;}
.book{position:relative;width:960px;height:660px;transform-style:preserve-3d;}
.book-pages{position:absolute;inset:0;z-index:1;transform-style:preserve-3d;}
.book-spine{position:absolute;left:50%;top:-8px;bottom:-8px;width:28px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.05) 30%,rgba(0,0,0,.05) 70%,rgba(0,0,0,.28));filter:blur(4px);z-index:5;pointer-events:none;border-radius:6px;}
.book-shadow{position:absolute;left:5%;right:5%;bottom:-28px;height:40px;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 70%);filter:blur(8px);}
.bk-back{position:absolute;top:0;width:50%;height:100%;z-index:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,rgba(11,31,58,.05) 0 2px,transparent 2px 14px),linear-gradient(120deg,#f3f0e6,#e4dfcf);box-shadow:0 12px 34px rgba(0,0,0,.3);}
.bk-back span{font:italic 700 34px 'Playfair Display',serif;color:rgba(11,31,58,.14);}
.bk-back-l{left:0;border-radius:8px 2px 2px 8px;} .bk-back-r{right:0;border-radius:2px 8px 8px 2px;}
.page{position:absolute;top:0;right:0;width:480px;height:660px;background:#fbfaf6;box-shadow:0 12px 32px rgba(0,0,0,.28);transform-style:preserve-3d;transform-origin:left center;transition:transform .85s cubic-bezier(.62,.05,.18,1);border-radius:2px 8px 8px 2px;}
.page::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:20;opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.08) 35%,transparent 50%,rgba(0,0,0,.08) 65%,rgba(0,0,0,.55));}
.page.turning::after{animation:turnShade .85s cubic-bezier(.62,.05,.18,1);}
@keyframes turnShade{40%,60%{opacity:.5;}}
.page.flipped{transform:rotateY(-179.9deg);}
.page.tease{animation:tease 1.3s var(--ease);}
@keyframes tease{45%{transform:rotateY(-26deg);}}

.page-face{position:absolute;inset:0;overflow:hidden;border-radius:inherit;background:var(--paper,#fbfaf6);color:var(--ink,#0b1f3a);font-family:var(--bf);}
.page-face.front{background-image:linear-gradient(90deg,rgba(0,0,0,.07),transparent 5%),linear-gradient(90deg,transparent 94%,rgba(0,0,0,.05));}
.page-face.back{background-image:linear-gradient(270deg,rgba(0,0,0,.07),transparent 5%);}
.page-face.endpaper{background:repeating-linear-gradient(135deg,rgba(11,31,58,.05) 0 2px,transparent 2px 14px),#f1eee4;}
.corner{position:absolute;bottom:0;z-index:15;width:30px;height:30px;padding:0;border:none;cursor:pointer;transition:width .25s var(--ease),height .25s var(--ease);filter:drop-shadow(-2px -2px 3px rgba(0,0,0,.16));}
.corner-next{right:0;border-bottom-right-radius:8px;background:linear-gradient(315deg,#cfc8b4 0%,#ddd7c6 46%,rgba(0,0,0,.22) 49.5%,#fffdf8 51%,#ece7da 100%);}
.corner-prev{left:0;border-bottom-left-radius:8px;background:linear-gradient(45deg,#cfc8b4 0%,#ddd7c6 46%,rgba(0,0,0,.22) 49.5%,#fffdf8 51%,#ece7da 100%);filter:drop-shadow(2px -2px 3px rgba(0,0,0,.16));}
.corner:hover,.corner:focus-visible{width:50px;height:50px;}

/* interior page */
.pg-head{position:absolute;top:22px;left:22px;right:22px;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.5px solid var(--ink);padding-bottom:6px;}
.pg-kicker{font:800 10px/1 var(--bf);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
.pg-mast{font:italic 11px var(--hf);color:var(--muted);}
.pg-title{position:absolute;top:44px;left:22px;right:22px;margin:0;font:700 31px/1.12 var(--hf);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;}
.pg-grid{position:absolute;left:22px;top:104px;width:436px;height:516px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:6px;}
.pg-empty{grid-column:1/-1;grid-row:1/-1;display:grid;place-items:center;border:1.5px dashed var(--rule);border-radius:6px;color:var(--muted);font-style:italic;}
.pg-foot{position:absolute;bottom:11px;left:22px;right:22px;display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--rule);padding-top:5px;font-size:9.5px;color:var(--muted);}
.page-face.front .pg-foot{flex-direction:row-reverse;padding-left:0;right:36px;}
.page-face.back .pg-foot{left:36px;}
.pg-no{font:700 12px var(--hf);color:var(--ink);}
.pg-cta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.04em;}

/* slots */
.slot{position:relative;border-radius:4px;overflow:hidden;cursor:pointer;min-width:0;min-height:0;transition:transform .25s var(--ease),box-shadow .25s;outline:none;}
.slot:focus-visible{box-shadow:0 0 0 3px var(--gold);}
.slot.st-avail:hover,.slot.st-sel:hover{transform:scale(1.018);box-shadow:0 8px 18px rgba(0,0,0,.18);z-index:2;}
.slot.st-booked{cursor:not-allowed;}
.slot.st-live{cursor:zoom-in;}
.slot.st-live:hover{box-shadow:0 8px 22px rgba(0,0,0,.25);z-index:2;}
.slot.picked{box-shadow:0 0 0 3px var(--gold),0 0 0 6px rgba(28,110,120,.3);z-index:3;}
.slot.pop{animation:pop .5s var(--ease);}
.slot.shake{animation:shakeX .4s;}
.slot.ping{animation:ping 1.2s 2;}
.slot.ai-flash{animation:aiFlash 1.6s var(--ease);}
@keyframes pop{40%{transform:scale(1.06);}}
@keyframes shakeX{20%,60%{transform:translateX(-4px);}40%,80%{transform:translateX(4px);}}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(28,110,120,.9);}100%{box-shadow:0 0 0 14px rgba(28,110,120,0);}}
@keyframes aiFlash{0%{box-shadow:0 0 0 0 rgba(139,108,240,.95);filter:brightness(1.35) saturate(1.2);}60%{box-shadow:0 0 0 10px rgba(28,110,120,.35);}100%{box-shadow:0 0 0 0 rgba(28,110,120,0);filter:none;}}
.ph{position:absolute;inset:0;padding:6px;display:flex;flex-direction:column;gap:6px;background:rgba(127,127,127,.06);}
.ph.ph-row{flex-direction:row;}
.ph-img{border-radius:3px;flex:none;}
.ph-row .ph-img{width:36%;height:auto;}
.ph-lines{flex:1;min-height:0;display:flex;flex-direction:column;gap:5px;overflow:hidden;}
.ph-lines b{height:8px;width:72%;border-radius:2px;background:var(--ink);opacity:.45;flex:none;}
.ph-lines i{height:4px;border-radius:2px;background:var(--ph);flex:none;}
.ph-lines i.short{width:55%;}
.film{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:4px 8%;transition:background .3s,filter .3s;}
.film::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 45%,transparent 60%);background-size:250% 100%;animation:sheen 4.5s ease-in-out infinite;pointer-events:none;}
@keyframes sheen{0%{background-position:130% 0;}60%,100%{background-position:-60% 0;}}
.f-avail{background:linear-gradient(140deg,rgba(47,158,110,.8),rgba(24,112,74,.86));box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55);}
.f-sel{background:linear-gradient(140deg,rgba(47,95,179,.9),rgba(28,62,130,.92));box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 5px rgba(28,110,120,.8);animation:selGlow 1.8s ease-in-out infinite;}
@keyframes selGlow{50%{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 7px rgba(28,110,120,.45);}}
.f-booked{background:linear-gradient(140deg,rgba(192,57,43,.84),rgba(140,34,25,.88));}
.f-booked::before{display:none;}
.film-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;max-width:100%;}
.film-state{font:800 13px/1.1 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.25);}
.film-loc{font:700 11px/1.2 var(--f-ui);}
.film-meta{font:500 9.5px/1.25 var(--f-ui);opacity:.88;}
.film-price{position:absolute;top:5px;right:5px;background:#fff;color:var(--green-d);font:800 11px/1 var(--f-ui);padding:4px 7px;border-radius:999px;box-shadow:0 3px 10px rgba(0,0,0,.2);}
.f-sel .film-price{color:var(--blue-600);}
.dim{position:absolute;font:600 8px/1 var(--f-ui);color:rgba(255,255,255,.85);}
.dim-w{left:9px;right:9px;bottom:5px;border-top:1px solid rgba(255,255,255,.6);padding-top:2px;text-align:center;}
.dim-w::before,.dim-w::after{content:"";position:absolute;top:-4px;width:1px;height:7px;background:rgba(255,255,255,.7);}
.dim-w::before{left:0;} .dim-w::after{right:0;}
.dim-h{left:5px;top:9px;bottom:22px;border-left:1px solid rgba(255,255,255,.6);writing-mode:vertical-rl;transform:rotate(180deg);padding-right:2px;text-align:center;}
.wm{position:absolute;font:900 26px/1 var(--f-ui);letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.3);border:3px solid rgba(255,255,255,.3);padding:3px 10px 3px 14px;border-radius:6px;transform:rotate(-16deg);}
.f-booked .film-body{position:absolute;bottom:6px;left:4px;right:4px;}
.slot.small .film-meta,.slot.small .dim{display:none;}
.slot.small .film-state{font-size:10px;letter-spacing:.12em;}
.slot.small .film-loc{font-size:9px;}
.slot.small .film-price{position:static;margin-top:3px;font-size:9.5px;padding:3px 6px;}
.slot.small .wm{font-size:14px;border-width:2px;padding:2px 6px;}
.slot.small .f-booked .film-body{display:none;}
.slot.quiet .f-avail{background:repeating-linear-gradient(45deg,rgba(47,158,110,.16) 0 6px,rgba(47,158,110,.07) 6px 12px);color:#17694a;box-shadow:inset 0 0 0 1.5px rgba(47,158,110,.55);}
.dark .slot.quiet .f-avail{color:#8fe6bf;}
.slot.quiet .film::before,.slot.quiet .dim{display:none;}
.slot.quiet .film-state{text-shadow:none;font-size:11px;}
.slot.quiet .film-price{background:rgba(47,158,110,.16);box-shadow:none;}

/* cover */
.cover .cv-art{position:absolute;inset:0;}
.cover .cv-grain{position:absolute;inset:0;background:radial-gradient(circle at 50% 110%,rgba(0,0,0,.55),transparent 60%),linear-gradient(180deg,rgba(0,0,0,.25),transparent 30%,transparent 55%,rgba(0,0,0,.55));}
.cover{color:#fff;}
.cv-top{position:absolute;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;font:700 10px var(--f-ui);letter-spacing:.24em;text-transform:uppercase;opacity:.9;gap:10px;}
.cv-top span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cv-mast{position:absolute;top:30px;left:18px;right:18px;margin:0;font:700 104px/1 var(--hf);letter-spacing:-.03em;text-align:center;text-shadow:0 6px 30px rgba(0,0,0,.25);white-space:nowrap;overflow:hidden;animation:mastIn 1.1s var(--ease) both;}
@keyframes mastIn{from{letter-spacing:.2em;opacity:0;}}
.cv-lead{position:absolute;left:28px;right:28px;top:190px;}
.cv-kick{display:inline-block;font:800 10px var(--f-ui);letter-spacing:.24em;text-transform:uppercase;background:var(--accent);padding:5px 9px;border-radius:3px;}
.cv-lead b{display:block;margin-top:10px;font:italic 400 40px/1.05 var(--hf);max-width:80%;text-shadow:0 4px 20px rgba(0,0,0,.3);}
.cv-lines{position:absolute;left:28px;bottom:74px;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;max-width:60%;}
.cv-lines li{font:600 13px/1.25 var(--bf);display:flex;gap:10px;align-items:baseline;text-shadow:0 2px 10px rgba(0,0,0,.4);}
.cv-lines i{font:800 10px var(--f-ui);color:var(--gold-2);font-style:normal;}
.cv-sticker{position:absolute;right:26px;bottom:120px;width:112px;height:112px;border-radius:50%;background:var(--gold);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(12deg);box-shadow:0 10px 26px rgba(0,0,0,.35);animation:stickerIn .9s .5s var(--ease) both,wobble 5s 2s ease-in-out infinite;font-family:var(--f-ui);}
.cv-sticker b{font:800 34px/1 'Playfair Display',serif;} .cv-sticker span{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;} .cv-sticker em{font-style:normal;font-size:10px;margin-top:3px;}
.cv-sticker.sold{background:#111;color:var(--gold-2);} .cv-sticker.sold b{font-size:30px;font-style:italic;}
@keyframes stickerIn{from{transform:scale(0) rotate(-40deg);}}
@keyframes wobble{50%{transform:rotate(6deg) scale(1.04);}}
.cv-open{position:absolute;right:26px;bottom:44px;border:none;cursor:pointer;background:#fff;color:var(--ink-900);font:700 12px var(--f-ui);padding:10px 16px;border-radius:999px;box-shadow:0 8px 20px rgba(0,0,0,.3);transition:transform .2s;z-index:4;}
.cv-open:hover{transform:translateX(4px);}
.cv-bar{position:absolute;left:24px;right:36px;bottom:14px;display:flex;justify-content:space-between;font:600 9.5px var(--f-ui);letter-spacing:.14em;text-transform:uppercase;opacity:.8;border-top:1px solid rgba(255,255,255,.35);padding-top:6px;}
.backcover{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--accent) 30%,var(--paper)),var(--paper) 70%);}
.bc-inner{text-align:center;padding:0 40px;position:relative;}
.bc-kick{font:800 11px var(--f-ui);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);}
.bc-title{font:700 58px/1 var(--hf);margin:10px 0;color:var(--ink);}
.bc-sub{color:var(--muted);margin:0 0 22px;}
.bc-stats{display:flex;justify-content:center;gap:24px;margin-bottom:22px;}
.bc-stats b{display:block;font:700 24px var(--hf);color:var(--ink);} .bc-stats span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.backcover .cv-open{position:static;}
.idx-list{position:absolute;top:104px;left:22px;right:22px;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.idx-list li{display:flex;align-items:baseline;gap:8px;font:600 14px var(--hf);color:var(--ink);}
.idx-list li i{flex:1;border-bottom:1.5px dotted var(--rule);}
.idx-list li em{font:600 11px var(--bf);color:var(--accent);font-style:normal;}
.idx-list .idx-empty{font-style:italic;color:var(--muted);}
.idx-note{position:absolute;left:22px;right:22px;bottom:48px;font:italic 12px/1.5 var(--bf);color:var(--muted);border-top:1px solid var(--rule);padding-top:10px;}

.mini-page{position:relative;overflow:hidden;border-radius:4px;box-shadow:0 10px 26px rgba(0,0,0,.35);flex:none;}
.mini-inner{position:absolute;left:0;top:0;width:480px;height:660px;transform-origin:0 0;pointer-events:none;}
.mini-inner .page-face{border-radius:0;}
.mini-inner .corner{display:none;}

/* =================== AD TEMPLATES =================== */
.ad{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--fg);font-family:var(--bf);text-align:var(--al);--fit:1;}
.ad-art{position:relative;flex:none;height:42%;overflow:hidden;}
.ad-art img{width:100%;height:100%;object-fit:cover;display:block;}
.sh-tall .ad-art{height:46%;}
.sh-wide{flex-direction:row;}
.sh-wide .ad-art{height:auto;width:38%;}
.sz-s .ad-art{display:none;}
.ad-copy{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:calc(var(--u)*.45);padding:calc(var(--u)*1.05);}
.ad-brand{font:800 calc(var(--u)*.68*var(--fit))/1.2 var(--bf);letter-spacing:.2em;text-transform:uppercase;color:var(--a);}
.ad-h{font-family:var(--hf);font-size:calc(var(--u)*2.05*var(--s)*var(--fit));line-height:1.03;letter-spacing:-.01em;overflow-wrap:normal;word-break:normal;}
.ad-b{font-size:calc(var(--u)*.9*var(--fit));line-height:1.45;opacity:.88;overflow-wrap:anywhere;}
.ad-foot{margin-top:auto;display:flex;align-items:center;gap:calc(var(--u)*.7);flex-wrap:wrap;padding-top:calc(var(--u)*.3);}
.al-c .ad-foot{justify-content:center;}
.ad-cta{font-weight:700;font-size:calc(var(--u)*.78*var(--fit));padding:.5em 1em;border-radius:999px;background:var(--a);color:#fff;line-height:1.1;}
.ad-url{font-size:calc(var(--u)*.68*var(--fit));opacity:.7;letter-spacing:.04em;}
.ad-label{position:absolute;top:3px;right:6px;z-index:4;font:700 6.5px/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--fg);opacity:.45;}
.ad-deco{position:absolute;pointer-events:none;}
.sz-s .ad-b{font-size:calc(var(--u)*.82*var(--fit));}

/* editorial */
.t-editorial .ad-art{margin:calc(var(--u)*.8) calc(var(--u)*.8) 0;border-radius:2px;}
.t-editorial.sh-wide .ad-art{margin:calc(var(--u)*.8) 0 calc(var(--u)*.8) calc(var(--u)*.8);}
.t-editorial .ad-h{font-style:italic;font-weight:400;}
.t-editorial .ad-copy::before{content:"";width:34px;height:2px;background:var(--a);flex:none;}
.t-editorial.al-c .ad-copy::before{align-self:center;}
.t-editorial .ad-b::first-letter{float:left;font-family:var(--hf);font-size:3.2em;line-height:.82;padding:.04em .08em 0 0;color:var(--a);}
.t-editorial .ad-cta{background:none;color:var(--a);padding:0 0 2px;border-radius:0;border-bottom:1.5px solid var(--a);}
/* swiss */
.t-swiss .ad-h{text-transform:uppercase;font-size:calc(var(--u)*2.45*var(--s)*var(--fit));line-height:.92;letter-spacing:-.025em;}
.t-swiss .ad-deco{left:0;top:0;bottom:0;width:calc(var(--u)*.55);background:var(--a);}
.t-swiss .ad-copy{padding-left:calc(var(--u)*1.6);}
.t-swiss .ad-brand{color:var(--fg);}
.t-swiss .ad-brand::after{content:"";display:inline-block;width:.8em;height:.8em;border-radius:50%;background:var(--a);margin-left:.5em;vertical-align:-.05em;}
.t-swiss .ad-cta{background:#111;color:#fff;border-radius:0;}
.t-swiss.sz-s .ad-deco{width:4px;}
/* glass */
.t-glass{background:radial-gradient(circle at 18% 12%,var(--a2),transparent 55%),radial-gradient(circle at 85% 90%,color-mix(in srgb,var(--a) 70%,#ff5ab4),transparent 55%),radial-gradient(circle at 80% 20%,color-mix(in srgb,var(--bg) 60%,#5ad1ff),transparent 50%),var(--bg);justify-content:flex-end;}
.t-glass .ad-art{position:absolute;inset:0;height:auto;width:auto;opacity:.9;}
.t-glass .ad-art:not(.has-img){opacity:.55;mix-blend-mode:soft-light;}
.t-glass .ad-copy{flex:0 1 auto;max-height:calc(100% - var(--u)*1.6);margin:calc(var(--u)*.8);background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.4);border-radius:calc(var(--u)*.9);box-shadow:0 8px 24px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.45);}
.t-glass .ad-brand{color:#fff;opacity:.9;}
.t-glass .ad-h{font-weight:800;}
.t-glass .ad-cta{background:#fff;color:var(--bg);}
.t-glass.sh-wide{flex-direction:row;align-items:stretch;}
.t-glass.sh-wide .ad-copy{flex:1;}
/* brutal */
.t-brutal{border:2.5px solid #111;border-radius:4px;}
.t-brutal .ad-art{border-bottom:2.5px solid #111;}
.t-brutal.sh-wide .ad-art{border-bottom:none;border-right:2.5px solid #111;}
.t-brutal .ad-h{font-weight:700;text-transform:uppercase;letter-spacing:-.02em;}
.t-brutal .ad-brand{color:#111;background:var(--a2);align-self:flex-start;padding:.25em .5em;border:1.5px solid #111;}
.t-brutal.al-c .ad-brand{align-self:center;}
.t-brutal .ad-cta{background:var(--a2);color:#111;border:2px solid #111;border-radius:0;box-shadow:3px 3px 0 #111;}
.t-brutal .ad-deco{right:calc(var(--u)*.6);top:calc(var(--u)*.6);font:700 calc(var(--u)*.7) 'Space Mono',monospace;background:#111;color:var(--bg);padding:.3em .55em;transform:rotate(8deg);}
.t-brutal .ad-deco::after{content:"NEW!";}
.t-brutal.sz-s .ad-deco{display:none;}
/* luxe */
.t-luxe .ad-copy{justify-content:center;}
.t-luxe .ad-deco{inset:calc(var(--u)*.45);border:1px solid var(--a2);opacity:.65;}
.t-luxe .ad-art{-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent);}
.t-luxe.sh-wide .ad-art{-webkit-mask-image:linear-gradient(90deg,#000 55%,transparent);mask-image:linear-gradient(90deg,#000 55%,transparent);}
.t-luxe .ad-brand{color:var(--a2);letter-spacing:.38em;}
.t-luxe .ad-h{font-weight:400;font-style:italic;letter-spacing:0;}
.t-luxe .ad-b{font-size:calc(var(--u)*1.02*var(--fit));opacity:.8;}
.t-luxe .ad-cta{background:none;color:var(--a2);border:1px solid var(--a2);border-radius:0;text-transform:uppercase;letter-spacing:.22em;font-weight:600;font-size:calc(var(--u)*.62*var(--fit));}
.t-luxe .ad-foot{margin-top:calc(var(--u)*.4);}
.t-luxe.al-c .ad-foot{justify-content:center;}
/* duotone */
.t-duotone{justify-content:flex-end;}
.t-duotone .ad-art{position:absolute;inset:0;height:auto;width:auto;}
.t-duotone .ad-art img{filter:grayscale(1) contrast(1.15);}
.t-duotone .ad-art::after{content:"";position:absolute;inset:0;background:linear-gradient(170deg,var(--a2),var(--bg) 75%);opacity:.8;}
.t-duotone .ad-art:not(.has-img)::after{opacity:.55;}
.t-duotone .ad-copy{flex:0 1 auto;max-height:100%;}
.t-duotone.sh-wide{flex-direction:column;}
.t-duotone .ad-h{text-transform:uppercase;font-size:calc(var(--u)*2.5*var(--s)*var(--fit));line-height:.95;color:#fff;letter-spacing:.005em;}
.t-duotone .ad-brand{align-self:flex-start;background:var(--a2);color:#111;padding:.3em .6em;border-radius:3px;}
.t-duotone.al-c .ad-brand{align-self:center;}
.t-duotone .ad-cta{background:var(--a2);color:#111;}
/* retro */
.t-retro{background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--a2) 80%,var(--bg)));}
.t-retro .ad-deco{width:70%;aspect-ratio:1;right:-18%;bottom:-26%;border-radius:50%;background:linear-gradient(#ffe8ae,#ff9f5a);-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 12%,transparent 12% 16%);mask-image:repeating-linear-gradient(180deg,#000 0 12%,transparent 12% 16%);opacity:.9;}
.t-retro.sh-wide .ad-deco{width:34%;right:-4%;bottom:-40%;}
.t-retro .ad-art:not(.has-img){display:none;}
.t-retro .ad-art.has-img{margin:calc(var(--u)*.8) calc(var(--u)*.8) 0;border-radius:calc(var(--u)*1.2);box-shadow:0 6px 0 var(--fg);}
.t-retro .ad-h{font-weight:700;letter-spacing:-.03em;line-height:1;}
.t-retro .ad-brand{color:var(--fg);opacity:.8;}
.t-retro .ad-cta{background:var(--fg);color:#fff4e4;}
.t-retro .ad-copy{z-index:1;}
/* minimal */
.t-minimal .ad-deco{top:calc(var(--u)*.8);left:calc(var(--u)*.8);width:calc(var(--u)*.7);height:calc(var(--u)*.7);border-radius:50%;background:var(--a);}
.t-minimal .ad-art{margin:calc(var(--u)*1.8) calc(var(--u)*1.8) 0;border-radius:2px;}
.t-minimal.sh-wide .ad-art{margin:calc(var(--u)*1.2) 0 calc(var(--u)*1.2) calc(var(--u)*2);}
.t-minimal .ad-copy{justify-content:center;padding:calc(var(--u)*1.4);}
.t-minimal .ad-h{font-style:italic;font-weight:400;font-size:calc(var(--u)*2.3*var(--s)*var(--fit));}
.t-minimal .ad-brand{color:var(--fg);opacity:.55;letter-spacing:.3em;}
.t-minimal .ad-b{opacity:.65;}
.t-minimal .ad-cta{background:none;color:var(--fg);padding:0;border-radius:0;text-transform:uppercase;letter-spacing:.2em;font-size:calc(var(--u)*.62*var(--fit));}
.t-minimal .ad-cta::after{content:" →";color:var(--a);}
.t-minimal .ad-foot{margin-top:calc(var(--u)*.6);}

/* template swatches */
.tpl-sw{display:block;height:26px;border-radius:5px;margin-bottom:5px;border:1px solid rgba(255,255,255,.15);}
.tpl-sw.t-editorial{background:linear-gradient(90deg,#f6f1ea 60%,#2f5fb3 60% 64%,#f6f1ea 64%);}
.tpl-sw.t-swiss{background:linear-gradient(90deg,#e30613 0 12%,#f2f0eb 12%);}
.tpl-sw.t-glass{background:radial-gradient(circle at 20% 20%,#9ad7ff,transparent 60%),radial-gradient(circle at 80% 80%,#ff7ac5,transparent 60%),#5b5be0;}
.tpl-sw.t-brutal{background:#ffe066;border:2px solid #111;box-shadow:2px 2px 0 #111;}
.tpl-sw.t-luxe{background:#15130f;box-shadow:inset 0 0 0 3px #15130f,inset 0 0 0 4px #d4b46a;}
.tpl-sw.t-duotone{background:linear-gradient(160deg,#ff9f43,#2a0d4a);}
.tpl-sw.t-retro{background:linear-gradient(#ff8a5b,#ffb347);}
.tpl-sw.t-minimal{background:radial-gradient(circle at 18% 50%,#2f5fb3 0 5px,transparent 6px),#fbfbf8;}

/* ad stage (previews at real size, scaled) */
.ad-stage{position:relative;margin:0 auto;border-radius:6px;box-shadow:0 16px 40px rgba(0,0,0,.4);}
.ad-stage-in{position:absolute;left:0;top:0;transform-origin:0 0;border-radius:4px;overflow:hidden;background:#fff;}
.ad-stage.designing::after{content:"";position:absolute;inset:0;border-radius:6px;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:250% 100%;animation:sheen 1s linear infinite;}


/* =================== STOREFRONT =================== */
/* The masthead band is KBR buckram; the live issue overlaps its lower edge. */
.c-hero{position:relative;padding:52px max(28px,calc(50% - 600px)) 150px;background:var(--k-teal);color:var(--k-on-teal);overflow:hidden;isolation:isolate;}
.c-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 4px);}
.c-hero::after{content:"§";position:absolute;right:max(28px,calc(50% - 600px));top:22px;z-index:-1;font:400 220px/1 var(--f-display);color:rgba(255,255,255,.06);pointer-events:none;}
.c-hero .eyebrow{display:flex;color:var(--k-on-teal-2);font-size:13px;animation:fadeUp .5s .05s var(--ease) both;}
.c-hero .eyebrow b{color:#fff;font-weight:500;}
.c-title{margin:14px 0 0;font:400 clamp(38px,5.4vw,68px)/1.02 var(--f-display);letter-spacing:-.018em;color:#fff;text-wrap:balance;max-width:16ch;}
.c-title .w{display:inline-block;animation:wordUp .6s calc(.08s + var(--i)*.07s) var(--ease) both;}
.c-sub{max-width:60ch;margin:16px 0 0;color:var(--k-on-teal-2);font-size:16px;line-height:1.55;animation:fadeUp .6s .2s var(--ease) both;}
.c-meta{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;animation:fadeUp .6s .3s var(--ease) both;}
.countdown{display:inline-flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;}
.cd-l{font-size:13px;color:var(--k-on-teal-2);margin-right:4px;}
.cd-seg{display:inline-flex;align-items:baseline;gap:2px;}
.cd-seg b{font:500 16px var(--f-ui);color:#fff;min-width:1.3em;text-align:right;display:inline-block;}
.cd-seg b.tick{animation:tick .25s var(--ease);}
@keyframes tick{from{opacity:.4;}}
.cd-seg i{font-style:normal;font-size:12px;color:var(--k-on-teal-2);}
.chips{list-style:none;margin:0;padding:0;display:flex;gap:6px 18px;flex-wrap:wrap;}
.chips li{font-size:13px;color:var(--k-on-teal-2);padding-left:18px;position:relative;}
.chips li::before{content:"";position:absolute;left:0;top:50%;width:10px;height:1px;background:rgba(255,255,255,.35);}
.chips b{color:#fff;font-weight:500;}
.issue-switch{display:flex;gap:4px;margin-top:22px;flex-wrap:wrap;animation:fadeUp .6s .35s var(--ease) both;}
.issue-switch a{text-decoration:none;padding:8px 14px;border-radius:var(--r-sm);display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.18);transition:background .15s,border-color .15s;}
.issue-switch a b{font:400 15px var(--f-display);color:#fff;} .issue-switch a span{font-size:12px;color:var(--k-on-teal-2);}
.issue-switch a.on{background:#fff;border-color:#fff;} .issue-switch a.on b{color:var(--k-ink);} .issue-switch a.on span{color:var(--k-ink-3);}
.issue-switch a:hover:not(.on){background:rgba(255,255,255,.08);}

.c-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;padding:0 28px 40px;margin:-118px auto 0;max-width:1480px;align-items:start;position:relative;}
.c-book-col{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0;animation:riseIn .7s .15s var(--ease) both;}
.c-book,.st-book,.pv-book{width:100%;padding-bottom:30px;}
.book-ctrl{display:flex;align-items:center;gap:14px;}
.book-ind{min-width:190px;text-align:center;color:var(--k-ink-2);font-size:13px;font-variant-numeric:tabular-nums;}
.page-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:34px;}
.pa-btn{height:32px;border:1px solid #bcdcca;background:var(--k-green-t);color:var(--k-green);border-radius:var(--r-sm);padding:0 12px;font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s,transform .12s var(--ease);animation:fadeUp .3s var(--ease) both;}
.pa-btn em{font-style:normal;font-weight:400;opacity:.85;margin-left:6px;}
.pa-btn:hover{background:#dbeee3;} .pa-btn:active{transform:scale(.97);}
.pa-btn.on{background:var(--k-teal-4);border-color:#b7d3d6;color:var(--k-teal);}
.pa-full{font-size:12.5px;color:var(--k-red);padding:8px 10px;}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;font-size:12.5px;color:var(--k-ink-2);align-items:center;}
.lg{display:inline-flex;align-items:center;gap:7px;}
.lg::before{content:"";width:12px;height:12px;border-radius:3px;}
.l-avail::before{background:var(--green);} .l-sel::before{background:var(--blue-600);box-shadow:inset 0 0 0 2px #fff,0 0 0 1px var(--blue-600);} .l-booked::before{background:var(--red);} .l-live::before{background:#6b5ab0;}
.kbd-hint{color:var(--k-ink-3);font-size:12px;}
.page-strip{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;max-width:100%;}
.page-strip button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:var(--r-sm);padding:5px 9px;font-size:12px;font-weight:500;color:var(--k-ink-2);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:42px;font-variant-numeric:tabular-nums;transition:background .15s,border-color .15s,transform .12s var(--ease);}
.page-strip button:hover{border-color:var(--k-rule-2);color:var(--k-ink);}
.page-strip button:active{transform:scale(.96);}
.page-strip button.on{border-color:var(--k-teal);color:var(--k-ink);box-shadow:inset 0 0 0 1px var(--k-teal);}
.dots{display:flex;gap:2px;}
.dots i{width:6px;height:6px;border-radius:1px;}
.d-avail{background:var(--green);} .d-booked{background:var(--red);} .d-sel{background:var(--blue-400);} .d-live{background:#6b5ab0;}

.c-panel{display:flex;flex-direction:column;gap:14px;position:sticky;top:72px;animation:riseIn .7s .25s var(--ease) both;}
.panel-card{background:var(--k-surface);border:1px solid var(--k-rule);border-radius:10px;padding:18px;box-shadow:var(--shadow-2);}
.pc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.pc-head h3{margin:0;font:400 21px/1.1 var(--f-display);color:var(--k-ink);}
.cart-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;max-height:260px;overflow:auto;border-top:1px solid var(--k-rule);}
.cart-item{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--k-rule);cursor:pointer;animation:itemIn .25s var(--ease) both;transition:opacity .2s,transform .2s var(--ease);}
.cart-item:hover .ci-txt b{text-decoration:underline;text-underline-offset:2px;}
.cart-item.leaving{opacity:0;transform:translateX(12px);}
.ci-thumb{position:relative;width:24px;height:33px;border-radius:2px;background:#eceeec;box-shadow:inset 0 0 0 1px var(--k-rule);flex:none;}
.ci-thumb i{position:absolute;background:var(--k-teal-2);border-radius:1px;}
.ci-txt{flex:1;min-width:0;display:flex;flex-direction:column;} .ci-txt b{font-size:13px;font-weight:500;} .ci-txt span{font-size:12px;color:var(--k-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ci-price{font-weight:500;color:var(--k-ink);font-variant-numeric:tabular-nums;}
.ci-x{border:none;background:none;color:var(--k-ink-3);font-size:17px;cursor:pointer;width:26px;height:26px;border-radius:5px;}
.ci-x:hover{background:var(--k-sunken);color:var(--k-ink);}
.cart-empty{padding:18px 12px;text-align:center;color:var(--k-ink-3);font-size:13px;border:1px dashed var(--k-rule-2);border-radius:var(--r-sm);margin-top:0;}
.bundle{margin-bottom:12px;font-size:12.5px;color:var(--k-ink-2);}
.bundle b{color:var(--k-ink);font-weight:600;}
.bundle-bar{height:4px;border-radius:999px;background:#e6e9e8;margin-top:7px;overflow:hidden;}
.bundle-bar i{display:block;height:100%;width:0;border-radius:inherit;background:var(--k-teal-2);transition:width .5s var(--ease);}
.bundle.done .bundle-bar i{background:var(--k-green);}
.totals{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;font-size:13px;font-variant-numeric:tabular-nums;}
.totals div{display:flex;justify-content:space-between;color:var(--k-ink-2);}
.totals .disc{color:var(--k-green);}
.totals .grand{color:var(--k-ink);font-size:14px;border-top:1px solid var(--k-rule);padding-top:10px;margin-top:4px;align-items:baseline;}
.totals .grand b{font:400 26px var(--f-display);color:var(--k-ink);}
.cart-card .btn.primary{width:100%;}
.cart-card .btn.link{width:100%;margin-top:6px;}
.rate-list{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:14px;margin-right:-8px;padding-right:8px;}
.rp-head{display:flex;gap:8px;align-items:baseline;font-size:12.5px;margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--k-rule);} .rp-head b{color:var(--k-ink);font-weight:600;} .rp-head span{color:var(--k-ink-3);}
.rate-row{width:100%;display:flex;align-items:center;gap:9px;padding:6px 6px;border:none;border-radius:5px;background:none;text-align:left;cursor:pointer;transition:background .15s;}
.rate-row:hover{background:var(--k-sunken);}
.rate-row .dot{width:8px;height:8px;border-radius:50%;flex:none;}
.r-avail .dot{background:var(--green);} .r-sel .dot{background:var(--blue-600);box-shadow:0 0 0 3px rgba(28,110,120,.2);} .r-booked .dot{background:var(--red);} .r-live .dot{background:#6b5ab0;}
.rr-loc{font-weight:500;font-size:11.5px;color:var(--k-ink-3);width:22px;font-variant-numeric:tabular-nums;}
.rr-name{flex:1;min-width:0;font-size:13px;display:flex;flex-direction:column;} .rr-name em{font-style:normal;font-size:11.5px;color:var(--k-ink-3);}
.rr-price{font-weight:500;font-size:13px;font-variant-numeric:tabular-nums;color:var(--k-ink);}
.r-booked .rr-price{color:var(--k-red);} .r-live .rr-price{color:#6b5ab0;} .r-booked .rr-name,.r-live .rr-name{opacity:.6;}
.r-sel{background:var(--k-teal-4);}

.c-how{padding:56px 28px 72px;border-top:1px solid var(--k-rule);background:var(--k-surface);}
.c-how h2{max-width:1200px;margin:0 auto 28px;font:400 clamp(26px,3vw,36px)/1.1 var(--f-display);letter-spacing:-.01em;text-wrap:balance;}
.c-how ol{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1200px;border-top:1px solid var(--k-ink);}
.c-how li{padding:18px 22px 4px 0;}
.c-how li+li{padding-left:22px;border-left:1px solid var(--k-rule);}
.c-how li>b{display:block;font:400 30px/1 var(--f-display);color:var(--k-teal-2);}
.c-how li>b::before{content:"§ ";font-size:.7em;vertical-align:.15em;color:var(--k-ink-3);}
.c-how h4{margin:14px 0 6px;font-size:15px;font-weight:600;} .c-how p{margin:0;color:var(--k-ink-2);font-size:13.5px;line-height:1.55;max-width:32ch;}
.mobile-cart{position:fixed;left:10px;right:10px;bottom:10px;z-index:80;display:none;align-items:center;justify-content:space-between;gap:10px;padding:8px 8px 8px 14px;border-radius:10px;background:var(--k-surface);border:1px solid var(--k-rule);box-shadow:var(--shadow-3);animation:fadeUp .3s var(--ease);}
.empty-hero{max-width:560px;margin:14vh auto;text-align:center;padding:0 20px;}
.eh-icon{font:400 56px/1 var(--f-display);color:var(--k-teal-2);}
.empty-hero h2{font:400 34px/1.1 var(--f-display);margin:12px 0 10px;text-wrap:balance;}
.empty-hero p{color:var(--k-ink-2);line-height:1.6;margin-bottom:22px;}

/* =================== CHECKOUT =================== */
.steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 20px;counter-reset:s;}
.steps li{flex:1;font-size:12.5px;font-weight:500;color:var(--k-ink-3);padding-top:9px;border-top:2px solid var(--k-rule);counter-increment:s;transition:color .2s,border-color .2s;}
.steps li::before{content:counter(s) "  ";color:inherit;}
.steps li.on{color:var(--k-ink);border-color:var(--k-teal);} .steps li.done{color:var(--k-green);border-color:var(--k-green);}
.co-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;}
.co-grid.finished{grid-template-columns:minmax(0,1fr);}
.co-grid.finished .co-sum{display:none;}
.co-sum{background:var(--k-sunken);border:1px solid var(--k-rule);border-radius:10px;padding:16px;align-self:start;}
.co-sum h4{margin:0 0 10px;font-size:12.5px;font-weight:600;color:var(--k-ink-2);}
.co-sum ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto;}
.co-sum li{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-variant-numeric:tabular-nums;} .co-sum li em{display:block;font-style:normal;font-size:12px;color:var(--k-ink-3);}
.co-disc{display:flex;justify-content:space-between;color:var(--k-green);font-size:13px;}
.co-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--k-rule);margin-top:8px;padding-top:10px;} .co-total b{font:400 28px var(--f-display);color:var(--k-ink);font-variant-numeric:tabular-nums;}
.co-mag{margin-top:10px;font-size:12px;color:var(--k-ink-3);}
.card3d{perspective:900px;width:min(320px,100%);height:180px;margin:0 auto 8px;}
.card-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s var(--ease);}
.card3d.flip .card-in{transform:rotateY(180deg);}
.card-front,.card-back{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;padding:18px;color:#fff;background:linear-gradient(135deg,#0e4b52,#0a3439);box-shadow:var(--shadow-2);overflow:hidden;}
.card-front::after{content:"§";position:absolute;right:-6px;bottom:-40px;font:400 150px/1 var(--f-display);color:rgba(255,255,255,.07);}
.card-back{transform:rotateY(180deg);padding:0;}
.card-back i{display:block;height:38px;background:#061f22;margin-top:24px;}
.card-back span{display:block;margin:18px 18px 0 auto;width:70px;background:#fff;color:#111;font:500 14px var(--f-mono);padding:6px 10px;text-align:right;border-radius:4px;}
.chip{display:block;width:38px;height:28px;border-radius:6px;background:linear-gradient(135deg,#e9cd85,#b08a36);}
.brand-mark{position:absolute;top:18px;right:18px;font:600 12px var(--f-ui);letter-spacing:.1em;}
.cc-num{display:block;margin-top:30px;font:500 18px var(--f-mono);letter-spacing:.06em;}
.cc-bottom{display:flex;justify-content:space-between;margin-top:14px;font:500 11px var(--f-mono);letter-spacing:.06em;opacity:.85;}
.test-card{display:block;margin:0 auto 10px;}
.secure{text-align:center;}
.done-hero{text-align:center;padding:4px 0 14px;}
.tick-svg{width:64px;height:64px;}
.tick-svg circle{fill:none;stroke:var(--k-green);stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:draw .6s var(--ease) forwards;}
.tick-svg path{fill:none;stroke:var(--k-green);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .35s .45s var(--ease) forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}
.done-hero h3{font:400 28px var(--f-display);margin:10px 0 4px;} .done-hero p{color:var(--k-ink-2);margin:0;} .done-hero b{color:var(--k-ink);font-weight:600;}
.next-card{background:var(--k-teal-4);border:1px solid #cfe1e3;border-radius:10px;padding:16px;text-align:center;}
.next-card>b{font-size:15px;font-weight:600;color:var(--k-teal);} .next-card>p{color:var(--k-ink-2);margin:4px 0 12px;font-size:13px;}
.done-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left;}
.done-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--k-surface);border:1px solid var(--k-rule);animation:itemIn .3s var(--ease) both;}
.done-list li:nth-child(2){animation-delay:.05s;} .done-list li:nth-child(3){animation-delay:.1s;}
.done-list em{display:block;font-style:normal;font-size:12px;color:var(--k-ink-3);}

/* creative */
.note-banner{background:var(--k-amber-t);border:1px solid #ecd5a4;color:#6b4700;border-radius:var(--r-sm);padding:10px 12px;font-size:13px;margin-bottom:14px;line-height:1.5;}
.cr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:24px;align-items:start;}
.cr-preview{position:sticky;top:0;background:var(--k-sunken);border:1px solid var(--k-rule);border-radius:10px;padding:16px;display:flex;flex-direction:column;align-items:center;}
.cr-ph-head{align-self:flex-start;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--k-ink-2);margin-bottom:14px;}
.cr-tpl{font-size:12.5px;color:var(--k-ink-2);margin:14px 0 0;text-align:center;} .cr-tpl b{color:var(--k-ink);font-weight:600;}
.cnt{font-variant-numeric:tabular-nums;} .cnt.over{color:var(--k-red)!important;}
.wbar{display:block;height:3px;border-radius:999px;background:#e6e9e8;overflow:hidden;margin-top:-2px;}
.wbar b{display:block;height:100%;width:0;background:var(--k-teal-2);transition:width .25s var(--ease);}
.wbar.over b{background:var(--k-red);}
.swatches{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.sw{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--k-rule-2);cursor:pointer;padding:0;transition:transform .12s var(--ease);position:relative;overflow:hidden;}
.sw:active{transform:scale(.92);} .sw.on{box-shadow:0 0 0 2px var(--k-teal);}
.sw-pick{background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red);}
.sw-pick input{opacity:0;position:absolute;inset:0;cursor:pointer;}
.drop{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r-sm);border:1px dashed var(--k-rule-2);background:var(--k-sunken);cursor:pointer;transition:border-color .15s,background .15s;}
.drop:hover,.drop.over{border-color:var(--k-teal-2);background:var(--k-teal-4);}
.drop.busy{opacity:.6;}
.drop-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);background:var(--k-surface);border:1px solid var(--k-rule);color:var(--k-teal-2);} .drop-t{flex:1;font-size:13px;color:var(--k-ink-2);}

/* my ads */
.my-ad{background:var(--k-surface);border:1px solid var(--k-rule);border-radius:10px;padding:14px;animation:itemIn .25s var(--ease) both;}
.ma-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.ma-top b{display:block;font-size:14px;font-weight:600;} .ma-top span:not(.status){font-size:12.5px;color:var(--k-ink-3);}
.ma-steps{display:flex;list-style:none;margin:14px 0 10px;padding:0;gap:4px;}
.ma-steps li{flex:1;font-size:11.5px;color:var(--k-ink-3);padding-top:7px;border-top:2px solid var(--k-rule);}
.ma-steps li.done{color:var(--k-green);border-color:var(--k-green);}
.ma-steps li.now{color:var(--k-teal);border-color:var(--k-teal);font-weight:500;}
.ma-note{font-size:13px;color:var(--k-ink-2);margin:8px 0;} .ma-note.warn{color:var(--k-amber);}
.ma-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--k-ink-3);flex-wrap:wrap;}
.viewer .modal-card{width:auto;max-width:calc(100vw - 40px);}
.viewer-note{text-align:center;color:var(--k-ink-3);font-size:12.5px;margin:16px 0 0;}

/* =================== ADMIN SHELL =================== */
.admin-wrap{padding:0 28px 64px;max-width:1500px;margin:0 auto;}
.admin-nav{display:flex;align-items:center;gap:2px;height:52px;border-bottom:1px solid var(--k-rule);margin-bottom:28px;flex-wrap:wrap;}
.admin-nav a{position:relative;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 12px;text-decoration:none;font-weight:500;font-size:13.5px;color:var(--k-ink-2);transition:color .15s;}
.admin-nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--k-teal);transform:scaleX(0);transition:transform .25s var(--ease);}
.admin-nav a svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.admin-nav a:hover{color:var(--k-ink);}
.admin-nav a.on{color:var(--k-ink);}
.admin-nav a.on::after{transform:scaleX(1);}
.admin-nav .count-badge{margin-left:2px;}
.crumb{font-size:13px;color:var(--k-ink-3);padding:0 12px;margin-left:6px;border-left:1px solid var(--k-rule);} .crumb b{color:var(--k-ink);font-weight:500;}
.nav-spacer{flex:1;}
.admin-nav .mode-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#35c47f;}
.admin-nav .mode-badge{font-size:0;} .admin-nav .mode-badge::after{content:"Live";font-size:12px;}

.lib-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px;align-items:end;margin-bottom:28px;}
.lib-hero .eyebrow{color:var(--k-ink-3);font-size:13px;}
.lib-hero h1,.ap-head h1{font:400 clamp(34px,3.6vw,50px)/1.02 var(--f-display);letter-spacing:-.015em;margin:6px 0 10px;text-wrap:balance;}
.lib-hero p,.ap-head p{color:var(--k-ink-2);line-height:1.6;margin:0;max-width:60ch;}
.lib-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--k-surface);border:1px solid var(--k-rule);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-1);}
.lib-stats div{padding:14px 16px;min-width:0;}
.lib-stats div+div{border-left:1px solid var(--k-rule);}
.lib-stats b{display:block;font:400 28px/1.1 var(--f-display);color:var(--k-ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.lib-stats span{font-size:12px;color:var(--k-ink-3);}
.lib-stats .hot{background:var(--k-teal-4);} .lib-stats .hot b{color:var(--k-teal);}
.lib-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.search{max-width:280px;}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;}
.lib-new{border:1px dashed var(--k-rule-2);background:transparent;border-radius:12px;min-height:230px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center;color:var(--k-ink);transition:background .2s,border-color .2s;}
.lib-new:hover{background:var(--k-surface);border-color:var(--k-teal-2);}
.lib-new:active{transform:scale(.99);}
.ln-plus{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:300;border:1px solid var(--k-rule-2);color:var(--k-teal);background:var(--k-surface);transition:transform .3s var(--ease),border-color .2s;}
.lib-new:hover .ln-plus{transform:rotate(90deg);border-color:var(--k-teal-2);}
.lib-new b{font:400 21px var(--f-display);} .lib-new span:last-child{font-size:13px;color:var(--k-ink-2);max-width:260px;}
.mag-card{display:flex;gap:18px;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;padding:14px;box-shadow:var(--shadow-1);transition:box-shadow .25s var(--ease),border-color .2s;}
.mag-card:hover{box-shadow:var(--shadow-2);border-color:var(--k-rule-2);}
.mc-cover{flex:none;display:block;transition:transform .35s var(--ease);}
.mag-card:hover .mc-cover{transform:translateY(-2px);}
.mc-cover .mini-page{box-shadow:0 1px 2px rgba(18,20,20,.12),0 10px 24px -10px rgba(18,20,20,.35);}
.mc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;}
.mc-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.mc-top b{display:block;font:400 22px/1.15 var(--f-display);} .mc-top span:not(.status){font-size:12.5px;color:var(--k-ink-3);}
.mc-meter{height:4px;border-radius:999px;background:#e6e9e8;overflow:hidden;}
.mc-meter i{display:block;height:100%;border-radius:inherit;background:var(--k-teal-2);animation:growW .9s var(--ease) both;}
@keyframes growW{from{width:0!important;}}
.mc-nums{display:flex;gap:4px 14px;flex-wrap:wrap;font-size:12.5px;color:var(--k-ink-3);font-variant-numeric:tabular-nums;} .mc-nums b{color:var(--k-ink);font-weight:600;}
.mc-nums .hot{color:var(--k-teal);font-weight:500;}
.mc-actions{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap;}
.lib-empty{grid-column:1/-1;text-align:center;color:var(--k-ink-2);padding:30px;}
.theme-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.tp{position:relative;display:flex;flex-direction:column;gap:3px;padding:8px;border-radius:10px;border:1px solid var(--k-rule);cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.tp:hover{border-color:var(--k-rule-2);} .tp.on{border-color:var(--k-teal);box-shadow:inset 0 0 0 1px var(--k-teal);}
.tp input{position:absolute;opacity:0;pointer-events:none;}
.tp-sw{position:relative;height:52px;border-radius:6px;display:flex;align-items:center;padding-left:12px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);}
.tp-sw b{font-size:26px;} .tp-sw i{position:absolute;right:10px;top:10px;width:18px;height:18px;border-radius:50%;}
.tp-n{font-size:13px;font-weight:500;} .tp em{font-style:normal;font-size:11.5px;color:var(--k-ink-3);}
.start-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.startp{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:10px;border:1px solid var(--k-rule);cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.startp:hover{border-color:var(--k-rule-2);}
.startp.on{border-color:var(--k-teal);box-shadow:inset 0 0 0 1px var(--k-teal);}
.startp input[type=radio]{position:absolute;opacity:0;pointer-events:none;}
.startp b{font-size:13.5px;font-weight:600;} .startp span{font-size:12.5px;color:var(--k-ink-3);line-height:1.4;} .startp select{margin-top:4px;padding:6px 26px 6px 8px;font-size:12.5px;min-height:32px;}

/* =================== STRUCTURE EDITOR =================== */
.ed-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.ed-title{display:flex;align-items:baseline;gap:6px;min-width:0;}
.ed-name,.ed-issue{background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:2px 8px;color:var(--k-ink);outline:none;transition:border-color .15s,background .15s;min-width:0;}
.ed-name{font:400 30px/1.1 var(--f-display);width:250px;letter-spacing:-.01em;} .ed-issue{font-size:14px;color:var(--k-ink-2);width:160px;}
.ed-name:hover,.ed-issue:hover{border-color:var(--k-rule-2);} .ed-name:focus,.ed-issue:focus{border-color:var(--k-teal-2);background:var(--k-surface);}
.ed-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.save-ind{font-size:12.5px;color:var(--k-green);margin-right:6px;} .save-ind.busy{color:var(--k-ink-3);}
.ed-grid{display:grid;grid-template-columns:232px minmax(0,1fr) 300px;gap:20px;align-items:start;}
.ed-left,.ed-right{background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;padding:16px;position:sticky;top:72px;max-height:calc(100vh - 88px);overflow:auto;overscroll-behavior:contain;box-shadow:var(--shadow-1);}
.ed-left h4,.ed-pages h4{margin:0 0 10px;font-size:12.5px;font-weight:600;color:var(--k-ink);}
.ed-left h4:not(:first-child){margin-top:20px;}
.blocks{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.blk{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;border-radius:var(--r-sm);border:1px solid var(--k-rule);background:var(--k-surface);cursor:grab;text-align:left;touch-action:none;user-select:none;transition:border-color .15s,background .15s,transform .12s var(--ease);}
.blk:hover{border-color:var(--k-teal-2);background:var(--k-teal-4);}
.blk:active{cursor:grabbing;transform:scale(.97);}
.blk-dia{position:relative;width:22px;height:30px;border-radius:2px;background:#eceeec;box-shadow:inset 0 0 0 1px var(--k-rule-2);margin-bottom:4px;}
.blk-dia i{position:absolute;left:0;top:0;background:var(--k-teal-2);border-radius:1px;}
.blk b{font-size:12px;font-weight:500;} .blk em{font-style:normal;font-size:11px;color:var(--k-ink-3);font-variant-numeric:tabular-nums;}
.layouts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.lay{display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 4px;border-radius:var(--r-sm);border:1px solid var(--k-rule);background:var(--k-surface);cursor:pointer;font-size:11px;color:var(--k-ink-2);transition:border-color .15s,background .15s;}
.lay:hover{border-color:var(--k-teal-2);background:var(--k-teal-4);color:var(--k-ink);}
.lay-dia{position:relative;width:28px;height:38px;background:#eceeec;border-radius:2px;box-shadow:inset 0 0 0 1px var(--k-rule-2);}
.lay-dia i{position:absolute;background:var(--k-teal-2);box-shadow:inset 0 0 0 1px #eceeec;}
.drag-ghost{position:fixed;left:0;top:0;z-index:999;pointer-events:none;border-radius:3px;background:rgba(28,110,120,.9);box-shadow:var(--shadow-3);display:grid;place-items:center;transition:opacity .12s;}
.drag-ghost span{font-size:10.5px;font-weight:500;color:#fff;white-space:nowrap;padding:0 4px;}
.drag-ghost.over{opacity:.3;}
.ed-center{min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px;}
.ed-pagebar{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--k-ink-2);font-variant-numeric:tabular-nums;} .ed-pagebar b{color:var(--k-ink);font-weight:600;} .ed-pagebar span span{color:var(--k-ink-3);}
.ed-pagebar #edPgLbl span{margin-left:4px;}
.ed-canvas-wrap{position:relative;width:100%;}
.ed-canvas{position:absolute;top:0;width:480px;height:660px;transform-origin:0 0;border-radius:3px;box-shadow:0 1px 2px rgba(18,20,20,.1),0 30px 60px -24px rgba(18,20,20,.4);}
.ed-canvas.spread::after{content:"";position:absolute;left:470px;top:0;bottom:0;width:20px;z-index:8;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,0,0,.12) 48%,rgba(0,0,0,.18) 50%,rgba(0,0,0,.12) 52%,transparent);}
.ed-canvas .page-face{border-radius:3px;}
.ed-canvas [data-face]{cursor:pointer;}
.ed-canvas [data-face]::after{content:"Click to edit this page";position:absolute;left:50%;bottom:48px;z-index:12;transform:translate(-50%,6px);opacity:0;font:500 13px var(--f-ui);color:#fff;background:rgba(18,20,20,.88);padding:7px 12px;border-radius:999px;white-space:nowrap;transition:opacity .2s var(--ease),transform .2s var(--ease);pointer-events:none;}
.ed-canvas [data-face]:hover::after{opacity:1;transform:translate(-50%,0);}
.ed-canvas [data-face]::before{content:"";position:absolute;inset:0;z-index:11;background:rgba(242,243,241,.28);transition:background .2s;pointer-events:none;}
.ed-canvas [data-face]:hover::before{background:transparent;}
.ed-gridlayer .gcell{border:1px dashed var(--rule);border-radius:2px;pointer-events:none;}
.ed-slot{font-family:var(--f-ui);position:relative;z-index:2;border-radius:3px;background:#1c6e78;color:#fff;cursor:grab;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;touch-action:none;user-select:none;outline:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);transition:box-shadow .15s,filter .15s;}
.ed-slot.k-article{background:#2e3a52;}
.ed-slot.k-classified{background:#5a4b8c;}
.ed-slot.locked{background:#9b2c22;cursor:pointer;}
.ed-slot:hover{filter:brightness(1.08);}
.ed-slot.sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--k-ink),0 12px 24px -8px rgba(0,0,0,.35);z-index:3;}
.ed-slot.dragging{opacity:.4;}
.ed-slot.born{animation:born .35s var(--ease);}
@keyframes born{from{transform:scale(.9);opacity:0;}}
.es-no{position:absolute;top:5px;left:7px;font:600 10px var(--f-ui);opacity:.8;font-variant-numeric:tabular-nums;}
.es-x,.es-lock{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:4px;border:none;background:rgba(0,0,0,.22);color:#fff;font-size:13px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s;display:grid;place-items:center;}
.es-lock{opacity:.85;background:none;cursor:default;}
.es-lock .ico{width:13px;height:13px;}
.ed-slot:hover .es-x,.ed-slot.sel .es-x{opacity:1;}
.es-body{display:flex;flex-direction:column;gap:2px;padding:4px 8px;pointer-events:none;}
.es-body b{font-size:12px;font-weight:600;} .es-body span{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;} .es-body em{font-style:normal;font-size:9.5px;opacity:.82;}
.es-rs{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 45%,rgba(255,255,255,.9) 45% 55%,transparent 55% 70%,rgba(255,255,255,.9) 70% 80%,transparent 80%);}
.ed-drop{z-index:4;border-radius:3px;display:grid;place-items:center;pointer-events:none;animation:fadeUp .12s;}
.ed-drop.ok{background:rgba(31,122,79,.18);box-shadow:inset 0 0 0 2px var(--k-green);}
.ed-drop.bad{background:rgba(179,38,30,.16);box-shadow:inset 0 0 0 2px var(--k-red);}
.ed-drop span{font:500 11px var(--f-ui);background:rgba(18,20,20,.9);color:#fff;padding:4px 8px;border-radius:4px;}
.ed-empty{grid-column:1/-1;grid-row:3/7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);pointer-events:none;z-index:1;}
.ed-empty b{font:700 20px var(--hf);color:var(--ink);opacity:.5;}
.ed-help{font-size:12.5px;color:var(--k-ink-3);margin:6px 0 0;text-align:center;}
.insp-head{margin-bottom:14px;} .insp-head h3{margin:4px 0 2px;font:400 23px/1.15 var(--f-display);}
.insp-head .eyebrow{color:var(--k-ink-3);font-size:12.5px;}
.insp-dim{font-size:12px;color:var(--k-ink-3);font-variant-numeric:tabular-nums;}
.insp-note{font-size:13px;color:var(--k-ink-2);line-height:1.55;margin:0 0 14px;}
.lock-note{font-size:12.5px;line-height:1.5;background:var(--k-red-t);border:1px solid #efcfcc;color:#7c1d16;border-radius:var(--r-sm);padding:9px 11px;margin-bottom:14px;}
.warn-note{font-size:12.5px;line-height:1.5;background:var(--k-amber-t);border:1px solid #ecd5a4;color:#6b4700;border-radius:var(--r-sm);padding:9px 11px;margin-bottom:14px;}
.insp-suggest{font-size:12px;color:var(--k-ink-3);background:var(--k-sunken);border:1px solid var(--k-rule);border-radius:var(--r-sm);padding:8px 10px;margin-bottom:14px;}
.insp-suggest b{color:var(--k-ink);font-weight:600;}
.insp-acts{display:flex;gap:6px;flex-wrap:wrap;}
.insp-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--k-rule);border-radius:var(--r-sm);margin:4px 0 16px;overflow:hidden;}
.insp-mini div{padding:8px;text-align:center;} .insp-mini div+div{border-left:1px solid var(--k-rule);}
.insp-mini b{display:block;font:400 17px var(--f-display);font-variant-numeric:tabular-nums;} .insp-mini span{font-size:11px;color:var(--k-ink-3);}
.insp-group{border-top:1px solid var(--k-rule);padding-top:12px;} .insp-group summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--k-ink);margin-bottom:12px;}
.theme-chips{display:flex;flex-wrap:wrap;gap:6px;}
.tc{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:4px 10px 4px 5px;font-size:11.5px;font-weight:500;cursor:pointer;transition:box-shadow .15s,transform .12s var(--ease);}
.tc i{width:12px;height:12px;border-radius:50%;} .tc:active{transform:scale(.96);} .tc.on{box-shadow:0 0 0 2px var(--k-teal);}
.insp-totals{margin-top:12px;font-size:12px;color:var(--k-ink-3);font-variant-numeric:tabular-nums;}
.ed-pages{margin-top:24px;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;padding:16px;box-shadow:var(--shadow-1);}
.ed-pages-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;} .ed-pages-head h4{margin:0;}
.add-menu{position:relative;display:inline-flex;gap:6px;flex-wrap:wrap;}
.ed-thumbs{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;overscroll-behavior-x:contain;}
.thumb{flex:none;width:92px;border-radius:var(--r-sm);padding:6px;border:1px solid var(--k-rule);background:var(--k-surface);cursor:grab;transition:border-color .15s,transform .2s var(--ease),opacity .2s;}
.thumb:hover{border-color:var(--k-rule-2);}
.thumb.on{border-color:var(--k-teal);box-shadow:inset 0 0 0 1px var(--k-teal);}
.thumb.dragging{opacity:.4;} .thumb.drop-to{transform:translateX(6px);border-color:var(--k-teal-2);}
.th-dia{position:relative;display:block;width:100%;aspect-ratio:480/660;background:#eceeec;border:none;border-radius:2px;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px var(--k-rule);overflow:hidden;}
.th-dia i{position:absolute;background:var(--k-teal-2);box-shadow:inset 0 0 0 1px #eceeec;} .th-dia i.b{background:var(--red);}
/* the thumbnail button shares the class `ed` with article-page bodies (.ed{position:absolute;inset:0}) — pin it back into the strip */
.th-dia.ed{position:relative;inset:auto;background:#dfe6e6;}
.th-dia.ed b{position:absolute;inset:0;display:grid;place-items:center;font:400 14px var(--f-display);color:#fff;}
.th-meta{display:flex;gap:5px;align-items:baseline;margin-top:6px;font-size:11.5px;} .th-meta b{color:var(--k-ink);font-weight:600;font-variant-numeric:tabular-nums;} .th-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--k-ink-2);}
.th-acts{display:flex;justify-content:flex-end;gap:2px;margin-top:2px;}
.th-acts button{border:none;background:none;cursor:pointer;color:var(--k-ink-3);padding:3px;border-radius:4px;display:grid;place-items:center;transition:background .15s,color .15s;}
.th-acts button .ico{width:14px;height:14px;}
.th-acts button:hover{background:var(--k-sunken);color:var(--k-ink);}
.th-acts button[data-rmp]:hover{color:var(--k-red);background:var(--k-red-t);}
.preview .modal-card{width:min(1180px,100%);}
.ed-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.ed-style-grid button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:var(--r-sm);padding:8px;text-align:left;cursor:pointer;color:var(--k-ink-3);font-size:11.5px;transition:border-color .15s,box-shadow .15s;}
.ed-style-grid button b{display:block;color:var(--k-ink);font-size:12.5px;font-weight:600;margin-bottom:2px;}
.ed-style-grid button:hover{border-color:var(--k-rule-2);}
.ed-style-grid button.on{border-color:var(--k-teal);box-shadow:inset 0 0 0 1px var(--k-teal);}
.scene-chips{display:flex;flex-wrap:wrap;gap:6px;}
.scene-chips button{width:62px;height:44px;border-radius:5px;border:none;padding:0;overflow:hidden;cursor:pointer;position:relative;background:#111;box-shadow:0 0 0 1px var(--k-rule);transition:box-shadow .15s,transform .12s var(--ease);}
.scene-chips button:active{transform:scale(.96);}
.scene-chips button svg{width:100%;height:100%;display:block;}
.scene-chips button span{position:absolute;left:0;right:0;bottom:0;font-size:9px;font-weight:500;color:#fff;background:rgba(0,0,0,.5);padding:1px 0;}
.scene-chips button.on{box-shadow:0 0 0 2px var(--k-teal);}
.ed-canvas.spread{width:960px;}
.ed-canvas.spread .page-face{right:auto;width:480px;}
.ed-canvas.spread .page-face+.page-face{left:480px;}
.ed-canvas .corner{display:none;}
.muse-card{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px;}
.muse-card i{font-style:normal;font-size:11px;padding:3px 8px;border-radius:4px;background:var(--k-teal-4);color:var(--k-teal);}

/* =================== APPROVALS =================== */
.ap-head{margin-bottom:20px;}
.ap-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px;}
.ap-tabs button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:var(--r-sm);height:32px;padding:0 12px;font-size:13px;font-weight:500;cursor:pointer;color:var(--k-ink-2);display:inline-flex;gap:8px;align-items:center;transition:background .15s,color .15s,border-color .15s;}
.ap-tabs button:hover{color:var(--k-ink);border-color:var(--k-rule-2);}
.ap-tabs button span{background:#eef0ef;border-radius:4px;padding:0 6px;font-size:11.5px;font-variant-numeric:tabular-nums;}
.ap-tabs button span.hot{background:var(--k-teal);color:#fff;}
.ap-tabs button.on{background:var(--k-ink);color:#fff;border-color:var(--k-ink);}
.ap-tabs button.on span{background:rgba(255,255,255,.18);color:#fff;}
.ap-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start;}
.ap-list{display:flex;flex-direction:column;position:sticky;top:72px;max-height:calc(100vh - 96px);overflow:auto;overscroll-behavior:contain;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;}
.ap-item{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:12px 14px;border:none;border-bottom:1px solid var(--k-rule);background:transparent;cursor:pointer;transition:background .15s;}
.ap-item:last-child{border-bottom:none;}
.ap-item:hover{background:var(--k-sunken);}
.ap-item.on{background:var(--k-teal-4);}
.api-av{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;font-weight:600;color:#fff;flex:none;font-size:13px;}
.api-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.api-txt b{font-size:13.5px;font-weight:600;} .api-txt span{font-size:12px;color:var(--k-ink-3);} .api-txt em{font-style:normal;font-size:12.5px;color:var(--k-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.api-meta{font-size:11.5px;color:var(--k-ink-3);display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap;}
.flag{font-style:normal;background:var(--k-red-t);color:var(--k-red);border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:500;}
.ap-empty{text-align:center;color:var(--k-ink-3);padding:32px 12px;} .ap-empty div{font:400 30px var(--f-display);color:var(--k-green);} .ap-empty.big{padding:90px 20px;} .ap-empty.big div{color:var(--k-teal-2);font-size:44px;}
.ap-detail{background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;padding:22px;min-height:400px;box-shadow:var(--shadow-1);animation:fadeUp .3s var(--ease) both;}
.ar-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--k-rule);padding-bottom:16px;margin-bottom:18px;}
.ar-head h2{font:400 30px/1.1 var(--f-display);margin:4px 0;} .ar-head p{margin:0;font-size:13px;color:var(--k-ink-3);}
.ar-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;}
.ar-copy h4,.ar-design h4{font-size:12.5px;font-weight:600;color:var(--k-ink);margin:0 0 10px;display:flex;align-items:center;gap:8px;}
.ar-copy h4:not(:first-child){margin-top:20px;}
.kv{margin-bottom:12px;} .kv>span{display:flex;justify-content:space-between;font-size:12px;color:var(--k-ink-3);margin-bottom:3px;}
.kv>span em{font-style:normal;color:var(--k-green);font-weight:500;} .kv>span em.over{color:var(--k-red);}
.kv b{font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;} .kv p{margin:0;font-size:13.5px;line-height:1.55;color:var(--k-ink);background:var(--k-sunken);border:1px solid var(--k-rule);border-radius:var(--r-sm);padding:10px;white-space:pre-wrap;}
.kv-row{display:flex;flex-wrap:wrap;gap:4px 18px;}
.swatch{width:14px;height:14px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);}
.ar-img{max-width:100%;max-height:160px;border-radius:var(--r-sm);display:block;}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;}
.checks li{padding:7px 10px;border-radius:5px;} .checks .ok{background:var(--k-green-t);color:#17603d;} .checks .warn{background:var(--k-amber-t);color:#6b4700;}
.ar-design{display:flex;flex-direction:column;align-items:center;}
.ar-design h4{align-self:flex-start;}
.tpl-pick{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:18px 0 6px;}
.tpl-pick button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:999px;height:28px;padding:0 11px;font-size:12px;font-weight:500;cursor:pointer;color:var(--k-ink-2);transition:border-color .15s,color .15s,background .15s;}
.tpl-pick button:hover{color:var(--k-ink);border-color:var(--k-rule-2);} .tpl-pick button.on{background:var(--k-ink);color:#fff;border-color:var(--k-ink);}
.ar-design .hint{text-align:center;} .ar-design .hint b{color:var(--k-ink);font-weight:600;}
.ar-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;border-top:1px solid var(--k-rule);margin-top:20px;padding-top:16px;align-items:center;}
.placed .modal-card{width:min(420px,100%);}
.placed-page{display:flex;justify-content:center;animation:riseIn .5s var(--ease) both;}
.placed-page .slot.picked{animation:ping 1.2s 2;}
.tpl-sw{border-color:rgba(0,0,0,.08)!important;}

/* =================== DESIGN STUDIO + MUSE =================== */
.st-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;padding:8px 10px;margin-bottom:18px;box-shadow:var(--shadow-1);}
.tb{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--k-ink-2);font-weight:500;}
.tb select{height:30px;background:var(--k-surface);border:1px solid var(--k-rule-2);border-radius:5px;padding:0 8px;color:var(--k-ink);max-width:150px;}
.tb.color input{width:34px;height:28px;border:1px solid var(--k-rule-2);border-radius:5px;background:none;padding:2px;cursor:pointer;}
.tb.presets{display:flex;gap:4px;}
.tb.presets button{width:26px;height:26px;border-radius:5px;border:1px solid rgba(0,0,0,.1);cursor:pointer;display:grid;place-items:center;transition:transform .12s var(--ease),box-shadow .15s;}
.tb.presets button i{width:10px;height:10px;border-radius:50%;}
.tb.presets button:active{transform:scale(.92);} .tb.presets button.on{box-shadow:0 0 0 2px var(--k-teal);}
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start;}
.st-book-col{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;}
.st-side{position:sticky;top:72px;background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;display:flex;flex-direction:column;height:calc(100vh - 96px);min-height:520px;overflow:hidden;box-shadow:var(--shadow-1);}
.st-tabs{display:flex;border-bottom:1px solid var(--k-rule);padding:0 8px;}
.st-tabs button{position:relative;border:none;background:none;height:44px;padding:0 12px;font-weight:500;font-size:13.5px;color:var(--k-ink-3);cursor:pointer;transition:color .15s;}
.st-tabs button::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--k-teal);transform:scaleX(0);transition:transform .25s var(--ease);}
.st-tabs button:hover{color:var(--k-ink);}
.st-tabs button.on{color:var(--k-ink);} .st-tabs button.on::after{transform:scaleX(1);}
.st-pane{flex:1;min-height:0;display:flex;flex-direction:column;}
.sel-pane{overflow:auto;padding:16px;display:block;}
.ai-head{display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--k-rule);}
.ai-head b{display:block;font:400 19px var(--f-display);} .ai-head span{font-size:12px;color:var(--k-ink-3);}
.ai-orb{width:34px;height:34px;border-radius:5px;background:var(--k-teal);color:var(--k-on-teal);display:grid;place-items:center;font:400 19px/1 var(--f-display);flex:none;}
.ai-log{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;background:var(--k-sunken);}
.ai-msg{max-width:92%;padding:9px 12px;border-radius:10px;font-size:13.5px;line-height:1.5;animation:msgIn .25s var(--ease) both;}
@keyframes msgIn{from{opacity:0;transform:translateY(6px);}}
.ai-msg p{margin:0;}
.ai-msg.u{align-self:flex-end;background:var(--k-teal);color:#fff;border-bottom-right-radius:3px;}
.ai-msg.a{align-self:flex-start;background:var(--k-surface);border:1px solid var(--k-rule);border-bottom-left-radius:3px;}
.ai-msg.err{border-color:#efcfcc;background:var(--k-red-t);}
.ai-msg.intro p+p{margin-top:6px;}
.ai-done,.ai-skip{list-style:none;margin:8px 0 2px;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12.5px;}
.ai-done li{color:var(--k-green);animation:itemIn .25s var(--ease) both;} .ai-done li:nth-child(2){animation-delay:.05s;} .ai-done li:nth-child(3){animation-delay:.1s;} .ai-done li:nth-child(4){animation-delay:.15s;}
.ai-skip li{color:var(--k-amber);}
.thinking{display:flex;align-items:center;gap:10px;}
.thinking .dots{display:inline-flex;gap:4px;}
.thinking .dots i{width:6px;height:6px;border-radius:50%;background:var(--k-teal-2);animation:dot 1.1s infinite;}
.thinking .dots i:nth-child(2){animation-delay:.15s;} .thinking .dots i:nth-child(3){animation-delay:.3s;}
@keyframes dot{0%,60%,100%{opacity:.3;}30%{opacity:1;}}
.think-t{font-size:12.5px;color:var(--k-ink-3);}
.ai-sugs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-top:1px solid var(--k-rule);}
.ai-sugs button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:999px;height:28px;padding:0 11px;font-size:12px;cursor:pointer;color:var(--k-ink-2);transition:border-color .15s,color .15s,transform .12s var(--ease);}
.ai-sugs button:hover{border-color:var(--k-teal-2);color:var(--k-ink);} .ai-sugs button:active{transform:scale(.96);}
.ai-form{display:flex;gap:8px;padding:10px 14px 14px;border-top:1px solid var(--k-rule);}
.ai-form textarea{flex:1;resize:none;border-radius:8px;border:1px solid var(--k-rule-2);background:var(--k-surface);padding:9px 12px;color:var(--k-ink);outline:none;line-height:1.4;}
.ai-form textarea:focus{border-color:var(--k-teal-2);box-shadow:0 0 0 3px rgba(28,110,120,.16);}
.ai-send{width:40px;border:none;border-radius:8px;background:var(--k-ink);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .12s var(--ease),opacity .15s;}
.ai-send:active:not(:disabled){transform:scale(.94);} .ai-send:disabled{opacity:.35;}
.sel-empty{text-align:center;color:var(--k-ink-3);padding:64px 14px;} .sel-empty div{font:400 36px var(--f-display);color:var(--k-teal-2);}
.sel-head{margin-bottom:14px;} .sel-head h3{margin:4px 0 0;font:400 24px var(--f-display);}
.tpl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
.tpl-grid button{border:1px solid var(--k-rule);background:var(--k-surface);border-radius:var(--r-sm);padding:5px;font-size:11px;font-weight:500;cursor:pointer;color:var(--k-ink-2);transition:border-color .15s,color .15s;}
.tpl-grid button:hover{color:var(--k-ink);border-color:var(--k-rule-2);} .tpl-grid button.on{border-color:var(--k-teal);color:var(--k-ink);box-shadow:inset 0 0 0 1px var(--k-teal);}
.sel-pane input[type=color]{width:100%;height:34px;border:1px solid var(--k-rule-2);border-radius:var(--r-sm);background:none;padding:2px;cursor:pointer;}
.sel-pane input[type=range]{width:100%;accent-color:var(--k-teal);}
.sel-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}

/* =================== USER DIRECTORY =================== */
.table-card{background:var(--k-surface);border:1px solid var(--k-rule);border-radius:12px;overflow:hidden;margin-top:4px;box-shadow:var(--shadow-1);}
.data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.data-table th{text-align:left;height:40px;padding:0 16px;font-size:12px;font-weight:500;color:var(--k-ink-3);background:var(--k-sunken);border-bottom:1px solid var(--k-rule);white-space:nowrap;}
.data-table td{padding:12px 16px;border-bottom:1px solid var(--k-rule);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tbody tr{transition:background .12s;}
.data-table tbody tr:hover td{background:#fafbfa;}
.data-table b{font-weight:600;}
.data-table .muted{color:var(--k-ink-3);}
.you-tag{font-size:11px;font-weight:500;color:var(--k-teal-2);background:var(--k-teal-4);border-radius:4px;padding:1px 6px;margin-left:6px;}
.role-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;}
.role-tag.role-admin{background:var(--k-ink);color:#fff;}
.role-tag.role-customer{background:#eef0ef;color:var(--k-ink-2);}
.row-actions{display:flex;gap:4px;justify-content:flex-end;white-space:nowrap;}
.table-empty{padding:40px 20px;text-align:center;color:var(--k-ink-3);}

/* =================== SIGN IN =================== */
.login-wrap{min-height:calc(100vh - 57px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.login-side{position:relative;overflow:hidden;background:var(--k-teal);color:var(--k-on-teal);padding:56px 56px 48px;display:flex;flex-direction:column;justify-content:flex-end;gap:22px;isolation:isolate;}
.login-side::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px),repeating-linear-gradient(0deg,rgba(0,0,0,.05) 0 1px,transparent 1px 4px);}
.login-side .mark{position:absolute;top:48px;left:56px;height:40px;padding:0 12px;font-size:17px;background:rgba(0,0,0,.18);}
.ls-t b{display:block;font:400 clamp(34px,3.6vw,48px)/1.05 var(--f-display);color:#fff;letter-spacing:-.015em;}
.ls-t span{display:block;margin-top:8px;font-size:14px;color:var(--k-on-teal-2);}
.ls-q{margin:0;max-width:40ch;font-size:15px;line-height:1.6;color:var(--k-on-teal);border-top:1px solid rgba(255,255,255,.2);padding-top:18px;}
.ls-sec{position:absolute;right:-20px;top:-60px;z-index:-1;font:400 420px/1 var(--f-display);color:rgba(255,255,255,.05);}
.login-card{align-self:center;justify-self:center;width:100%;max-width:400px;margin:48px 24px;display:flex;flex-direction:column;gap:6px;animation:fadeUp .45s var(--ease) both;}
.login-card h1{margin:0 0 4px;font:400 36px/1.1 var(--f-display);letter-spacing:-.01em;}
.login-card>p{margin:0 0 18px;color:var(--k-ink-2);font-size:14px;line-height:1.55;}
.login-card form{display:flex;flex-direction:column;}
.login-card .field{margin-bottom:14px;}
.login-card .err{background:var(--k-red-t);border:1px solid #efcfcc;color:#7c1d16;font-size:13px;padding:9px 11px;border-radius:var(--r-sm);margin-bottom:12px;}
.login-card .btn{height:42px;margin-top:4px;font-size:14px;}
.auth-links{display:flex;justify-content:space-between;gap:10px;margin-top:16px;flex-wrap:wrap;}
.auth-links a{color:var(--k-teal-2);font-size:13px;text-decoration:underline;text-decoration-color:rgba(28,110,120,.35);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s;}
.auth-links a:hover{color:var(--k-teal);text-decoration-color:currentColor;}

/* =================== SCROLL REVEAL =================== */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
[data-reveal].in{opacity:1;transform:none;}
[data-reveal="stagger"]>*{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease);}
[data-reveal="stagger"].in>*{opacity:1;transform:none;}
[data-reveal="stagger"].in>*:nth-child(2){transition-delay:.06s;} [data-reveal="stagger"].in>*:nth-child(3){transition-delay:.12s;}
[data-reveal="stagger"].in>*:nth-child(4){transition-delay:.18s;} [data-reveal="stagger"].in>*:nth-child(n+5){transition-delay:.22s;}

/* =================== EDITORIAL PAGES + SPREADS =================== */
.page-face.editorial{background:var(--paper);}
.spread-layer{position:absolute;top:0;width:960px;height:660px;}
.sp,.ed{position:absolute;inset:0;}
.sp-img,.ed-img,.sp-pic{position:absolute;overflow:hidden;margin:0;}
.sp-img svg,.sp-img img,.ed-img svg,.ed-img img,.sp-pic svg,.sp-pic img,.ad-art svg,.band-layer svg,.th-dia svg{width:100%;height:100%;display:block;object-fit:cover;}
.ad-art.has-scene{background:#111;}
.sp-fade{position:absolute;left:0;top:200px;width:960px;height:240px;background:linear-gradient(transparent,rgba(0,0,0,.6));}
.sp-shade{position:absolute;left:0;bottom:0;width:640px;height:330px;background:linear-gradient(transparent,rgba(0,0,0,.62));}
.sp-kick{position:absolute;z-index:4;font:800 10px/1 var(--f-ui);letter-spacing:.24em;text-transform:uppercase;background:var(--accent);color:#fff;padding:6px 10px;border-radius:2px;}
.sp-kick.ink{background:none;color:var(--accent);padding:0;}
.sp-hl{position:absolute;z-index:4;margin:0;font:700 92px/.95 var(--hf);color:#fff;letter-spacing:-.025em;text-align:center;text-shadow:0 6px 34px rgba(0,0,0,.4);overflow:hidden;overflow-wrap:break-word;}
.sp-hl.ink{color:var(--ink);text-shadow:none;text-align:left;font-size:58px;line-height:1;}
.sp-hl.hl-mark{color:var(--ink);text-shadow:none;text-align:left;font-size:62px;line-height:1.16;}
.sp-hl.hl-mark span,.ed-hl.boxed span{background:var(--paper);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .14em;}
.sp-deck{position:absolute;margin:0;font:italic 400 19px/1.35 var(--hf);color:var(--ink);overflow:hidden;}
.sp-quote{position:absolute;margin:0;font:italic 400 22px/1.25 var(--hf);color:var(--accent);border-left:3px solid var(--accent);padding-left:14px;overflow:hidden;}
.sp-quote.on-img{z-index:4;color:#fff;border-color:rgba(255,255,255,.8);font-size:32px;text-shadow:0 4px 22px rgba(0,0,0,.45);}
.sp-body,.ed-body{position:absolute;overflow:hidden;font:400 11.5px/1.58 var(--bf);color:var(--ink);text-align:left;}
.sp-body p,.ed-body p{margin:0 0 .6em;}
.cols2{column-count:2;column-gap:20px;} .cols3{column-count:3;column-gap:16px;font-size:10.5px;}
.sp-body p:first-child::first-letter,.ed-body p:first-child::first-letter{float:left;font:700 3.5em/.8 var(--hf);color:var(--accent);padding:.07em .09em 0 0;}
.ed-body blockquote{column-span:all;margin:.3em 0 .9em;padding:.55em 0;border-top:2px solid var(--accent);border-bottom:1px solid var(--rule);font:italic 400 19px/1.25 var(--hf);color:var(--accent);text-align:center;}
.sp-credit{position:absolute;z-index:4;font:700 8px var(--bf);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
.sp-credit.on-img{color:rgba(255,255,255,.85);}
.sp-pic{border-radius:3px;box-shadow:0 8px 22px rgba(0,0,0,.18);}
.sp-pic figcaption{position:absolute;left:9px;bottom:7px;font:800 9px var(--bf);color:#fff;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.7);}
.gutter-shade{position:absolute;top:0;bottom:0;width:40px;z-index:6;pointer-events:none;}
.gutter-shade.L{right:0;background:linear-gradient(90deg,transparent,rgba(0,0,0,.24));}
.gutter-shade.R{left:0;background:linear-gradient(270deg,transparent,rgba(0,0,0,.24));}
.ed-folio{position:absolute;bottom:12px;z-index:7;font:700 11px var(--hf);color:var(--ink);}
.page-face.back .ed-folio{left:22px;} .page-face.front .ed-folio{right:40px;}
.ed-folio.on-dark{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.6);}
.ed-img.full{inset:0;}
.ed-img.round{border-radius:50%;box-shadow:0 12px 30px rgba(0,0,0,.25);}
.ed-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 26%,transparent 36%,rgba(0,0,0,.82));}
.ed-hl{position:absolute;z-index:4;margin:0;font:700 50px/1.02 var(--hf);color:var(--ink);letter-spacing:-.02em;overflow:hidden;overflow-wrap:break-word;}
.ed-hl.on-dark{color:#fff;font-size:62px;line-height:.98;text-shadow:0 4px 24px rgba(0,0,0,.4);}
.ed-hl.boxed{font-size:44px;line-height:1.16;}
.ed-deck{position:absolute;z-index:4;margin:0;font:italic 400 15px/1.35 var(--hf);color:var(--muted);overflow:hidden;}
.ed-deck.on-dark{color:rgba(255,255,255,.9);}
.ed-body.on-dark{color:rgba(255,255,255,.88);z-index:4;}
.ed-body.on-dark p:first-child::first-letter{color:#fff;}
.ed-quote{background:color-mix(in srgb,var(--accent) 12%,var(--paper));}
.q-mark{position:absolute;left:22px;top:-40px;font:700 320px/1 var(--hf);color:var(--accent);opacity:.22;}
.ed-bigq{position:absolute;margin:0;font:italic 400 40px/1.18 var(--hf);color:var(--ink);text-align:center;overflow:hidden;}
.q-credit{position:absolute;left:40px;right:40px;top:420px;text-align:center;font:800 10px var(--bf);letter-spacing:.26em;text-transform:uppercase;color:var(--accent);}
.ed-orphan{position:absolute;left:16px;right:16px;top:6px;z-index:9;font:700 9px var(--f-ui);color:#fff;background:#c0392b;padding:4px 6px;border-radius:4px;text-align:center;}
.pg-band{position:absolute;left:0;top:0;width:480px;height:96px;overflow:hidden;}
.band-layer{position:absolute;top:0;width:960px;height:96px;}
.banded .pg-head{border-color:rgba(255,255,255,.75);z-index:1;}
.banded .pg-kicker{color:#fff;} .banded .pg-mast{color:rgba(255,255,255,.88);}
.banded .pg-title{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.4);}
.banded .pg-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.34));}


/* =================== SITE FOOTER =================== */
.site-foot{border-top:1px solid var(--k-rule);background:var(--k-paper);}
body[data-role="admin"] .site-foot,.v-login~.site-foot{display:none;}
.sf-in{max-width:1200px;margin:0 auto;padding:28px 28px 32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 32px;align-items:center;}
.sf-brand{display:flex;align-items:center;gap:14px;}
.sf-brand .mark{height:28px;font-size:12px;}
.sf-brand p{margin:0;font-size:13.5px;color:var(--k-ink-2);max-width:58ch;} .sf-brand b{font-weight:600;color:var(--k-ink);}
.sf-links{display:flex;gap:18px;}
.sf-links a{font-size:13.5px;color:var(--k-ink-2);text-decoration:none;transition:color .15s;} .sf-links a:hover{color:var(--k-teal);}
.sf-legal{grid-column:1/-1;margin:0;padding-top:14px;border-top:1px solid var(--k-rule);font-size:12.5px;color:var(--k-ink-3);}
@media (max-width:760px){.sf-in{grid-template-columns:1fr;padding:24px 18px 96px;}.sf-brand{align-items:flex-start;}}

/* =================== RESPONSIVE =================== */
@media (max-width:1180px){
  .ed-grid{grid-template-columns:220px minmax(0,1fr);}
  .ed-right{grid-column:1/-1;position:static;max-height:none;}
  .st-grid{grid-template-columns:minmax(0,1fr);}
  .st-side{position:static;height:620px;}
  .lib-hero{grid-template-columns:1fr;gap:20px;}
}
@media (max-width:1000px){
  .c-main{grid-template-columns:minmax(0,1fr);margin-top:-96px;}
  .c-panel{position:static;}
  .c-how ol{grid-template-columns:1fr 1fr;}
  .c-how li:nth-child(3){padding-left:0;border-left:none;}
  .c-how li:nth-child(n+3){border-top:1px solid var(--k-rule);margin-top:6px;}
  .ap-grid{grid-template-columns:minmax(0,1fr);}
  .ap-list{position:static;max-height:300px;}
  .ar-grid,.cr-grid,.co-grid{grid-template-columns:minmax(0,1fr);}
  .cr-preview{position:static;}
  .login-wrap{grid-template-columns:minmax(0,1fr);}
  .login-side{min-height:260px;padding:40px 24px 28px;}
  .login-side .mark{top:28px;left:24px;}
  .ls-q{display:none;}
}
@media (max-width:760px){
  .topbar{padding:0 14px;gap:10px;}
  .brand-t small{display:none;}
  .c-hero{padding:34px 18px 118px;}
  .c-hero::after{font-size:150px;right:10px;}
  .c-main{padding:0 12px 30px;margin-top:-84px;}
  .c-how{padding:40px 18px 96px;}
  .c-how ol{grid-template-columns:1fr;}
  .c-how li,.c-how li+li{padding:16px 0 4px;border-left:none;}
  .c-how li+li{border-top:1px solid var(--k-rule);}
  .admin-wrap{padding:0 16px 60px;}
  .admin-nav{height:auto;padding:4px 0;overflow-x:auto;flex-wrap:nowrap;}
  .admin-nav a{height:44px;}
  .admin-nav .crumb,.admin-nav .mode-badge{display:none;}
  .lib-grid{grid-template-columns:minmax(0,1fr);}
  .lib-stats{grid-template-columns:1fr 1fr;}
  .lib-stats div:nth-child(3){border-left:none;}
  .lib-stats div:nth-child(n+3){border-top:1px solid var(--k-rule);}
  .mag-card{flex-direction:column;align-items:center;} .mc-body{width:100%;}
  .ed-grid{grid-template-columns:minmax(0,1fr);}
  .ed-left{position:static;max-height:none;}
  .blocks{grid-template-columns:repeat(3,minmax(0,1fr));}
  .layouts{grid-template-columns:repeat(4,minmax(0,1fr));}
  .row2,.row3,.theme-pick,.start-pick{grid-template-columns:minmax(0,1fr);}
  .modal{padding:10px;align-items:flex-end;}
  .modal-card{padding:22px 18px;border-radius:14px 14px 10px 10px;transform:translateY(24px);}
  .mobile-cart{display:flex;}
  .toasts{left:12px;right:12px;bottom:78px;width:auto;align-items:stretch;}
  .tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ed-name{width:180px;font-size:24px;}
  .data-table{display:block;overflow-x:auto;}
}
@media (max-width:480px){
  .brand-t{display:none;}
  .pill-btn{padding:0 10px;gap:6px;}
  .brand-t b{font-size:16px;}
  .top-right{gap:6px;}
  .auth-who{display:none;}
  .blocks,.layouts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lib-hero h1,.ap-head h1{font-size:32px;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
  [data-reveal],[data-reveal="stagger"]>*{opacity:1!important;transform:none!important;}
}
