:root {
  color-scheme: dark;
  --bg: #06090d;
  --panel: #0d141d;
  --panel2: #101a26;
  --text: #f4f4f5;
  --muted: #a1a1aa;
  --line: rgba(148, 163, 184, 0.22);
  --gold: #f7c948;
  --cyan: #67e8f9;
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 50% 0%, rgba(34,211,238,.08), transparent 34rem),
    linear-gradient(180deg, #080d13 0%, #040608 100%);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}
a { color: var(--cyan); }
a:hover { color: #cffafe; }
.site-shell { width: min(920px, calc(100% - 28px)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 5;
  border-bottom: 1px solid var(--line);
  background: rgba(6,9,13,.92);
  backdrop-filter: blur(14px);
}
.site-header-inner { display: flex; align-items: center; gap: 16px; min-height: 64px; }
.brand { display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; font-weight:900; letter-spacing:.08em; white-space:nowrap; }
.brand img { width: 34px; height: 34px; border-radius: 9px; box-shadow:0 0 16px rgba(247,201,72,.18); }
.site-nav { display:flex; gap:10px; flex-wrap:wrap; margin-left:auto; justify-content:flex-end; }
.site-nav a { color:#cbd5e1; text-decoration:none; font-size:12px; font-weight:700; letter-spacing:.04em; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color:#fff; }
.hero { padding: 62px 0 26px; }
.kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.18em; font-size:12px; font-weight:900; }
h1 { margin:.35rem 0 .8rem; font-size:clamp(2rem, 7vw, 4rem); line-height:1.03; letter-spacing:-.035em; }
h2 { margin:2rem 0 .65rem; font-size:1.35rem; line-height:1.2; }
h3 { margin:1.35rem 0 .45rem; font-size:1.02rem; }
p, li { color:#d4d4d8; }
.lede { max-width:760px; font-size:clamp(1rem, 2.5vw, 1.2rem); color:#e4e4e7; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:22px 0; }
.card { border:1px solid var(--line); background:linear-gradient(180deg,rgba(16,26,38,.88),rgba(8,13,20,.88)); border-radius:16px; padding:18px; }
.card p:last-child, .card ul:last-child { margin-bottom:0; }
.badge { display:inline-block; border:1px solid rgba(247,201,72,.32); color:#fde68a; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.callout { margin:22px 0; border-left:3px solid var(--cyan); background:rgba(34,211,238,.055); padding:13px 16px; border-radius:0 12px 12px 0; }
.cta-row { display:flex; gap:10px; flex-wrap:wrap; margin:26px 0 6px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:11px; text-decoration:none; font-weight:900; font-size:13px; letter-spacing:.04em; border:1px solid rgba(103,232,249,.35); background:rgba(8,145,178,.16); color:#cffafe; }
.button.secondary { border-color:var(--line); background:#0d141d; color:#e4e4e7; }
.timeline { border-left:1px solid var(--line); margin:24px 0 0 8px; padding-left:22px; }
.timeline article { position:relative; padding:0 0 26px; }
.timeline article::before { content:""; position:absolute; left:-27px; top:.4em; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 10px rgba(247,201,72,.5); }
.faq details { border-top:1px solid var(--line); padding:14px 0; }
.faq details:last-child { border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; font-weight:850; color:#fff; }
.small { font-size:.88rem; color:var(--muted); }
.codeish { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.site-footer { border-top:1px solid var(--line); margin-top:54px; padding:26px 0 42px; color:var(--muted); font-size:12px; }
.site-footer nav { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.site-footer a { color:#a5f3fc; }
@media (max-width: 720px) {
  .site-header { position:static; }
  .site-header-inner { align-items:flex-start; flex-direction:column; padding:12px 0; gap:8px; }
  .site-nav { margin-left:0; justify-content:flex-start; }
  .hero { padding-top:36px; }
}

.form-stack { display:grid; gap:12px; max-width:640px; }
.field-label { display:grid; gap:6px; color:#fff; font-size:12px; font-weight:850; letter-spacing:.03em; }
.site-input { width:100%; min-height:42px; border:1px solid var(--line); border-radius:10px; background:#06090d; color:#fff; padding:9px 11px; font:inherit; outline:none; }
.site-input:focus { border-color:rgba(103,232,249,.65); box-shadow:0 0 0 2px rgba(103,232,249,.08); }
.button.danger { border-color:rgba(248,113,113,.45); background:rgba(127,29,29,.22); color:#fecaca; cursor:pointer; }
.button.danger:disabled { opacity:.55; cursor:wait; }


/* 2026-09-23 — Public Las Vegas Stories / AdSense quality pass. Static public content only. */
.prose-section { margin: 34px 0; }
.prose-section > p { max-width: 820px; }
.story-hub-hero { padding-bottom: 14px; }
.story-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; margin:20px 0 40px; }
.story-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--line); background:linear-gradient(180deg,rgba(16,26,38,.9),rgba(7,11,17,.92)); border-radius:18px; padding:16px; }
.story-card h2 { margin:.55rem 0 .5rem; font-size:1.2rem; }
.story-card h2 a { color:#fff; text-decoration:none; }
.story-card h2 a:hover { color:#cffafe; }
.story-card p { flex:1; margin:.2rem 0 1rem; }
.story-art-link { display:block; align-self:center; width:min(100%,260px); margin:0 auto 12px; }
.story-card-art { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; filter:drop-shadow(0 14px 20px rgba(0,0,0,.4)); }
.text-link { font-weight:850; text-decoration:none; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:7px; align-items:center; padding:24px 0 0; color:var(--muted); font-size:.82rem; }
.breadcrumb a { text-decoration:none; }
.story-article { margin-top:10px; }
.story-article-hero { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr); gap:24px; align-items:center; padding:28px 0 18px; }
.story-article-hero h1 { font-size:clamp(2rem,6vw,3.6rem); }
.story-figure { margin:0; text-align:center; }
.story-figure img { display:block; width:min(100%,430px); height:auto; margin:0 auto; aspect-ratio:1; object-fit:contain; filter:drop-shadow(0 18px 28px rgba(0,0,0,.5)); }
.story-figure figcaption { color:var(--muted); font-size:.76rem; margin-top:8px; }
.story-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:10px 0 34px; }
.story-facts section { border:1px solid var(--line); border-radius:12px; padding:12px; background:rgba(13,20,29,.72); }
.story-facts dt { color:var(--gold); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.story-facts dd { margin:5px 0 0; color:#e4e4e7; }
.source-section { margin:34px 0; border-top:1px solid var(--line); padding-top:12px; }
.source-list { padding-left:20px; }
.source-list li { margin:7px 0; }
.story-next { display:flex; justify-content:space-between; gap:18px; border-top:1px solid var(--line); padding-top:20px; margin-top:36px; }
.story-next a { max-width:48%; font-weight:850; text-decoration:none; }
.story-next a:last-child { text-align:right; }
@media (max-width: 720px) { .story-article-hero { grid-template-columns:1fr; } .story-figure { order:-1; } .story-figure img { width:min(78vw,360px); } .story-facts { grid-template-columns:1fr; } .story-next { flex-direction:column; } .story-next a, .story-next a:last-child { max-width:100%; text-align:left; } }

/* 2026-10-17 — PlotLuck Vegas Stories practical visitor guides (static HTML). */
.story-visit-intro { border:1px solid rgba(103,232,249,.22); border-radius:15px; background:rgba(13,30,44,.72); padding:10px 20px 16px; margin:22px 0 20px; }
.story-visit-intro h2 { margin:.35rem 0 .35rem; }
.story-visit-intro p { margin:.25rem 0; }
.story-visit-teaser { flex:none!important; margin:.6rem 0 .4rem!important; font-size:.82rem; line-height:1.4; color:#f9dc87; font-weight:800; }
.story-visit-guide { margin:22px 0 34px; border:1px solid rgba(247,201,72,.34); border-radius:18px; background:linear-gradient(145deg,rgba(28,31,39,.94),rgba(8,19,28,.96)); padding:22px; box-shadow:0 12px 30px rgba(0,0,0,.16); }
.visit-guide-head { display:flex; align-items:start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.visit-guide-head h2 { margin:.12rem 0 1rem; font-size:1.55rem; }
.visit-rating { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; text-align:right; max-width:260px; }
.visit-stars { color:#f7c948; font-size:1.65rem; font-weight:900; letter-spacing:.09em; line-height:1.2; }
.visit-rating-caption { color:#e4e4e7; font-size:.82rem; font-weight:800; }
.visit-rating-unrated .visit-stars { color:#cbd5e1; }
.visit-guide-facts { margin:10px 0 18px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.visit-guide-facts>div { border:1px solid rgba(148,163,184,.19); background:rgba(5,10,18,.42); border-radius:12px; padding:11px 13px; }
.visit-guide-facts dt { color:#a5f3fc; font-size:.73rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.visit-guide-facts dd { margin:5px 0 0; color:#e4e4e7; }
.story-visit-guide h3 { font-size:.95rem; color:#fef3c7; margin:16px 0 5px; }
.story-visit-guide p { margin:0 0 10px; }
.story-visit-guide .visit-official { margin:16px 0; font-weight:800; }
.story-visit-guide .visit-guide-disclaimer { color:#a1a1aa; font-size:.77rem; margin:16px 0 0; border-top:1px solid rgba(148,163,184,.2); padding-top:12px; }
@media(max-width:720px) { .story-visit-guide { padding:15px; } .visit-guide-facts { grid-template-columns:1fr; } .visit-guide-head { flex-direction:column; gap:3px; } .visit-rating { align-items:flex-start; text-align:left; max-width:100%; } .visit-stars { font-size:1.45rem; } }

/* Art in older stories used fixed HTML width=640 without a responsive rule. */
.story-article-hero > img { display:block; width:min(100%,400px); max-width:100%; height:auto; justify-self:center; object-fit:contain; }
