/* Obsidian Shore Casino Resort — volcanic beach, basalt and lava-line */

:root{
    --pitch:#0d0d0f;
    --crust:#17171b;
    --crust-2:#202026;
    --crust-3:#2a2a31;
    --stone:#8c8681;
    --stone-lift:#a49d97;
    --bone:#ece7e1;
    --bone-dim:rgba(236,231,225,.74);
    --lava:#ff5a1f;
    --lava-deep:#c93c0c;
    --hair:rgba(236,231,225,.13);
    --hair-2:rgba(236,231,225,.07);
    --slant:clamp(26px,4vw,62px);
    --pad:clamp(70px,8.5vw,116px);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
    scroll-behavior:smooth;
    scroll-padding-top:86px;
    background:var(--pitch);
}

body{
    font-family:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:17px;
    line-height:1.72;
    color:var(--bone);
    background:var(--pitch);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}

img,svg{display:block;max-width:100%}
a{color:inherit}

h1,h2,h3,h4{
    font-family:"Oswald",Impact,"Arial Narrow",sans-serif;
    font-weight:500;
    line-height:1.08;
    letter-spacing:-.005em;
    text-transform:uppercase;
}

:focus-visible{outline:2px solid var(--lava);outline-offset:3px}

/* ---------- containers ---------- */
.inner{width:min(1180px,100% - 44px);margin-inline:auto}
.reader{width:min(780px,100% - 44px);margin-inline:auto}

/* ---------- type furniture ---------- */
.kicker{
    display:block;
    font-size:11px;
    font-weight:700;
    letter-spacing:.34em;
    text-transform:uppercase;
    color:var(--lava);
}
.kicker--stone{color:var(--stone)}

.lavaline{
    width:54px;
    height:2px;
    background:var(--lava);
    margin:16px 0 0;
}

.slab-head{position:relative;max-width:720px;margin-bottom:clamp(34px,4.4vw,58px)}
.slab-head h2{font-size:clamp(30px,4.6vw,54px);margin-top:18px}
.slab-head p{color:var(--stone-lift);margin-top:16px;max-width:620px}

.numeral{
    position:absolute;
    left:-.055em;
    top:-.52em;
    z-index:0;
    font-family:"Oswald",Impact,sans-serif;
    font-weight:600;
    font-size:clamp(100px,17vw,208px);
    line-height:1;
    letter-spacing:-.04em;
    color:rgba(236,231,225,.055);
    pointer-events:none;
    user-select:none;
}
.slab-head>*:not(.numeral){position:relative;z-index:1}

/* ---------- buttons ---------- */
.btn{
    display:inline-block;
    padding:15px 30px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:13px;
    font-weight:500;
    letter-spacing:.2em;
    text-transform:uppercase;
    text-decoration:none;
    border:1px solid var(--lava);
    color:var(--lava);
    background:transparent;
    cursor:pointer;
    transition:background .22s,color .22s,border-color .22s;
}
.btn:hover{background:var(--lava);color:#140803}
.btn--lava{background:var(--lava);color:#140803;border-color:var(--lava)}
.btn--lava:hover{background:var(--lava-deep);border-color:var(--lava-deep);color:var(--bone)}
.btn--bone{border-color:var(--bone);color:var(--bone)}
.btn--bone:hover{background:var(--bone);color:var(--pitch)}
.btn--line{border-color:var(--hair);color:var(--bone)}
.btn--line:hover{background:var(--crust-3);border-color:var(--stone);color:var(--bone)}

.token18{
    display:inline-grid;
    place-items:center;
    flex:none;
    width:48px;
    height:48px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:15px;
    letter-spacing:.04em;
    color:var(--lava);
    border:1px solid var(--lava);
    clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%);
    background:rgba(255,90,31,.08);
}

/* ---------- masthead ---------- */
.mast{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:80;
    background:transparent;
    border-bottom:1px solid transparent;
    transition:background .28s,border-color .28s;
}
.mast.is-stuck{
    background:rgba(13,13,15,.94);
    border-bottom-color:var(--hair);
    backdrop-filter:blur(9px);
}
.mast-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:74px}

.brand{display:flex;align-items:center;gap:13px;text-decoration:none}
.brand img{width:38px;height:38px}
.brand-name{
    font-family:"Oswald",Impact,sans-serif;
    font-size:19px;
    font-weight:500;
    letter-spacing:.11em;
    text-transform:uppercase;
    line-height:1.05;
    color:var(--bone);
}
.brand-name span{
    display:block;
    font-family:"Nunito Sans",sans-serif;
    font-size:9px;
    font-weight:700;
    letter-spacing:.3em;
    color:var(--stone);
    margin-top:4px;
}

.nav-set{display:flex;align-items:center;gap:26px}
.nav-set a{
    font-family:"Oswald",Impact,sans-serif;
    font-size:13px;
    font-weight:400;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--bone-dim);
    padding:4px 0 3px;
    border-bottom:1px solid transparent;
    transition:color .2s,border-color .2s;
}
.nav-set a:hover{color:var(--lava);border-bottom-color:var(--lava)}
.nav-set .btn{padding:11px 20px;font-size:12px}

.nav-toggle{
    display:none;
    width:44px;
    height:40px;
    background:rgba(32,32,38,.8);
    border:1px solid var(--hair);
    cursor:pointer;
}
.nav-toggle i{display:block;width:19px;height:2px;margin:4px auto;background:var(--bone)}

/* ---------- slabs ---------- */
.slab{position:relative;padding:var(--pad) 0;overflow:hidden}
.slab--raise{
    background:var(--crust);
    clip-path:polygon(0 var(--slant),100% 0,100% calc(100% - var(--slant)),0 100%);
    padding-block:calc(var(--pad) + var(--slant));
}
.slab--flip{
    background:var(--crust);
    clip-path:polygon(0 0,100% var(--slant),100% 100%,0 calc(100% - var(--slant)));
    padding-block:calc(var(--pad) + var(--slant));
}
.slab--ember{
    background:
        radial-gradient(760px 420px at 82% 10%,rgba(255,90,31,.17),transparent 68%),
        linear-gradient(170deg,#221009 0%,#14100f 58%,#0f0f12 100%);
    clip-path:polygon(0 var(--slant),100% 0,100% 100%,0 calc(100% - var(--slant)));
    padding-block:calc(var(--pad) + var(--slant));
}
.slab--glass{
    background:var(--crust-2);
    clip-path:polygon(0 0,100% var(--slant),100% calc(100% - var(--slant)),0 100%);
    padding-block:calc(var(--pad) + var(--slant));
}

/* ---------- hero ---------- */
.prow{
    position:relative;
    padding:calc(74px + clamp(50px,7vw,96px)) 0 clamp(50px,6vw,80px);
    overflow:hidden;
    background:
        radial-gradient(900px 560px at 18% -6%,rgba(255,90,31,.2),transparent 66%),
        radial-gradient(700px 500px at 95% 36%,rgba(90,120,140,.14),transparent 70%),
        linear-gradient(185deg,#121216 0%,#0d0d0f 72%);
}
.prow-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(34px,5vw,70px);align-items:center}
.prow-grid>*{min-width:0}
.prow h1{
    font-size:clamp(42px,8.4vw,102px);
    letter-spacing:-.02em;
    margin-top:20px;
}
.prow h1 em{display:block;font-style:normal;color:var(--lava)}
.prow-lead{margin-top:24px;font-size:19px;color:var(--bone-dim);max-width:560px}
.prow-acts{display:flex;flex-wrap:wrap;gap:13px;margin-top:34px}
.prow-note{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:34px;
    padding-top:24px;
    border-top:1px solid var(--hair);
    font-size:14px;
    color:var(--stone);
    max-width:520px;
}

/* CSS-drawn shoreline: basalt cliff, lava bench, black sand, water */
.strata{
    position:relative;
    aspect-ratio:4/5;
    min-height:320px;
    border:1px solid var(--hair);
    overflow:hidden;
    background:linear-gradient(195deg,#1b1b20 0%,#101014 100%);
}
.strata span{position:absolute;left:0;right:0;display:block}
.strata span:nth-child(1){top:0;height:40%;background:linear-gradient(180deg,#2b2d34 0%,#1d2026 100%)}
.strata span:nth-child(2){
    top:34%;
    height:16%;
    background:linear-gradient(180deg,var(--lava) 0%,var(--lava-deep) 100%);
    clip-path:polygon(0 42%,100% 0,100% 100%,0 100%);
    opacity:.92;
}
.strata span:nth-child(3){
    top:48%;
    height:22%;
    background:linear-gradient(180deg,#1a1718 0%,#0f0e10 100%);
    clip-path:polygon(0 18%,100% 0,100% 100%,0 100%);
}
.strata span:nth-child(4){
    top:68%;
    height:34%;
    background:
        repeating-linear-gradient(94deg,rgba(236,231,225,.08) 0 2px,transparent 2px 22px),
        linear-gradient(180deg,#14181c 0%,#0b0d10 100%);
}
.strata::after{
    content:"";
    position:absolute;
    left:-6%;
    right:-6%;
    top:66%;
    height:2px;
    background:linear-gradient(90deg,transparent,rgba(255,90,31,.85),transparent);
}
.strata b{
    position:absolute;
    left:18px;
    right:18px;
    bottom:16px;
    z-index:3;
    font-family:"Oswald",Impact,sans-serif;
    font-size:11px;
    font-weight:400;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--bone);
    text-shadow:0 1px 8px rgba(0,0,0,.8);
}

/* ---------- origin + tally ---------- */
.origin{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,5vw,68px);align-items:start}
.origin p{color:var(--bone-dim)}
.origin p+p{margin-top:15px}
.tally{border-top:2px solid var(--lava)}
.tally div{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:20px;
    padding:15px 0;
    border-bottom:1px solid var(--hair);
}
.tally dt{
    font-size:11px;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--stone);
}
.tally dd{
    font-family:"Oswald",Impact,sans-serif;
    font-size:18px;
    letter-spacing:.04em;
    text-transform:uppercase;
    text-align:right;
}

/* ---------- rooms: horizontal snap strip ---------- */
.strip{
    display:flex;
    gap:18px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    padding:4px 4px 22px;
    margin:0 -4px;
    scrollbar-color:var(--lava) var(--crust-3);
    scrollbar-width:thin;
}
.strip:focus-visible{outline:2px solid var(--lava);outline-offset:4px}
.strip::-webkit-scrollbar{height:7px}
.strip::-webkit-scrollbar-track{background:var(--crust-3)}
.strip::-webkit-scrollbar-thumb{background:var(--lava)}

.keycard{
    flex:0 0 clamp(248px,76vw,316px);
    scroll-snap-align:start;
    display:flex;
    flex-direction:column;
    min-height:clamp(430px,58vw,512px);
    background:var(--crust-2);
    border:1px solid var(--hair);
    border-top:2px solid var(--lava);
}
.keycard-top{
    position:relative;
    height:132px;
    flex:none;
    overflow:hidden;
    border-bottom:1px solid var(--hair);
}
.keycard-top::after{
    content:"";
    position:absolute;
    inset:0;
    clip-path:polygon(0 100%,100% 44%,100% 100%);
    background:rgba(13,13,15,.55);
}
.keycard:nth-child(1) .keycard-top{background:linear-gradient(150deg,#33343c 0%,#15161a 100%)}
.keycard:nth-child(2) .keycard-top{background:linear-gradient(150deg,#2f3a40 0%,#101418 100%)}
.keycard:nth-child(3) .keycard-top{background:linear-gradient(150deg,#45281b 0%,#15100e 100%)}
.keycard:nth-child(4) .keycard-top{background:linear-gradient(150deg,#3a3630 0%,#141312 100%)}
.keycard-top b{
    position:absolute;
    left:16px;
    top:14px;
    z-index:2;
    font-family:"Oswald",Impact,sans-serif;
    font-size:10.5px;
    font-weight:400;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--lava);
}
.keycard-body{padding:22px 20px 18px;flex:1}
.keycard-body h3{font-size:25px;letter-spacing:.02em}
.keycard-body p{margin-top:11px;font-size:15px;color:var(--stone-lift)}
.keycard-spec{list-style:none;padding:0 20px 20px}
.keycard-spec li{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:9px 0;
    border-top:1px solid var(--hair-2);
    font-size:13.5px;
}
.keycard-spec span{color:var(--stone);letter-spacing:.04em}
.keycard-spec b{font-family:"Oswald",Impact,sans-serif;font-weight:400;letter-spacing:.06em}
.strip-hint{margin-top:6px;font-size:13.5px;color:var(--stone)}

/* ---------- casino ---------- */
.floorplan{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(34px,4.6vw,62px);align-items:start}
.floorplan p{color:var(--bone-dim);margin-top:16px}
.floor-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:30px;background:var(--hair)}
.floor-list li{
    background:rgba(13,13,15,.5);
    padding:15px 16px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:14.5px;
    font-weight:400;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.floor-list li::before{
    content:"";
    display:inline-block;
    width:7px;
    height:7px;
    margin-right:11px;
    background:var(--lava);
    clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}
.rulebook{
    background:rgba(13,13,15,.52);
    border:1px solid var(--hair);
    border-left:2px solid var(--lava);
    padding:clamp(24px,3.4vw,34px);
}
.rulebook h3{font-size:22px;color:var(--lava)}
.rulebook ol{list-style:none;counter-reset:rb;margin-top:16px}
.rulebook li{
    counter-increment:rb;
    display:grid;
    grid-template-columns:36px 1fr;
    gap:12px;
    padding:13px 0;
    border-top:1px solid var(--hair-2);
    font-size:15px;
    color:var(--bone-dim);
}
.rulebook li:first-child{border-top:0;padding-top:0}
.rulebook li::before{
    content:"0" counter(rb);
    font-family:"Oswald",Impact,sans-serif;
    font-size:15px;
    letter-spacing:.06em;
    color:var(--lava);
}
.hours-strap{
    margin-top:22px;
    padding-top:16px;
    border-top:1px solid var(--hair);
    font-size:14.5px;
    letter-spacing:.04em;
    color:var(--bone);
}
.hours-strap b{
    font-family:"Oswald",Impact,sans-serif;
    font-weight:400;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--lava);
    margin-right:8px;
}

/* ---------- kitchens ---------- */
.kitchens{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair)}
.venue{background:var(--crust);padding:clamp(22px,3vw,32px)}
.venue-kind{
    display:block;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--lava);
}
.venue h3{font-size:27px;margin-top:10px;letter-spacing:.02em}
.venue time{
    display:block;
    margin-top:7px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:14px;
    letter-spacing:.12em;
    color:var(--stone);
}
.venue p{margin-top:13px;font-size:15.5px;color:var(--bone-dim)}

/* ---------- week ---------- */
.week{border-top:2px solid var(--lava)}
.week-row{
    display:grid;
    grid-template-columns:132px 1fr 96px;
    gap:24px;
    align-items:baseline;
    padding:19px 0;
    border-bottom:1px solid var(--hair);
}
.daytag{
    font-family:"Oswald",Impact,sans-serif;
    font-size:14px;
    font-weight:400;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--lava);
}
.week-row h3{
    font-family:"Nunito Sans",sans-serif;
    font-size:17.5px;
    font-weight:700;
    letter-spacing:0;
    text-transform:none;
    line-height:1.4;
}
.week-row p{font-size:15px;color:var(--stone);margin-top:4px}
.week-row time{
    font-family:"Oswald",Impact,sans-serif;
    font-size:14px;
    letter-spacing:.1em;
    color:var(--bone);
    text-align:right;
}
.week-note{margin-top:20px;font-size:14px;color:var(--stone)}

/* ---------- terraces / wellness ---------- */
.terraces{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(32px,4.4vw,62px);align-items:center}
.pool-figure{
    position:relative;
    aspect-ratio:3/4;
    border:1px solid var(--hair);
    overflow:hidden;
    background:linear-gradient(200deg,#1d2226 0%,#101416 60%,#0c0d0f 100%);
}
.pool-figure::before{
    content:"";
    position:absolute;
    left:12%;
    top:16%;
    width:76%;
    aspect-ratio:1/1;
    border-radius:50%;
    background:radial-gradient(circle at 36% 32%,rgba(255,90,31,.42),rgba(255,90,31,.05) 62%,transparent 72%);
}
.pool-figure::after{
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(0deg,rgba(236,231,225,.055) 0 1px,transparent 1px 26px);
}
.pool-figure b{
    position:absolute;
    left:0;
    right:0;
    bottom:18px;
    z-index:2;
    text-align:center;
    font-family:"Oswald",Impact,sans-serif;
    font-size:11px;
    font-weight:400;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--bone);
}
.terraces p{color:var(--bone-dim);margin-top:16px}
.pairs{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;margin-top:28px}
.pairs div{padding:16px 0;border-top:1px solid var(--hair)}
.pairs b{
    display:block;
    font-family:"Oswald",Impact,sans-serif;
    font-size:17px;
    font-weight:400;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.pairs span{display:block;margin-top:4px;font-size:14.5px;color:var(--stone-lift)}

/* ---------- good to know ---------- */
.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair)}
.note-card{background:var(--crust-2);padding:clamp(22px,3vw,30px)}
.note-card h3{font-size:21px;color:var(--lava);letter-spacing:.06em}
.note-card p{margin-top:11px;font-size:15px;color:var(--bone-dim)}

/* ---------- responsible strip ---------- */
.stand{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:clamp(20px,3vw,34px);
    align-items:center;
    padding:clamp(26px,3.6vw,40px);
    background:var(--crust-2);
    border:1px solid var(--hair);
    border-left:3px solid var(--lava);
}
.stand .token18{width:76px;height:76px;font-size:24px}
.stand h2{font-size:clamp(23px,2.8vw,30px)}
.stand p{margin-top:10px;font-size:16px;color:var(--bone-dim)}

/* ---------- questions ---------- */
.queries{display:grid;gap:1px;background:var(--hair);max-width:880px}
.queries details{background:var(--crust)}
.queries summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px 22px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:18px;
    font-weight:400;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--bone);
    transition:color .2s;
}
.queries summary:hover{color:var(--lava)}
.queries summary::-webkit-details-marker{display:none}
.queries summary::after{
    content:"+";
    flex:none;
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    border:1px solid var(--lava);
    color:var(--lava);
    font-size:17px;
    line-height:1;
}
.queries details[open] summary::after{content:"\2013"}
.queries details[open]{border-left:2px solid var(--lava)}
.queries details p{padding:0 22px 22px;color:var(--bone-dim);font-size:16px}

/* ---------- reach / contact ---------- */
.reach{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(34px,4.6vw,62px);align-items:center}
.reach p{color:var(--bone-dim);margin-top:16px}
.reach .btn{margin-top:28px}
.reach-list{border:1px solid var(--hair);background:rgba(13,13,15,.42);padding:clamp(24px,3.2vw,34px)}
.reach-list div{padding:16px 0;border-top:1px solid var(--hair-2)}
.reach-list div:first-child{border-top:0;padding-top:0}
.reach-list dt{
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--lava);
}
.reach-list dd{margin-top:5px;font-size:16.5px}
.reach-list a{text-decoration:none;border-bottom:1px solid rgba(255,90,31,.5)}
.reach-list a:hover{color:var(--lava)}

/* ---------- footer ---------- */
.base{
    background:var(--crust);
    border-top:1px solid var(--hair);
    padding:clamp(48px,6vw,70px) 0 24px;
    font-size:15px;
    color:var(--stone);
}
.base-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:clamp(28px,4vw,52px)}
.base h4{
    font-family:"Nunito Sans",sans-serif;
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.26em;
    text-transform:uppercase;
    color:var(--bone);
    margin-bottom:15px;
}
.base ul{list-style:none;display:grid;gap:9px}
.base a{text-decoration:none}
.base a:hover{color:var(--lava)}
.base-about{margin-top:16px;max-width:390px}
.base-foot{
    margin-top:clamp(34px,4vw,50px);
    padding-top:22px;
    border-top:1px solid var(--hair);
    display:flex;
    flex-wrap:wrap;
    gap:16px 32px;
    align-items:center;
    justify-content:space-between;
    font-size:13px;
}
.base-foot .token18{width:36px;height:36px;font-size:11.5px}
.fineprint{display:flex;align-items:center;gap:14px;max-width:660px}
.plainbtn{
    background:none;
    border:0;
    padding:0;
    color:inherit;
    font:inherit;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:3px;
}
.plainbtn:hover{color:var(--lava)}

/* ---------- legal pages ---------- */
.doc-top{
    padding:calc(74px + clamp(42px,5vw,64px)) 0 clamp(26px,3vw,38px);
    background:
        radial-gradient(640px 360px at 14% 0%,rgba(255,90,31,.14),transparent 68%),
        linear-gradient(180deg,#141418 0%,#0d0d0f 100%);
}
.doc-top h1{font-size:clamp(32px,5.6vw,58px);margin-top:18px}
.doc-top p{color:var(--stone);margin-top:16px;max-width:640px}
.doc-body{padding:clamp(34px,5vw,56px) 0 clamp(60px,8vw,96px)}
.doc-body article{
    background:var(--crust);
    border:1px solid var(--hair);
    border-top:2px solid var(--lava);
    padding:clamp(24px,4.6vw,52px);
}
.doc-body h2{
    font-size:23px;
    letter-spacing:.04em;
    margin:36px 0 12px;
    color:var(--bone);
}
.doc-body h2:first-child{margin-top:0}
.doc-body p,.doc-body li{color:var(--bone-dim)}
.doc-body p+p{margin-top:12px}
.doc-body ul,.doc-body ol{padding-left:20px;display:grid;gap:8px;margin-top:11px}
.doc-body li::marker{color:var(--lava)}
.doc-body a{color:var(--lava)}
.doc-body b{color:var(--bone)}
.helpset{list-style:none;padding-left:0!important;gap:12px!important}
.helpset li{
    padding:15px 18px;
    background:rgba(13,13,15,.5);
    border-left:2px solid var(--lava);
}

/* ---------- age gate pages ---------- */
.verify-body{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:34px 20px 180px;
    background:
        radial-gradient(780px 480px at 50% -8%,rgba(255,90,31,.2),transparent 68%),
        radial-gradient(600px 420px at 86% 92%,rgba(80,110,130,.12),transparent 72%),
        linear-gradient(180deg,#121216 0%,#0b0b0d 100%);
}
.checkpoint{
    width:min(580px,100%);
    background:var(--crust);
    border:1px solid var(--hair);
    border-top:3px solid var(--lava);
    padding:clamp(28px,5vw,50px);
    box-shadow:0 34px 80px -46px #000;
}
.checkpoint .brand{justify-content:flex-start;margin-bottom:26px}
.checkpoint .token18{width:82px;height:82px;font-size:25px;margin-bottom:22px}
.checkpoint h1{font-size:clamp(28px,4.6vw,42px);letter-spacing:-.01em}
.checkpoint-lead{margin-top:16px;font-size:16.5px;color:var(--bone-dim)}
.checkpoint-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.checkpoint-acts .btn{flex:1 1 210px;text-align:center}
.refusal{
    display:none;
    margin-top:24px;
    padding:20px;
    background:rgba(255,90,31,.08);
    border-left:3px solid var(--lava);
    font-size:15.5px;
    color:var(--bone-dim);
}
.refusal.is-open{display:block}
.refusal b{
    display:block;
    margin-bottom:7px;
    font-family:"Oswald",Impact,sans-serif;
    font-size:19px;
    font-weight:500;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--bone);
}
.refusal a{color:var(--lava)}
.checkpoint-points{
    list-style:none;
    margin-top:28px;
    padding-top:22px;
    border-top:1px solid var(--hair);
    display:grid;
    gap:10px;
    font-size:14.5px;
    color:var(--stone);
}
.checkpoint-points li{display:grid;grid-template-columns:14px 1fr;gap:11px}
.checkpoint-points li::before{
    content:"";
    margin-top:9px;
    width:8px;
    height:8px;
    background:var(--lava);
    clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}
.checkpoint-fine{margin-top:22px;font-size:12.5px;color:var(--stone);line-height:1.9}
.checkpoint-fine a{color:var(--lava);text-decoration:none;border-bottom:1px solid rgba(255,90,31,.4)}

/* ---------- cookie dock ---------- */
.cookie-dock{
    position:fixed;
    left:18px;
    right:18px;
    bottom:18px;
    z-index:140;
    display:none;
    max-width:560px;
    margin-left:auto;
    background:var(--crust-2);
    border:1px solid var(--hair);
    border-top:2px solid var(--lava);
    padding:22px;
    box-shadow:0 28px 64px -28px #000;
}
.cookie-dock.is-open{display:block}
/* on the age-check pages the bar sits in the flow, under the card,
   so it can never cover the two answer buttons at any width */
.verify-body .cookie-dock{
    position:static;
    width:min(580px,100%);
    max-width:none;
    margin:26px auto 0;
    box-shadow:none;
}
.cookie-dock h2{font-size:19px;letter-spacing:.06em}
.cookie-dock p{margin-top:8px;font-size:14px;color:var(--stone)}
.cookie-dock a{color:var(--lava)}
.dock-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.dock-acts .btn{padding:11px 20px;font-size:12px}

/* ---------- responsive ---------- */
@media(max-width:1040px){
    .notes-grid{grid-template-columns:1fr}
    .prow-grid{grid-template-columns:1fr}
    .strata{aspect-ratio:16/9;min-height:0;order:-1}
    .origin,.floorplan,.terraces,.reach{grid-template-columns:1fr}
    .pool-figure{aspect-ratio:16/10;order:-1}
}
@media(max-width:900px){
    .nav-toggle{display:block}
    .nav-set{
        position:absolute;
        top:100%;
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        background:rgba(13,13,15,.98);
        border-top:1px solid var(--hair);
        border-bottom:1px solid var(--hair);
        padding:8px 22px 20px;
    }
    .nav-set.is-open{display:flex}
    .nav-set a{padding:13px 0;border-bottom:1px solid var(--hair-2)}
    .nav-set a:hover{border-bottom-color:var(--hair-2)}
    .nav-set .btn{margin-top:14px;text-align:center}
    .kitchens{grid-template-columns:1fr}
    .stand{grid-template-columns:1fr}
    .base-grid{grid-template-columns:1fr 1fr}
    .base-grid>:first-child{grid-column:1/-1}
}
@media(max-width:620px){
    body{font-size:16px}
    :root{--pad:clamp(54px,11vw,74px)}
    .prow-lead{font-size:17px}
    .floor-list,.pairs{grid-template-columns:1fr}
    .week-row{grid-template-columns:1fr;gap:3px}
    .week-row time{text-align:left}
    .numeral{font-size:clamp(84px,25vw,128px)}
    .strata{aspect-ratio:4/3}
    .base-grid{grid-template-columns:1fr}
    .cookie-dock{left:12px;right:12px;bottom:12px;padding:18px}
    .checkpoint-acts .btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *{transition-duration:.01ms!important}
}
