:root{--ink:#0c0a09;--ink-2:#110e0c;--char:#17120f;--char-2:#1e1813;--char-3:#271f18;--panel:#15110e;--bone:#ece3d2;--bone-2:#cdc1ac;--bone-dim:#b3a78f;--bone-faint:rgba(236,227,210,0.62);--oxblood:#a8302a;--oxblood-2:#c0473f;--oxblood-dp:#6f1d18;--oxblood-gl:rgba(168,48,42,0.55);--gold:#b6914f;--gold-2:#d4b878;--gold-dim:#a8854a;--gold-line:rgba(182,145,79,0.30);--gold-faint:rgba(182,145,79,0.14);--hair:rgba(182,145,79,0.22);--hair-soft:rgba(236,227,210,0.10);--maxw:1280px;--gutter:clamp(20px,5vw,64px);--f-black:'Grenze Gotisch',serif;--f-orn:'Cinzel',serif;--f-body:'EB Garamond',Georgia,serif;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:hidden}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--f-body);font-size:clamp(1.05rem,1.05rem + .1vw,1.18rem);line-height:1.72;letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--oxblood);color:var(--bone);padding:.7rem 1.1rem;font-family:var(--f-orn);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase}.skip-link:focus{left:0}button{font-family:inherit;cursor:pointer}::selection{background:var(--oxblood);color:var(--bone)}body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 80% at 50% -10%,rgba(40,32,24,0.55),transparent 60%),radial-gradient(140% 120% at 50% 120%,rgba(0,0,0,0.7),transparent 55%),repeating-linear-gradient(125deg,rgba(255,255,255,0.012) 0 2px,transparent 2px 5px);mix-blend-mode:screen;opacity:.5}body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.045; mix-blend-mode:overlay;
}
.page{ position:relative; z-index:1; }

/* ----------------------------- TYPE ------------------------------- */
.eyebrow{
  font-family:var(--f-orn); font-weight:600;
  text-transform:uppercase; letter-spacing:.34em;
  font-size:.72rem; color:var(--gold-2);
  display:inline-flex; align-items:center; gap:.7em;
}
.eyebrow.red{ color:var(--oxblood-2); }
.eyebrow::before,.eyebrow::after{ content:"✦"; color:var(--oxblood); font-size:.6em; opacity:.85; }
.eyebrow.solo::after{ content:none; }

h1,h2,h3,h4{ margin:0; font-weight:500; line-height:1.02; letter-spacing:-.01em; }
.display{
  font-family:var(--f-black); font-weight:700;
  font-size:clamp(3.2rem,8.5vw,7.5rem); line-height:.92;
  letter-spacing:-.01em; color:var(--bone);
}
.display .red{ color:var(--oxblood); }
.h1{ font-family:var(--f-black); font-weight:600; font-size:clamp(2.6rem,5.2vw,4.6rem); line-height:.98; }
.h2{ font-family:var(--f-black); font-weight:600; font-size:clamp(2.1rem,4vw,3.4rem); line-height:1.02; }
.h3{ font-family:var(--f-black); font-weight:500; font-size:clamp(1.5rem,2.4vw,2.1rem); }
.serifcaps{ font-family:var(--f-orn); font-weight:600; letter-spacing:.08em; }
.lead{ font-size:clamp(1.2rem,1.7vw,1.45rem); color:var(--bone-2); line-height:1.6; }
.muted{ color:var(--bone-dim); }
.text-red{ color:var(--oxblood-2); }
.text-gold{ color:var(--gold-2); }

/* fancy drop cap */
.dropcap::first-letter{
  font-family:var(--f-black); font-weight:700;
  float:left; font-size:4.4em; line-height:.7; padding:.06em .12em 0 0;
  color:var(--oxblood); 
}

/* ----------------------------- LAYOUT ----------------------------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.wrap-narrow{ max-width:840px; margin:0 auto; padding-inline:var(--gutter); }
section{ position:relative; }
.section{ padding-block:clamp(72px,10vw,140px); }
.section-sm{ padding-block:clamp(48px,7vw,90px); }
.center{ text-align:center; }
.grid{ display:grid; gap:clamp(20px,2.5vw,34px); }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:980px){ .cols-3,.cols-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .cols-2,.cols-3,.cols-4{ grid-template-columns:1fr; } }

.bg-char{ background:var(--char); }
.bg-ink{ background:var(--ink-2); }
.hr-soft{ border:0; height:1px; background:var(--hair); margin:0; }

/* ----------------------------- ORNAMENTS -------------------------- */
/* fleuron divider with rules */
.divider{ display:flex; align-items:center; justify-content:center; gap:1.2rem; color:var(--gold); margin:0 auto; }
.divider::before,.divider::after{ content:""; height:1px; flex:1; max-width:160px;
  background:linear-gradient(90deg,transparent,var(--gold-line)); }
.divider::after{ background:linear-gradient(270deg,transparent,var(--gold-line)); }
.divider .glyph{ font-family:var(--f-orn); color:var(--oxblood); font-size:1.1rem; opacity:.9; }

/* gilded corner frame — wrap any block */
.framed{ position:relative; }
.framed > .corner{ position:absolute; width:34px; height:34px; pointer-events:none; opacity:.85; }
.framed > .corner::before,.framed > .corner::after{ content:""; position:absolute; background:var(--gold-line); }
.framed > .corner::before{ width:100%; height:1px; top:0; }
.framed > .corner::after{ width:1px; height:100%; left:0; }
.framed > .corner i{ position:absolute; width:5px; height:5px; background:var(--gold); transform:rotate(45deg); top:-2px; left:-2px; box-shadow:0 0 8px var(--oxblood-gl); }
.corner.tl{ top:14px; left:14px; }
.corner.tr{ top:14px; right:14px; transform:scaleX(-1); }
.corner.bl{ bottom:14px; left:14px; transform:scaleY(-1); }
.corner.br{ bottom:14px; right:14px; transform:scale(-1); }

/* small inline cross/fleuron used as separators */
.sep{ color:var(--oxblood); font-family:var(--f-orn); opacity:.8; padding-inline:.2em; }

/* tag / pill */
.tag{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--f-orn); font-weight:600; text-transform:uppercase;
  letter-spacing:.18em; font-size:.68rem; color:var(--bone-2);
  border:1px solid var(--hair); border-radius:999px;
  padding:.55em 1.1em; background:rgba(0,0,0,.25); backdrop-filter:blur(2px);
}
.tag .dot{ width:6px; height:6px; border-radius:50%; background:var(--oxblood); box-shadow:0 0 10px var(--oxblood); }

/* ----------------------------- BUTTONS ---------------------------- */
.btn{
  --bd:var(--gold-line);
  position:relative; display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--f-orn); font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; font-size:.8rem; color:var(--bone);
  padding:1.05em 1.7em; background:linear-gradient(180deg,var(--char-2),var(--char));
  border:1px solid var(--bd); border-radius:4px; overflow:hidden;
  transition:color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease), box-shadow .4s var(--ease);
  white-space:nowrap;
}
.btn::before{ content:""; position:absolute; inset:3px; border:1px solid var(--gold-faint); border-radius:2px; pointer-events:none; }
.btn::after{ content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 50% 120%, var(--oxblood-gl), transparent 60%); opacity:0; transition:opacity .4s var(--ease); }
.btn:hover{ color:var(--bone); border-color:var(--gold); transform:translateY(-2px); box-shadow:0 12px 38px rgba(0,0,0,.55), 0 0 22px var(--oxblood-gl); }
.btn:hover::after{ opacity:1; }
.btn span{ position:relative; z-index:1; }
.btn .ar{ position:relative; z-index:1; transition:transform .3s var(--ease); }
.btn:hover .ar{ transform:translateX(4px); }

.btn-primary{
  background:linear-gradient(180deg,var(--oxblood),var(--oxblood-dp));
  border-color:var(--oxblood-2); color:var(--bone);
}
.btn-primary::before{ border-color:rgba(236,227,210,0.18); }
.btn-primary:hover{ border-color:var(--gold-2); box-shadow:0 14px 40px rgba(0,0,0,.6), 0 0 26px var(--oxblood-gl); }
.btn-ghost{ background:transparent; }
.btn-lg{ font-size:.86rem; padding:1.2em 2em; }
.btn-block{ width:100%; justify-content:center; }
.linkarrow{ font-family:var(--f-orn); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:.76rem; color:var(--gold-2); display:inline-flex; gap:.6em; align-items:center; transition:gap .3s var(--ease),color .3s; }
.linkarrow:hover{ gap:1em; color:var(--bone); }

/* ----------------------------- CARDS ------------------------------ */
.card{
  position:relative; background:linear-gradient(180deg,var(--char-2),var(--panel));
  border:1px solid var(--hair); border-radius:6px;
  padding:clamp(26px,3vw,40px);
  transition:transform .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.card::before{ content:""; position:absolute; inset:0; border-radius:6px; padding:1px;
  background:linear-gradient(180deg,var(--gold-faint),transparent 40%); 
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.card:hover{ transform:translateY(-4px); border-color:var(--gold-line); box-shadow:0 24px 60px rgba(0,0,0,.5); }
.card .kicker{ font-family:var(--f-orn); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--oxblood-2); }
.card h3{ margin:.5em 0 .4em; }
.card p{ color:var(--bone-dim); margin:0; }

/* numbered ornament glyph for cards */
.glyph-mark{
  width:54px; height:54px; display:grid; place-items:center; margin-bottom:1.1rem;
  border:1px solid var(--gold-line); border-radius:50%;
  font-family:var(--f-black); font-weight:600; color:var(--gold-2); font-size:1.4rem;
  background:radial-gradient(circle at 50% 120%, var(--oxblood-gl), transparent 70%);
}

/* stat */
.stat .num{ font-family:var(--f-black); font-weight:600; font-size:clamp(2.8rem,5vw,4rem); color:var(--bone); line-height:1; }
.stat .num .u{ font-size:.45em; color:var(--oxblood-2); vertical-align:super; margin-left:.1em; }
.stat .lbl{ color:var(--bone-dim); font-size:.98rem; margin-top:.5rem; max-width:24ch; }

/* list with cross bullets */
.crosslist{ list-style:none; padding:0; margin:0; display:grid; gap:.85rem; }
.crosslist li{ position:relative; padding-left:1.9em; color:var(--bone-2); }
.crosslist li::before{ content:"✠"; position:absolute; left:0; top:0; color:var(--oxblood); font-family:var(--f-orn); }

/* ----------------------------- HEADER ----------------------------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .4s var(--ease), border-color .4s var(--ease), box-shadow .4s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:linear-gradient(180deg, rgba(10,8,7,.96), rgba(10,8,7,.86));
  border-bottom-color:var(--hair);
  box-shadow:0 10px 40px rgba(0,0,0,.5); backdrop-filter:blur(8px);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  max-width:1440px; margin:0 auto; padding:.9rem var(--gutter); }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand .seal{ width:40px; height:40px; flex:none; filter:drop-shadow(0 0 10px var(--oxblood-gl)); }
.brand .wordmark{ display:flex; flex-direction:column; line-height:1; }
.brand .wm-main{ font-family:var(--f-black); font-weight:700; font-size:1.04rem; color:var(--bone); letter-spacing:.015em; white-space:nowrap; }
.brand .wm-sub{ font-family:var(--f-orn); font-weight:600; font-size:.56rem; letter-spacing:.42em; color:var(--gold-2); text-transform:uppercase; margin-top:.25em; }

.nav-links{ display:flex; align-items:center; gap:.2rem; }
.nav-links a{ position:relative; font-family:var(--f-orn); font-weight:500; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-2); padding:.6em .85em; transition:color .25s; }
.nav-links a:hover,.nav-links a.active{ color:var(--bone); }
.nav-links a.active::after{ content:""; position:absolute; left:.85em; right:.85em; bottom:.2em; height:1px; background:var(--oxblood); }
.nav-sep{ color:var(--gold-dim); font-size:.7rem; opacity:.6; }

/* dropdown */
.has-drop{ position:relative; }
.drop{ position:absolute; top:100%; left:0; min-width:280px; padding:.6rem; margin-top:.4rem;
  background:linear-gradient(180deg,var(--char-2),var(--char)); border:1px solid var(--hair); border-radius:6px;
  box-shadow:0 24px 60px rgba(0,0,0,.6); opacity:0; visibility:hidden; transform:translateY(8px);
  transition:.28s var(--ease); }
.has-drop:hover .drop, .has-drop:focus-within .drop{ opacity:1; visibility:visible; transform:translateY(0); }
.drop a{ display:flex; flex-direction:column; align-items:flex-start; gap:.1em; padding:.7em .8em; border-radius:4px; text-transform:none; letter-spacing:0; font-family:var(--f-body); font-size:1rem; }
.drop a small{ font-family:var(--f-orn); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-dim); }
.drop a:hover{ background:rgba(168,48,42,.12); }
.nav-cta{ display:flex; align-items:center; gap:1rem; }
.nav-cta .phone{ font-family:var(--f-orn); font-size:.78rem; letter-spacing:.06em; color:var(--gold-2); white-space:nowrap; }

.burger{ display:none; width:44px; height:44px; border:1px solid var(--hair); border-radius:5px; background:transparent; flex-direction:column; gap:5px; align-items:center; justify-content:center; }
.burger span{ width:20px; height:1.5px; background:var(--bone); transition:.3s; }
.burger.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* mobile drawer */
.drawer{ position:fixed; inset:0; z-index:99; background:rgba(8,6,5,.98); backdrop-filter:blur(6px);
  display:flex; flex-direction:column; padding:6rem var(--gutter) 3rem; gap:.2rem; transform:translateX(100%);
  transition:transform .4s var(--ease); overflow-y:auto; }
.drawer.open{ transform:translateX(0); }
.drawer a{ font-family:var(--f-black); font-weight:500; font-size:1.6rem; color:var(--bone-2); padding:.5em 0; border-bottom:1px solid var(--hair); }
.drawer a:hover{ color:var(--oxblood-2); }
.drawer .drawer-cta{ margin-top:1.5rem; }

@media(max-width:1080px){
  .nav-links,.nav-cta .phone{ display:none; }
  .burger{ display:flex; }
}
@media(max-width:600px){
  .nav-cta .btn{ display:none; }
}

/* ----------------------------- HERO ------------------------------- */
.hero{ position:relative; min-height:100svh; display:grid; grid-template-columns:1fr; align-items:center; align-content:center; padding-top:120px; padding-bottom:60px; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(90% 70% at 70% 30%, rgba(40,30,22,.7), transparent 60%),
    radial-gradient(120% 100% at 50% 100%, rgba(0,0,0,.85), transparent 55%),
    linear-gradient(180deg,#161109,#0c0a09 70%);
}
.hero-ornament{ position:absolute; z-index:0; color:var(--gold); opacity:.10; pointer-events:none; font-family:var(--f-orn); }
.hero-ornament.big-cross{ font-size:min(34vw,460px); right:-2%; top:50%; transform:translateY(-50%); opacity:.06; }
.hero-content{ position:relative; z-index:2; }
.hero-copy{ position:relative; }
/* desktop: anchored 2-column editorial grid — content left, needle in a right column */
@media(min-width:1181px){
  /* centered, balanced 2-column block: content left-of-centre, needle right-of-centre */
  .hero{ grid-template-columns:minmax(0,560px) auto; column-gap:clamp(64px,7vw,150px); justify-content:center; padding-inline:clamp(32px,4vw,72px); }
  .hero > .hero-content{ grid-column:1; grid-row:1; max-width:none; padding-inline:0; margin:0; }
  .hero > .needle-ink{ grid-column:2; grid-row:1; align-self:center; }
  .hero-copy{ max-width:600px; }
}

/* faint engraved background word */
.ghostword{ position:absolute; z-index:0; font-family:var(--f-black); font-weight:700; color:#fff;
  opacity:.025; font-size:min(40vw,620px); line-height:.8; user-select:none; pointer-events:none; white-space:nowrap; }

/* ----------------------------- SEAL EMBLEM (reusable svg styles) -- */
.glow-flicker{ animation:flicker 4.5s infinite ease-in-out; }
@keyframes flicker{
  0%,100%{ opacity:1; filter:drop-shadow(0 0 8px var(--oxblood-gl)); }
  42%{ opacity:.92; filter:drop-shadow(0 0 6px var(--oxblood-gl)); }
  46%{ opacity:.78; }
  48%{ opacity:.95; }
  70%{ opacity:.85; filter:drop-shadow(0 0 12px var(--oxblood-gl)); }
}

/* ----------------------------- REVEAL ----------------------------- */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-rev="left"]{ transform:translateX(-34px); }
[data-reveal][data-rev="right"]{ transform:translateX(34px); }
[data-reveal][data-rev="scale"]{ transform:scale(.96); }
[data-reveal].in[data-rev]{ transform:none; }
@media(prefers-reduced-motion:reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
  .glow-flicker{ animation:none; }
}

/* ----------------------------- FOOTER ----------------------------- */
.site-footer{ position:relative; z-index:1; background:linear-gradient(180deg,#0a0807,#070504); border-top:1px solid var(--hair); padding-top:clamp(60px,8vw,100px); }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(28px,4vw,56px); }
@media(max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .footer-top{ grid-template-columns:1fr; } }
.footer-top h5{ font-family:var(--f-orn); font-weight:600; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-2); margin:0 0 1.2rem; }
.footer-col a{ display:block; color:var(--bone-dim); padding:.35em 0; transition:color .25s; }
.footer-col a:hover{ color:var(--bone); }
.footer-brand p{ color:var(--bone-dim); max-width:34ch; }
.footer-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:center;
  margin-top:clamp(40px,5vw,70px); padding-block:1.8rem; border-top:1px solid var(--hair); color:var(--bone-dim); font-size:.86rem; }
.footer-bottom a:hover{ color:var(--bone); }

/* ----------------------------- UTIL ------------------------------- */
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.6rem}.mt-4{margin-top:2.4rem}.mt-5{margin-top:3.2rem}
.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.6rem}.mb-4{margin-bottom:2.4rem}
.maxch{ max-width:62ch; }
.flex{ display:flex; }.items-center{align-items:center}.gap-2{gap:1rem}.gap-3{gap:1.6rem}.wrap-flex{flex-wrap:wrap}
.rel{ position:relative; }
.pill-row{ display:flex; flex-wrap:wrap; gap:.7rem; }
.ornrow{ display:flex; align-items:center; gap:1rem; color:var(--gold); }
.ornrow .rule{ height:1px; flex:1; background:linear-gradient(90deg,var(--gold-line),transparent); }

/* ===================== HERO NEEDLE — "Book a call" ================ */
.needle-ink{
  position:relative; z-index:3;
  transform:rotate(-3deg);
  display:flex; flex-direction:column; align-items:flex-start; gap:.8rem;
  text-decoration:none;
}
@media(max-width:1180px){ .needle-ink{ display:none; } }
.needle-ink .ink-tag{ font-family:var(--f-orn); font-size:.72rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold-2); opacity:.85; }
.ink-wrap{ position:relative; display:inline-block; padding-top:46px; }
.ink-stencil,.ink-fill{
  font-family:'Rouge Script', cursive; font-size:clamp(3.9rem,7.7vw,7.7rem);
  line-height:1; white-space:nowrap; display:block;
}
.ink-stencil{ color:transparent; -webkit-text-stroke:1.6px rgba(212,184,120,.55); text-stroke:1.6px rgba(212,184,120,.55); }
.ink-fill{
  position:absolute; left:0; top:46px;
  background:linear-gradient(92deg,#d4b878 0%,#e0533f 34%,#ff7a5c 52%,#c0473f 70%,#d4b878 100%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  filter:drop-shadow(0 0 10px var(--oxblood-gl)) drop-shadow(0 0 22px rgba(224,83,63,.45));
  clip-path:inset(0 100% 0 0);
  animation:inkwrite 9s ease-in-out infinite, inkshimmer 3.4s linear infinite;
}
.needle{ position:absolute; top:-8px; left:0; width:0; animation:needlemove 9s ease-in-out infinite; pointer-events:none; }
.needle-svg{ transform:translateX(-50%) rotate(16deg) scale(1.25); transform-origin:bottom center; filter:drop-shadow(0 4px 6px rgba(0,0,0,.5)); }
.needle-buzz{ animation:buzz .1s steps(2) infinite alternate; transform-origin:bottom center; }
.needle-ink:hover .ink-tag{ color:var(--bone); }
.needle-ink:hover .ink-fill{ filter:drop-shadow(0 0 14px var(--oxblood-gl)) drop-shadow(0 0 30px rgba(255,122,92,.55)); }
@keyframes inkwrite{
  0%{ clip-path:inset(0 100% 0 0); }
  46%{ clip-path:inset(0 0% 0 0); }
  86%{ clip-path:inset(0 0% 0 0); }
  92%{ clip-path:inset(0 0% 0 0); opacity:1; }
  97%{ opacity:0; }
  100%{ clip-path:inset(0 100% 0 0); opacity:0; }
}
@keyframes needlemove{
  0%{ left:2%; opacity:1; }
  46%{ left:99%; opacity:1; }
  86%{ left:99%; opacity:1; }
  90%{ opacity:0; }
  100%{ left:2%; opacity:0; }
}
@keyframes buzz{ from{ transform:translateY(0); } to{ transform:translateY(2px); } }
@keyframes inkshimmer{ from{ background-position:0% 0; } to{ background-position:220% 0; } }
@media(prefers-reduced-motion:reduce){
  .ink-fill{ animation:none; clip-path:inset(0 0 0 0); }
  .needle{ display:none; }
  .needle-buzz{ animation:none; }
}

/* ===================== COVERAGE EXPLORER ========================== */
.cx{ display:grid; grid-template-columns:0.82fr 1fr; gap:clamp(24px,3.5vw,56px); align-items:stretch; }
@media(max-width:880px){ .cx{ grid-template-columns:1fr; } }
.cx-figure{
  position:relative; border:1px solid var(--hair); border-radius:12px; overflow:hidden;
  aspect-ratio:3/4; min-height:460px;
  background:
    radial-gradient(120% 70% at 50% -5%, rgba(60,42,30,.55), transparent 60%),
    radial-gradient(100% 100% at 50% 120%, rgba(0,0,0,.78), transparent 55%),
    linear-gradient(180deg,#1d1610,#0f0b09);
}
.cx-figure::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:__STASH1__' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.06; mix-blend-mode:overlay; }
.cx-figure .corner{ z-index:4; }
.cx-flash{ position:absolute; color:var(--gold); font-family:var(--f-orn); pointer-events:none; user-select:none; opacity:.10; line-height:1; }
.cx-centerpiece{ position:absolute; inset:0; display:grid; place-items:center; color:var(--gold); font-family:var(--f-orn); opacity:.07; font-size:clamp(160px,30vw,300px); pointer-events:none; }
.cx-figcap{ position:absolute; left:0; right:0; bottom:0; z-index:4; padding:1rem 1.2rem; text-align:center;
  font-family:var(--f-orn); font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--bone-dim);
  background:linear-gradient(0deg, rgba(8,6,5,.9), transparent); }
.cov-marker{
  position:absolute; width:40px; height:40px; transform:translate(-50%,-50%); z-index:3;
  border-radius:50%; border:1px solid var(--gold-line); cursor:pointer;
  background:radial-gradient(circle at 50% 130%, var(--oxblood-gl), rgba(0,0,0,.55));
  color:var(--gold-2); font-family:var(--f-black); font-weight:600; font-size:1rem;
  display:grid; place-items:center; transition:transform .25s var(--ease), border-color .25s, color .25s, box-shadow .3s;
}
.cov-marker::after{ content:""; position:absolute; inset:-7px; border-radius:50%; border:1px solid var(--oxblood-2); opacity:0; }
.cov-marker:hover{ transform:translate(-50%,-50%) scale(1.14); border-color:var(--gold-2); color:var(--bone); }
.cov-marker.active{ background:linear-gradient(180deg,var(--oxblood),var(--oxblood-dp)); color:var(--bone); border-color:var(--gold-2); box-shadow:0 0 22px var(--oxblood-gl); }
.cov-marker.active::after{ opacity:1; animation:halo 2.4s ease-out infinite; }
@keyframes halo{ 0%{ transform:scale(.85); opacity:.55; } 70%{ transform:scale(1.5); opacity:0; } 100%{ opacity:0; } }

.cx-panel{ position:relative; border:1px solid var(--hair); border-radius:12px; padding:clamp(26px,3vw,40px);
  background:linear-gradient(180deg,var(--char-2),var(--panel)); display:flex; flex-direction:column; }
.cx-panel .cx-num{ font-family:var(--f-black); font-weight:600; font-size:3rem; color:var(--oxblood-2); line-height:.9; }
.cx-panel .cx-title{ font-family:var(--f-black); font-weight:600; font-size:clamp(1.7rem,2.6vw,2.3rem); margin:.2rem 0 0; }
.cx-block{ margin-top:1.4rem; }
.cx-block .lbl{ font-family:var(--f-orn); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-2); display:flex; align-items:center; gap:.5em; }
.cx-block .lbl::before{ content:"✠";color:var(--oxblood-2)}.cx-block p{color:var(--bone-2);margin:.5rem 0 0;max-width:54ch}.cx-block.risk p{color:var(--bone-dim)}.cx-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.8rem;padding-top:1.6rem;border-top:1px solid var(--hair)}.cx-chip{font-family:var(--f-orn);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);border:1px solid var(--hair);border-radius:999px;padding:.5em .9em;background:rgba(0,0,0,.2);cursor:pointer;transition:border-color .25s,color .25s,background .25s}.cx-chip:hover{border-color:var(--gold-line);color:var(--bone)}.cx-chip.active{border-color:var(--oxblood-2);color:var(--bone);background:rgba(168,48,42,.16)}.cx-cta{margin-top:1.8rem}.cx-swap{animation:cxfade .45s var(--ease)}@keyframes cxfade{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}