:root {
  --ink: #070507;
  --ink-soft: #0e0a0f;
  --surface: #130d13;
  --surface-2: #1b1118;
  --gold: #d6ad5b;
  --gold-bright: #f2d995;
  --oxblood: #601323;
  --ruby: #a71942;
  --pink: #f53691;
  --teal: #1de6d2;
  --violet: #8d4df4;
  --text: #f6f0e9;
  --muted: #b8acb3;
  --line: rgba(214, 173, 91, .28);
  --shadow: 0 24px 80px rgba(0,0,0,.55);
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 78% 6%, rgba(91, 18, 36, .20), transparent 28rem),
    radial-gradient(circle at 16% 31%, rgba(35, 165, 167, .08), transparent 24rem),
    #050405;
  font-family: Inter, system-ui, sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
::selection { background: var(--ruby); color: white; }

.page-noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 9999; opacity: .045;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.cursor-aura {
  position: fixed; width: 320px; height: 320px; border-radius: 50%; pointer-events: none; z-index: 2;
  background: radial-gradient(circle, rgba(245,54,145,.10), rgba(29,230,210,.05) 34%, transparent 66%);
  transform: translate(-50%,-50%); mix-blend-mode: screen; transition: opacity .25s ease; opacity: 0;
}

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 32px;
  padding: 10px max(24px, calc((100vw - var(--max)) / 2));
  background: linear-gradient(to bottom, rgba(5,4,5,.96), rgba(5,4,5,.78), transparent);
  transition: .3s ease;
}
.site-header.scrolled { background: rgba(5,4,5,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(214,173,91,.14); }
.brand img { width: 154px; aspect-ratio: 1/1; object-fit: contain; margin: -25px 0; filter: drop-shadow(0 6px 22px rgba(214,173,91,.12)); }
.site-nav { justify-self: end; display: flex; align-items: center; gap: clamp(18px, 2vw, 32px); font-family: Cinzel, serif; font-size: .73rem; letter-spacing: .09em; }
.site-nav a { text-decoration: none; position: relative; color: #efe7dc; }
.site-nav a:not(.nav-shop)::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 0; height: 1px; background: linear-gradient(90deg, var(--teal), var(--pink)); transition: .25s ease; transform: translateX(-50%); }
.site-nav a:hover::after { width: 100%; }
.nav-shop { border: 1px solid rgba(214,173,91,.55); padding: 10px 14px; background: linear-gradient(135deg, rgba(96,19,35,.55), rgba(5,4,5,.2)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.menu-toggle { display: none; justify-self: end; border: 0; background: transparent; padding: 10px; }
.menu-toggle span { display:block; width:27px; height:1px; background:var(--gold-bright); margin:6px 0; }

.hero {
  min-height: 100svh; position: relative; display:grid; grid-template-columns: 1.08fr .92fr; align-items:center; gap: 26px;
  padding: 140px max(24px, calc((100vw - var(--max)) / 2)) 72px;
  isolation: isolate; overflow: hidden;
}
.hero::before {
  content:""; position:absolute; inset:0; z-index:-3;
  background:
    linear-gradient(90deg, rgba(5,4,5,.97) 0%, rgba(5,4,5,.78) 44%, rgba(5,4,5,.12) 73%, rgba(5,4,5,.4) 100%),
    radial-gradient(circle at 88% 18%, rgba(166,23,64,.24), transparent 22rem),
    radial-gradient(circle at 38% 45%, rgba(29,230,210,.08), transparent 24rem);
}
.hero::after { content:""; position:absolute; left:-7%; top:14%; width:62%; height:55%; z-index:-2; background:radial-gradient(ellipse, rgba(138,46,142,.17), transparent 64%); filter:blur(30px); }
.hero-ambient { position:absolute; inset:0; z-index:-1; opacity:.35; background: repeating-linear-gradient(118deg, transparent 0 70px, rgba(214,173,91,.025) 71px, transparent 72px); }
.hero-copy { position:relative; z-index:4; max-width: 700px; }
.genre, .kicker { margin:0 0 14px; color:var(--gold-bright); font-family:Cinzel,serif; letter-spacing:.18em; text-transform:uppercase; font-size:.78rem; }
.ghost-title { line-height:.74; margin:0 0 28px; position:relative; width:min-content; }
.ghost-title span { display:block; font-weight:700; letter-spacing:-.06em; }
.ghost-word { font-family:Cormorant Garamond,serif; font-size:clamp(5.1rem,11vw,9.6rem); color:#d9f8f7; text-shadow:-2px 0 rgba(29,230,210,.75), 2px 0 rgba(245,54,145,.42), 0 0 34px rgba(29,230,210,.14); }
.hustlers-word { font-family:Cormorant Garamond,serif; font-style:italic; font-size:clamp(4.4rem,9.6vw,8.25rem); color:#f25bb1; transform:translateX(5%); text-shadow:0 0 28px rgba(245,54,145,.19); }
.ghost-title::after { content:""; position:absolute; width:115%; height:2px; bottom:-16px; left:0; background:linear-gradient(90deg, var(--teal), var(--pink) 48%, transparent); box-shadow:0 0 18px rgba(245,54,145,.35); }
.ghost-title.glitching .ghost-word { animation: glitchTeal .32s steps(2) 1; }
.ghost-title.glitching .hustlers-word { animation: glitchPink .32s steps(2) 1; }
@keyframes glitchTeal { 25% { transform:translate(-3px,1px) skewX(-4deg); } 50% { transform:translate(4px,-2px); clip-path:inset(24% 0 48% 0); } 75% { transform:translate(-1px,2px); } }
@keyframes glitchPink { 25% { transform:translateX(5%) translate(4px,-1px); } 50% { transform:translateX(5%) translate(-5px,2px); clip-path:inset(53% 0 13% 0); } 75% { transform:translateX(5%) translate(2px,0); } }
.coming-soon { display:inline-flex; align-items:center; gap:12px; text-transform:uppercase; letter-spacing:.48em; font-family:Cinzel,serif; color:white; font-size:clamp(.88rem,1.5vw,1.05rem); margin:0 0 18px; }
.coming-soon::before { content:"✦"; color:var(--pink); }
.hero-line { font-family:Cormorant Garamond,serif; font-size:clamp(1.5rem,2.3vw,2.2rem); line-height:1.15; margin:0 0 10px; max-width:640px; }
.hero-sub { color:var(--muted); max-width:600px; margin:0 0 30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px; font-family:Cinzel,serif; letter-spacing:.08em; text-transform:uppercase; font-size:.72rem; text-decoration:none; border:1px solid var(--line); transition:.25s ease; cursor:pointer; }
.btn-primary { background:linear-gradient(135deg, #7a1731, #3e0a22); border-color:rgba(245,54,145,.55); box-shadow:0 0 30px rgba(245,54,145,.11), inset 0 0 0 1px rgba(255,255,255,.04); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 0 35px rgba(245,54,145,.24); }
.btn-ghost { background:rgba(7,5,7,.5); border-color:rgba(214,173,91,.5); }
.btn-ghost:hover { border-color:var(--gold-bright); color:var(--gold-bright); transform:translateY(-2px); }
blockquote { margin:32px 0 0; font-family:Cormorant Garamond,serif; font-size:1.25rem; font-style:italic; color:#d4b7c8; }
.hero-art { align-self:stretch; position:relative; min-height:650px; z-index:3; display:flex; align-items:flex-end; justify-content:center; perspective:1000px; }
.hero-art::after { content:""; position:absolute; left:-10%; right:-10%; bottom:-2px; height:30%; z-index:2; background:linear-gradient(to top, #050405 10%, transparent); }
.hero-art img { position:absolute; bottom:0; right:-5%; height:min(86vh, 880px); width:auto; max-width:none; object-fit:contain; object-position:bottom; filter:contrast(1.04) saturate(.92) drop-shadow(0 24px 50px rgba(0,0,0,.55)); mask-image:linear-gradient(to bottom, black 0 82%, transparent 100%); }
.author-halo { position:absolute; width:560px; height:560px; right:0; top:10%; background:radial-gradient(circle, rgba(245,54,145,.12), rgba(29,230,210,.05) 33%, transparent 68%); filter:blur(16px); }
.hero-sigil { position:absolute; color:var(--gold); opacity:.45; font-size:2rem; text-shadow:0 0 18px currentColor; animation:floatSigil 7s ease-in-out infinite; }
.sigil-one { right:8%; top:18%; }.sigil-two { left:5%; bottom:27%; animation-delay:-2s; }
@keyframes floatSigil { 50% { transform:translateY(-14px) rotate(8deg); opacity:.8; } }
.scroll-cue { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); text-decoration:none; color:var(--muted); font-size:.63rem; text-transform:uppercase; letter-spacing:.24em; display:flex; flex-direction:column; gap:7px; align-items:center; }
.scroll-cue i { width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:scrollPulse 1.8s ease-in-out infinite; }
@keyframes scrollPulse { 50% { transform:scaleY(.55); transform-origin:top; opacity:.4; } }

.signal-strip { border-block:1px solid var(--line); background:rgba(8,6,8,.88); display:grid; grid-template-columns:repeat(5,1fr); max-width:100%; padding:0 max(24px, calc((100vw - var(--max)) / 2)); }
.signal-strip > div { min-height:125px; display:grid; grid-template-columns:38px 1fr; align-content:center; column-gap:14px; border-right:1px solid rgba(214,173,91,.16); padding:16px 22px; }
.signal-strip > div:last-child { border-right:0; }
.signal-strip span { grid-row:1/3; font-size:1.35rem; color:var(--gold); align-self:center; }
.signal-strip strong { font-family:Cinzel,serif; font-size:.78rem; letter-spacing:.06em; color:var(--gold-bright); }
.signal-strip small { color:#988d93; font-size:.74rem; }

section:not(.hero):not(.signal-strip) { position:relative; padding:110px max(24px, calc((100vw - var(--max)) / 2)); }
.section-heading { max-width:780px; margin-bottom:48px; }
.section-heading.centered { margin-inline:auto; text-align:center; }
.section-heading > span { display:block; font-family:Cinzel,serif; text-transform:uppercase; letter-spacing:.24em; color:var(--teal); font-size:.7rem; margin-bottom:10px; }
.section-heading h2, .about h2 { font-family:Cormorant Garamond,serif; font-weight:500; font-size:clamp(2.6rem,5vw,4.9rem); line-height:.96; margin:0; letter-spacing:-.02em; }
.section-heading p { color:var(--muted); }

.story-section { overflow:hidden; }
.story-section::before { content:""; position:absolute; inset:7% -10% auto auto; width:540px; height:540px; background:radial-gradient(circle, rgba(245,54,145,.11), transparent 64%); filter:blur(22px); }
.story-grid { display:grid; grid-template-columns:minmax(320px,.75fr) 1.25fr; gap:clamp(54px,8vw,110px); align-items:center; }
.cover-stage { position:relative; max-width:440px; margin:auto; perspective:1200px; }
.cover-stage img { width:100%; border-radius:4px; box-shadow:-28px 30px 80px rgba(0,0,0,.62), 0 0 0 1px rgba(255,255,255,.08); transform:rotateY(5deg) rotateX(1deg); }
.cover-glow { position:absolute; inset:12% -15%; background:radial-gradient(circle, rgba(29,230,210,.17), rgba(245,54,145,.11) 34%, transparent 68%); filter:blur(28px); }
.story-copy { max-width:650px; }
.story-copy p { color:#c8bdc4; font-size:1.04rem; }
.story-copy .dropcap:first-letter { float:left; font-family:Cormorant Garamond,serif; font-size:4.6rem; line-height:.76; padding:8px 10px 0 0; color:var(--gold-bright); }
.story-tags, .trait-row { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0; }
.story-tags span, .trait-row span { border:1px solid rgba(214,173,91,.22); background:rgba(214,173,91,.035); padding:8px 11px; color:#c8bac3; font-size:.73rem; text-transform:uppercase; letter-spacing:.08em; }
.text-link { font-family:Cinzel,serif; color:var(--gold-bright); text-decoration:none; text-transform:uppercase; letter-spacing:.12em; font-size:.73rem; border-bottom:1px solid rgba(214,173,91,.35); padding-bottom:5px; }

.characters { background:linear-gradient(180deg, #070507, #0b070b 70%, #070507); overflow:hidden; }
.characters::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 10% 33%, rgba(245,54,145,.09), transparent 20rem), radial-gradient(circle at 90% 68%, rgba(29,230,210,.08), transparent 22rem); }
.character-card { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; min-height:560px; max-width:1180px; margin:0 auto 58px; border:1px solid rgba(214,173,91,.19); background:rgba(12,8,12,.7); box-shadow:var(--shadow); overflow:hidden; }
.character-image { min-height:560px; position:relative; overflow:hidden; background:#080608; }
.character-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, transparent 56%, rgba(10,7,10,.85)); }
.character-image img { width:100%; height:100%; object-fit:cover; object-position:center 20%; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.character-card:hover .character-image img { transform:scale(1.025); }
.character-copy { align-self:center; padding:clamp(38px,6vw,80px); }
.character-role { margin:0; color:var(--gold); font-family:Cinzel,serif; text-transform:uppercase; letter-spacing:.18em; font-size:.7rem; }
.character-copy h3 { font-family:Cormorant Garamond,serif; font-weight:500; font-size:clamp(3.8rem,7vw,6.4rem); line-height:.82; margin:8px 0 18px; }
.raven-card h3 { color:#f06eb8; text-shadow:0 0 26px rgba(245,54,145,.18); }
.draconia-card h3 { color:#5be0d2; text-shadow:0 0 26px rgba(29,230,210,.14); }
.character-tagline { font-family:Cormorant Garamond,serif; font-style:italic; font-size:1.45rem; line-height:1.2; color:#e6dfe3; }
.character-copy > p:not(.character-role):not(.character-tagline) { color:#b9adb5; }
.draconia-card .character-image::after { background:linear-gradient(270deg, transparent 56%, rgba(10,7,10,.85)); }
.draconia-image img { object-position:center 16%; }
.dog-callout { position:relative; z-index:3; display:flex; align-items:center; gap:18px; width:max-content; max-width:100%; margin:10px auto 0; border:1px solid rgba(29,230,210,.28); padding:18px 26px; background:linear-gradient(90deg, rgba(29,230,210,.045), rgba(245,54,145,.045)); }
.dog-icon { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--teal); border-radius:50%; box-shadow:0 0 24px rgba(29,230,210,.13); }
.dog-callout strong { display:block; font-family:Cinzel,serif; color:var(--gold-bright); letter-spacing:.1em; font-size:.76rem; }
.dog-callout span { color:#aaa0a6; font-size:.86rem; }

.reveal-gallery { overflow:hidden; }
.reveal-gallery::before { content:""; position:absolute; inset:0; background:linear-gradient(120deg, rgba(29,230,210,.025), transparent 40%, rgba(245,54,145,.035)); }
.gallery-grid { display:grid; grid-template-columns:1.3fr .7fr; grid-template-rows:auto auto; gap:22px; }
.gallery-grid figure { margin:0; overflow:hidden; border:1px solid rgba(214,173,91,.17); background:#090709; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.gallery-grid figure:hover img { transform:scale(1.025); }
.gallery-large { grid-row:1 / span 2; min-height:650px; }
.gallery-large img { object-position:center 48%; }
.gallery-small { min-height:360px; }
.gallery-small img { object-position:center 20%; }
.gallery-copy { border:1px solid rgba(214,173,91,.17); padding:34px; background:linear-gradient(135deg, rgba(96,19,35,.15), rgba(6,5,6,.88)); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.gallery-copy p { font-family:Cormorant Garamond,serif; font-size:1.45rem; line-height:1.3; }

.books { background:linear-gradient(180deg, #080608, #0c090c); }
.book-shelf { max-width:1100px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.book-card { min-height:420px; display:grid; grid-template-columns:235px 1fr; gap:30px; align-items:center; padding:28px; border:1px solid rgba(214,173,91,.18); background:rgba(7,5,7,.8); box-shadow:0 16px 50px rgba(0,0,0,.28); }
.book-cover-css { min-height:338px; position:relative; padding:30px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border:2px solid rgba(214,173,91,.45); box-shadow:inset 0 0 0 5px rgba(214,173,91,.055), 0 20px 28px rgba(0,0,0,.4); }
.book-cover-css::before, .book-cover-css::after { content:"✦"; position:absolute; color:var(--gold); font-size:.8rem; }.book-cover-css::before{top:10px;left:12px}.book-cover-css::after{bottom:10px;right:12px}
.book-green .book-cover-css { background:radial-gradient(circle at 50% 25%, rgba(30,86,75,.85), #09140f 72%); }
.book-purple .book-cover-css { background:radial-gradient(circle at 50% 25%, rgba(74,39,112,.8), #160c1d 72%); }
.book-cover-css .ornament { color:var(--gold-bright); font-size:1rem; letter-spacing:.15em; }
.book-cover-css small { margin-top:25px; font-family:Cinzel,serif; color:#dbc991; letter-spacing:.16em; text-transform:uppercase; }
.book-cover-css h3 { font-family:Cormorant Garamond,serif; font-size:2rem; font-weight:500; line-height:1.04; margin:22px 0; color:#efdca7; }
.book-cover-css .cover-mark { color:var(--gold); }
.book-cover-css p { margin:20px 0 0; font-family:Cinzel,serif; letter-spacing:.14em; color:#d9c37e; text-transform:uppercase; font-size:.68rem; }
.book-info span { font-family:Cinzel,serif; text-transform:uppercase; letter-spacing:.15em; color:var(--teal); font-size:.67rem; }
.book-info h3 { font-family:Cormorant Garamond,serif; font-size:2rem; line-height:1.06; margin:8px 0 15px; }
.book-info p { color:#aaa0a6; }

.about { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(50px,7vw,100px); align-items:center; overflow:hidden; }
.about::before { content:""; position:absolute; width:680px; height:680px; left:-14%; top:10%; background:radial-gradient(circle, rgba(96,19,35,.18), transparent 65%); }
.about-photo { position:relative; max-width:430px; margin:auto; }
.about-photo::before { content:""; position:absolute; inset:-16px 16px 16px -16px; border:1px solid rgba(214,173,91,.3); }
.about-photo img { position:relative; z-index:2; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 22%; filter:saturate(.85) contrast(1.03); }
.about-copy { max-width:680px; }
.about-copy .lede { font-family:Cormorant Garamond,serif; font-size:1.55rem; line-height:1.25; color:#e5dde1; }
.about-copy p { color:#b5abb1; }

.mac-management { padding-block:44px !important; margin:0 max(24px, calc((100vw - var(--max)) / 2)) 100px; display:grid; grid-template-columns:110px 1fr auto; gap:28px; align-items:center; border:1px solid rgba(214,173,91,.27); background:linear-gradient(90deg, rgba(77,17,29,.22), rgba(9,7,9,.88), rgba(12,20,16,.66)); box-shadow:var(--shadow); }
.mac-management img { width:100px; height:100px; object-fit:contain; }
.mac-management p { margin:0 0 2px; color:var(--gold); font-family:Cinzel,serif; text-transform:uppercase; letter-spacing:.17em; font-size:.66rem; }
.mac-management h2 { margin:0; font-family:Cormorant Garamond,serif; font-size:2.1rem; font-weight:500; }
.mac-management span { color:#a99ea5; font-size:.88rem; }

.haunt-list { text-align:center; overflow:hidden; padding-bottom:130px !important; }
.haunt-glow { position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(245,54,145,.11), transparent 47%); }
.signup-form { position:relative; z-index:2; max-width:700px; margin:auto; display:grid; grid-template-columns:1fr auto; gap:12px; }
.signup-form input { width:100%; height:52px; border:1px solid rgba(214,173,91,.26); background:rgba(4,3,4,.76); color:white; padding:0 16px; outline:none; }
.signup-form input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(29,230,210,.07); }
.form-status { grid-column:1/-1; margin:4px 0 0; min-height:1.5em; color:var(--teal); font-size:.84rem; }

.site-footer { border-top:1px solid rgba(214,173,91,.18); padding:54px max(24px, calc((100vw - var(--max)) / 2)) 26px; display:grid; grid-template-columns:1fr auto 170px; gap:50px; align-items:center; background:#040304; }
.footer-brand img { width:190px; margin:-38px 0 -30px; }
.footer-brand p { color:#8f858b; font-family:Cormorant Garamond,serif; font-style:italic; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:8px 30px; }
.footer-links a { color:#aaa0a6; text-decoration:none; font-size:.76rem; }.footer-links a:hover{color:var(--gold-bright)}
.footer-mark img { width:145px; opacity:.88; }
.footer-bottom { grid-column:1/-1; border-top:1px solid rgba(214,173,91,.12); padding-top:18px; display:flex; justify-content:space-between; gap:20px; color:#6f676c; font-size:.7rem; }

.reveal { opacity:0; transform:translateY(26px); transition:opacity .75s ease, transform .75s ease; }
.reveal.in { opacity:1; transform:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width: 980px) {
  .site-header { grid-template-columns:140px 1fr; }
  .brand img { width:138px; }
  .menu-toggle { display:block; z-index:1002; }
  .site-nav { position:fixed; inset:0; background:rgba(5,4,5,.97); backdrop-filter:blur(18px); display:flex; flex-direction:column; justify-content:center; gap:28px; font-size:1rem; transform:translateX(100%); transition:.38s cubic-bezier(.2,.8,.2,1); z-index:1001; }
  .site-nav.open { transform:translateX(0); }
  .hero { grid-template-columns:1fr; padding-top:155px; min-height:auto; }
  .hero-copy { max-width:760px; }
  .hero-art { min-height:620px; margin-top:-60px; opacity:.9; }
  .hero-art img { height:720px; right:50%; transform:translateX(50%); }
  .signal-strip { grid-template-columns:repeat(2,1fr); }.signal-strip>div{border-bottom:1px solid rgba(214,173,91,.12)}
  .signal-strip>div:last-child{grid-column:1/-1}
  .story-grid, .about { grid-template-columns:1fr; }
  .about-photo { max-width:560px; }
  .character-card { grid-template-columns:1fr; }
  .draconia-card .character-copy { order:2; }.draconia-card .character-image { order:1; }
  .character-image { min-height:480px; }
  .character-image::after, .draconia-card .character-image::after { background:linear-gradient(to bottom, transparent 55%, rgba(10,7,10,.9)); }
  .gallery-grid { grid-template-columns:1fr; grid-template-rows:auto; }.gallery-large{grid-row:auto; min-height:520px}.gallery-small{min-height:500px}
  .book-shelf { grid-template-columns:1fr; }
  .mac-management { grid-template-columns:90px 1fr; }.mac-management .btn{grid-column:1/-1}.mac-management img{width:85px;height:85px}
  .site-footer { grid-template-columns:1fr 1fr; }.footer-mark{display:none}
}

@media (max-width: 620px) {
  .site-header { padding-inline:15px; grid-template-columns:112px 1fr; }
  .brand img { width:112px; margin:-18px 0; }
  .hero { padding:125px 18px 55px; }
  .genre { font-size:.65rem; }
  .ghost-word { font-size:4.45rem; }.hustlers-word{font-size:3.72rem}.ghost-title{margin-bottom:32px}.ghost-title::after{width:100%}
  .coming-soon { letter-spacing:.28em; }
  .hero-line { font-size:1.55rem; }
  .hero-art { min-height:490px; margin-top:-35px; }.hero-art img{height:560px}
  .scroll-cue{display:none}
  .signal-strip { grid-template-columns:1fr; padding-inline:18px; }.signal-strip>div:last-child{grid-column:auto}.signal-strip>div{border-right:0;min-height:94px}
  section:not(.hero):not(.signal-strip) { padding:80px 18px; }
  .section-heading { margin-bottom:36px; }.section-heading h2,.about h2{font-size:2.7rem}
  .story-grid { gap:46px; }.cover-stage{max-width:330px}
  .character-card { margin-bottom:30px; }.character-image{min-height:420px}.character-copy{padding:34px 24px}.character-copy h3{font-size:4rem}
  .dog-callout { width:100%; align-items:flex-start; }
  .gallery-large{min-height:430px}.gallery-small{min-height:420px}
  .book-card { grid-template-columns:1fr; padding:20px; }.book-cover-css{max-width:260px;width:100%;margin:auto}.book-info{text-align:center}
  .about-photo{max-width:330px}
  .mac-management { margin:0 18px 70px; padding:28px 20px !important; grid-template-columns:1fr; text-align:center; }.mac-management img{margin:auto}.mac-management .btn{width:100%}
  .signup-form { grid-template-columns:1fr; }.signup-form button{width:100%}
  .site-footer { grid-template-columns:1fr; text-align:center; }.footer-brand img{margin-inline:auto}.footer-links{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:center}.footer-mark{display:none}
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
  .cursor-aura { display:none; }
}
