:root{--paper:#f1eee6;--paper2:#e7e2d6;--card:#faf8f3;--ink:#111110;--muted:#6b665c;--line:#d6cfc0;--accent:#ff4d1a;
--display:"Archivo Black","Arial Black",Impact,sans-serif;--serif:"Instrument Serif",Georgia,serif;--body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--pad:clamp(16px,4vw,56px);--ease:cubic-bezier(.2,.7,.1,1)}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth;overflow-x:clip}
body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.05;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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--accent);color:#fff}
.wrap{max-width:1320px;margin:0 auto;padding-inline:var(--pad)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.eyebrow b{color:var(--accent);font-weight:500;white-space:nowrap}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--ink)}
h2{font-family:var(--display);font-weight:400;font-size:clamp(40px,6.4vw,96px);line-height:.92;letter-spacing:-.035em;text-transform:uppercase;margin:0}
h2 i,.it{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:-.01em;font-weight:400}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:16px 24px;border-radius:999px;border:1px solid var(--ink);transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.dark:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn .ar{transition:transform .3s var(--ease)}.btn:hover .ar{transform:translateX(4px)}

/* loader */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--paper);display:flex;align-items:flex-end;justify-content:space-between;padding:var(--pad);transition:transform 1s var(--ease)}
.loader .lw{font-family:var(--display);font-size:clamp(40px,8vw,120px);line-height:.9;letter-spacing:-.04em}
.loader .lw i{color:var(--accent);font-style:normal}
.loader .ct{font-family:var(--mono);font-size:14px}
body.ready .loader{transform:translateY(-100%)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s,box-shadow .4s,transform .4s var(--ease)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:78px}
.nav.solid{background:rgba(241,238,230,.86);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{filter:invert(1)}
.brand .lf{width:128px}.brand .x{font-family:var(--mono);font-size:12px;color:var(--muted)}.brand .lr{width:52px}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav ul a{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav ul a:hover::after{transform:scaleX(1);transform-origin:left}
.nav .btn{padding:12px 18px}
.burger{display:none;background:none;border:0;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--ink)}

/* hero */
.hero{min-height:100svh;padding-top:120px;padding-bottom:48px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:center;position:relative}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(54px,8vw,132px);line-height:.88;letter-spacing:-.045em;text-transform:uppercase;margin:0}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
body.ready .hero h1 .ln>span{transform:none}
.hero h1 .ln:nth-child(2)>span{transition-delay:.08s}.hero h1 .ln:nth-child(3)>span{transition-delay:.16s}
.hero h1 .pl{background:var(--accent);color:var(--ink);padding:0 .06em;margin-left:-.06em}
.hero .lead{max-width:44ch;font-size:18px;color:#3b3831;margin:30px 0 30px}
.hero .lead strong{color:var(--ink);font-weight:600}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero .assoc{display:flex;align-items:center;gap:14px;margin-top:40px;color:var(--muted)}
.hero .assoc img{width:64px;filter:invert(1)}
.stack{position:relative;height:min(68vh,620px);min-height:420px}
.stack figure{position:absolute;margin:0;width:58%;aspect-ratio:3/4;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(17,17,16,.45);transition:transform .9s var(--ease);will-change:transform}
.stack figure img{width:100%;height:100%;object-fit:cover}
.stack .f1{right:0;top:0;transform:rotate(4deg);z-index:1}
.stack .f2{left:0;top:14%;transform:rotate(-5deg);z-index:2}
.stack .f3{right:12%;bottom:0;transform:rotate(1.5deg);z-index:3}
.stack figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--paper);padding:5px 9px;border-radius:999px}
.scrollcue{position:absolute;left:var(--pad);bottom:22px;display:flex;align-items:center;gap:10px;color:var(--muted)}
.scrollcue span{width:1px;height:40px;background:var(--ink);transform-origin:top;animation:cue 2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* marquee */
.mq{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;padding:22px 0;transform:rotate(-1.2deg);margin:30px -20px 0}
.mq>div{display:inline-block;animation:mq 40s linear infinite;font-family:var(--display);font-size:clamp(28px,3.4vw,48px);text-transform:uppercase;letter-spacing:-.02em}
.mq i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--accent);margin:0 28px;vertical-align:.25em}
@keyframes mq{to{transform:translateX(-50%)}}

section{padding-block:clamp(80px,11vw,150px)}
.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:56px}
.shead p{max-width:40ch;color:var(--muted);margin:0}

/* now booking */
.tours{display:grid;gap:28px}
.tour{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:center;padding:28px;background:var(--card);border:1px solid var(--line);border-radius:10px}
.tour .ph{border-radius:6px;overflow:hidden;aspect-ratio:3/4}
.tour .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tour:hover .ph img{transform:scale(1.04)}
.tour .tag{display:inline-block;background:var(--accent);color:#fff;border-radius:999px;padding:6px 12px}
.tour h3{font-family:var(--display);font-weight:400;font-size:clamp(56px,8vw,120px);line-height:.88;letter-spacing:-.04em;text-transform:uppercase;margin:18px 0 10px}
.tour .meta{color:var(--muted);margin:0 0 22px}
.tour p.bio{max-width:52ch;margin:0 0 26px;color:#3b3831}
.dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:26px;max-width:520px}
.dates div{border:1px solid var(--ink);border-radius:8px;padding:14px 16px}
.dates b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(36px,4vw,56px);line-height:1}
.dates span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dates .hl{background:var(--ink);color:var(--paper)}.dates .hl span{color:var(--accent)}
.tour.alt{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.tour.alt .ph{order:2}

/* representing */
.reps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.rep{position:relative;text-decoration:none;color:inherit}
.rep .ph{border-radius:8px;overflow:hidden;aspect-ratio:3/4;background:var(--paper2)}
.rep .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s}
.rep:hover .ph img{transform:scale(1.05)}
.rep .cap{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:14px;border-bottom:1px solid var(--line);padding-bottom:12px}
.rep h4{font-family:var(--display);font-weight:400;font-size:28px;letter-spacing:-.03em;text-transform:uppercase;margin:0}
.rep .cap span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:right}
.rep .badge{position:absolute;top:14px;left:14px;background:var(--paper);border-radius:999px;padding:6px 11px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}

/* headliners list with hover preview */
.hl-list{border-top:1px solid var(--ink)}
.hrow{display:grid;grid-template-columns:130px minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 40px;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);position:relative;transition:padding .4s var(--ease),color .3s}
.hrow:hover{padding-left:14px;color:var(--accent)}
.hrow .d{font-family:var(--mono);font-size:13px;color:var(--muted)}
.hrow .n{font-family:var(--display);font-size:clamp(28px,3.4vw,50px);line-height:1;letter-spacing:-.035em;text-transform:uppercase}
.hrow .v,.hrow .f{font-size:14px;color:#3b3831}
.hrow .f{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.hrow .ar{font-size:22px;text-align:right}
.hrow.up .d{color:var(--accent)}
.peek{position:fixed;left:0;top:0;width:220px;aspect-ratio:3/4;border-radius:6px;overflow:hidden;pointer-events:none;z-index:40;opacity:0;transform:translate(-50%,-50%) scale(.8);transition:opacity .25s,transform .35s var(--ease);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.peek img{width:100%;height:100%;object-fit:cover}

/* numbers */
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.nums div{padding:28px 20px 0 0}
.nums div+div{border-left:1px solid var(--line);padding-left:24px}
.nums b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(56px,7vw,104px);line-height:1;letter-spacing:-.04em}
.nums span{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* services */
.svc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.svc div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:28px 24px 30px;transition:background .4s,color .4s,transform .4s var(--ease)}
.svc div:hover{background:var(--ink);color:var(--paper);transform:translateY(-6px)}
.svc div:hover p{color:#bdb6a7}
.svc em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--accent)}
.svc h3{font-family:var(--display);font-weight:400;font-size:26px;line-height:1;letter-spacing:-.02em;text-transform:uppercase;margin:44px 0 12px}
.svc p{margin:0;color:var(--muted);font-size:15px}

/* events */
.ev{width:100%;border-collapse:collapse}
.ev td{padding:18px 12px 18px 0;border-bottom:1px solid var(--line);vertical-align:top}
.ev td:first-child{font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap;width:150px}
.ev .e{font-family:var(--display);font-size:22px;letter-spacing:-.02em;text-transform:uppercase}
.ev td:last-child{color:var(--muted);text-align:right}
.venues{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.venues span{border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;background:var(--card)}

/* contact */
.contact{background:var(--ink);color:var(--paper);border-radius:24px;margin:0 var(--pad) var(--pad);padding:clamp(40px,7vw,100px) clamp(22px,5vw,80px);position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:var(--accent);filter:blur(120px);opacity:.35;right:-160px;top:-200px}
.contact h2{font-size:clamp(52px,9vw,150px);position:relative}
.contact h2 i{color:var(--accent)}
.cgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;margin-top:50px;position:relative}
.cgrid p{color:#bdb6a7;max-width:44ch;margin:0 0 22px}
.phones{display:flex;flex-wrap:wrap;gap:10px}
.phones button{font-family:var(--display);font-size:22px;letter-spacing:-.01em;color:var(--paper);background:none;border:1px solid #3a3833;border-radius:999px;padding:10px 18px;cursor:pointer;transition:border-color .3s,color .3s}
.phones button:hover{border-color:var(--accent);color:var(--accent)}
.hint{font-size:13px;color:#8d877b;min-height:1.3em;margin-top:10px}
.links{display:grid;gap:0}
.links a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #2e2c28;text-decoration:none;transition:color .3s,padding .3s var(--ease)}
.links a:hover{color:var(--accent);padding-left:8px}
.links b{font-family:var(--display);font-weight:400;font-size:22px;text-transform:uppercase;letter-spacing:-.02em}
.links span{font-family:var(--mono);font-size:12px;color:#8d877b}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:24px var(--pad) 40px;color:var(--muted)}
footer img{filter:invert(1);width:120px}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (max-width:960px){
.nav ul,.nav .btn{display:none}.burger{display:block}
.nav.open ul{display:flex;flex-direction:column;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:20px var(--pad) 28px;gap:18px;box-shadow:0 1px 0 var(--line)}
.hero{grid-template-columns:1fr;padding-top:110px;min-height:auto}
.stack{height:440px;max-width:460px;width:100%;margin:10px auto 0}
.scrollcue{display:none}
.tour,.tour.alt{grid-template-columns:1fr}.tour.alt .ph{order:0}
.reps{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc,.nums{grid-template-columns:repeat(2,minmax(0,1fr))}
.nums div:nth-child(3){border-left:0;padding-left:0}
.hrow{grid-template-columns:1fr auto;gap:6px 14px}.hrow .v,.hrow .f{grid-column:1}.hrow .ar{grid-row:1/3;grid-column:2}
.cgrid{grid-template-columns:1fr}
.ev td:last-child{text-align:left}.ev tr{display:grid}.ev td{border-bottom:0;padding:4px 0}.ev tr{border-bottom:1px solid var(--line);padding:12px 0}
}
@media (max-width:560px){.reps,.svc{grid-template-columns:1fr}.dates{grid-template-columns:repeat(3,minmax(0,1fr))}.brand .lf{width:108px}.brand .lr,.brand .x{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.hero h1 .ln>span{transform:none}.loader{display:none}}

.scrollcue{display:none!important}

/* smaller media */
.stack{height:min(56vh,500px);min-height:360px}
.stack figure{width:48%}
.tour,.tour.alt{grid-template-columns:minmax(0,300px) minmax(0,1fr);padding:22px;gap:clamp(24px,4vw,56px)}
.tour.alt{grid-template-columns:minmax(0,1fr) minmax(0,300px)}
.tour .ph{max-width:300px}
.tour h3{font-size:clamp(48px,6vw,92px)}
.reps{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.rep h4{font-size:22px}
.peek{width:170px}
@media (max-width:960px){.tour,.tour.alt{grid-template-columns:1fr}.tour .ph{max-width:240px}.reps{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{height:360px;max-width:380px}}
@media (max-width:560px){.reps{grid-template-columns:repeat(2,minmax(0,1fr))}.rep h4{font-size:18px}.rep .cap{flex-direction:column;gap:4px}.rep .cap span{text-align:left}.stack{height:320px;max-width:320px}.tour .ph{max-width:200px}}

/* contact panel: light theme */
.contact{background:var(--paper2);color:var(--ink);border:1px solid var(--line)}
.contact::before{opacity:.16;filter:blur(140px)}
.contact .eyebrow{color:var(--muted)!important}
.contact h2{color:var(--ink)}
.cgrid p{color:#3b3831}
.phones button{color:var(--ink);background:var(--paper);border:1px solid var(--ink)}
.phones button:hover,.phones button:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff}
.hint{color:var(--muted)}
.links a{border-bottom:1px solid var(--line)}
.links span{color:var(--muted)}
.links a:hover span{color:var(--accent)}
/* worked-with: compact editorial grid */
.reps{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.rep .ph{border-radius:6px}
.rep .cap{flex-direction:column;align-items:flex-start;gap:3px;border-bottom:0;padding:10px 0 0}
.rep h4{font-size:18px}
.rep .cap span{text-align:left;font-size:10px;line-height:1.5}
@media (max-width:960px){.reps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.reps{grid-template-columns:repeat(2,minmax(0,1fr))}.rep .cap{flex-direction:column}}
