/* XNIGHTSTARR store pages: shop, collector's edition, booking. Same palette and type as the main site. */
:root{
  --void:#0a0908; --char:#141210; --char-2:#1c1916; --line:#332e28;
  --bone:#ece7dc; --bone-dim:#a29c8e; --rust:#b23a2e; --rust-bright:#d4493a; --amber:#c98a3a; --ok:#5c7a5a;
  --radius:2px; --display:'Anton','Arial Narrow',sans-serif; --body:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.16,.84,.44,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--void); color:var(--bone); font-family:var(--body); line-height:1.6; min-height:100vh; overflow-x:hidden;}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
::selection{background:var(--rust); color:var(--bone);}
:focus-visible{outline:2px solid var(--amber); outline-offset:2px;}
.wrap{max-width:1120px; margin:0 auto; padding:0 16px;}

header.top{position:sticky; top:0; z-index:10; background:rgba(10,9,8,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
header.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:58px; flex-wrap:wrap;}
.brand{font-family:var(--display); font-size:20px; letter-spacing:.04em;}
nav.store{display:flex; gap:18px; flex-wrap:wrap; font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--bone-dim);}
nav.store a:hover, nav.store a.on{color:var(--bone);}
nav.store a.hot{color:var(--rust-bright);}

.eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--rust); display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--rust);}
h1,h2,h3{font-family:var(--display); font-weight:400; text-transform:uppercase; letter-spacing:.01em; line-height:.95;}
h1{font-size:clamp(44px,9vw,110px);}
h2{font-size:clamp(28px,4.5vw,46px); margin-bottom:14px;}
h3{font-size:22px; letter-spacing:.02em; margin-bottom:8px;}
.lead{font-size:17px; color:var(--bone-dim); max-width:640px;}
.dim{color:var(--bone-dim);}
.small{font-size:13px;}
section{padding:72px 0; border-bottom:1px solid var(--line);}
section:last-of-type{border-bottom:0;}

.hero{position:relative; padding:96px 0 72px; border-bottom:1px solid var(--line);
  background:radial-gradient(ellipse at 20% 15%,rgba(178,58,46,.18),transparent 55%),radial-gradient(ellipse at 80% 85%,rgba(201,138,58,.09),transparent 55%),repeating-linear-gradient(115deg,#100d0b 0 2px,#0a0908 2px 40px);}
.hero.art{background:linear-gradient(180deg,rgba(10,9,8,.55),rgba(10,9,8,.95)),url('/game/media/img/pause.jpg') center/cover no-repeat;}
.hero .lead{margin:18px 0 28px;}

.btn{display:inline-flex; align-items:center; gap:8px; justify-content:center; font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  padding:14px 24px; border:1px solid var(--bone); color:var(--bone); background:transparent; border-radius:var(--radius); transition:.2s var(--ease); cursor:pointer; text-align:center;}
.btn:hover{background:var(--bone); color:var(--void);}
.btn.solid{background:var(--rust); border-color:var(--rust);}
.btn.solid:hover{background:var(--rust-bright); border-color:var(--rust-bright); color:var(--bone);}
.btn.ghost{border-color:var(--line); color:var(--bone-dim);}
.btn.ghost:hover{border-color:var(--bone); color:var(--bone); background:transparent;}
.btn[aria-disabled="true"]{opacity:.4; pointer-events:none;}
.row{display:flex; gap:12px; flex-wrap:wrap;}

.grid{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.card{background:var(--char); border:1px solid var(--line); border-radius:var(--radius); padding:24px; display:flex; flex-direction:column; gap:12px;}
.card.feature{border-color:var(--rust); box-shadow:0 0 0 1px rgba(178,58,46,.25) inset;}
.price{font-family:var(--display); font-size:44px; line-height:1;}
.price small{font-family:var(--mono); font-size:12px; color:var(--bone-dim); letter-spacing:.1em; margin-left:6px;}
.tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--amber);}
.list li{padding:6px 0 6px 18px; position:relative; color:var(--bone-dim); border-bottom:1px dashed var(--line);}
.list li:last-child{border-bottom:0;}
.list li::before{content:'✕'; position:absolute; left:0; top:6px; color:var(--rust); font-size:11px;}
.card .btn{margin-top:auto;}

form.book{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
form.book .full{grid-column:1/-1;}
label{display:flex; flex-direction:column; gap:6px; font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-dim);}
input,select,textarea{font:inherit; font-family:var(--body); font-size:15px; letter-spacing:0; text-transform:none; color:var(--bone); background:var(--char-2); border:1px solid var(--line); border-radius:var(--radius); padding:12px;}
textarea{min-height:96px; resize:vertical;}
input:focus,select:focus,textarea:focus{border-color:var(--amber); outline:none;}
.hp{position:absolute; left:-9999px;}
.msg{font-size:14px; min-height:1.4em;}
.msg.err{color:var(--rust-bright);}
table.rates{width:100%; border-collapse:collapse; font-size:15px;}
table.rates td{padding:12px 8px; border-bottom:1px solid var(--line);}
table.rates td:last-child{text-align:right; font-family:var(--display); font-size:22px;}
footer{padding:40px 0 56px; color:var(--bone-dim); font-size:13px;}
footer .row{justify-content:space-between;}
@media (max-width:600px){ section{padding:52px 0;} .hero{padding:64px 0 48px;} nav.store{gap:12px;} }

/* media slots: show the image once it exists at its path, otherwise a labelled placeholder (see store.js) */
.media{position:relative; aspect-ratio:4/3; background:repeating-linear-gradient(135deg,#141210 0 10px,#171411 10px 20px); border:1px dashed var(--line); border-radius:var(--radius); overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center;}
.media.wide{aspect-ratio:16/9;}
.media.square{aspect-ratio:1/1;}
.media .ph{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--bone-dim); padding:12px; line-height:1.6;}
.media.has{border-style:solid;}
.media img,.media video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.gallery{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.split{display:grid; gap:28px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); align-items:start;}
.facts{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); margin-top:20px;}
.facts div{background:var(--char); border:1px solid var(--line); padding:16px; border-radius:var(--radius);}
.facts b{display:block; font-family:var(--display); font-size:22px; font-weight:400; letter-spacing:.02em; margin-bottom:4px;}
.facts span{color:var(--bone-dim); font-size:14px;}
.vids{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
.vids a{border:1px solid var(--line); background:var(--char); padding:16px; border-radius:var(--radius); font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim);}
.vids a:hover{border-color:var(--rust); color:var(--bone);}
.desc p{color:var(--bone-dim); margin-bottom:12px; max-width:720px;}
[data-if-exists]{display:none;}
.clips{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); align-items:start;}
.clips .instagram-media{min-width:0 !important; width:100% !important; margin:0 !important; background:var(--char) !important; border:1px solid var(--line) !important;}
.clips blockquote a{display:block; padding:24px; font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim);}
.clips-consent{border:1px dashed var(--line); padding:20px; border-radius:var(--radius); display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-top:4px;}
footer .legal{margin-top:14px; font-size:12px; color:var(--bone-dim); font-family:var(--mono); letter-spacing:.04em;}
footer .legal a{text-decoration:underline;}
