/* Covent Garden Escorts, Stage Door */

:root{
--bg:#09070a;--bg2:#0f0b10;--bg3:#161118;--paper:#f3ecf1;--paper-ink:#140d14;--paper-mut:#4b414a;--paper-line:#b8adb6;
--line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.18);
--mag:#ff2e93;--mag-hi:#ff6fb6;--mag-lo:#c0106a;--glow:rgba(255,46,147,.42);
--ink:#f6eff4;--mut:rgba(246,239,244,.68);--dim:rgba(246,239,244,.44);
--ok:#5dffa8;--amber:#b98a2c;
--head:"Staatliches","Impact","Arial Narrow",sans-serif;
--body:"Onest","Segoe UI",system-ui,sans-serif;
--mono:"DM Mono","Consolas",ui-monospace,monospace;
--g:clamp(16px,4.5vw,64px);
--ease:cubic-bezier(.22,1,.36,1);--spring:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg)}
html,body{overflow-x:hidden;max-width:100%}
@supports (overflow:clip){html,body{overflow-x:clip}}
body{background:var(--bg);color:var(--ink);font:400 1rem/1.65 var(--body);-webkit-font-smoothing:antialiased}
::selection{background:var(--mag);color:#000}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
img{max-width:100%;height:auto}
svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--mag-hi);outline-offset:3px}
section{position:relative;scroll-margin-top:84px}
.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:var(--g)}
.wrap.narrow{max-width:940px}
h1,h2,h3,h4{font-family:var(--head);font-weight:400;letter-spacing:.01em;line-height:.92;text-transform:uppercase}
.cg-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* atoms carried over from the stage door homepage */
.lbl{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.55rem;font:500 .7rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.lbl b{color:var(--mag);font-weight:500}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);flex:none;animation:cgblink 2s infinite}
@keyframes cgblink{50%{opacity:.3}}
.h2{font-size:clamp(2.1rem,5.4vw,4.2rem);line-height:.9}
.h2.sm{font-size:clamp(1.8rem,3.6vw,2.9rem)}
.blk{display:inline-block;background:var(--mag);color:#0a0609;padding:.04em .14em 0;transform:rotate(-1.2deg)}
.lede{max-width:60ch;color:var(--mut);font-size:clamp(1rem,1.25vw,1.1rem)}
.head{display:grid;gap:.9rem;margin-bottom:clamp(1.8rem,4vw,3rem)}
.head.mid{justify-items:center;text-align:center}
.head.mid .lede{text-align:center}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:1rem 1.5rem .95rem;border-radius:6px;font:400 1.15rem/1 var(--head);letter-spacing:.08em;background:var(--mag);color:#0a0609;box-shadow:0 14px 40px -16px var(--glow);transition:transform .4s var(--spring),background .3s,box-shadow .4s;overflow:hidden;text-align:center}
.btn:hover{transform:translateY(-3px) rotate(-.6deg);background:var(--mag-hi);box-shadow:0 22px 50px -14px var(--glow)}
.btn svg{width:19px;height:19px;fill:currentColor;flex:none}
.btn.gh{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
.btn.gh:hover{box-shadow:inset 0 0 0 1px var(--mag);color:var(--mag-hi)}
.btn.sm{min-height:44px;padding:.7rem 1.05rem .65rem;font-size:1rem}
.ctas{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .55rem .34rem;border-radius:4px;font:500 .6rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:rgba(9,7,10,.78);box-shadow:inset 0 0 0 1px var(--line2);white-space:nowrap}
.chip.m{background:var(--mag);color:#0a0609;box-shadow:none}
.chip.ok{color:var(--ok)}
.chip.ok i,.chip.away i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.chip.away{color:var(--amber)}
.redact{display:inline-block;min-width:5.5em;height:.95em;vertical-align:-.12em;background:#000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);border-radius:1px;position:relative}
.redact::after{content:attr(data-r);position:absolute;inset:0;display:grid;place-items:center;font:500 .58rem/1 var(--mono);letter-spacing:.12em;color:var(--mag-hi);opacity:0;transition:opacity .3s;white-space:nowrap}
.redact:hover::after{opacity:1}
.bc{display:block;color:rgba(255,255,255,.45)}
.bc svg{width:100%;height:100%}
.prose p{color:var(--mut);margin-bottom:1rem;max-width:72ch}
.prose p:last-child{margin-bottom:0}
.prose a,.lede a,.sub a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a:hover,.lede a:hover{color:#fff}
.ticks{display:grid;gap:.5rem;margin:1rem 0 0}
.ticks li{position:relative;padding-left:1.5rem;color:var(--mut);font-size:.94rem}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:2px;background:var(--mag);transform:rotate(45deg)}
.tip{display:block;margin-top:1.3rem;padding:1.1rem 1.2rem;border-radius:10px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);border-left:3px solid var(--mag)}
.tip>.lbl{margin-bottom:.6rem}
.tip ul{display:grid;gap:.5rem}
.tip li{position:relative;padding-left:1.4rem;color:var(--mut);font-size:.93rem}
.tip li::before{content:"//";position:absolute;left:0;font:500 .7rem/1.6 var(--mono);color:var(--mag)}
.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:.9rem 1.2rem;background:var(--mag);color:#0a0609;font:400 1.1rem/1 var(--head);letter-spacing:.08em}
.skip:focus{left:8px;top:8px}
.cg-off{color:var(--dim)}

[hidden]{display:none!important}
/* house notice strip */
.houseline{position:relative;z-index:71;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1.1rem;padding:.5rem var(--g);background:#0c090d;border-bottom:1px solid var(--line);font:500 .6rem/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-align:center}
.houseline b{display:inline-grid;place-items:center;min-width:32px;padding:.18rem .34rem .1rem;border-radius:4px;background:var(--mag);color:#0a0609;font:400 .8rem/1 var(--head);letter-spacing:.06em}
.houseline span{white-space:nowrap}
@media (max-width:760px){.houseline .opt{display:none}}

/* header */
.top{position:sticky;top:0;z-index:70;background:rgba(9,7,10,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:70px}
.brand{display:flex;align-items:center;gap:.75rem;min-width:0}
.brand-mk{position:relative;width:34px;height:46px;flex:none;border-radius:5px;background:linear-gradient(180deg,var(--mag) 0 38%,#f3edf1 38%);box-shadow:0 0 22px -6px var(--glow)}
.brand-mk::before{content:"";position:absolute;left:50%;top:5px;width:12px;height:3px;margin-left:-6px;border-radius:2px;background:#09070a}
.brand-mk::after{content:"";position:absolute;left:6px;right:6px;bottom:6px;height:10px;background:repeating-linear-gradient(90deg,#09070a 0 1px,transparent 1px 3px,#09070a 3px 5px,transparent 5px 6px)}
.brand b{display:block;font:400 1.3rem/1 var(--head);letter-spacing:.04em;white-space:nowrap}
.brand small{display:block;margin-top:.28rem;font:500 .56rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.nav{display:flex;flex-wrap:wrap;gap:.1rem}
.nav a{padding:.55rem .7rem;border-radius:5px;font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);transition:color .3s,background .3s;white-space:nowrap}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav a[aria-current="page"]{color:var(--mag-hi)}
.nav a::before{content:"[ ";color:var(--mag);opacity:0;transition:opacity .3s}
.nav a::after{content:" ]";color:var(--mag);opacity:0;transition:opacity .3s}
.nav a:hover::before,.nav a:hover::after,.nav a[aria-current="page"]::before,.nav a[aria-current="page"]::after{opacity:1}
.top-act{display:flex;align-items:center;gap:.4rem}
.top .btn{min-height:44px;padding:.7rem 1.05rem .65rem;font-size:1rem}
.top .btn.tgb{padding:.7rem .8rem}
.burger{display:none;width:44px;height:44px;border-radius:6px;place-items:center;box-shadow:inset 0 0 0 1px var(--line2)}
.burger i{display:block;width:18px;height:2px;background:#fff;box-shadow:0 6px 0 #fff,0 -6px 0 #fff}
@media (max-width:1180px){
.nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;padding:.6rem var(--g) 1.4rem;background:var(--bg);border-bottom:1px solid var(--line);clip-path:inset(0 0 100% 0);transition:clip-path .5s var(--ease)}
.nav.open{clip-path:inset(0)}
.nav a{font:400 1.7rem/1 var(--head);letter-spacing:.04em;padding:.85rem 0;border-radius:0;border-bottom:1px solid var(--line);color:#fff}
.nav a::before,.nav a::after{display:none}
.burger{display:grid}
}
@media (max-width:620px){.top .btn:not(.tgb){display:none}.brand small{display:none}.brand b{font-size:1.1rem}}

/* breadcrumbs, the route board */
.crumbs{border-bottom:1px solid var(--line);background:var(--bg2)}
.crumbs-in{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;padding-block:.7rem}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font:500 .66rem/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);min-width:0}
.crumbs li{display:flex;align-items:center;gap:.35rem}
.crumbs li+li::before{content:"/";color:var(--mag);opacity:.6}
.crumbs a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.crumbs [aria-current="page"]{color:var(--ink)}

.phero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(2.4rem,5.5vw,4rem) 0 clamp(2.6rem,5.5vw,4.2rem)}
.phero::before{content:"";position:absolute;inset:0;z-index:-2;background:
radial-gradient(ellipse 36% 48% at 22% 0%,rgba(255,220,238,.12),transparent 70%),
radial-gradient(ellipse 52% 62% at 18% 46%,rgba(255,46,147,.12),transparent 70%),
radial-gradient(ellipse 60% 50% at 100% 100%,rgba(255,46,147,.06),transparent 70%)}
.phero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.45;background:
repeating-linear-gradient(0deg,transparent 0 33px,rgba(255,255,255,.035) 33px 34px),
repeating-linear-gradient(90deg,transparent 0 71px,rgba(255,255,255,.025) 71px 72px);
-webkit-mask:linear-gradient(90deg,#000,transparent 62%);mask:linear-gradient(90deg,#000,transparent 62%)}
.phero .bulb{position:absolute;left:22%;top:0;width:2px;height:clamp(12px,2.4vw,24px);background:#3a3238;z-index:1}
.phero .bulb::after{content:"";position:absolute;left:50%;bottom:-11px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:radial-gradient(circle,#fff 0 25%,#ffd6ea 45%,rgba(255,46,147,.4) 70%,transparent 72%);box-shadow:0 0 36px 9px rgba(255,190,225,.22)}
.ph-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);gap:clamp(1.8rem,4vw,3.6rem);align-items:center}
.phero.solo .ph-grid{grid-template-columns:minmax(0,1fr)}
.ph-copy{container-type:inline-size;position:relative;z-index:2;min-width:0}
.ph-h1{font-size:clamp(2.3rem,9.4cqi,5.4rem);line-height:.86;letter-spacing:.005em;margin-top:1.1rem}
.ph-h1 .kw{position:relative;display:inline-block;padding:.05em .14em 0;color:#0a0609;transform:rotate(-1.4deg)}
.ph-h1 .kw::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--mag);box-shadow:0 18px 50px -20px var(--glow)}
.ph-h1.long{font-size:clamp(1.9rem,6.4cqi,3.6rem)}
.sub{max-width:62ch;margin-top:1.3rem;color:var(--mut);font-size:clamp(1rem,1.3vw,1.12rem)}
.sub p+p{margin-top:.8rem}

/* the call sheet chit that rides alongside every page heading */
.chit{position:relative;padding:clamp(2rem,3.4vw,2.6rem) clamp(1rem,2.2vw,1.5rem) clamp(1rem,2vw,1.3rem);border-radius:14px;background:linear-gradient(180deg,#1a141b,#141015);box-shadow:inset 0 0 0 1px var(--line2),0 40px 80px -46px #000}
.chit::before{content:"";position:absolute;left:50%;top:-13px;width:110px;height:30px;margin-left:-55px;border-radius:8px 8px 13px 13px;background:linear-gradient(180deg,#d8d2dc,#7f7985);box-shadow:0 6px 12px rgba(0,0,0,.6)}
.chit-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem .9rem;padding-bottom:.7rem;border-bottom:2px solid var(--ink)}
.chit-top b{font:400 clamp(1.5rem,2.4vw,2rem)/1 var(--head);letter-spacing:.04em}
.chit-top em{font-style:normal;color:var(--mag)}
.cr{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto;gap:.5rem .8rem;align-items:baseline;padding:.65rem .1rem;border-bottom:1px solid var(--line);font-size:.9rem}
.cr:last-child{border-bottom:0}
.cr .cue{font:500 .66rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mag)}
.cr .what{color:var(--mut);font-size:.88rem;min-width:0}
.cr .val{font:400 1.05rem/1.1 var(--head);letter-spacing:.05em;text-align:right;white-space:nowrap}
.chit-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:.9rem;padding-top:.8rem;border-top:1px dashed var(--line2);font:500 .6rem/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.chit-foot i{display:inline-block;width:7px;height:7px;margin-right:.4rem;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}
.chit .conf{position:absolute;right:.9rem;top:.8rem;padding:.24rem .5rem .14rem;border:2px solid rgba(255,46,147,.5);border-radius:4px;font:400 .95rem/1 var(--head);letter-spacing:.1em;color:rgba(255,46,147,.6);transform:rotate(7deg);pointer-events:none}
@media (max-width:980px){.ph-grid{grid-template-columns:minmax(0,1fr)}.chit{max-width:520px}.phero .bulb{left:50%}}
@media (max-width:480px){.cr{grid-template-columns:3.2rem minmax(0,1fr)}.cr .val{grid-column:2;text-align:left;font-size:1rem}.chit .conf{display:none}}

/* scenes: the running text of every page */
.scene{padding:clamp(2.6rem,6vw,4.6rem) 0}
.scene.alt{background:var(--bg2);border-block:1px solid var(--line)}
.scene+.scene:not(.alt){padding-top:0}
.scene-in{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,.66fr);gap:clamp(1.2rem,3.6vw,3.4rem);align-items:start}
.scene-h{position:relative;display:grid;gap:.7rem;align-content:start}
.scene-h .cue{display:flex;align-items:center;gap:.6rem;font:500 .64rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.scene-h .cue b{font:400 2.6rem/.8 var(--head);letter-spacing:.02em;color:transparent;-webkit-text-stroke:1px var(--mag);opacity:.9}
.scene-h h2{font-size:clamp(1.6rem,2.9vw,2.5rem)}
.scene-h h2 em{font-style:normal;color:var(--mag)}
.scene-h::after{content:"";display:block;width:54px;height:3px;background:var(--mag);border-radius:2px}
.scene .prose{font-size:1rem}
.doc .scene-in{grid-template-columns:minmax(0,1fr);max-width:76ch;margin-inline:auto}
.doc .scene-h::after{display:none}
.doc-nav{padding:clamp(1.4rem,3vw,2rem) 0 0}
.doc-nav ol{display:flex;flex-wrap:wrap;gap:.45rem;max-width:76ch;margin-inline:auto}
.doc-nav a{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem .4rem;border-radius:5px;font:500 .64rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);box-shadow:inset 0 0 0 1px var(--line2);transition:.25s}
.doc-nav a:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--mag)}
.doc-nav a b{color:var(--mag);font-weight:500}
@media (max-width:900px){.scene-in{grid-template-columns:minmax(0,1fr)}.scene-h::after{display:none}}

/* the company: passes on lanyards */
.company{padding:clamp(3rem,6.5vw,5.5rem) 0}
.company.alt{background:var(--bg2);border-block:1px solid var(--line)}
.co-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.2rem;margin-bottom:1.4rem}
.co-top .head{margin:0;max-width:64ch}
.filters{display:grid;gap:.6rem;margin-bottom:clamp(1.4rem,3vw,2.2rem);padding:1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.frow{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.frow>.lbl{min-width:6.6rem}
.ft{padding:.55rem .8rem .5rem;border-radius:5px;font:500 .66rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut);box-shadow:inset 0 0 0 1px var(--line2);transition:.25s}
.ft:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--mag)}
.ft[aria-pressed="true"],.ft.on{background:var(--mag);color:#0a0609;box-shadow:none}
.cnt{margin-left:auto;font:500 .66rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.cnt b{color:var(--mag);font-weight:500}
.fgo{margin-top:.2rem}
.badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.8vw,1.4rem)}
.badges.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.bd{position:relative;display:block;padding:10px 10px 14px;border-radius:14px;background:linear-gradient(180deg,#1b151c,#130e14);box-shadow:inset 0 0 0 1px var(--line);transform-origin:50% 0;transition:transform .7s var(--spring),box-shadow .4s}
.bd.hide{display:none}
.bd::before{content:"";position:absolute;left:50%;top:-6px;width:40px;height:10px;margin-left:-20px;border-radius:5px;background:#09070a;box-shadow:inset 0 0 0 1px var(--line2);z-index:4}
.bd:hover,.bd:focus-visible{transform:rotate(-1.4deg) translateY(-4px);box-shadow:inset 0 0 0 1px rgba(255,46,147,.6),0 30px 60px -30px var(--glow)}
.bd:nth-child(even):hover{transform:rotate(1.4deg) translateY(-4px)}
.bd .ph{position:relative;aspect-ratio:3/4;max-width:100%;border-radius:9px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse 80% 55% at 50% 105%,rgba(255,46,147,.26),transparent 70%),linear-gradient(180deg,#2a2029,#110c11)}
.bd .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;z-index:0;transition:transform .8s var(--ease)}
.bd:hover .ph img{transform:scale(1.04)}
.bd .ph::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(9,7,10,.35),transparent 30%,transparent 55%,rgba(9,7,10,.85))}
.bd .ph .fg{position:absolute;left:18%;bottom:0;width:64%;height:74%;z-index:1;fill:#070507}
.bd .tp{position:absolute;inset:.7rem .7rem auto;z-index:4;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem}
.bd .no{position:absolute;left:.8rem;bottom:.7rem;z-index:4;font:400 2.4rem/1 var(--head);color:rgba(255,255,255,.14)}
.bd .mini{position:absolute;right:.8rem;bottom:.9rem;z-index:4;width:38%;height:18px;color:rgba(255,255,255,.5)}
.bd .inf{display:grid;grid-template-columns:1fr auto;gap:.15rem .6rem;align-items:end;padding:.85rem .3rem 0}
.bd h3{font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:.03em}
.bd .mt{grid-column:1;font:500 .63rem/1.35 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut)}
.bd .mt b{color:var(--mag-hi);font-weight:500}
.bd .go{grid-column:2;grid-row:1/3;width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:var(--mag);color:#0a0609;transform:scale(.001) rotate(-45deg);transition:transform .5s var(--spring)}
.bd .go svg{width:18px;height:18px;fill:currentColor}
.bd:hover .go,.bd:focus-visible .go{transform:none}
@media (hover:none){.bd .go{transform:none}}
.empty{padding:2.2rem;text-align:center;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);color:var(--mut)}
.grid-more{margin-top:1.6rem}
@media (max-width:1080px){.badges,.badges.four{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.badges,.badges.four{grid-template-columns:repeat(2,minmax(0,1fr))}.frow>.lbl{min-width:100%}.cnt{margin-left:0}.bd .go{width:32px;height:32px}.bd .mini{display:none}.bd h3{font-size:1.15rem}}
@media (max-width:360px){.badges,.badges.four{grid-template-columns:1fr}}

/* the rail: the public rate ladder */
.railsec{padding:clamp(2.6rem,6vw,4.6rem) 0}
.railsec.alt{background:var(--bg2);border-block:1px solid var(--line)}
.ladder-wrap{overflow-x:auto;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line)}
table.ladder{width:100%;min-width:520px;border-collapse:collapse;background:var(--bg3)}
table.ladder caption{padding:1rem 1.1rem;text-align:left;font:500 .64rem/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}
table.ladder th,table.ladder td{padding:.9rem 1.1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:baseline}
table.ladder thead th{font:500 .6rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
table.ladder tbody th{font:400 1.3rem/1.05 var(--head);letter-spacing:.04em;color:var(--ink);white-space:nowrap}
table.ladder tbody th small{display:block;margin-top:.3rem;font:500 .56rem/1 var(--mono);letter-spacing:.14em;color:var(--dim)}
table.ladder .pr{font:400 1.6rem/1 var(--head);letter-spacing:.03em;white-space:nowrap}
table.ladder .nt{color:var(--mut);font-size:.9rem;max-width:44ch}
table.ladder tbody tr:last-child th,table.ladder tbody tr:last-child td{border-bottom:0}
table.ladder tbody tr.mark{background:rgba(255,46,147,.08)}
table.ladder tbody tr.mark .pr{color:var(--mag-hi)}
.rail-note{margin-top:1rem;font:500 .64rem/1.7 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
@media (max-width:680px){
.ladder-wrap{overflow-x:visible}
table.ladder{min-width:0}
table.ladder caption{padding:.9rem 1rem}
table.ladder thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
table.ladder tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .8rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
table.ladder tbody tr:last-child{border-bottom:0}
table.ladder th,table.ladder td{padding:0;border-bottom:0}
table.ladder tbody th{align-self:center}
table.ladder .pr{text-align:right;align-self:center}
table.ladder .nt{grid-column:1/-1;margin-top:.5rem;max-width:none}
}
.rail-note b{color:var(--ink);font-weight:500}

/* changes of plan and the message to send */
.deps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(.8rem,2vw,1.2rem);margin-top:clamp(1.6rem,3vw,2.4rem)}
.dep{position:relative;padding:1.3rem 1.2rem 1.2rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.dep::before{content:"";position:absolute;left:1.2rem;top:-5px;width:46px;height:11px;background:rgba(255,46,147,.35);transform:rotate(-4deg);border-radius:2px}
.dep b.figure{display:block;margin:.7rem 0 .3rem;font:400 2.6rem/1 var(--head);letter-spacing:.03em;color:var(--mag-hi)}
.dep h3{font-size:1.4rem}
.dep p{margin-top:.5rem;color:var(--mut);font-size:.92rem}
.slipbox{position:relative;display:grid;gap:1rem;margin-top:clamp(1.6rem,3vw,2.4rem);padding:1.5rem 1.4rem;border-radius:12px;background:var(--paper);color:var(--paper-ink);box-shadow:0 40px 80px -46px #000}
.slipbox::before{content:"";position:absolute;left:50%;top:-11px;width:96px;height:22px;margin-left:-48px;background:rgba(255,46,147,.55);transform:rotate(-2deg)}
.slipbox h3{font-size:clamp(1.6rem,3vw,2.2rem)}
.slipbox h3 small{display:block;margin-top:.35rem;font:500 .56rem/1.4 var(--mono);letter-spacing:.16em;color:#6d626b}
.slipbox .msg{padding:1rem 1.1rem;border-radius:8px;background:#fff;border:1px dashed var(--paper-line);font:500 .95rem/1.7 var(--mono);color:#241b23;overflow-wrap:anywhere}
.slipbox .acts{display:flex;flex-wrap:wrap;gap:.6rem}
.slipbox p{font-size:.88rem;color:var(--paper-mut);max-width:62ch}
.slipbox p a{color:var(--mag-lo);text-decoration:underline;text-underline-offset:3px}
.copybtn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;padding:.9rem 1.2rem;border-radius:6px;font:400 1.05rem/1 var(--head);letter-spacing:.08em;color:var(--paper-ink);box-shadow:inset 0 0 0 1px var(--paper-line);transition:.25s}
.copybtn:hover{box-shadow:inset 0 0 0 1px var(--mag-lo);color:var(--mag-lo)}
.copybtn svg{width:18px;height:18px;fill:currentColor}

/* sign in steps */
.stepsec{padding:clamp(2.6rem,6vw,4.6rem) 0}
.stepsec.alt{background:var(--bg2);border-block:1px solid var(--line)}
.signin{border-top:2px solid var(--ink)}
.si{display:grid;grid-template-columns:auto 4.2rem minmax(0,1fr);gap:1rem;align-items:start;padding:1.35rem 0;border-bottom:1px solid var(--line)}
.si .box{position:relative;width:34px;height:34px;margin-top:.3rem;border-radius:5px;box-shadow:inset 0 0 0 2px var(--line2)}
.si .box svg{position:absolute;inset:-6px;width:46px;height:46px;fill:none;stroke:var(--mag);stroke-width:4;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:0;transition:stroke-dashoffset .6s var(--ease) var(--sd,0s)}
.js .si .box svg{stroke-dashoffset:60}
.js .si.in .box svg{stroke-dashoffset:0}
.si .n{font:400 3.2rem/.8 var(--head);color:transparent;-webkit-text-stroke:1px var(--line2);transition:-webkit-text-stroke-color .5s}
.si.in .n{-webkit-text-stroke-color:var(--mag)}
.si h3{font-size:clamp(1.4rem,2.4vw,2rem)}
.si h3 small{display:block;margin-bottom:.4rem;font:500 .6rem/1.4 var(--mono);letter-spacing:.16em;color:var(--dim)}
.si p{margin-top:.5rem;color:var(--mut);font-size:.95rem;max-width:62ch}
.si p a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
@media (max-width:520px){.si{grid-template-columns:auto minmax(0,1fr)}.si .n{display:none}}

/* crew notes: faq accordion */
.notesec{padding:clamp(2.6rem,6vw,4.6rem) 0}
.notesec.alt{background:var(--bg2);border-block:1px solid var(--line)}
.notesec .wrap{max-width:980px}
.qa{position:relative;margin-bottom:.7rem;border-radius:10px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .4s}
.qa::before{content:"";position:absolute;left:1.2rem;top:-5px;width:46px;height:12px;background:rgba(255,46,147,.35);transform:rotate(-4deg);border-radius:2px}
.qa.open{box-shadow:inset 0 0 0 1px rgba(255,46,147,.6)}
.qa button{width:100%;display:grid;grid-template-columns:4.8rem minmax(0,1fr) 34px;gap:.8rem;align-items:center;padding:1.2rem 1.1rem;text-align:left;font:600 clamp(.98rem,1.5vw,1.1rem)/1.4 var(--body)}
.qa button .qn{font:500 .6rem/1.3 var(--mono);letter-spacing:.12em;color:var(--mag)}
.qa .pm{position:relative;width:34px;height:34px;border-radius:6px;box-shadow:inset 0 0 0 1px var(--line2);transition:background .3s,transform .5s var(--spring)}
.qa .pm::before,.qa .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.qa .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s var(--ease)}
.qa.open .pm{background:var(--mag);color:#0a0609;box-shadow:none;transform:rotate(180deg)}
.qa.open .pm::after{transform:translate(-50%,-50%) rotate(0)}
.ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.ans>div{overflow:hidden}
.ans .inner{padding:0 3.2rem 1.2rem 6.7rem;color:var(--mut)}
.ans .inner p+p{margin-top:.7rem}
.ans .inner a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
.qa.open .ans{grid-template-rows:1fr}
@media (max-width:640px){.qa button{grid-template-columns:minmax(0,1fr) 34px}.qa button .qn{grid-column:1/-1}.ans .inner{padding:0 1.1rem 1.1rem}}

/* venues on the circuit */
.zones{padding:clamp(2.6rem,6vw,4.6rem) 0}
.zones.alt{background:var(--bg2);border-block:1px solid var(--line)}
.zgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1rem)}
.z{position:relative;display:flex;flex-direction:column;padding:1.2rem 1.2rem 1.1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .4s,transform .5s var(--ease);color:inherit}
.z:hover,.z:focus-visible{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(255,46,147,.6)}
.z .zt{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font:500 .6rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.reader{display:flex;align-items:center;gap:5px;flex:none}
.reader i{width:7px;height:7px;border-radius:50%;background:#5a1f3a;transition:.3s}
.reader i+i{background:#1d3a2a}
.z:hover .reader i+i,.z:focus-visible .reader i+i{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.z h3{margin:1.3rem 0 .5rem;font-size:clamp(1.4rem,2.2vw,1.9rem)}
.z p{flex:1;font-size:.88rem;color:var(--mut)}
.z .zf{margin-top:1rem;padding-top:.7rem;border-top:1px dashed var(--line2);font:500 .58rem/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mag-hi)}
.z.home{grid-column:span 2;background:linear-gradient(160deg,rgba(255,46,147,.16),var(--bg3) 60%);box-shadow:inset 0 0 0 1px rgba(255,46,147,.4)}
.z.home h3{font-size:clamp(1.9rem,3.4vw,2.9rem)}
.z.cur{box-shadow:inset 0 0 0 1px rgba(255,46,147,.5)}
.z.cur .zt b{color:var(--mag)}
@media (max-width:1020px){.zgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.zgrid{grid-template-columns:1fr}.z.home{grid-column:auto}}

/* venue and station panels on an area page */
.vgrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1rem,2.6vw,2rem)}
.panel{padding:1.4rem 1.3rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.panel>.lbl{margin-bottom:.9rem}
.panel h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:.8rem}
.hotels{display:grid;gap:.5rem}
.hotels li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.7rem .8rem;border-radius:8px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--line)}
.hotels svg{width:16px;height:16px;fill:var(--mag);flex:none}
.hotels b{font:400 1.15rem/1.15 var(--head);letter-spacing:.04em;min-width:0}
.hotels small{font:500 .58rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:right}
.stops{display:grid;gap:.5rem}
.stops li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.65rem .1rem;border-bottom:1px dashed var(--line2)}
.stops li:last-child{border-bottom:0}
.stops svg{width:16px;height:16px;fill:var(--mag-hi);flex:none}
.stops b{font:400 1.1rem/1.15 var(--head);letter-spacing:.04em}
.stops span{display:block;font:500 .58rem/1.4 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.stops .walk{font:500 .68rem/1 var(--mono);letter-spacing:.08em;color:var(--mag-hi);white-space:nowrap}
.panel .note{margin-top:.9rem;font-size:.88rem;color:var(--mut)}
@media (max-width:860px){.vgrid{grid-template-columns:1fr}}

/* link lists: cards, contents, chips */
.linksec{padding:clamp(2.6rem,6vw,4.6rem) 0}
.linksec.alt{background:var(--bg2);border-block:1px solid var(--line)}
.ll-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:clamp(.7rem,1.6vw,1.1rem)}
.ll-cards a{display:flex;flex-direction:column;gap:.5rem;padding:1.2rem 1.2rem 1.1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .4s,transform .5s var(--ease)}
.ll-cards a:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(255,46,147,.6)}
.ll-cards strong{font:400 1.3rem/1.1 var(--head);letter-spacing:.03em;text-transform:uppercase}
.ll-cards .ex{font-size:.88rem;color:var(--mut)}
.ll-cards .meta{font:500 .58rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mag-hi)}
.ll-chips{display:flex;flex-wrap:wrap;gap:.45rem}
.ll-chips a{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem .45rem;border-radius:5px;font:500 .66rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut);box-shadow:inset 0 0 0 1px var(--line2);transition:.25s}
.ll-chips a:hover{color:#0a0609;background:var(--mag);box-shadow:none}
.ll-toc{display:grid;gap:.3rem}
.ll-toc a{display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.6rem;padding:.55rem .2rem;border-bottom:1px dashed var(--line);color:var(--mut);font-size:.92rem}
.ll-toc a:hover{color:#fff}
.ll-toc a span{font:500 .62rem/1.6 var(--mono);letter-spacing:.1em;color:var(--mag)}

/* closing call */
.final{position:relative;padding:clamp(3.4rem,8vw,6rem) 0;overflow:hidden;background:radial-gradient(ellipse 52% 62% at 50% 100%,rgba(255,46,147,.2),transparent 70%),var(--bg);border-top:1px solid var(--line)}
.final-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.6rem,4vw,3.6rem);align-items:center}
.final-copy{container-type:inline-size;min-width:0}
.final h2{font-size:clamp(2.4rem,11cqi,5.4rem);line-height:.86}
.final .lede{margin-top:1.2rem}
.running{padding:1.3rem;border-radius:12px;background:var(--paper);color:var(--paper-ink);transform:rotate(-1.4deg);box-shadow:0 40px 80px -46px #000}
.running h3{font-size:1.6rem;padding-bottom:.6rem;border-bottom:2px solid var(--paper-ink)}
.running ol{counter-reset:cgr}
.running li{counter-increment:cgr;display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.58rem 0;border-bottom:1px dashed var(--paper-line);font:500 .68rem/1.3 var(--mono);letter-spacing:.09em;text-transform:uppercase}
.running li::before{content:counter(cgr,decimal-leading-zero);color:#8a7e88}
.running li:last-child{border-bottom:0}
.running .redact{min-width:0;width:100%;background:var(--paper-ink)}
.running li.you{font:400 1.2rem/1.1 var(--head);letter-spacing:.06em;background:rgba(255,46,147,.5)}
@media (max-width:900px){.final-grid{grid-template-columns:1fr}.running{max-width:440px}}

.pf-hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(2rem,4.5vw,3.4rem) 0 clamp(2.4rem,5vw,3.8rem)}
.pf-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 44% 56% at 16% 10%,rgba(255,46,147,.14),transparent 70%)}
.pf-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(1.4rem,3.4vw,3rem);align-items:start}
.pf-frame{position:relative;border-radius:14px;background:linear-gradient(180deg,#1b151c,#130e14);padding:12px 12px 14px;box-shadow:inset 0 0 0 1px var(--line2),0 40px 80px -48px #000}
.pf-frame::before{content:"";position:absolute;left:50%;top:-7px;width:56px;height:12px;margin-left:-28px;border-radius:6px;background:#09070a;box-shadow:inset 0 0 0 1px var(--line2);z-index:4}
.pf-shot{position:relative;display:block;aspect-ratio:3/4;border-radius:9px;overflow:hidden;background:#110c11}
.pf-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform .9s var(--ease)}
.pf-shot:hover img{transform:scale(1.03)}
.pf-frame .tp{position:absolute;left:1.3rem;right:1.3rem;top:1.3rem;z-index:3;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem}
.pf-frame figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem;padding-top:.8rem;font:500 .6rem/1.5 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.pf-frame figcaption b{color:var(--mag-hi);font-weight:500}
.pass-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#1c161d,#130e14);box-shadow:inset 0 0 0 1px var(--line2)}
.pass-main{padding:clamp(1.2rem,2.4vw,1.8rem);min-width:0}
.pass-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem .8rem;padding-bottom:.8rem;border-bottom:1px dashed var(--line2);font:500 .6rem/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.pass-top b{color:var(--mag);font-weight:500}
.pass-name{margin:1rem 0 .4rem;font-size:clamp(2.4rem,6vw,4.2rem);line-height:.88}
.pass-name.long{font-size:clamp(2rem,4.6vw,3.2rem)}
.pass-tag{color:var(--mut);font-size:1.02rem;max-width:52ch}
.pass-av{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem}
.pass-av .avn{font-size:.86rem;color:var(--mut)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:.1rem;margin-top:1.2rem;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.facts>div{padding:.85rem .95rem;border-right:1px dashed var(--line2);border-bottom:1px dashed var(--line2)}
.facts dt{font:500 .55rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.facts dd{margin-top:.35rem;font:400 1.25rem/1.1 var(--head);letter-spacing:.04em;color:#fff}
.facts dd small{font:500 .54rem/1 var(--mono);letter-spacing:.1em;color:var(--mag);margin-left:.35rem}
.facts dd.txt{font:500 .86rem/1.4 var(--body);letter-spacing:0;color:var(--ink);text-transform:none}
.pass-proof{margin-top:1rem;font:500 .6rem/1.7 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
.pass-proof a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
.pass-stub{display:grid;place-items:center;padding:.6rem 0;background:#2a212b;border-left:2px dashed var(--bg)}
.pass-stub span{writing-mode:vertical-rl;transform:rotate(180deg);font:500 .56rem/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}
@media (max-width:980px){.pf-grid{grid-template-columns:minmax(0,1fr)}.pf-frame{max-width:460px}}
@media (max-width:520px){.pass-card{grid-template-columns:minmax(0,1fr)}.pass-stub{display:none}.facts>div{border-right:0}}

.pf-bio{padding:clamp(2.4rem,5.5vw,4.2rem) 0;background:var(--bg2);border-block:1px solid var(--line)}
.pfb-grid{display:grid;grid-template-columns:minmax(0,.36fr) minmax(0,.64fr);gap:clamp(1.2rem,3.4vw,3.2rem);align-items:start}
.pfb-side{display:grid;gap:.9rem;align-content:start}
.pfb-side h2{font-size:clamp(1.7rem,3vw,2.6rem)}
.pfb-side h2 em{font-style:normal;color:var(--mag)}
.pfb-body p{max-width:70ch}
.wings{margin-top:.6rem;padding:1.1rem 1.1rem 1rem;border-radius:10px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
@media (max-width:900px){.pfb-grid{grid-template-columns:minmax(0,1fr)}}

.pf-photos{padding:clamp(2.4rem,5.5vw,4.2rem) 0}
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:clamp(.6rem,1.4vw,1rem)}
.shot{position:relative;display:block;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:#110c11;box-shadow:inset 0 0 0 1px var(--line)}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform .8s var(--ease)}
.shot:hover img{transform:scale(1.05)}
.shot .chip{position:absolute;left:.6rem;bottom:.6rem;z-index:2}
.shot::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 60%,rgba(9,7,10,.7));opacity:.9}

.pf-rail{padding:clamp(2.4rem,5.5vw,4.2rem) 0;background:var(--bg2);border-block:1px solid var(--line)}
.pfr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.4rem,3.4vw,3rem);align-items:start}
.her-ladder{display:grid;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);background:var(--bg3)}
.her-ladder li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 1rem;align-items:baseline;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}
.her-ladder li:last-child{border-bottom:0}
.her-ladder li.mark{background:rgba(255,46,147,.08)}
.her-ladder .d{font:400 1.2rem/1.1 var(--head);letter-spacing:.04em}
.her-ladder .d small{display:block;margin-top:.25rem;font:500 .55rem/1 var(--mono);letter-spacing:.14em;color:var(--dim)}
.her-ladder .p{font:400 1.4rem/1 var(--head);letter-spacing:.03em;white-space:nowrap}
.her-ladder li.mark .p{color:var(--mag-hi)}
@media (max-width:900px){.pfr-grid{grid-template-columns:minmax(0,1fr)}}

/* guest book */
.book{padding:clamp(2.4rem,5.5vw,4.2rem) 0}
.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(.7rem,1.6vw,1.1rem)}
.rev{position:relative;padding:1.3rem 1.2rem 1.1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.rev::before{content:"";position:absolute;left:1.2rem;top:-5px;width:40px;height:11px;background:rgba(255,46,147,.35);transform:rotate(-4deg);border-radius:2px}
.rev blockquote{color:var(--mut);font-size:.95rem}
.rev .who{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:.9rem;padding-top:.8rem;border-top:1px dashed var(--line2);font:500 .6rem/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.stars{display:flex;gap:2px;flex:none}
.stars svg{width:13px;height:13px;fill:var(--mag)}
.stars svg.off{fill:rgba(255,255,255,.16)}
.book-empty{display:grid;gap:.8rem;padding:1.6rem 1.4rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);border-left:3px solid var(--mag)}
.book-empty p{color:var(--mut);max-width:70ch}

.pn{border-top:1px solid var(--line);background:var(--bg2)}
.pn-in{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;padding-block:1.3rem}
.pn-a{display:grid;gap:.3rem;min-width:0}
.pn-a span{font:500 .6rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.pn-a b{font:400 1.4rem/1 var(--head);letter-spacing:.04em}
.pn-a:hover b{color:var(--mag-hi)}
.pn-a.nx{text-align:right;justify-items:end}
@media (max-width:700px){.pn-in{grid-template-columns:1fr 1fr;gap:.8rem}.pn-all{grid-column:1/-1;order:3;justify-self:center}}

.progress{position:fixed;left:0;right:0;top:0;z-index:90;height:3px;background:transparent;pointer-events:none}
.progress i{display:block;height:100%;background:var(--mag);transform-origin:0 50%;transform:scaleX(0)}
.ga-hero{position:relative;overflow:hidden;padding:clamp(2.4rem,5.5vw,4rem) 0 clamp(1.8rem,4vw,3rem)}
.ga-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 50% 60% at 20% 0%,rgba(255,46,147,.13),transparent 70%)}
.ga-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.4rem,3.4vw,3rem);align-items:center}
.ga-grid.solo{grid-template-columns:minmax(0,1fr);max-width:80ch}
.ga-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.ga-title{margin:1rem 0 .8rem;font-size:clamp(2rem,4.6vw,3.4rem);line-height:.92;text-transform:none;font-family:var(--head);letter-spacing:.01em}
.ga-dek{color:var(--mut);font-size:clamp(1rem,1.3vw,1.14rem);max-width:60ch}
.ga-by{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.2rem;font:500 .6rem/1.6 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.ga-by .mk{display:inline-grid;place-items:center;min-width:38px;padding:.3rem .45rem .22rem;border-radius:5px;background:var(--mag);color:#0a0609;font:400 .95rem/1 var(--head);letter-spacing:.05em}
.ga-by b{color:var(--ink);font-weight:500}
.ga-fig{position:relative;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line2),0 40px 80px -48px #000}
.ga-fig img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;object-position:50% 25%}
.ga-fig figcaption{position:absolute;left:.8rem;bottom:.8rem}
@media (max-width:900px){.ga-grid{grid-template-columns:minmax(0,1fr)}}

.ga-layout{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(1.4rem,3.4vw,3.2rem);align-items:start;padding-bottom:clamp(2.4rem,5vw,4rem)}
.ga-aside{position:sticky;top:96px;display:grid;gap:.9rem;padding:1.2rem 1.1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.ga-aside .btn{width:100%}
.toc summary{cursor:pointer;font:500 .62rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mag);list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:" [ + ]";color:var(--dim)}
.toc details[open] summary::after{content:" [ - ]"}
.toc ol{counter-reset:cgt;margin-top:.8rem;display:grid;gap:.2rem}
.toc li{counter-increment:cgt}
.toc a{display:grid;grid-template-columns:1.9rem minmax(0,1fr);gap:.4rem;padding:.42rem 0;font-size:.9rem;color:var(--mut);border-bottom:1px dashed var(--line)}
.toc a::before{content:counter(cgt,decimal-leading-zero);font:500 .6rem/1.7 var(--mono);color:var(--mag);letter-spacing:.08em}
.toc a:hover,.toc a.on{color:#fff}
.toc a.on::before{color:var(--mag-hi)}
.ga-body{min-width:0;max-width:72ch}
.ga-sec{margin-bottom:clamp(1.8rem,3.6vw,2.6rem)}
.ga-sec h2{position:relative;font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:.9rem;padding-top:1.6rem}
.ga-sec h2::before{content:attr(data-n);position:absolute;left:0;top:0;font:500 .6rem/1 var(--mono);letter-spacing:.16em;color:var(--mag)}
.ga-body p{color:var(--mut);margin-bottom:1rem;font-size:1.02rem;line-height:1.75;max-width:72ch}
.ga-body p a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
.ga-body .lead{font-size:1.12rem;color:var(--ink)}
.ga-cta{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 40px;margin-top:2rem;border-radius:12px;overflow:hidden;background:linear-gradient(160deg,rgba(255,46,147,.16),var(--bg3) 60%);box-shadow:inset 0 0 0 1px rgba(255,46,147,.4)}
.ga-cta-main{padding:1.4rem 1.3rem}
.ga-cta h2{font-size:clamp(1.6rem,3vw,2.3rem);margin:.6rem 0 .5rem}
.ga-cta h2 em{font-style:normal;color:var(--mag)}
.ga-cta p{color:var(--mut);font-size:.95rem;max-width:60ch}
.ga-cta p a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
.ga-cta-stub{display:grid;place-items:center;background:#2a212b}
.ga-cta-stub span{writing-mode:vertical-rl;transform:rotate(180deg);font:500 .55rem/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
@media (max-width:980px){.ga-layout{grid-template-columns:minmax(0,1fr)}.ga-aside{position:static}}
@media (max-width:520px){.ga-cta{grid-template-columns:minmax(0,1fr)}.ga-cta-stub{display:none}}

/* diary hub */
.g-lead{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1rem,2.4vw,2rem);align-items:center;padding:1.2rem;border-radius:14px;background:linear-gradient(160deg,rgba(255,46,147,.14),var(--bg3) 60%);box-shadow:inset 0 0 0 1px rgba(255,46,147,.35);margin-bottom:clamp(1rem,2.4vw,1.6rem)}
.g-ph{display:block;border-radius:10px;overflow:hidden;background:#110c11;aspect-ratio:4/3}
.g-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.g-ph.none{display:grid;place-items:center;background:linear-gradient(160deg,#241b25,#130e14)}
.g-ph.none svg{width:34%;height:auto;fill:rgba(255,46,147,.35)}
.g-b{display:grid;gap:.6rem;min-width:0}
.g-b strong{font:400 clamp(1.5rem,2.6vw,2.2rem)/1.05 var(--head);letter-spacing:.03em;text-transform:uppercase}
.g-ex{color:var(--mut);font-size:.94rem}
.g-go{font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mag-hi)}
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:clamp(.7rem,1.6vw,1.1rem)}
.g-card{display:grid;gap:.7rem;padding:.8rem .8rem 1.1rem;border-radius:12px;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line);transition:transform .5s var(--ease),box-shadow .4s;height:100%}
.g-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(255,46,147,.6)}
.g-card .g-b{padding-inline:.4rem}
.g-card strong{font-size:clamp(1.2rem,1.9vw,1.45rem)}
@media (max-width:760px){.g-lead{grid-template-columns:minmax(0,1fr)}}

/* lightbox */
.lbx{position:fixed;inset:0;z-index:120;display:grid;grid-template-columns:56px 1fr 56px;align-items:center;background:rgba(6,4,6,.95);backdrop-filter:blur(6px)}
.lbx[hidden]{display:none}
.lbx button{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:1.7rem;line-height:1;box-shadow:inset 0 0 0 1px var(--line2);justify-self:center}
.lbx button:hover{background:var(--mag);color:#0a0609;box-shadow:none}
.lbx-x{position:absolute;right:12px;top:12px;z-index:2}
.lbx-f{display:grid;gap:.7rem;justify-items:center;max-height:92vh;padding:1rem 0}
.lbx-f img{max-width:min(92vw,900px);max-height:76vh;width:auto;height:auto;border-radius:10px}
.lbx-c{font:500 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
html.lb-open,html.lb-open body{overflow:hidden}
@media (max-width:640px){.lbx{grid-template-columns:40px 1fr 40px}.lbx button{width:38px;height:38px}}

.nf{position:relative;padding:clamp(3rem,8vw,6rem) 0;overflow:hidden}
.nf::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 46% 56% at 30% 10%,rgba(255,46,147,.14),transparent 70%)}
.nf-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.4rem,4vw,3.4rem);align-items:center}
.nf h1{font-size:clamp(2.4rem,7vw,4.6rem);line-height:.88}
.nf .lede{margin-top:1.1rem}
.nf-card{position:relative;padding:1.5rem 1.4rem;border-radius:14px;background:linear-gradient(180deg,#1c161d,#130e14);box-shadow:inset 0 0 0 1px var(--line2)}
.nf-card h2{font-size:1.5rem;margin-bottom:.9rem}
.nf-card ul{display:grid;gap:.4rem}
.nf-card a{display:flex;justify-content:space-between;gap:.8rem;padding:.6rem .1rem;border-bottom:1px dashed var(--line2);color:var(--mut);font-size:.94rem}
.nf-card a:hover{color:#fff}
.nf-card a span{font:500 .6rem/1.6 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--mag)}
@media (max-width:860px){.nf-grid{grid-template-columns:minmax(0,1fr)}}

.ft{padding:clamp(2.6rem,6vw,4.5rem) 0 2rem;background:#060406;border-top:1px solid var(--line)}
.ft .fgrid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(auto-fit,minmax(min(100%,140px),1fr));gap:1.6rem 1.4rem}
.ft .fbrand p{margin-top:1rem;font-size:.9rem;color:var(--dim);max-width:42ch}
.ft .fbrand .ctas{margin-top:1.2rem}
.ft h4{font:500 .62rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mag);margin-bottom:.9rem}
.ft h4 a:hover{color:var(--mag-hi)}
.ft ul{display:grid;gap:.45rem;font-size:.88rem;color:var(--mut)}
.ft li small{display:block;font:500 .54rem/1.4 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.ft a:hover{color:#fff}
.ft .fwarn{margin-top:2rem;font-size:.82rem;color:var(--dim);max-width:78ch}
.ft .fwarn a{color:var(--mag-hi);text-decoration:underline;text-underline-offset:3px}
.ft .fbase{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--dim)}
.ft .fbase p{display:flex;align-items:center;gap:.7rem;max-width:62ch}
.ft .age{display:inline-grid;place-items:center;width:42px;height:42px;flex:none;border-radius:6px;background:var(--mag);color:#0a0609;font:400 1.1rem/1 var(--head)}
.ft .flinks{display:flex;flex-wrap:wrap;gap:1rem}
.ft .flinks a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:860px){.ft .fgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}}
@media (max-width:768px){.ft{padding-bottom:96px}}

.cc-mbar{display:none}
@media (max-width:768px){
body{padding-bottom:70px}
.cc-mbar{position:fixed;left:0;right:0;bottom:0;z-index:99999;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(9,7,10,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.cc-mbar a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;border-radius:6px;font:400 1.1rem/1 var(--head);letter-spacing:.08em;text-decoration:none}
.cc-mbar svg{width:20px;height:20px;fill:currentColor;flex:none}
.cc-mbar .cc-wa{background:var(--mag);color:#0a0609}
.cc-mbar .cc-tg{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
}

.js .rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--rd,0s)}
.js .rv.in{opacity:1;transform:none}
html.rv-off .rv{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
.js .rv{opacity:1;transform:none}
.js .si .box svg{stroke-dashoffset:0}
}
@media print{.top,.houseline,.crumbs,.cc-mbar,.ctas,.ga-aside{display:none}}
