/* DANGER DEN / THE CANAL SESSIONS
   v autumn-18. Readable CSS so edits are easy to find.
   Static invitation and native set-time requests. */

/* ---------- Fonts (WOFF2) ---------- */
@font-face{font-family:Sohne;src:url('assets/sohne-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Sohne;src:url('assets/sohne-bold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Tritopani;src:url('assets/tritopani.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  color-scheme:dark;
  --night:#192720;
  --forest:#293B34;
  --cream:#F3EEE5;
  --gold:#D8BC73;
  --muted:#D1C4AD;
  --line:rgba(216,188,115,.25);
  --gutter:70px;
  font-family:Sohne,Arial,sans-serif;
  font-synthesis:none;
  scroll-behavior:smooth;
  scroll-padding-top:20px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
body{margin:0;color:var(--cream);background:var(--night);font-size:16px;line-height:1.6}
a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
img{display:block;max-width:100%}
figure,p,h1,h2,h3{margin:0}
h1,h2,h3,.hero-description,.hero-atmosphere{text-wrap:balance}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:6px}
.page{max-width:1440px;margin:auto;padding:0 var(--gutter)}
.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-180%);z-index:20;padding:10px;background:var(--cream);color:var(--night)}
.skip-link:focus{transform:none}
.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:400;line-height:1.6;color:var(--gold)}
.mobile-break{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;background:var(--gold);color:#2A251F;border:1px solid var(--gold);border-radius:3px;text-decoration:none;font-size:14px;line-height:1.4;font-weight:600;transition:background .2s,transform .2s;touch-action:manipulation}
.button:hover{background:#e3ca8b;transform:translateY(-2px)}

/* ---------- Masthead ---------- */
.masthead{height:111px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.den-logo{width:227px;height:auto}
.event-brand{display:flex;align-items:center;gap:22px}
.event-brand span{font-size:12px;line-height:1.6;letter-spacing:.17em;text-align:right;color:var(--muted)}
.event-brand img{filter:invert(1);width:58px;height:auto}

[hidden]{display:none!important}
.icon{display:inline-block;width:24px;height:24px;flex:none;vertical-align:middle;color:var(--gold)}
.button:disabled{background:#3B4741;border-color:#617067;color:#D3D8D4;cursor:not-allowed;transform:none}
/* ---------- Mineral Flower opening: independent art, reading and copy layers ---------- */
.hero{display:flex;flex-direction:column;align-items:center;text-align:center}
.den-mineral-hero{
 --reading-inset:max(var(--gutter),calc((100% - 900px)/2));
 position:relative;isolation:isolate;overflow:hidden;
 width:calc(100% + (var(--gutter) * 2));
 padding:44px var(--gutter) 48px;
 background:radial-gradient(ellipse at 50% 43%,#25362E 0%,#293B34 66%,#25362E 100%);
}
.den-mineral-hero .mineral-art{
 position:absolute;inset:0;z-index:0;
 background-image:url('assets/mineral-flower.webp');
 background-size:cover;background-position:50% 48%;background-repeat:no-repeat;
 filter:grayscale(1) contrast(1.08);mix-blend-mode:luminosity;opacity:.43;
 mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 90%,transparent 100%);
 pointer-events:none;
}
.den-mineral-hero .mineral-reading-layer{
 position:absolute;inset:0;z-index:1;pointer-events:none;
 /* A .60 floor covers the complete text width, even over the brightest petal.
    Stronger soft center; only the side margins fade. Edge layers blend into Night. */
 background:
  linear-gradient(to bottom,#192720 0%,transparent 12%,transparent 88%,#192720 100%),
  linear-gradient(to right,#192720 0%,transparent 10%,transparent 90%,#192720 100%),
  radial-gradient(ellipse at 50% 46%,rgba(25,39,32,.70) 0%,rgba(25,39,32,.60) 28%,rgba(25,39,32,.20) 58%,transparent 82%),
  linear-gradient(to right,transparent 0%,rgba(25,39,32,.60) var(--reading-inset),rgba(25,39,32,.60) calc(100% - var(--reading-inset)),transparent 100%);
}
.den-mineral-hero .hero-content{position:relative;z-index:2;width:100%;max-width:900px;margin-inline:auto}
.den-mineral-hero .invited{display:flex;justify-content:center;align-items:center;gap:16px;font-family:Tritopani,cursive;font-size:42px;line-height:1.45;color:#E3CA8B;transform:rotate(-4deg);margin:0 0 18px}
.den-mineral-hero .invitation-spark{width:20px;height:20px;color:inherit}
.den-mineral-hero h1{font-size:clamp(72px,5.4vw,80px);font-weight:600;letter-spacing:-.055em;line-height:1.06;margin:0 0 22px;color:#F3EEE5;text-wrap:balance}
.den-mineral-hero .hero-description{max-width:650px;margin-inline:auto;font-size:20px;line-height:1.65;color:#F3EEE5}
.den-mineral-hero .artist-per-hour{white-space:nowrap}
.den-mineral-hero .hero-meta{max-width:760px;margin:22px auto 0;font-size:14px;line-height:1.75;color:#D1C4AD;text-wrap:balance}
.den-mineral-hero .hero-meta time,.den-mineral-hero .hero-meta span{display:inline-block}
.den-mineral-hero .hero-hook{max-width:820px;margin:29px auto 0;font-weight:600;color:#F3EEE5;text-wrap:balance}
.den-mineral-hero .hero-hook::before{content:"";display:block;width:54px;height:1px;background:rgba(216,188,115,.60);margin:0 auto 24px}
.den-mineral-hero .hero-people{font-size:22px;line-height:1.4}
.den-mineral-hero .hero-sound{font-size:33px;line-height:1.4;margin-top:8px}
.den-mineral-hero .hero-sound span{color:#E3CA8B}
.den-mineral-hero .hero-atmosphere{max-width:650px;margin:18px auto 0;font-size:16px;line-height:1.7;color:#D1C4AD}
.den-mineral-hero .hero-rsvp{margin-top:27px;min-height:52px;min-width:min(196px,100%);max-width:100%;padding:14px 30px;font-size:15px;color:#192720;background:#E0C47C;border-color:#E0C47C}
.den-mineral-hero .hero-rsvp:hover{background:#E3CA8B;border-color:#E3CA8B}
.den-mineral-hero .hero-rsvp:focus-visible{outline:3px solid #E3CA8B;outline-offset:6px}

@media(max-width:1000px){
 .den-mineral-hero h1{font-size:64px}
}
@media(max-width:740px){
 .den-mineral-hero{padding-top:32px;padding-bottom:35px}
 .den-mineral-hero .mineral-art{background-size:auto 106%;background-position:50% 50%;opacity:.40}
 .den-mineral-hero .invited{font-size:36px;gap:13px;margin-bottom:16px}
 .den-mineral-hero h1{font-size:clamp(42px,7vw,48px)}
 .den-mineral-hero .hero-description{font-size:16px;line-height:1.7}
 .den-mineral-hero .hero-meta{font-size:13px}
 .den-mineral-hero .hero-people{font-size:20px}
 .den-mineral-hero .hero-sound{font-size:26px}
 .den-mineral-hero .hero-atmosphere{font-size:15px}
 .den-mineral-hero .hero-rsvp{font-size:14px;min-height:50px}
}
@media(max-width:460px){
 .den-mineral-hero .mineral-art{background-size:auto 92%;background-position:50% 12%;opacity:.39}
 .den-mineral-hero .hero-meta time,.den-mineral-hero .hero-meta span{display:inline}
 .den-mineral-hero .hero-people{font-size:19px}
 .den-mineral-hero .hero-sound{font-size:25px}
}
@media(max-width:360px){
 .den-mineral-hero .artist-per-hour{white-space:normal}
}

/* ---------- Existing boat photograph and top crop ---------- */
.canal-scene{position:relative;width:calc(100% + (var(--gutter) * 2));margin:38px calc(var(--gutter) * -1) 0;height:clamp(380px,42vw,600px);overflow:hidden;mask-image:linear-gradient(to bottom,transparent 0,#000 48px,#000 90%,transparent 100%)}
/* Hide the top 12% of the source; retain the frame size and blend at its edges. */
.canal-scene img{position:absolute;inset:auto 0 0;width:100%;height:calc(100% / .88);object-fit:cover;object-position:center bottom}
.canal-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(to right,var(--night),transparent 12%,transparent 88%,var(--night));pointer-events:none}

/* ---------- The Dyos: full-width boat and three facts ---------- */
.details{padding:64px 0 56px;border-bottom:1px solid var(--line)}
.boat-lead{max-width:820px;margin-bottom:32px}
.boat-lead h2{font-size:clamp(30px,3vw,42px);font-weight:600;line-height:1.15;letter-spacing:-.04em;margin:14px 0 20px}
.boat-lead>p:not(.eyebrow){font-size:18px;line-height:1.7;color:var(--muted)}
.skylight{width:100%}
.skylight img{width:100%;height:auto;aspect-ratio:16 / 10;object-fit:cover;object-position:center;border-radius:4px;box-shadow:0 0 0 1px var(--line)}
.boat-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;list-style:none;padding:0;margin:32px 0 0}
.boat-facts>li{display:flex;align-items:flex-start;gap:14px;min-width:0}
.boat-facts .icon{margin-top:2px}
.boat-facts h3{font-size:18px;font-weight:600;line-height:1.4;margin-bottom:10px}
.boat-feature-points{list-style:disc;margin:0;padding-left:1.1em;font-size:16px;line-height:1.65;color:var(--muted)}
.boat-feature-points>li{display:list-item;padding-left:2px}
.boat-feature-points>li+li{margin-top:8px}
.boat-feature-points>li::marker{color:var(--gold);font-size:.8em}

/* ---------- Hosts ---------- */
.hosts{position:relative;text-align:center;padding:72px 0}
.hosts h2{margin-bottom:28px}
.hosts-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:64px;max-width:728px;margin:0 auto}
.host{min-width:0}
.portrait{position:relative;width:min(100%,200px);aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto 18px;box-shadow:0 0 0 5px var(--night),0 0 0 6px var(--line)}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;filter:saturate(.72) sepia(.14) contrast(1.02)} /* one grade across all three */
.portrait .foley{object-position:40% 28%}
.portrait .ofier{object-position:50% 58%}
.host figcaption{font-size:16px;font-weight:600;line-height:1.45;text-wrap:balance}
.sponsor{display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:center;margin-top:48px}
.sponsor .eyebrow{font-size:12px;color:var(--muted)}
.partner-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;max-width:100%}
.sponsor img{display:block;width:136px;height:auto;filter:invert(1);opacity:1}
.partner-logos .beatport-logo{width:155px;mix-blend-mode:screen}


/* ---------- Choose your hour ---------- */
.booking{border-top:1px solid var(--line);padding:54px 0 52px;scroll-margin-top:28px}
.booking:focus-visible{outline:2px solid var(--gold);outline-offset:12px}
.booking-intro{max-width:760px;margin-bottom:32px}
.booking h2{font-size:clamp(30px,3vw,42px);font-weight:400;line-height:1.12;letter-spacing:-.04em;margin-bottom:19px}
.booking-lead{font-size:18px;font-weight:600;margin-bottom:10px}
.slot-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--line)}
.slot-list li{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(130px,1.2fr) 140px 166px;align-items:center;gap:20px;min-height:92px;padding:20px 24px;border-bottom:1px solid var(--line);transition:background .18s}
.slot-time{font-size:22px;line-height:1.4;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.slot-label{font-size:16px;font-weight:600}
.status-wrap{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}
.status-icon{width:20px;height:20px;color:currentColor}
.status-check,.status-dot{display:none}
.slot-list li[data-confirmed],.slot-list li.is-confirmed{background:#28322E;color:#BEC5C0}
.slot-list li[data-confirmed] .status-wrap{color:#BEC5C0}
.slot-list li[data-confirmed] .status-check{display:block}
.slot-list li.is-selected{background:var(--forest);box-shadow:inset 3px 0 var(--gold)}
.slot-list li.is-selected .status-wrap{color:var(--gold)}
.slot-list li.is-selected .status-dot{display:block}
.slot-select{min-height:44px;background:transparent;border:1px solid var(--line);border-radius:3px;color:var(--cream);padding:9px 14px;font-size:14px}
.slot-select:hover{border-color:var(--gold);background:#D8BC730A}
.slot-select[aria-pressed=true]{border-color:var(--gold)}
.slot-select:disabled{cursor:default;opacity:.65}
.changeover{font-size:14px;line-height:1.7;color:var(--muted);margin-top:18px}
.selected-set{margin-top:27px;font-size:16px;font-weight:600;color:var(--cream)}
.selected-set strong{color:var(--gold);font-weight:600;white-space:nowrap}
.request-form{position:relative;display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end;margin-top:27px}
.request-form label{display:grid;gap:8px;min-width:0;font-size:14px;color:var(--muted)}
.request-form input:not([type=hidden]):not(.hp){width:100%;min-width:0;min-height:52px;background:#14201A;border:1px solid #69756B;border-radius:3px;padding:12px 14px;color:var(--cream);font:inherit;font-size:16px}
.request-form input:disabled{opacity:.7}
.request-form .button{min-height:52px}
.form-message,.form-busy{grid-column:1 / -1;font-size:14px;line-height:1.7;color:var(--muted);min-height:24px}
.form-message.is-error{color:#FFB7A5}
.form-busy{color:var(--gold)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.all-booked{padding-top:24px;font-size:22px;color:var(--gold)}
/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding:22px 0 27px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-left{display:flex;flex-direction:column;gap:8px}
.footer-left span{font-size:11px;letter-spacing:.17em;color:var(--muted)}
.footer-left a{font-size:12px;text-decoration:none}
.footer-left a:hover{text-decoration:underline}
.foley-signoff{display:flex;gap:20px;align-items:center}
.foley-signoff span{font-size:10px;letter-spacing:.16em;text-align:right;line-height:1.8;color:var(--muted)}
.foley-signoff img{width:80px;height:80px;object-fit:contain;margin:16px}

/* ---------- Mobile RSVP bar ---------- */
.mobile-rsvp{display:none}


/* ---------- How it works: connected, explanatory steps ---------- */
.how-it-works{
 --workflow-icon-space:152px;
 --workflow-gap:40px;
 margin-top:26px;padding:52px 40px;
}
.how-it-works h2{font-size:clamp(28px,3vw,40px);font-weight:600;letter-spacing:-.035em;line-height:1.18;margin:0 0 32px}
.workflow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--workflow-gap);list-style:none;margin:0;padding:0}
.workflow-step{position:relative;min-width:0;display:grid;grid-template-rows:20px var(--workflow-icon-space) 1fr;row-gap:10px}
.workflow-number{display:block;text-align:center;color:var(--den-panel-copy);font-size:13px;letter-spacing:.14em;line-height:20px}
.workflow-visual{position:relative;display:grid;place-items:center;width:var(--workflow-icon-space);height:var(--workflow-icon-space);justify-self:center}
.workflow-icon{position:relative;width:64px;height:64px;color:var(--den-panel-gold);display:block}
.workflow-copy{margin-top:10px}
.how-it-works h3{font-size:24px;letter-spacing:-.035em;font-weight:600;line-height:1.3;margin:0 0 12px}
.how-it-works .workflow-copy p{font-size:16px;line-height:1.65;color:var(--den-panel-copy);margin:0;max-width:36ch}
/* Arrows stop before the transparent icon spacing areas. */
.workflow-step:not(:last-child)::before{content:"";position:absolute;left:calc(50% + var(--workflow-icon-space)/2 + 18px);top:calc(30px + var(--workflow-icon-space)/2);width:calc(100% + var(--workflow-gap) - var(--workflow-icon-space) - 36px);height:1px;background:rgba(216,188,115,.27)}
.workflow-step:not(:last-child)::after{content:"";position:absolute;right:calc(-50% - var(--workflow-gap) + var(--workflow-icon-space)/2 + 18px);top:calc(27px + var(--workflow-icon-space)/2);width:6px;height:6px;border-top:1px solid rgba(216,188,115,.40);border-right:1px solid rgba(216,188,115,.40);transform:rotate(45deg)}
.how-it-works .workflow-cta{margin-top:32px}
.how-it-works.booking-followup{margin-top:48px}

/* Approved Danger Den forest workflow treatment.
   Keep existing layout, copy, IDs, and booking logic.
   Integrated into the root stylesheet; artwork path is local. */

.den-forest-panel {
  --den-panel-heading: #F3EEE5;
  --den-panel-copy: #D1C4AD;
  --den-panel-gold: #D8BC73;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(125deg, #25362E 0%, #293B34 52%, #25362E 100%);
  color: var(--den-panel-heading);
  border: 1px solid rgba(216, 188, 115, .13);
  border-radius: 8px;
}

.den-forest-panel > .den-forest-art {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url('assets/forest-workflow-source.webp');
  background-size: cover;
  background-position: center 45%;
  background-repeat: no-repeat;
  filter: grayscale(1) contrast(.62) blur(.6px);
  mix-blend-mode: luminosity;
  opacity: .11;
  pointer-events: none;
}

.den-forest-panel--second > .den-forest-art {
  background-position: 46% 67%;
  opacity: .09;
}

.den-forest-panel > :not(.den-forest-art) {
  position: relative;
  z-index: 1;
}

.den-forest-panel h2,
.den-forest-panel h3 {
  color: var(--den-panel-heading);
  opacity: 1;
}

.den-forest-panel p {
  color: var(--den-panel-copy);
  opacity: 1;
}

.den-forest-panel .den-forest-number,
.den-forest-panel .den-forest-icon {
  color: var(--den-panel-gold);
  opacity: 1;
}

.den-forest-panel .den-forest-icon {
  background: none;
  border: 0;
  box-shadow: none;
  filter: none;
  backdrop-filter: none;
}

/* Existing SVG geometry uses currentColor; all icons remain standalone. */
.den-forest-panel .den-forest-cta {
  color: #192720;
  background: #D8BC73;
  border-color: #D8BC73;
}

.den-forest-panel .den-forest-cta:hover {
  background: #E3CA8B;
  border-color: #E3CA8B;
}

.den-forest-panel .den-forest-cta:focus-visible {
  outline: 3px solid #D8BC73;
  outline-offset: 5px;
}

@media print {
  .den-forest-panel {
    background: white;
    color: #192720;
    border-color: #C9B99A;
  }
  .den-forest-panel > .den-forest-art { display: none; }
  .den-forest-panel h2,
  .den-forest-panel h3,
  .den-forest-panel p,
  .den-forest-panel .den-forest-number,
  .den-forest-panel .den-forest-icon { color: #192720; }
}


@media(max-width:1000px){
 .how-it-works{--workflow-icon-space:144px;--workflow-gap:28px;padding:48px 32px}
 .how-it-works h3{font-size:22px}
}
@media(max-width:900px){
 .how-it-works{--workflow-icon-space:104px;--workflow-gap:28px;padding:36px 28px}
 .how-it-works h2{margin-bottom:30px}
 .workflow-steps{grid-template-columns:1fr;gap:30px}
 .workflow-step{grid-template-columns:var(--workflow-icon-space) minmax(0,1fr);grid-template-rows:20px auto;column-gap:24px;row-gap:6px}
 .workflow-number{grid-column:1;grid-row:1}
 .workflow-visual{grid-column:1;grid-row:2;align-self:start}
 .workflow-icon{width:48px;height:48px}
 .workflow-copy{grid-column:2;grid-row:1 / 3;align-self:center;margin-top:0}
 .how-it-works .workflow-copy p{max-width:none}
 .workflow-step:not(:last-child)::before{left:calc(var(--workflow-icon-space)/2);top:calc(26px + var(--workflow-icon-space) + 7px);width:1px;height:calc(100% - var(--workflow-icon-space) - 14px)}
 .workflow-step:not(:last-child)::after{left:calc(var(--workflow-icon-space)/2 - 3px);right:auto;top:calc(100% + 15px);width:6px;height:6px;transform:rotate(135deg)}
 .how-it-works .workflow-cta{width:100%;margin-top:30px}
}
@media(max-width:700px){
 .how-it-works{--workflow-icon-space:88px;padding:32px 20px;margin-top:22px}
 .workflow-step{column-gap:18px}
 .how-it-works h3{font-size:22px;margin-bottom:10px}
 .how-it-works .workflow-copy p{font-size:15px;line-height:1.65}
}
@media(max-width:400px){
 .how-it-works{padding:30px 20px}
 .workflow-steps{gap:34px}
 .workflow-step{display:grid;grid-template-columns:1fr;grid-template-rows:20px 88px auto;row-gap:8px}
 .workflow-number{grid-column:1;grid-row:1;text-align:left}
 .workflow-visual{grid-column:1;grid-row:2;justify-self:start}
 .workflow-copy{grid-column:1;grid-row:3;max-width:none;margin-top:8px}
 .workflow-step:not(:last-child)::before,.workflow-step:not(:last-child)::after{display:none}
}
@media print{
 .how-it-works{background:none;border:1px solid #999;margin:20px 0;padding:24px;color:#192720;break-inside:auto}
 .how-it-works h2,.how-it-works h3,.how-it-works .workflow-copy p,.workflow-number,.workflow-icon{color:#192720!important}
 .den-forest-art,.workflow-cta,.workflow-step::before,.workflow-step::after{display:none!important}
 .workflow-steps{display:block}
 .workflow-step{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto;gap:14px;margin-top:22px;break-inside:avoid}
 .workflow-number{grid-column:1;grid-row:1;text-align:center}
 .workflow-visual{grid-column:1;grid-row:2;width:64px;height:64px}
 .workflow-icon{width:48px;height:48px}
 .workflow-copy{grid-column:2;grid-row:1 / 3;margin:0}
}

/* ---------- Breakpoints ---------- */
@media(max-width:1000px){
 :root{--gutter:40px}
 .canal-scene{height:clamp(320px,44vw,480px)}
 .boat-facts{gap:28px}
 .slot-list li{grid-template-columns:minmax(120px,1fr) 1fr 120px 152px;gap:14px;padding:20px 16px}
 .slot-time{font-size:20px}
 .slot-label{font-size:15px}
 .request-form{grid-template-columns:1fr 1fr}
 .request-form .button{grid-column:1 / -1;justify-self:start}
}
@media(max-width:700px){
 :root{--gutter:24px}
 .masthead{height:84px}
 .den-logo{width:180px}
 .event-brand{gap:10px}
 .event-brand span{font-size:10px;letter-spacing:.12em}
 .event-brand img{width:42px}
 .canal-scene{margin-top:28px;height:300px;mask-image:linear-gradient(to bottom,transparent 0,#000 32px,#000 88%,transparent 100%)}
 .canal-scene:after{background:linear-gradient(to right,rgba(25,39,32,.25),transparent 25%,transparent 75%,rgba(25,39,32,.25))}
 .details{padding:40px 0}
 .boat-lead{margin-bottom:24px}
 .boat-lead>p:not(.eyebrow){font-size:16px}
 .boat-facts{grid-template-columns:1fr;gap:28px;margin-top:28px}
 .hosts h2{font-size:12px;margin-bottom:28px}
 .hosts-row{max-width:488px}
 .portrait{width:120px}
 .sponsor{gap:10px}
 .sponsor .eyebrow{font-size:12px;letter-spacing:.13em}
 .sponsor img{width:112px}
 .partner-logos .beatport-logo{width:128px}
 .booking{padding:34px 0 36px;scroll-margin-top:90px}
 .booking h2{font-size:32px}
 .booking-intro{margin-bottom:25px}
 .booking-lead{font-size:17px}
 .slot-list li{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:20px 14px}
 .slot-time{grid-column:1;grid-row:1;font-size:22px}
 .slot-label{grid-column:1;grid-row:2;font-size:14px}
 .status-wrap{grid-column:2;grid-row:1;font-size:12px;justify-self:end;gap:6px}
 .slot-select{grid-column:2;grid-row:2;font-size:12px;padding:8px 10px;min-height:44px}
 .changeover{font-size:13px}
 .request-form{grid-template-columns:1fr;gap:16px}
 .request-form .button{width:100%;justify-self:stretch}
 footer{padding:20px 0 105px;gap:0}
 .footer-left a{font-size:12px}
 .footer-left span{font-size:10px}
 .foley-signoff{gap:0}
 .foley-signoff span{display:none}
 .foley-signoff img{width:80px;height:80px;margin:16px 0 16px 16px}
 .mobile-rsvp{position:fixed;z-index:5;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(25,39,32,.96);backdrop-filter:blur(15px);padding:11px 24px calc(11px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
 .mobile-rsvp span{font-size:13px;color:var(--cream)}
 .mobile-rsvp .button{min-height:44px;padding:10px 18px;font-size:13px}
}
@media(max-width:535px){
 .hosts-row{grid-template-columns:120px;justify-content:center}
}
@media(max-width:360px){
 :root{--gutter:18px}
 .den-logo{width:150px}
 .event-brand span{display:none}
 .canal-scene{height:260px}
 .mobile-rsvp{padding-left:18px;padding-right:18px}
}
@media(prefers-reduced-motion:reduce){
 :root{scroll-behavior:auto}
 .button,.slot-list li{transition:none}
 .button:hover{transform:none}
}
@media print{
 body{background:#fff;color:#192720}
 .page{max-width:none;padding:0 20px}
 .mobile-rsvp,.request-form,.slot-select{display:none}
 .masthead{background:#192720}
 .masthead{padding:10px 20px}
 .den-mineral-hero{background:#fff;width:100%;padding:30px 0;color:#192720;overflow:visible}
 .den-mineral-hero .mineral-art,.den-mineral-hero .mineral-reading-layer{display:none}
 .den-mineral-hero .hero-content,.den-mineral-hero .hero-content *{color:#192720}
 .den-mineral-hero .hero-sound span{color:#192720}
 .den-mineral-hero .hero-hook::before{background:#192720}
 .den-mineral-hero .hero-rsvp{background:#fff;border-color:#192720}
 .canal-scene{height:360px;mask-image:none}
 .canal-scene:after{display:none}
 .hosts,footer{break-inside:avoid}
 .details,.booking{break-inside:auto}
 .skylight,.boat-facts>li{break-inside:avoid}
 .host figcaption,.boat-lead h2,.boat-facts h3,.booking h2{color:#192720}
 .boat-facts .icon{color:#192720}
 .boat-lead>p:not(.eyebrow),.boat-feature-points,.boat-feature-points>li::marker,.footer-left a,.booking p{color:#293B34}
 .sponsor img{filter:none}
 .partner-logos .beatport-logo{mix-blend-mode:normal}
 .foley-signoff img{filter:invert(1)}
}
