/* ============================================================
   DISCREET ESCORTS AMSTERDAM, "THE REDACTED RECEIPT"
   Inner pages stylesheet. Thermal printer system:
   near-black / warm paper / stamp red, Archivo + Space Mono.
   ============================================================ */
:root{
  --bg:        #0E0E0E;
  --paper:     #FBFAF6;
  --ink:       #0E0E0E;
  --red:       #D8262C;
  --red-deep:  #A8151B;
  --paper-55:  rgba(251,250,246,.55);
  --paper-30:  rgba(251,250,246,.30);
  --paper-15:  rgba(251,250,246,.16);
  --ink-70:    rgba(14,14,14,.72);
  --ink-45:    rgba(14,14,14,.45);
  --ink-30:    rgba(14,14,14,.30);
  --ink-12:    rgba(14,14,14,.12);
  --mono:      'Space Mono', ui-monospace, 'Courier New', monospace;
  --sans:      'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --shadow:    0 22px 50px -18px rgba(0,0,0,.9), 0 2px 0 rgba(0,0,0,.35);
  --ease:      cubic-bezier(.22,.75,.25,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; }
html, body{ overflow-x:hidden; max-width:100vw; }
@supports (overflow:clip){ html, body{ overflow-x:clip; max-width:none; } }

body{
  background:var(--bg);
  color:var(--paper);
  font:400 16px/1.6 var(--mono);
  -webkit-font-smoothing:antialiased;
}

/* film grain over everything */
body::after{
  content:""; position:fixed; inset:-40px; z-index:2000; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection{ background:var(--red); color:var(--paper); }
:focus-visible{ outline:3px solid var(--red); outline-offset:3px; }
a{ color:inherit; }
img{ max-width:100%; height:auto; }
[hidden]{ display:none !important; }
p,li,dd,dt,span,small,b,em,summary,h1,h2,h3,figcaption{ overflow-wrap:break-word; }

.wrap{ max-width:1220px; margin-inline:auto; padding-inline:clamp(20px,4.5vw,52px); }
.red{ color:var(--red); }
.sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip{ position:absolute; left:-9999px; top:0; z-index:300; background:var(--red); color:var(--paper); padding:10px 16px; font:700 12px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.skip:focus{ left:0; }
html.lbx-open, html.lbx-open body{ overflow:hidden; }

/* ---------------------------------------------------------------
   REDACTION BAR + PAPER + TEARLINE + BARCODE + STAMP (brand kit)
--------------------------------------------------------------- */
.redact{
  display:inline-block; height:.92em; vertical-align:text-bottom;
  background:var(--ink); border-radius:1px; translate:0 -1px;
}
.paper{
  position:relative;
  background-color:var(--paper);
  color:var(--ink);
  background-image:
    repeating-linear-gradient(0deg, rgba(14,14,14,.03) 0 1px, transparent 1px 3px),
    linear-gradient(90deg, rgba(14,14,14,.06), transparent 7%, transparent 93%, rgba(14,14,14,.06));
  box-shadow:var(--shadow);
}
.paper::before,
.paper::after{
  content:""; position:absolute; left:0; right:0; height:9px; pointer-events:none;
  background-repeat:repeat-x; background-size:16px 9px;
}
.paper::before{
  bottom:100%;
  background-image:conic-gradient(from 135deg at 50% 0, var(--paper) 0 90deg, transparent 90deg);
}
.paper::after{
  top:100%;
  background-image:conic-gradient(from -45deg at 50% 100%, var(--paper) 0 90deg, transparent 90deg);
}
.tearline{
  position:relative; border:none; height:0;
  border-top:2px dashed var(--ink-30);
  margin:16px calc(-1 * var(--pad,20px));
}
.tearline::before,
.tearline::after{
  content:""; position:absolute; top:-7px; width:12px; height:12px;
  border-radius:50%; background:var(--bg);
}
.tearline::before{ left:-6px; }
.tearline::after{ right:-6px; }
.barcode{
  height:40px;
  background-image:repeating-linear-gradient(90deg,
    var(--ink) 0 2px,  transparent 2px 4px,
    var(--ink) 4px 5px, transparent 5px 10px,
    var(--ink) 10px 13px, transparent 13px 15px,
    var(--ink) 15px 16px, transparent 16px 20px,
    var(--ink) 20px 21px, transparent 21px 23px,
    var(--ink) 23px 26px, transparent 26px 29px);
}
.barcode.sm{ height:26px; }
.barcode.inv{
  background-image:repeating-linear-gradient(90deg,
    var(--paper) 0 2px,  transparent 2px 4px,
    var(--paper) 4px 5px, transparent 5px 10px,
    var(--paper) 10px 13px, transparent 13px 15px,
    var(--paper) 15px 16px, transparent 16px 20px,
    var(--paper) 20px 21px, transparent 21px 23px,
    var(--paper) 23px 26px, transparent 26px 29px);
}
.stamp{
  position:relative; display:inline-block;
  font:800 15px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--red); border:3px solid var(--red); border-radius:5px;
  padding:9px 14px; rotate:-7deg;
}
.stamp::before{ content:""; position:absolute; inset:3px; border:1px solid var(--red); border-radius:3px; opacity:.55; }
.stamp::after{
  content:""; position:absolute; inset:-4px; pointer-events:none; opacity:.65;
  background-image:
    radial-gradient(circle at 13% 28%, var(--paper) 1.1px, transparent 1.7px),
    radial-gradient(circle at 67% 61%, var(--paper) 1px, transparent 1.6px),
    radial-gradient(circle at 41% 84%, var(--paper) 1.2px, transparent 1.8px),
    radial-gradient(circle at 88% 19%, var(--paper) .9px, transparent 1.5px);
  background-size:41px 37px, 29px 43px, 53px 31px, 23px 27px;
}
.phero .stamp::after, .final2 .stamp::after{
  background-image:
    radial-gradient(circle at 13% 28%, var(--bg) 1.1px, transparent 1.7px),
    radial-gradient(circle at 67% 61%, var(--bg) 1px, transparent 1.6px),
    radial-gradient(circle at 41% 84%, var(--bg) 1.2px, transparent 1.8px),
    radial-gradient(circle at 88% 19%, var(--bg) .9px, transparent 1.5px);
}

/* dotted receipt rows */
.rrow{ display:flex; align-items:baseline; gap:9px; font:400 13.5px/1.9 var(--mono); text-transform:uppercase; }
.rrow i{ flex:1; border-bottom:2px dotted var(--ink-30); translate:0 -4px; min-width:14px; }
.rrow b{ font-weight:700; white-space:nowrap; }
.rrow.total{ font-weight:700; font-size:15px; }
.rrow.total b{ color:var(--red); font-size:17px; }
.rrow .rnote{ text-transform:none; font-size:.82em; color:var(--ink-45); letter-spacing:0; }
.rrow-link{ text-decoration:none; color:var(--ink); transition:color .2s; }
.rrow-link:hover{ color:var(--red); }
.rrow-link b{ color:var(--red); }
.r-brand{ text-align:center; font:700 15px/1.4 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.r-tag{ text-align:center; font:400 10px/1.6 var(--mono); letter-spacing:.34em; text-transform:uppercase; color:var(--ink-45); margin-top:2px; }

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font:700 13px/1.3 var(--mono); letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; padding:17px 26px; border:2px solid var(--red);
  background:var(--red); color:var(--paper); max-width:100%; text-align:center;
  box-shadow:6px 6px 0 var(--paper-15);
  transition:translate .22s var(--ease), box-shadow .22s var(--ease), background .22s;
}
.btn:hover{ translate:-3px -3px; box-shadow:9px 9px 0 var(--paper-15); }
.btn:active{ translate:1px 1px; box-shadow:3px 3px 0 var(--paper-15); }
.btn svg{ width:18px; height:18px; fill:currentColor; flex:none; }
.btn.ghost{
  background:transparent; border-color:var(--paper); color:var(--paper);
  box-shadow:6px 6px 0 rgba(216,38,44,.55);
}
.btn.ghost:hover{ background:var(--paper); color:var(--ink); box-shadow:9px 9px 0 rgba(216,38,44,.55); }
.btn.onpaper{ box-shadow:5px 5px 0 var(--ink); }
.btn.onpaper:hover{ box-shadow:8px 8px 0 var(--ink); }
.btn.onpaper:active{ box-shadow:2px 2px 0 var(--ink); }
.btn.sm{ padding:12px 18px; font-size:11px; }

/* ---------------------------------------------------------------
   REVEALS
--------------------------------------------------------------- */
@keyframes riseIn{ from{ opacity:0; translate:0 30px; } to{ opacity:1; translate:0 0; } }
.rev{ animation:riseIn .8s var(--ease) both; animation-delay:var(--d,0s); }
@supports (animation-timeline: view()){
  .srev{
    animation:riseIn both; animation-timeline:view();
    animation-range:entry 5% entry 42%;
  }
}
@keyframes feed{
  from{ clip-path:inset(0 -30px 101% -30px); translate:0 -36px; }
  to{   clip-path:inset(-30px); translate:0 0; }
}
.printout{ animation:feed 1.15s var(--ease) .35s backwards; }
@keyframes thump{ from{ opacity:0; scale:1.7; } to{ opacity:1; scale:1; } }
.stamp-hero{ animation:thump .4s cubic-bezier(.32,1.6,.5,1) 1.2s backwards; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-delay:0ms !important;
    transition-duration:.01ms !important;
  }
  .ticker-track{ animation:none !important; }
}

/* ---------------------------------------------------------------
   NAV + MENU STRIP
--------------------------------------------------------------- */
.nav{
  position:sticky; top:0; z-index:100;
  background:var(--bg);
  border-bottom:1px dashed var(--paper-30);
}
.nav-in{ display:flex; align-items:center; gap:26px; height:68px; }
.logo{ display:flex; align-items:center; gap:12px; text-decoration:none; min-width:0; }
.logo-chip{
  width:38px; height:38px; flex:none; background:var(--red); color:var(--paper);
  font:900 20px/38px var(--sans); text-align:center;
  box-shadow:3px 3px 0 var(--paper-30);
  transition:rotate .25s var(--ease);
}
.logo:hover .logo-chip{ rotate:-8deg; }
.logo-word{ font:700 12px/1.35 var(--mono); letter-spacing:.16em; text-transform:uppercase; }
.logo-word small{ display:block; font-size:9px; font-weight:400; letter-spacing:.3em; color:var(--red); }
.nav-links{ display:flex; gap:24px; margin-left:auto; }
.nav-links a{
  font:700 11px/1 var(--mono); letter-spacing:.18em; text-transform:uppercase;
  text-decoration:none; color:var(--paper-55); padding:6px 2px; white-space:nowrap;
  border-bottom:2px solid transparent; transition:color .2s, border-color .2s;
}
.nav-links a:hover, .nav-links a[aria-current]{ color:var(--paper); border-color:var(--red); }
.nav-cta{
  font:700 11px/1 var(--mono); letter-spacing:.12em; text-transform:uppercase;
  text-decoration:none; display:inline-flex; align-items:center; gap:8px; flex:none;
  background:var(--red); color:var(--paper); padding:12px 16px;
  box-shadow:4px 4px 0 var(--paper-30);
  transition:translate .2s var(--ease), box-shadow .2s var(--ease);
}
.nav-cta:hover{ translate:-2px -2px; box-shadow:6px 6px 0 var(--paper-30); }
.nav-cta svg{ width:15px; height:15px; fill:currentColor; }
.nav-toggle{
  display:none; margin-left:auto; flex:none; width:46px; height:38px;
  align-items:center; justify-content:center; cursor:pointer;
  background:transparent; border:2px solid var(--red); color:var(--red);
  box-shadow:3px 3px 0 var(--paper-30);
  transition:translate .2s var(--ease), box-shadow .2s var(--ease), background .2s;
}
.nav-toggle:hover{ translate:-2px -2px; box-shadow:5px 5px 0 var(--paper-30); }
.nav-toggle[aria-expanded="true"]{ background:var(--red); color:var(--paper); }
.nav-bars{ display:grid; gap:4px; }
.nav-bars i{ display:block; width:18px; height:2px; background:currentColor; transition:transform .25s var(--ease), opacity .2s; }
.nav-toggle[aria-expanded="true"] .nav-bars i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-bars i:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-bars i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
.menu-strip{ border-top:1px dashed var(--paper-30); background:var(--bg); max-height:calc(100vh - 69px); overflow-y:auto; }
.ms-list{ list-style:none; padding-block:8px; }
.ms-list a{
  display:flex; align-items:center; gap:14px; padding:15px 0;
  border-bottom:1px dashed var(--paper-15); text-decoration:none;
  font:800 19px/1.1 var(--sans); text-transform:uppercase; letter-spacing:.02em; color:var(--paper);
  transition:color .2s, padding .25s var(--ease);
}
.ms-list a:hover, .ms-list a[aria-current]{ color:var(--red); padding-left:6px; }
.ms-code{ font:700 10px/1 var(--mono); letter-spacing:.2em; color:var(--red); }
.ms-go{ margin-left:auto; font:700 16px var(--mono); color:var(--red); }
.ms-tag{ padding:14px 0 20px; font:400 10px/1.8 var(--mono); letter-spacing:.26em; text-transform:uppercase; color:var(--paper-30); }
@media (max-width:900px){ .nav-links{ display:none; } .nav-toggle{ display:inline-flex; } }
@media (min-width:901px){ .menu-strip{ display:none !important; } }
@media (max-width:480px){
  .nav-in{ gap:12px; }
  .logo-word{ font-size:10px; letter-spacing:.1em; }
  .logo-word small{ letter-spacing:.18em; }
}
@media (max-width:400px){ .logo-word small{ display:none; } }

/* ---------------------------------------------------------------
   TICKER
--------------------------------------------------------------- */
.ticker{
  position:relative; z-index:5; background:var(--red); color:var(--ink);
  overflow:hidden; border-block:2px solid var(--bg);
}
.ticker-track{ display:flex; width:max-content; animation:tick 26s linear infinite; }
.ticker-track:hover{ animation-play-state:paused; }
@keyframes tick{ to{ translate:-50% 0; } }
.ticker-seq{
  display:flex; align-items:center; gap:34px; padding:11px 17px;
  font:800 14px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase;
  white-space:nowrap;
}
.ticker-seq .sep{ font:700 13px var(--mono); color:var(--paper); }
@media (max-width:640px){ .ticker-seq{ font-size:12px; gap:22px; } }

/* ---------------------------------------------------------------
   BREADCRUMBS, the paper trail
--------------------------------------------------------------- */
.crumbs{ border-bottom:1px dashed var(--paper-15); }
.crumbs-in{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:46px; padding-block:10px; }
.crumbs-trail{
  display:flex; flex-wrap:wrap; align-items:center; list-style:none; gap:4px 12px;
  font:400 10px/1.6 var(--mono); letter-spacing:.22em; text-transform:uppercase; color:var(--paper-30);
}
.crumbs-trail li{ display:inline-flex; align-items:center; gap:12px; }
.crumbs-trail li + li::before{ content:"›"; color:var(--red); }
.crumbs-trail a{ color:var(--paper-55); text-decoration:none; transition:color .2s; }
.crumbs-trail a:hover{ color:var(--paper); }
.crumbs-trail [aria-current]{ color:var(--red); }
.crumbs-note{ font:400 9px/1 var(--mono); letter-spacing:.3em; text-transform:uppercase; color:var(--paper-15); white-space:nowrap; }
@media (max-width:760px){ .crumbs-note{ display:none; } }

/* ---------------------------------------------------------------
   PAGE HERO
--------------------------------------------------------------- */
.phero{ position:relative; padding-block:clamp(56px,8vw,104px) clamp(48px,7vw,88px); }
.vert-note{
  position:absolute; top:50%; left:6px; z-index:1;
  writing-mode:vertical-rl; rotate:180deg; translate:0 -50%;
  font:400 9px/1 var(--mono); letter-spacing:.5em; text-transform:uppercase;
  color:var(--paper-15); user-select:none;
}
@media (max-width:1150px){ .vert-note{ display:none; } }
.ph-eyebrow{
  font:700 11px/1.7 var(--mono); letter-spacing:.34em; text-transform:uppercase;
  color:var(--red); margin-bottom:24px;
}
.ph-eyebrow b{ color:var(--paper); font-weight:700; }
.ph-h1{
  font:900 clamp(2.4rem,6.4vw,4.9rem)/.96 var(--sans);
  text-transform:uppercase; letter-spacing:-.015em; max-width:20ch;
  overflow-wrap:anywhere;
}
.ph-intro{ margin-top:22px; max-width:60ch; font:400 14.5px/1.85 var(--mono); color:var(--paper-55); }
.ph-intro p + p{ margin-top:12px; }
.ph-intro b{ color:var(--paper); }
.ph-intro a, .copy-body a, .fq-a a, .chit p a, .final2-sub a, .pro-tag a, .rates-fine a, .nf-text a{
  color:var(--paper); font-weight:700; text-decoration:none; border-bottom:2px solid var(--red);
  transition:color .2s;
}
.paper .rates-fine a, .paper .fq-a a{ color:var(--ink); }
.ph-intro a:hover, .copy-body a:hover, .fq-a a:hover, .chit p a:hover, .final2-sub a:hover, .pro-tag a:hover, .rates-fine a:hover, .nf-text a:hover{ color:var(--red); }
.ph-stamp{ position:absolute; right:clamp(16px,6vw,90px); top:clamp(48px,8vw,96px); pointer-events:none; }
.ph-stamp .stamp{ font-size:clamp(15px,2vw,21px); padding:11px 16px; rotate:-11deg; }
@media (max-width:820px){ .ph-stamp{ display:none; } }

/* ---------------------------------------------------------------
   SECTIONS
--------------------------------------------------------------- */
.sec{ padding-block:clamp(64px,9vw,120px); position:relative; }
.sec-alt{ --bg:#141412; background:var(--bg); }
.sec-head{ margin-bottom:clamp(40px,5.5vw,64px); max-width:840px; }
.sec-index{
  display:flex; align-items:center; gap:14px;
  font:700 11px/1 var(--mono); letter-spacing:.34em; text-transform:uppercase;
  color:var(--red); margin-bottom:18px;
}
.sec-index::before{ content:""; width:44px; height:2px; background:var(--red); flex:none; }
.sec-title{
  font:900 clamp(2rem,4.8vw,3.6rem)/.98 var(--sans);
  text-transform:uppercase; letter-spacing:-.015em; overflow-wrap:anywhere;
}
.sec-sub{ margin-top:18px; font:400 14px/1.85 var(--mono); color:var(--paper-55); max-width:58ch; }
.sec-sub b{ color:var(--paper); }

/* copy sections: numbered head + prose */
.copy2{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); gap:clamp(28px,4vw,64px); align-items:start; }
.copy-head{ position:sticky; top:96px; }
.copy-num{
  display:block; font:900 64px/1 var(--sans); color:transparent;
  -webkit-text-stroke:2.5px rgba(216,38,44,.65); margin-bottom:14px;
}
@supports not (-webkit-text-stroke:1px black){ .copy-num{ color:var(--red); } }
.copy-head .sec-title{ font-size:clamp(1.7rem,3.6vw,2.7rem); }
.copy-body{ font:400 15px/1.95 var(--mono); color:var(--paper-55); max-width:64ch; }
.copy-body p + p{ margin-top:18px; }
.copy-body b{ color:var(--paper); }
@media (max-width:900px){
  .copy2{ grid-template-columns:1fr; }
  .copy-head{ position:static; }
}

/* ---------------------------------------------------------------
   ROSTER TICKETS
--------------------------------------------------------------- */
.roster-grid{
  display:grid; gap:34px 26px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,236px), 1fr));
}
.roster-4{ grid-template-columns:repeat(auto-fill, minmax(min(100%,220px), 1fr)); }
.tick{
  --pad:14px;
  rotate:var(--r,0deg);
  padding:14px var(--pad) 16px;
  transition:rotate .3s var(--ease), translate .3s var(--ease), box-shadow .3s var(--ease);
}
.tick:hover{
  rotate:0deg; translate:0 -8px; z-index:4;
  box-shadow:0 34px 60px -18px rgba(0,0,0,.95), 0 2px 0 rgba(0,0,0,.35);
}
.pin{
  position:absolute; top:-9px; left:50%; translate:-50% 0; z-index:3;
  width:17px; height:17px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #ef6a6e, var(--red) 52%, var(--red-deep) 88%);
  box-shadow:0 4px 6px rgba(0,0,0,.55);
}
.tick-top{
  display:flex; justify-content:space-between; gap:8px;
  font:700 9px/1 var(--mono); letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-45); padding-bottom:10px; margin-bottom:12px;
  border-bottom:2px dashed var(--ink-30);
}
.tick-top b{ color:var(--red); }
.tick-art{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:3 / 4;
  border:2px solid var(--ink); background-color:var(--ink-12);
}
.tick-art img{
  display:block; width:100%; height:100%; object-fit:cover;
  filter:saturate(.94) contrast(1.03);
  transition:scale .45s var(--ease), opacity .45s var(--ease);
}
.tick-art .alt-frame{ position:absolute; inset:0; opacity:0; }
.tick:hover .tick-art img{ scale:1.05; }
.tick:hover .tick-art .alt-frame[src]{ opacity:1; }
.ministamp{
  position:absolute; right:7px; bottom:7px; z-index:2;
  font:800 8.5px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--red); background:var(--paper); border:2px solid var(--red);
  border-radius:3px; padding:4px 6px; rotate:-6deg;
}
.tick-name{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:14px;
  font:800 21px/1.1 var(--sans); text-transform:uppercase; letter-spacing:.01em;
}
.tick-name a{ text-decoration:none; color:inherit; transition:color .2s; }
.tick-name a:hover{ color:var(--red); }
.tick-age{
  flex:none; font:700 11px/1 var(--mono); color:var(--red);
  border:2px solid var(--red); border-radius:3px; padding:4px 6px;
}
.tick-meta{
  margin-top:7px; font:400 10.5px/1.5 var(--mono); letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-45);
}
.tick-meta::before{ content:"● "; color:var(--red); }
.tick-rate{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-top:13px; padding-top:11px; border-top:2px dashed var(--ink-30);
  font:400 10px/1 var(--mono); letter-spacing:.22em; text-transform:uppercase; color:var(--ink-45);
}
.tick-rate b{ font:700 16px/1 var(--mono); letter-spacing:0; color:var(--ink); }
.tick-cta{
  display:block; margin-top:13px; text-align:center; text-decoration:none;
  font:700 11px/1 var(--mono); letter-spacing:.14em; text-transform:uppercase;
  background:var(--ink); color:var(--paper); padding:13px 10px;
  transition:background .2s, letter-spacing .25s var(--ease);
}
.tick-cta:hover{ background:var(--red); letter-spacing:.22em; }
.tick .barcode.sm{ margin-top:12px; opacity:.85; }
.roster-note{
  margin-top:32px; text-align:center;
  font:400 12px/1.9 var(--mono); letter-spacing:.2em; text-transform:uppercase;
  color:var(--paper-30);
}
.roster-note b{ color:var(--red); }
@media (max-width:420px){
  .roster-grid{ grid-template-columns:1fr 1fr; gap:26px 12px; }
  .tick{ --pad:10px; padding:12px var(--pad) 14px; }
  .tick-name{ font-size:16px; }
  .tick-cta{ font-size:9.5px; letter-spacing:.08em; }
  .tick-rate b{ font-size:13px; }
}

/* filter strip */
.fstrip{ margin-bottom:clamp(30px,4vw,46px); }
.fstrip-row{ display:flex; flex-wrap:wrap; gap:12px; }
.fchip{
  display:flex; flex-direction:column; border:2px dashed var(--paper-30);
  transition:border-color .2s;
}
.fchip.is-on{ border-style:solid; border-color:var(--red); }
.fchip-btn{
  display:flex; align-items:baseline; gap:10px; cursor:pointer;
  background:transparent; border:0; color:var(--paper); padding:12px 14px 8px;
  font:400 11px/1 var(--mono); letter-spacing:.14em; text-transform:uppercase;
}
.fchip-btn b{ font:900 20px/1 var(--sans); color:var(--red); }
.fchip-btn small{ color:var(--paper-55); font-size:10px; letter-spacing:.18em; }
.fchip.is-on .fchip-btn small{ color:var(--paper); }
.fchip-go{
  font:700 9px/1 var(--mono); letter-spacing:.2em; text-transform:uppercase;
  color:var(--paper-30); text-decoration:none; padding:0 14px 10px;
  transition:color .2s;
}
.fchip-go:hover{ color:var(--red); }
.fstrip-foot{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 24px;
  margin-top:16px; font:400 10.5px/1.9 var(--mono); letter-spacing:.16em;
  text-transform:uppercase; color:var(--paper-30);
}
.fstrip-travel a{ color:var(--paper-55); text-decoration:none; border-bottom:1px solid var(--red); }
.fstrip-travel a:hover{ color:var(--paper); }
.fstrip-count b{ color:var(--red); font-size:13px; }

/* ---------------------------------------------------------------
   AREA TAGS
--------------------------------------------------------------- */
.tags-grid{
  list-style:none;
  display:grid; gap:26px 22px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,205px),1fr));
}
.tag{
  --pad:18px; display:block; padding:18px var(--pad) 16px; rotate:var(--r,0deg);
  text-decoration:none;
  transition:rotate .3s var(--ease), translate .3s var(--ease);
}
.tag:hover{ rotate:0deg; translate:0 -5px; }
.tag.is-here{ outline:3px solid var(--red); outline-offset:2px; }
.tag-hole{
  position:absolute; top:10px; right:12px; width:13px; height:13px;
  border-radius:50%; background:var(--bg);
  box-shadow:0 0 0 3px var(--ink-12);
}
.tag-code{
  display:block; font:900 clamp(30px,3vw,38px)/1 var(--sans); letter-spacing:-.02em; color:var(--red);
}
.tag-code sup{ font:700 12px var(--mono); color:var(--ink-45); letter-spacing:.1em; vertical-align:super; }
.tag-name{
  display:block; margin-top:8px; font:700 12px/1.3 var(--mono); letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink);
}
.tag-note{
  display:block; margin-top:10px; padding-top:9px; border-top:2px dashed var(--ink-30);
  font:400 9.5px/1.6 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-45);
}
.tag-go{
  display:block; margin-top:9px; font:700 9px/1 var(--mono); letter-spacing:.18em;
  text-transform:uppercase; color:var(--red); opacity:0; translate:0 4px;
  transition:opacity .25s var(--ease), translate .25s var(--ease);
}
.tag:hover .tag-go, .tag:focus-visible .tag-go{ opacity:1; translate:0 0; }
@media (max-width:420px){
  .tags-grid{ grid-template-columns:1fr 1fr; gap:22px 12px; }
  .tag{ --pad:13px; padding:14px var(--pad) 12px; }
}

/* ---------------------------------------------------------------
   RATES STRIP
--------------------------------------------------------------- */
.rates-hold{ position:relative; }
.rates-strip{
  --pad:clamp(22px,4vw,40px);
  width:min(700px,100%); margin-inline:auto;
  padding:34px var(--pad) 38px; rotate:-.7deg;
  font-size:14.5px;
}
.rates-strip .rrow{ font-size:14.5px; }
.rates-strip .r-brand{ font-size:17px; }
.rates-stamp2{ position:absolute; top:-24px; right:clamp(8px,4vw,34px); z-index:2; }
.rates-fine{ margin-top:16px; font:400 12px/1.8 var(--mono); color:var(--ink-70); }
.rates-fine b{ color:var(--red); }
.rates-strip .barcode{ margin-top:16px; }
.rates-cta2{ text-align:center; margin-top:24px; }

/* ---------------------------------------------------------------
   BOOKING CHITS
--------------------------------------------------------------- */
.chit-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px; }
.chit{
  --pad:24px; position:relative; padding:26px var(--pad) 28px; rotate:var(--r,0deg);
  transition:rotate .3s var(--ease), translate .3s var(--ease);
}
.chit:hover{ rotate:0deg; translate:0 -6px; }
.chit-num{
  font:900 66px/1 var(--sans); color:transparent;
  -webkit-text-stroke:2.5px var(--red);
}
@supports not (-webkit-text-stroke:1px black){ .chit-num{ color:var(--red); } }
.chit-kick{
  margin-top:14px; font:700 10px/1 var(--mono); letter-spacing:.3em;
  text-transform:uppercase; color:var(--red);
}
.chit h3{
  margin-top:9px; font:800 22px/1.12 var(--sans);
  text-transform:uppercase; color:var(--ink);
}
.chit p{ margin-top:12px; font:400 13.5px/1.8 var(--mono); color:var(--ink-70); }
.chit p b{ color:var(--ink); }
.chit .barcode.sm{ margin-top:18px; opacity:.8; }
.chit-arrow{
  position:absolute; top:50%; right:-38px; translate:0 -50%;
  font:900 30px/1 var(--sans); color:var(--red); pointer-events:none;
}
@media (max-width:1020px){
  .chit-row{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; gap:38px; }
  .chit-arrow{ top:auto; right:auto; bottom:-40px; left:50%; translate:-50% 0; rotate:90deg; }
}

/* ---------------------------------------------------------------
   FAQ STRIP
--------------------------------------------------------------- */
.faq-strip{
  --pad:clamp(22px,4vw,42px);
  width:min(780px,100%); margin-inline:auto;
  padding:36px var(--pad) 40px; rotate:.5deg;
}
.faq-brand{ text-align:center; margin-bottom:10px; }
.faq-brand .r-brand{ font-size:16px; }
.fq{ border-top:2px dashed var(--ink-30); }
.fq:first-of-type{ border-top:none; }
.fq summary{
  list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:14px;
  padding:20px 0 18px; font:700 14px/1.5 var(--mono);
  text-transform:uppercase; letter-spacing:.03em; color:var(--ink);
}
.fq summary::-webkit-details-marker{ display:none; }
.fq-n{ flex:none; font:800 13px/1 var(--sans); color:var(--red); letter-spacing:.06em; }
.fq-x{
  margin-left:auto; flex:none; font:400 22px/0.9 var(--mono); color:var(--red);
  transition:rotate .3s var(--ease);
}
.fq[open] .fq-x{ rotate:45deg; }
.fq summary:hover .fq-n{ color:var(--ink); }
.fq-a p{
  padding:0 0 22px 37px; font:400 13.5px/1.85 var(--mono); color:var(--ink-70);
}
.fq-a b{ color:var(--ink); }
@media (max-width:480px){ .fq-a p{ padding-left:0; } }

/* ---------------------------------------------------------------
   FINAL CTA
--------------------------------------------------------------- */
.final2{ text-align:center; }
.final2-in{ position:relative; }
.final2-h{
  font:900 clamp(2.5rem,7vw,5.4rem)/.95 var(--sans);
  text-transform:uppercase; letter-spacing:-.02em;
}
.final2-h .l2{ display:block; color:var(--red); }
.final2-sub{
  margin:26px auto 0; max-width:52ch;
  font:400 14px/1.9 var(--mono); color:var(--paper-55);
}
.final2-sub b{ color:var(--paper); }
.final2-ctas{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px; margin-top:38px; }
.final2-ctas .btn{ font-size:14px; padding:20px 30px; }
.final2-micro{
  margin-top:24px; font:400 10px/1.9 var(--mono); letter-spacing:.3em;
  text-transform:uppercase; color:var(--paper-30);
}
.final2-micro em{ font-style:normal; color:var(--red); }
.seal2{
  position:absolute; top:-16px; right:clamp(0px,6vw,90px);
  width:148px; height:148px; border:3px solid var(--red); border-radius:50%;
  display:grid; place-content:center; gap:4px; rotate:12deg;
  color:var(--red); font:800 13px/1.35 var(--sans); letter-spacing:.22em; text-transform:uppercase;
}
.seal2::before{ content:""; position:absolute; inset:7px; border:1px solid var(--red); border-radius:50%; opacity:.6; }
.seal2 span{ display:block; }
.seal2 .big{ font-size:25px; letter-spacing:.08em; }
@media (max-width:820px){ .seal2{ position:static; margin:0 auto 34px; rotate:-8deg; } }
.pro-seal{ display:inline-block; margin-bottom:26px; }
.pro-seal .stamp{ font-size:19px; padding:12px 18px; rotate:-9deg; }
@media (max-width:640px){ .final2-ctas .btn{ padding:16px 20px; font-size:12px; } }

/* ---------------------------------------------------------------
   PROFILE
--------------------------------------------------------------- */
.pro-hero{ position:relative; padding-block:clamp(48px,7vw,92px) clamp(56px,8vw,104px); }
.pro-grid{
  display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(36px,5vw,72px); align-items:start;
}
.pro-ticket{
  --pad:16px; padding:16px var(--pad) 18px; rotate:-1.4deg;
  width:min(460px,100%); margin-inline:auto;
}
.pro-art{ display:block; position:relative; overflow:hidden; border:2px solid var(--ink); background:var(--ink-12); }
.pro-art img{
  display:block; width:100%; height:auto;
  filter:saturate(.94) contrast(1.03);
  transition:scale .5s var(--ease);
}
.pro-art:hover img{ scale:1.03; }
.pro-art .ministamp{ font-size:10px; padding:5px 8px; }
.pro-cap{
  margin-top:12px; font:400 9.5px/1.7 var(--mono); letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-45); text-align:center;
}
.pro-ticket .barcode.sm{ margin-top:12px; opacity:.85; }
.pro-side .ph-h1{ font-size:clamp(2.2rem,5.4vw,4.2rem); }
.pro-tag{ margin-top:16px; font:400 14.5px/1.85 var(--mono); color:var(--paper-55); max-width:52ch; }
.pro-facts{
  --pad:20px; margin-top:26px; padding:20px var(--pad) 22px; rotate:.6deg;
  width:min(520px,100%);
}
.pro-facts .r-brand{ font-size:13px; }
.facts{ margin-top:2px; }
.frow{ display:flex; align-items:baseline; gap:9px; font:400 12.5px/2 var(--mono); text-transform:uppercase; }
.frow dt{ flex:none; color:var(--ink-45); letter-spacing:.1em; }
.frow i{ flex:1; border-bottom:2px dotted var(--ink-30); translate:0 -4px; min-width:14px; }
.frow dd{ font-weight:700; text-align:right; max-width:60%; }
.frow dd a{ color:var(--ink); text-decoration:none; border-bottom:2px solid var(--red); transition:color .2s; }
.frow dd a:hover{ color:var(--red); }
.pro-ctas{ display:flex; flex-wrap:wrap; gap:16px; margin-top:28px; }
@media (max-width:900px){
  .pro-grid{ grid-template-columns:1fr; }
  .pro-ticket{ rotate:-1deg; }
}

/* photo frames */
.frames{
  display:grid; gap:30px 24px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,235px),1fr));
}
.frames-few{ grid-template-columns:repeat(auto-fit, minmax(min(100%,235px),280px)); }
.frame{
  --pad:10px; display:block; padding:10px var(--pad) 12px; rotate:var(--r,0deg);
  text-decoration:none;
  transition:rotate .3s var(--ease), translate .3s var(--ease), box-shadow .3s var(--ease);
}
.frame:hover{
  rotate:0deg; translate:0 -7px; z-index:3;
  box-shadow:0 30px 55px -18px rgba(0,0,0,.95), 0 2px 0 rgba(0,0,0,.35);
}
.frame img{
  display:block; width:100%; height:auto; border:2px solid var(--ink);
  filter:saturate(.94) contrast(1.03);
}
.frame-n{
  position:absolute; top:16px; left:16px; z-index:2;
  font:700 10px/1 var(--mono); letter-spacing:.14em;
  background:var(--paper); color:var(--ink); border:2px solid var(--ink);
  padding:4px 7px;
}
.frame-zoom{
  position:absolute; right:16px; bottom:18px; z-index:2;
  font:800 9px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--paper); background:var(--red); padding:5px 8px;
  opacity:0; translate:0 4px;
  transition:opacity .25s var(--ease), translate .25s var(--ease);
}
.frame:hover .frame-zoom, .frame:focus-visible .frame-zoom{ opacity:1; translate:0 0; }
@media (max-width:420px){ .frames{ grid-template-columns:1fr 1fr; gap:22px 12px; } .frame{ --pad:7px; } }

/* line items (highlights) */
.li-h{
  margin-top:26px; font:700 10px/1 var(--mono); letter-spacing:.3em;
  text-transform:uppercase; color:var(--red);
}
.lineitems{ list-style:none; margin-top:14px; }
.lineitems li{
  display:flex; gap:12px; align-items:baseline; padding:10px 0;
  border-bottom:2px dashed var(--paper-15);
  font:400 13px/1.7 var(--mono); color:var(--paper-55);
}
.lineitems .li-n{ flex:none; font:800 12px/1 var(--sans); color:var(--red); }
.lineitems .li-t b{ color:var(--paper); }

/* related links + prev/next stubs */
.rel-links{ display:flex; flex-wrap:wrap; gap:16px; margin-top:40px; }
.pn{ border-top:1px dashed var(--paper-30); }
.pn-in{ display:grid; grid-template-columns:1fr 1fr; }
.pn-stub{
  display:flex; align-items:center; gap:16px; padding:clamp(18px,3vw,30px) 0;
  text-decoration:none; min-width:0;
}
.pn-next{ justify-content:flex-end; text-align:right; border-left:1px dashed var(--paper-30); padding-left:16px; }
.pn-prev{ padding-right:16px; }
.pn-next .pn-img{ order:2; }
.pn-img{ width:58px; height:74px; object-fit:cover; flex:none; border:2px solid var(--paper-30); filter:saturate(.9); }
.pn-txt{ display:block; min-width:0; }
.pn-txt small{ display:block; font:700 9px/1 var(--mono); letter-spacing:.22em; text-transform:uppercase; color:var(--red); }
.pn-txt b{ display:block; margin-top:6px; font:800 18px/1.1 var(--sans); text-transform:uppercase; color:var(--paper); transition:color .2s; }
.pn-stub:hover b{ color:var(--red); }
.pn-txt em{ display:block; margin-top:4px; font:400 9.5px/1 var(--mono); font-style:normal; letter-spacing:.2em; text-transform:uppercase; color:var(--paper-30); }
@media (max-width:560px){
  .pn-txt em{ display:none; }
  .pn-txt b{ font-size:14px; }
  .pn-img{ width:44px; height:56px; }
}

/* ---------------------------------------------------------------
   404
--------------------------------------------------------------- */
.nf-grid{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(36px,5vw,72px); align-items:center;
}
.nf-paper{
  --pad:22px; width:min(390px,100%); margin-inline:auto;
  padding:26px var(--pad) 30px; rotate:1.8deg;
}
.nf-stamp{ position:absolute; top:34%; right:-14px; pointer-events:none; }
.nf-stamp .stamp{ font-size:19px; padding:12px 18px; rotate:-12deg; }
.nf-side .ph-h1{ font-size:clamp(2.2rem,5.6vw,4.4rem); }
.nf-text{ margin-top:20px; font:400 14.5px/1.85 var(--mono); color:var(--paper-55); max-width:52ch; }
.nf-index{
  --pad:clamp(22px,4vw,40px);
  width:min(640px,100%);
  padding:30px var(--pad) 32px; rotate:-.5deg;
}
.nf-index .rrow{ padding-block:4px; }
@media (max-width:900px){ .nf-grid{ grid-template-columns:1fr; } .nf-paper{ rotate:1.2deg; } }

/* ---------------------------------------------------------------
   LIGHTBOX, the full frame viewer
--------------------------------------------------------------- */
.lbx{
  position:fixed; inset:0; z-index:100000; display:flex; flex-direction:column;
  background:rgba(10,10,10,.985);
}
.lbx-bar{
  display:flex; align-items:center; gap:16px; padding:14px clamp(16px,3vw,28px);
  border-bottom:1px dashed var(--paper-30);
}
.lbx-count{ font:700 11px/1 var(--mono); letter-spacing:.2em; text-transform:uppercase; color:var(--paper-55); white-space:nowrap; }
.lbx-count b{ color:var(--red); }
.lbx-cap{ flex:1; font:400 10px/1.5 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--paper-30); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lbx-x{
  flex:none; display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  background:var(--red); border:0; color:var(--paper); padding:10px 14px;
  font:700 11px/1 var(--mono); letter-spacing:.14em; text-transform:uppercase;
  box-shadow:3px 3px 0 var(--paper-30);
  transition:translate .2s var(--ease), box-shadow .2s var(--ease);
}
.lbx-x:hover{ translate:-2px -2px; box-shadow:5px 5px 0 var(--paper-30); }
.lbx-stage{ position:relative; flex:1; display:flex; align-items:center; justify-content:center; padding:20px; min-height:0; }
.lbx-fig{ display:flex; align-items:center; justify-content:center; max-width:100%; max-height:100%; }
.lbx-img{
  max-width:min(92vw,900px); max-height:calc(100vh - 170px);
  width:auto; height:auto; border:2px solid var(--paper);
  box-shadow:var(--shadow); opacity:0;
}
.lbx-img.is-in{ animation:riseIn .35s var(--ease) forwards; }
.lbx-nav{
  position:absolute; top:50%; translate:0 -50%; z-index:2; cursor:pointer;
  width:52px; height:52px; font:700 20px/1 var(--mono);
  background:var(--bg); color:var(--paper); border:2px solid var(--paper-30);
  transition:background .2s, border-color .2s;
}
.lbx-nav:hover{ background:var(--red); border-color:var(--red); }
.lbx-prev{ left:clamp(8px,2vw,24px); }
.lbx-next{ right:clamp(8px,2vw,24px); }
.lbx-single .lbx-nav{ display:none; }
.lbx-hint{
  padding:12px; text-align:center;
  font:400 9px/1 var(--mono); letter-spacing:.3em; text-transform:uppercase; color:var(--paper-15);
}
@media (max-width:640px){ .lbx-nav{ width:42px; height:42px; } .lbx-cap{ display:none; } }

/* ---------------------------------------------------------------
   V2 LINK LISTS (services, categories, guides)
--------------------------------------------------------------- */
.ll-label{ display:block; font:700 10px/1 var(--mono); letter-spacing:.3em; text-transform:uppercase; color:var(--red); margin-bottom:14px; }
.ll-cards{
  list-style:none;
  display:grid; gap:30px 24px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,250px),1fr));
}
.ll-card{
  --pad:18px; display:block; padding:18px var(--pad) 16px; text-decoration:none;
  transition:translate .3s var(--ease), box-shadow .3s var(--ease);
}
.ll-card:hover{ translate:0 -6px; }
.ll-card .ll-t{ display:block; font:800 17px/1.2 var(--sans); text-transform:uppercase; color:var(--ink); }
.ll-card .ll-m{ display:block; margin-top:7px; font:400 9.5px/1.5 var(--mono); letter-spacing:.2em; text-transform:uppercase; color:var(--ink-45); }
.ll-card .ll-x{ display:block; margin-top:10px; font:400 12.5px/1.7 var(--mono); color:var(--ink-70); }
.ll-card .ll-go{
  display:block; margin-top:12px; padding-top:10px; border-top:2px dashed var(--ink-30);
  font:700 9.5px/1 var(--mono); letter-spacing:.18em; text-transform:uppercase; color:var(--red);
}
.ll-toc{ list-style:none; columns:2 16rem; column-gap:2.5rem; }
.ll-toc li{ break-inside:avoid; }
.ll-toc a{
  display:flex; gap:12px; align-items:baseline; padding:10px 0; text-decoration:none;
  border-bottom:2px dashed var(--paper-15);
  font:700 13px/1.5 var(--mono); text-transform:uppercase; color:var(--paper-55);
  transition:color .2s;
}
.ll-toc a:hover{ color:var(--paper); }
.ll-toc .ll-n{ flex:none; font:800 12px/1 var(--sans); color:var(--red); }
.ll-chips{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
.ll-chips a{
  display:inline-block; padding:9px 14px; text-decoration:none;
  font:700 10.5px/1 var(--mono); letter-spacing:.14em; text-transform:uppercase;
  color:var(--paper); border:2px dashed var(--paper-30);
  transition:border-color .2s, color .2s;
}
.ll-chips a:hover{ border-color:var(--red); color:var(--red); }
.copy-body .ll-cards .ll-t, .copy-body .ll-card .ll-x{ overflow-wrap:break-word; }
h2[id]{ scroll-margin-top:96px; }

/* ---------------------------------------------------------------
   FOOTER
--------------------------------------------------------------- */
.foot{ border-top:1px dashed var(--paper-30); padding-block:64px 44px; }
.foot-grid{
  display:grid; grid-template-columns:1.35fr 1fr 1fr 1fr; gap:44px 36px;
  padding-bottom:44px;
}
.foot-brand p{
  margin-top:16px; font:400 12.5px/1.9 var(--mono); color:var(--paper-55); max-width:44ch;
}
.foot-h{
  font:700 10px/1 var(--mono); letter-spacing:.34em; text-transform:uppercase;
  color:var(--red); margin-bottom:18px;
}
.foot-h a{ color:inherit; text-decoration:none; }
.foot-list{ list-style:none; }
.foot-list li{ margin-bottom:10px; }
.foot-list a{
  font:400 12.5px/1.7 var(--mono); text-transform:uppercase; letter-spacing:.08em;
  color:var(--paper-55); text-decoration:none; border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.foot-list a:hover{ color:var(--paper); border-color:var(--red); }
.foot-v2{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:34px 36px;
  padding-bottom:40px;
}
.foot-v2-one{ grid-template-columns:1fr; }
.foot-list-wide{ columns:2 15rem; column-gap:2.2rem; }
.foot-list-wide li{ break-inside:avoid; }
.foot-bar{
  border-top:2px dashed var(--paper-30); padding-top:26px;
  display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px;
  font:400 10.5px/1.7 var(--mono); letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper-30);
}
.badge21{
  flex:none; font:800 14px/1 var(--sans); color:var(--red);
  border:2px solid var(--red); padding:8px 10px; letter-spacing:.04em;
}
.foot-bar .copy{ margin-left:auto; }
.foot-code{ margin-top:38px; text-align:center; }
.foot-code .barcode.inv{ opacity:.8; max-width:520px; margin-inline:auto; }
.foot-code span{
  display:block; margin-top:10px;
  font:700 9px/1 var(--mono); letter-spacing:.62em; text-transform:uppercase;
  color:var(--paper-30);
}
@media (max-width:1020px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){
  .foot-grid{ grid-template-columns:1fr; gap:34px; }
  .foot-bar .copy{ margin-left:0; }
  .foot-v2{ grid-template-columns:1fr; }
}


.ll-chips a b{ margin-left:8px; color:var(--red); font:800 10.5px/1 var(--sans); }
.ll-chips + .ll-cards{ margin-top:34px; }
.ll-label + .ll-chips{ margin-bottom:8px; }
span.barcode{ display:block; }
.sec-sub a{ color:var(--paper); font-weight:700; text-decoration:none; border-bottom:2px solid var(--red); transition:color .2s; }
.sec-sub a:hover{ color:var(--red); }

/* bullets inside copy sections: dotted line items */
.copy-list{ list-style:none; margin-top:20px; max-width:64ch; }
.copy-list li{
  position:relative; padding:10px 0 10px 26px;
  border-bottom:2px dashed var(--paper-15);
  font:400 13.5px/1.8 var(--mono); color:var(--paper-55);
}
.copy-list li::before{ content:"●"; position:absolute; left:2px; top:13px; font-size:9px; color:var(--red); }
.copy-list b{ color:var(--paper); }

/* ---------------------------------------------------------------
   V2, SERVICE DOCKETS
--------------------------------------------------------------- */
.svc-grid{
  list-style:none;
  display:grid; gap:32px 24px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,290px),1fr));
}
.svc{
  --pad:20px; display:block; padding:20px var(--pad) 18px; rotate:var(--r,0deg);
  text-decoration:none;
  transition:rotate .3s var(--ease), translate .3s var(--ease), box-shadow .3s var(--ease);
}
.svc:hover{
  rotate:0deg; translate:0 -7px; z-index:3;
  box-shadow:0 30px 55px -18px rgba(0,0,0,.95), 0 2px 0 rgba(0,0,0,.35);
}
.svc-top{
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  font:700 9px/1.5 var(--mono); letter-spacing:.18em; text-transform:uppercase;
  color:var(--red); padding-bottom:10px; margin-bottom:12px;
  border-bottom:2px dashed var(--ink-30);
}
.svc-top b{ color:var(--ink-45); font-weight:700; text-align:right; }
.svc-name{ display:block; font:800 23px/1.05 var(--sans); text-transform:uppercase; color:var(--ink); }
.svc-x{ display:block; margin-top:11px; font:400 12.5px/1.75 var(--mono); color:var(--ink-70); }
.svc-row{ margin-top:14px; padding-top:11px; border-top:2px dashed var(--ink-30); }
.svc-row b{ color:var(--red); }
.svc-go{
  display:block; margin-top:12px; font:700 10px/1 var(--mono); letter-spacing:.18em;
  text-transform:uppercase; color:var(--red);
  translate:0 2px; opacity:.85;
  transition:opacity .25s var(--ease), letter-spacing .25s var(--ease);
}
.svc:hover .svc-go, .svc:focus-visible .svc-go{ opacity:1; letter-spacing:.26em; }

/* ---------------------------------------------------------------
   V2, TYPE FILES (categories)
--------------------------------------------------------------- */
.cat-drawer + .cat-drawer{ margin-top:clamp(40px,5vw,56px); }
.cat-drawer-h{
  display:flex; align-items:center; gap:12px; margin-bottom:22px;
  font:700 11px/1 var(--mono); letter-spacing:.3em; text-transform:uppercase; color:var(--paper-55);
}
.cat-drawer-h b{ color:var(--paper); font-weight:700; }
.cat-drawer-h span{ color:var(--red); }
.cat-grid{
  list-style:none;
  display:grid; gap:28px 22px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,235px),1fr));
}
.cat{
  --pad:18px; display:block; position:relative; padding:18px var(--pad) 16px; rotate:var(--r,0deg);
  text-decoration:none;
  transition:rotate .3s var(--ease), translate .3s var(--ease);
}
.cat:hover{ rotate:0deg; translate:0 -6px; z-index:3; }
.cat-count{ display:flex; align-items:baseline; gap:9px; font:900 clamp(30px,3vw,38px)/1 var(--sans); letter-spacing:-.02em; color:var(--red); }
.cat-count small{ font:700 9.5px/1 var(--mono); letter-spacing:.22em; text-transform:uppercase; color:var(--ink-45); }
.cat-name{
  display:block; margin-top:9px; font:800 19px/1.1 var(--sans);
  text-transform:uppercase; color:var(--ink);
}
.cat-x{
  display:block; margin-top:10px; padding-top:10px; border-top:2px dashed var(--ink-30);
  font:400 12px/1.7 var(--mono); color:var(--ink-70);
}
.cat-go{
  display:block; margin-top:10px; font:700 9.5px/1 var(--mono); letter-spacing:.18em;
  text-transform:uppercase; color:var(--red); opacity:0; translate:0 4px;
  transition:opacity .25s var(--ease), translate .25s var(--ease);
}
.cat:hover .cat-go, .cat:focus-visible .cat-go{ opacity:1; translate:0 0; }

/* ---------------------------------------------------------------
   V2, BRIEFING STACK (guides hub)
--------------------------------------------------------------- */
.gf-grid{
  list-style:none;
  display:grid; gap:32px 24px;
  grid-template-columns:repeat(auto-fill, minmax(min(100%,310px),1fr));
}
.gf{
  --pad:20px; display:block; padding:18px var(--pad) 18px; rotate:var(--r,0deg);
  text-decoration:none;
  transition:rotate .3s var(--ease), translate .3s var(--ease), box-shadow .3s var(--ease);
}
.gf:hover{
  rotate:0deg; translate:0 -7px; z-index:3;
  box-shadow:0 30px 55px -18px rgba(0,0,0,.95), 0 2px 0 rgba(0,0,0,.35);
}
.gf-top{
  display:flex; justify-content:space-between; gap:8px;
  font:700 9px/1 var(--mono); letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-45); padding-bottom:10px; margin-bottom:13px;
  border-bottom:2px dashed var(--ink-30);
}
.gf-top b{ color:var(--red); }
.gf-t{ display:block; font:800 20px/1.12 var(--sans); text-transform:uppercase; color:var(--ink); }
.gf-x{ display:block; margin-top:11px; font:400 12.5px/1.75 var(--mono); color:var(--ink-70); }
.gf-foot{
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  margin-top:14px; padding-top:11px; border-top:2px dashed var(--ink-30);
  font:400 9.5px/1.6 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-45);
}
.gf-foot b{ font-weight:700; color:var(--red); white-space:nowrap; }
.gf .barcode.sm{ margin-top:13px; opacity:.85; }

/* ---------------------------------------------------------------
   V2, GUIDE ARTICLE, the briefing
--------------------------------------------------------------- */
.phero-guide .ph-h1{ max-width:22ch; }
.ga-stand{ margin-top:24px; max-width:62ch; font:400 16px/1.85 var(--mono); color:var(--paper-55); }
.ga-stand b{ color:var(--paper); }
.ga-micro{
  margin-top:20px; font:400 10px/1.9 var(--mono); letter-spacing:.28em;
  text-transform:uppercase; color:var(--paper-30);
}
.ga-micro em{ font-style:normal; color:var(--red); }
.ga-body{ padding-top:clamp(20px,3vw,40px); }
.ga-grid{
  display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:clamp(36px,5vw,72px); align-items:start;
}
.ga-side{ position:sticky; top:92px; }
.ga-toc{ --pad:20px; padding:22px var(--pad) 18px; rotate:-.8deg; }
.ga-toc .r-brand{ font-size:13px; }
.ga-toc-list{ list-style:none; margin-top:2px; }
.ga-toc-list a{
  display:flex; gap:11px; align-items:baseline; padding:10px 0;
  border-bottom:2px dashed var(--ink-12); text-decoration:none;
  font:700 12px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.04em; color:var(--ink);
  transition:color .2s;
}
.ga-toc-list li:last-child a{ border-bottom:none; }
.ga-toc-list a:hover{ color:var(--red); }
.ga-toc-n{ flex:none; font:800 11px/1 var(--sans); color:var(--red); }
.ga-toc .barcode.sm{ margin-top:14px; opacity:.85; }
.ga-art{ max-width:70ch; }
.ga-sec + .ga-sec{ margin-top:clamp(44px,6vw,72px); }
.ga-h2{
  display:flex; gap:14px; align-items:baseline;
  font:800 clamp(1.45rem,3vw,2.05rem)/1.08 var(--sans);
  text-transform:uppercase; letter-spacing:-.01em; overflow-wrap:anywhere;
}
.ga-n{
  flex:none; font:900 15px/1 var(--sans); color:transparent;
  -webkit-text-stroke:1.6px var(--red); translate:0 -2px;
}
@supports not (-webkit-text-stroke:1px black){ .ga-n{ color:var(--red); } }
.ga-sec > p{ margin-top:18px; font:400 15.5px/1.95 var(--mono); color:var(--paper-55); }
.ga-sec > p b{ color:var(--paper); }
.ga-art p a, .ga-stand a{
  color:var(--paper); font-weight:700; text-decoration:none; border-bottom:2px solid var(--red);
  transition:color .2s;
}
.ga-art p a:hover, .ga-stand a:hover{ color:var(--red); }
.ga-memo{ --pad:22px; margin-top:26px; padding:20px var(--pad) 18px; rotate:.6deg; max-width:60ch; }
.ga-memo-h{ font:700 10px/1 var(--mono); letter-spacing:.3em; text-transform:uppercase; color:var(--red); }
.ga-list{ list-style:none; margin-top:8px; }
.ga-list li{
  position:relative; padding:10px 0 10px 24px;
  border-bottom:2px dashed var(--ink-12);
  font:400 13px/1.75 var(--mono); color:var(--ink-70);
}
.ga-list li:last-child{ border-bottom:none; }
.ga-list li::before{ content:"→"; position:absolute; left:0; top:10px; font:700 12px/1.75 var(--mono); color:var(--red); }
.ga-list b{ color:var(--ink); }
.paper .ga-list a{ color:var(--ink); font-weight:700; text-decoration:none; border-bottom:2px solid var(--red); transition:color .2s; }
.paper .ga-list a:hover{ color:var(--red); }
.ga-memo .barcode.sm{ margin-top:14px; opacity:.8; }
@media (max-width:1020px){
  .ga-grid{ grid-template-columns:1fr; }
  .ga-side{ position:static; }
  .ga-toc{ width:min(520px,100%); }
}
