:root{--haunt-bg:#08040f;--haunt-panel:#150b23;--haunt-line:#52316b;--pumpkin:#ff962e;--spectral:#bd80ff;--slime:#b5fa43;--paper:#0b0613;--ink:#f6efff;--line:#4b2e62;--mint:#b5fa43}
body{background:radial-gradient(ellipse at 70% 0,#371448 0,transparent 37%),#08040f;color:var(--ink)}body:before{display:none}button:hover{filter:brightness(1.12)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--slime);outline-offset:4px}html{scroll-padding-top:100px}h1,h2,h3,p{margin-top:0}.haunt-main{max-width:1600px;margin:auto;padding:0 22px 24px}.section-kicker{color:var(--pumpkin);font:800 17px var(--display);letter-spacing:.04em}.haunt-header{height:90px;position:relative;max-width:1600px;margin:auto;padding:14px 25px;gap:18px;background:transparent;border:0;z-index:4}.haunt-header .brand{gap:9px;font:900 25px/.78 var(--display);transform:rotate(-4deg);min-width:145px}.brand em{font-style:normal;color:var(--slime);font-size:30px}.haunt-header .brand-icon{font-size:35px;color:#ffc72f}.haunt-header nav{display:flex;gap:4px;align-items:center;border:1px solid #6a3b7c;background:#13091dcc;border-radius:24px;padding:4px;margin:auto}.haunt-header nav a,.haunt-header nav button{font:700 11px var(--display);letter-spacing:.04em;padding:10px 17px;border-radius:20px;white-space:nowrap;color:#cfbada;background:transparent}.haunt-header nav .active{background:#4c220c;color:#ffb64e;box-shadow:inset 0 0 0 1px #cf7217}.haunt-header nav a:hover,.haunt-header nav button:hover{background:#3e1d52;color:white}.haunt-header .header-play{background:#21102e;border:1px solid #af57d7;color:#f1d3ff;border-radius:25px;padding:13px 19px;font:700 11px var(--display);white-space:nowrap}.music-toggle{background:#160d23;border-color:#614071;color:#d8b9e9;font-size:8px;padding:10px}
.haunt-hero{position:relative;isolation:isolate;min-height:610px;overflow:hidden;border:1px solid #5c2c6d;border-radius:17px;background:#100819;box-shadow:0 16px 50px #0007}.haunt-key-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:-4}.haunt-shade{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,#0b0614f5 0,#10071bbb 26%,#13081d30 46%,transparent 66%),linear-gradient(0deg,#0b041885,transparent 35%)}.haunt-hero-copy{position:relative;padding:46px 4.2% 45px;max-width:570px;z-index:1}.event-ribbon{display:inline-block;padding:8px 18px;background:var(--pumpkin);color:#1b0a08;font:900 italic 20px var(--display);transform:rotate(-3deg);box-shadow:4px 4px 0 #6a251b}.haunt-eyebrow{margin:28px 0 10px;font:8px var(--mono);letter-spacing:.17em;color:#d2b3e8}.haunt-hero h1{font:900 italic 72px/.91 var(--display);letter-spacing:-.035em;margin:0 0 21px;color:white;text-shadow:2px 4px 0 #19081f}.haunt-hero h1>span{display:block;color:var(--slime);font-size:1.12em}.haunt-hero h1 em{display:block;font:900 italic 56px/.92 var(--display);color:var(--pumpkin);margin-top:13px;letter-spacing:-.025em}.haunt-subtitle{font:600 19px/1.45 'DM Sans',sans-serif;color:#f4e7ff;margin:0 0 26px}.haunt-subtitle strong{color:#ffc46b;font-weight:700}.haunt-actions{display:flex;flex-direction:column;align-items:start;gap:17px}.play-button{background:linear-gradient(#ffb02f,#ff8a18);border:1px solid #ffc75b;border-radius:9px;color:#211006;box-shadow:0 0 22px #ff770029,inset 0 1px #ffdc8b;font:900 16px var(--display);letter-spacing:.02em;padding:16px 21px;min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:16px}.play-button:hover{transform:translateY(-2px)}.event-link{font:800 12px var(--display);color:#e9b2ff;border:1px solid #8f42ba;border-radius:20px;padding:9px 20px;background:#1b082ba8}.haunt-free{display:flex;align-items:center;gap:7px;font:7px var(--mono);letter-spacing:.03em;color:#d1b8da;margin-top:26px}.haunt-free i,.board-badge i{width:5px;height:5px;background:var(--slime);border-radius:50%}.hero-stamp{position:absolute;bottom:20px;right:22px;display:flex;flex-direction:column;gap:4px;text-align:right;padding:10px 16px;background:#120920ce;border:1px solid #784971;border-radius:6px}.hero-stamp span,.hero-stamp small{font:7px var(--mono);color:#c8aed6}.hero-stamp strong{font:800 italic 20px var(--display);color:#ffc46b}.haunt-fog{position:absolute;bottom:-60px;left:-20%;width:140%;height:150px;z-index:-1;background:radial-gradient(ellipse,#b45bdb33,transparent 65%);pointer-events:none;animation:haunt-drift 15s ease-in-out infinite alternate}.embers{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.embers i{position:absolute;bottom:-12px;left:var(--x,10%);width:3px;height:3px;background:#ffb13c;border-radius:50%;box-shadow:0 0 7px #ff8f35;animation:ember-rise 10s linear infinite;animation-delay:var(--delay,0s)}.embers i:nth-child(2){--x:29%;--delay:-4s}.embers i:nth-child(3){--x:55%;--delay:-7s}.embers i:nth-child(4){--x:68%;--delay:-2s}.embers i:nth-child(5){--x:85%;--delay:-6s}.embers i:nth-child(6){--x:94%;--delay:-9s}.haunt-marquee{display:flex;justify-content:space-around;gap:25px;padding:15px 10px;font:800 italic 12px var(--display);color:#b0d46f;border-bottom:1px solid #442557;overflow:hidden;white-space:nowrap;margin-bottom:18px}.haunt-marquee span:nth-child(2n){color:#a27bbd}
.haunt-dashboard{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:16px}.haunt-panel{border:1px solid var(--haunt-line);border-radius:12px;background:linear-gradient(135deg,#1b0d29,#10091c 75%);padding:23px;position:relative;overflow:hidden}.haunt-panel:after{content:'';position:absolute;width:60px;height:2px;background:var(--pumpkin);left:22px;top:0;box-shadow:0 0 12px #f99b4444;pointer-events:none}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.tiny-label{font:6px var(--mono);letter-spacing:.08em;color:#c2a4d3}.haunt-panel h2{font:900 italic 33px/.98 var(--display);letter-spacing:-.01em;margin:14px 0 14px}.haunt-panel p{color:#c4afcf;font-size:12px;line-height:1.7}.featured-haunt{padding:0}.featured-haunt>.section-kicker{position:absolute;top:16px;left:18px;z-index:1;text-shadow:0 2px 5px #000}.featured-art{height:151px;background:linear-gradient(0deg,#190e26,transparent 65%),url('/assets/haunted-spark-hero.jpg') 72% 52%/cover}.featured-copy{padding:0 22px 23px}.mini-tag{font:8px var(--mono);letter-spacing:.13em;color:#b2f64e}.featured-copy h2{font-size:33px}.featured-copy p{margin-bottom:17px}.mint-button,.violet-button{padding:12px 21px;border:1px solid #d5ff7c;background:linear-gradient(#ceff54,#9be124);color:#192003;border-radius:22px;font:900 italic 16px var(--display)}.violet-button{background:linear-gradient(#8b27bd,#5b147e);border-color:#bf6ce1;color:white}.costume-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:20px}.costume-cards button{min-width:0;background:#14081f;border:1px solid #714184;border-radius:8px;padding:0 0 11px;overflow:hidden;transition:transform .2s,border-color .2s}.costume-cards button:hover{transform:translateY(-4px)}.costume-cards button[aria-pressed=true]{border-color:var(--pumpkin);box-shadow:0 0 13px #f28b2b25}.costume-art{display:block;width:100%;height:138px;background-image:url('/assets/haunted-spark-hero.jpg');background-size:auto 310%;border-bottom:1px solid #592b71;margin-bottom:10px}.pumpkin-art{background-position:66% 36%}.ghost-art{background-position:46% 46%}.skeleton-art{background-position:88% 60%}.costume-cards strong{display:block;font:800 20px var(--display);color:white}.costume-cards small{font:600 10px 'DM Sans',sans-serif;color:#cdb6db;display:block;margin-top:3px}.costume-note{font-size:10px!important;line-height:1.6!important;margin:16px 0}.text-button{color:#bf81e0;font:800 12px var(--display);background:none;padding:0;text-decoration:none}.progress-card{display:block;background:linear-gradient(150deg,#251036,#12091e);color:white}.haunt-level{display:flex;justify-content:space-between;align-items:center;margin:23px 0 11px}.haunt-level>span{font:7px var(--mono);color:#a98cbb}.progress-card h3{font:900 44px/.9 var(--display);margin:0;color:white}.xp-track{background:#07050b;border:1px solid #3c234e;height:14px;border-radius:15px;padding:2px;margin:13px 0 10px}.xp-track>div{height:100%;border-radius:12px;background:linear-gradient(90deg,#71d726,#c5ff47);box-shadow:0 0 12px #a2ff4533}.xp-label{font:7px/1.7 var(--mono);color:#baa1cd;gap:8px;margin-bottom:22px}.personal-stats{display:flex;gap:20px;padding:19px 0;border-top:1px solid #4a2b5d;border-bottom:1px solid #4a2b5d;margin-bottom:19px}.personal-stats small{font:7px var(--mono);color:#c8a6dc}.personal-stats b{font:800 28px var(--display);display:block;margin-top:7px;color:#f6eaff}.progress-card .play-button{width:100%;font-size:14px;padding:11px;min-height:42px}.progress-card .save-note{font:7px/1.8 var(--mono);margin-top:14px;color:#bca4ca;display:block}.save-error{color:#ff9a97!important}
.haunt-lower-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin:16px 0}.leaderboard{padding:25px;background:linear-gradient(140deg,#1d102b,#100819);color:white}.board-title{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:17px}.board-title h2{font-size:29px;margin:10px 0 0}.board-badge{font:6px var(--mono);display:flex;align-items:center;gap:6px;color:#b4d77d;margin-top:3px;white-space:nowrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}thead th{padding:10px 8px;color:#b092c6;font:7px var(--mono);text-align:left;border-bottom:1px solid #482858}tbody td{font-size:12px;padding:13px 8px;border-bottom:1px solid #32213f;color:#e2cde9}tbody td:first-child{color:#ffb73e;font-weight:800}tbody tr:first-child td:first-child:not([colspan]):before{content:'♛ ';color:#fabc41}.board-note{font:7px/1.8 var(--mono)!important;color:#947ba5!important;margin:15px 0 0}.empty-board{font-size:11px!important;color:#aa8fbc!important;text-align:left!important}.survival-haunt{padding:29px;display:flex;flex-direction:column;align-items:start;justify-content:center;background:radial-gradient(ellipse at 100% 100%,#62254a60,transparent 65%),#180b24}.survival-haunt h2{font-size:40px;z-index:1}.survival-haunt h2 em{font-style:normal;color:#ffa74a}.survival-haunt p{z-index:1;margin-bottom:22px}.book-glyph{position:absolute;right:16px;bottom:-45px;font:210px/1 var(--display);color:#76398b55;transform:rotate(-15deg);pointer-events:none}
.original-crew{display:grid;grid-template-columns:.9fr 1.1fr;min-height:420px;margin-top:22px;padding:28px 40px;background:radial-gradient(ellipse at 75% 80%,#5c215f55,transparent 55%),#120a1d}.crew-info{align-self:center;max-width:410px}.crew-info h2{font-size:55px;margin:17px 0}.crew-info h2 em{color:var(--slime);font-style:normal}.crew-info>p{font-size:13px;min-height:46px}.crew-info>small{display:block;font-size:10px;color:#a78bbd;line-height:1.7;margin-top:17px}.crew-preview-tabs{display:flex;gap:7px;margin:20px 0}.crew-preview-tabs button{background:#251333;border:1px solid #68427e;border-radius:6px;padding:9px 17px;color:#c4a7d6;font:800 14px var(--display)}.crew-preview-tabs button[aria-pressed=true]{background:#3b223d;color:#ffd384;border-color:#ffb14d}.original-crew .character-stage{position:relative;inset:auto;width:100%;height:390px;min-height:0;align-self:center;overflow:hidden;border:0;background:none}.original-crew #hero-canvas{width:100%;height:100%;display:block;position:relative;inset:auto}.original-crew .specimen{top:20px;right:12px;color:#ab8cbb;font:7px/1.9 var(--mono);text-align:right}.original-crew .specimen b{color:#e2baff}.original-crew .character-tag{left:22px;bottom:36px;background:#1d102dc9;color:#ecdeff;border-color:#674080;transform:rotate(-5deg);font-size:11px}.original-crew .drag-note{bottom:10px;color:#a794b7;font-size:6px;left:0;right:0;text-align:center}.event-details{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:22px;padding:38px 45px;background:radial-gradient(ellipse at 0 100%,#5b24424a,transparent 60%),#12091d}.event-details h2{font-size:47px}.event-details h2 em{font-style:normal;color:#ffa44b}.event-details p{max-width:470px;margin:20px 0 24px;font-size:13px}.event-details .play-button{font-size:14px}.event-ledger{border-left:1px solid #51315e;padding-left:38px;align-self:center}.event-ledger h3{font:800 italic 29px var(--display);color:#e7d4f4;margin:10px 0}.event-ledger>p{font-size:11px;margin:10px 0 19px}.reward-row{display:flex;gap:14px;align-items:center;margin-top:14px}.reward-orb{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid #7f5995;font-size:24px;background:#211330}.mint-orb{color:var(--slime)}.gold-orb{color:#ffc65a}.reward-row strong{font:800 17px var(--display)}.reward-row small{display:block;font:8px var(--mono);color:#a98ebd;margin-top:5px}.event-ledger .event-honesty{font-size:9px;color:#a78bb9;margin-top:22px}footer{background:#08040e;border-color:#412251;color:#a78bbd;max-width:1600px;margin:auto;padding:24px;font-size:8px}.footer-brand{color:#d5f59b;font:900 italic 23px var(--display)}
dialog{background:#160b24;border:1px solid #8a479e;color:#f0dff8;box-shadow:0 0 70px #340a4666}dialog::backdrop{background:#08030bd9;backdrop-filter:blur(5px)}dialog h2{color:#ffd195}dialog .close-modal{color:#d6b6e5}dialog input,dialog select{background:#0d0715!important;color:#eddbf6!important;border-color:#614174!important}.campaign-top{border-color:#57316c}.campaign-top h2{color:#ffb34b;font-style:italic}.campaign-top:before{content:'HALLOWEEN SPECIAL';display:none}#campaign-modal{background:linear-gradient(#210c35e8,#13091ff5),url('/assets/haunted-spark-hero.jpg') center/cover}#chapter-card{background:#180b28de;border-color:#664078}#chapter-card h3{color:#ffd99c}.act-group h3{color:#c5ec82}.level-node{background:#21112f;border-color:#6b3b7c;color:white;min-height:94px;padding:8px 4px}.level-node:before{content:'';display:block;height:31px;width:100%;background:linear-gradient(0deg,#21112f22,#21112f22),url('/assets/haunted-spark-hero.jpg') 70% 55%/auto 340%;border-radius:4px;margin-bottom:6px}.level-node.selected{border-color:#ffac3e;background:#402035}.level-node.locked{opacity:.72}.level-node span{font-size:5px;color:#cfb1de}.level-node.selected span{color:#ffcd73}.act-group:nth-child(2) .level-node:before{background-position:46% 55%}.act-group:nth-child(3) .level-node:before{background-position:88% 62%}.act-group:nth-child(4) .level-node:before{background-position:78% 15%}.objective-box{background:#292032!important;color:#e7d0ec}.game-top,.game-help,.touch-controls{background:#1c1028;border-color:#6b3c78}.game-hud{background:#160a23;color:#ffb04a}.mission-hud{background:#251530;color:#c9f99e;border-color:#623973}.touch-controls button{background:#31163f;border-color:#77458e;color:#f0d7f7}.results{background:#160920f5;color:#f2e3fa}.result-score{color:#ffb13b}.results h2{color:#ceff71}.auth-modal,.account-modal{color:#e9d7f5}.character-roster button{background:#20102e;border-color:#67407e}.character-roster button[aria-pressed=true]{background:#38203f}.account-meta,.account-look,.mission-list>div{border-color:#593269}.account-meta{color:#bc98d0}.xp-label,.manual-note{color:#c0a6d0}.login-provider{background:#2a153b;color:white;border-color:#804897}.character-roster legend{color:#d3b4e9}
@keyframes haunt-drift{from{transform:translateX(-5%)}to{transform:translateX(5%)}}@keyframes ember-rise{0%{transform:translate(0,0);opacity:0}10%{opacity:.8}90%{opacity:.5}100%{transform:translate(40px,-550px);opacity:0}}@media(prefers-reduced-motion:reduce){.haunt-fog,.embers i{animation:none}.embers{display:none}html{scroll-behavior:auto}.play-button,.costume-cards button{transition:none;transform:none!important}}.motion-reduced .haunt-fog,.motion-reduced .embers i{animation:none!important}.motion-reduced .embers{display:none}.motion-reduced{scroll-behavior:auto}.motion-reduced .play-button,.motion-reduced .costume-cards button{transform:none!important}
@media(min-width:1500px){.haunt-hero{min-height:670px}.haunt-hero-copy{padding-top:55px}.haunt-hero h1{font-size:83px}.haunt-hero h1 em{font-size:64px}}@media(max-width:1100px){.haunt-header{gap:12px;padding:14px 20px}.haunt-header nav a,.haunt-header nav button{padding:9px 10px;font-size:10px}.haunt-header .brand{min-width:120px;font-size:22px}.brand em{font-size:26px}.haunt-hero{min-height:560px}.haunt-hero-copy{padding-top:35px;max-width:460px}.haunt-hero h1{font-size:63px}.haunt-hero h1 em{font-size:50px}.haunt-subtitle{font-size:16px}.haunt-dashboard{grid-template-columns:1fr 1.2fr}.haunt-dashboard .progress-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.haunt-dashboard .progress-card>.section-kicker{grid-column:1/-1}.haunt-level{margin:16px 0}.personal-stats{grid-column:2;grid-row:2/5;margin:16px 0}.progress-card .play-button{grid-column:2;grid-row:5}.xp-label{margin-bottom:12px}.hero-stamp{right:15px;bottom:15px}.haunt-panel{padding:20px}.featured-haunt{padding:0}.featured-copy{padding:0 20px 20px}.costume-art{height:150px}.event-details{gap:30px;padding:30px}.event-details h2{font-size:39px}.haunt-hero .play-button{font-size:14px;padding:14px 18px}}
@media(max-width:760px){.haunt-main{padding:0 12px 15px}.haunt-header{height:auto;min-height:80px;padding:14px;flex-wrap:wrap;justify-content:space-between;gap:12px}.haunt-header .brand{margin-right:auto}.haunt-header nav{order:4;display:flex!important;width:100%;justify-content:space-around;gap:0}.haunt-header nav a,.haunt-header nav button{padding:9px 11px;font-size:10px}.haunt-header .header-play{font-size:10px;padding:10px 14px}.music-toggle{padding:8px;font-size:7px}.haunt-hero{padding-top:300px;min-height:auto}.haunt-key-art{height:345px;object-position:83% center}.haunt-shade{background:linear-gradient(0deg,#100819 0%,#100819 38%,transparent 62%)}.haunt-hero-copy{max-width:none;padding:20px 25px 30px}.haunt-eyebrow{margin-top:24px}.haunt-hero h1{font-size:64px;line-height:.9}.haunt-hero h1>span{display:inline}.haunt-hero h1 em{font-size:52px;margin-top:12px}.haunt-subtitle{font-size:17px}.haunt-actions{gap:15px}.haunt-free{font-size:6px;margin-top:22px}.hero-stamp{display:none}.event-ribbon{font-size:17px}.haunt-marquee{justify-content:start;padding:14px 4px;font-size:11px}.haunt-marquee span:nth-child(n+3){display:none}.haunt-dashboard,.haunt-lower-grid{grid-template-columns:1fr}.haunt-dashboard .progress-card{grid-column:auto;display:block}.personal-stats{margin:20px 0}.haunt-panel h2{font-size:35px}.featured-art{height:170px}.featured-copy{padding:0 23px 23px}.costume-art{height:155px}.costume-cards{gap:10px}.costume-cards small{font-size:10px}.survival-haunt{min-height:260px}.original-crew{grid-template-columns:1fr;padding:27px 25px 16px}.crew-info{max-width:none}.crew-info h2{font-size:48px}.original-crew .character-stage{height:360px;order:-1;margin-bottom:20px}.original-crew .character-tag{left:10px;bottom:25px}.crew-info>p{min-height:40px}.event-details{grid-template-columns:1fr;padding:29px 25px;gap:29px}.event-ledger{border-left:0;border-top:1px solid #59326a;padding:27px 0 0}.event-details h2{font-size:42px}.board-title{gap:10px}.board-title h2{font-size:29px}.board-badge{font-size:5px}.board-note{font-size:6px!important}footer{padding:24px 18px;gap:18px;flex-wrap:wrap}#campaign-modal{padding:20px 14px}.campaign-layout{gap:18px}.level-node{min-height:92px}.level-node strong{font-size:16px}.level-node span{font-size:5px}dialog{max-width:calc(100vw - 20px)}.haunt-fog{display:none}}
@media(max-width:380px){.haunt-header .brand{font-size:19px;min-width:110px}.brand em{font-size:24px}.haunt-header .brand-icon{font-size:27px}.haunt-header .header-play{padding:9px 10px}.haunt-header nav a,.haunt-header nav button{padding:8px;font-size:9px}.haunt-hero h1{font-size:54px}.haunt-hero h1 em{font-size:47px}.haunt-hero-copy{padding:20px}.haunt-hero .play-button{font-size:12px;padding:13px}.costume-cards small{font-size:8px}.costume-art{height:130px}.tiny-label{font-size:5px}}
/* Guest practice and seasonal wardrobe use the same compact mobile controls. */
.guest-button{padding:13px 18px;border:1px solid #c5ff72;border-radius:8px;background:#161021;color:#d9ffb1;font:700 12px monospace;cursor:pointer;min-height:44px}.guest-button:hover{background:#293624}.haunt-actions{flex-wrap:wrap}.event-mission{width:100%;padding:18px;text-align:left;color:#fff;background:linear-gradient(120deg,#492245,#231127);border:1px solid #ff9b36;border-radius:12px;cursor:pointer;margin-bottom:18px}.event-mission span,.event-mission small{display:block;margin-top:8px;color:#d1f6ab}.gallery-look{display:block;color:#c8b6d5;font:11px monospace;margin:15px 0}.gallery-look select,#costume-select{display:block;background:#21162d;border:1px solid #715083;color:#fff;padding:10px;margin-top:8px;border-radius:6px;max-width:100%}#guest-signin{font-size:12px}.result-actions{flex-wrap:wrap}[hidden]{display:none!important}
