:root{--night:#070914;--night-2:#0d1022;--ink:#13101a;--plum:#2a1535;--violet:#6d3b87;--mist:#b9c2dc;--parchment:#f0dfbd;--paper:#e8d5ae;--amber:#ff9f32;--ember:#db5d26;--copper:#b96732;--teal:#5fbda9;--danger:#d34e4e;--max:1240px;--display:"Cinzel Decorative",Georgia,serif;--body:"Nunito Sans",system-ui,sans-serif;color-scheme:dark;font-family:var(--body);font-size:16px;background:var(--night);color:#f8edd9;line-height:1.55}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--night)}body{margin:0;min-width:320px;overflow-x:hidden;background:radial-gradient(circle at 50% 10%,#1a1d3a 0,transparent 32rem),var(--night);color:#f8edd9}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.05}h1,h2{font-family:var(--display)}h2{font-size:clamp(2rem,5vw,4.8rem);letter-spacing:-.045em}h2 em,h1 em{font-style:normal;color:var(--amber)}.world-shell{position:relative;min-height:100vh;isolation:isolate}.world-shell>main{min-height:80vh}.ambient-grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.global-fog{position:fixed;z-index:-1;width:80vw;height:20rem;left:-20vw;top:48vh;filter:blur(45px);background:rgba(122,126,169,.08);border-radius:50%;animation:fogDrift 35s linear infinite;pointer-events:none}.skip-link{position:fixed;z-index:1000;left:1rem;top:-5rem;background:var(--parchment);color:var(--ink);padding:.8rem 1.1rem;border-radius:0 0 .5rem .5rem}.skip-link:focus{top:0}.kicker,.eyebrow{display:block;font-size:.72rem;letter-spacing:.24em;font-weight:800;color:#df9e67;text-transform:uppercase}.section-pad{width:min(var(--max),calc(100% - 3rem));margin-inline:auto;padding-block:clamp(5rem,10vw,9rem)}.button-primary,.button-ghost,.button-quiet,.command-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;border:1px solid transparent;border-radius:2px;padding:.9rem 1.5rem;text-transform:uppercase;letter-spacing:.13em;font-size:.76rem;font-weight:900;cursor:pointer;transition:.25s ease}.button-primary{background:linear-gradient(135deg,#f5ad47,#d96c2b);color:#17101a;box-shadow:0 0 40px rgba(255,141,39,.22)}.button-primary:hover{transform:translateY(-2px);box-shadow:0 0 55px rgba(255,141,39,.38)}.button-ghost{border-color:rgba(240,223,189,.35);background:rgba(8,9,20,.34);color:#f8edd9}.button-ghost:hover{border-color:var(--amber);background:rgba(255,159,50,.08)}.button-quiet{border-color:rgba(255,255,255,.15);background:none}.text-link{display:inline-flex;gap:.65rem;align-items:center;border-bottom:1px solid rgba(255,159,50,.5);padding:.35rem 0;color:#ffc36d;text-transform:uppercase;font-size:.74rem;letter-spacing:.12em;font-weight:800}.text-link span{transition:transform .2s}.text-link:hover span{transform:translateX(5px)}

/* Navigation */
.world-header{position:fixed;z-index:90;inset:0 0 auto;height:76px;padding:0 clamp(1rem,3vw,3rem);display:flex;align-items:center;gap:2rem;background:linear-gradient(180deg,rgba(5,6,14,.94),rgba(5,6,14,.72) 70%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:.75rem;white-space:nowrap}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-family:var(--display);font-size:.84rem;letter-spacing:.1em;color:#ffd28d}.brand small{font-size:.54rem;letter-spacing:.18em;color:#9ea4bd}.brand-moon{position:relative;width:30px;height:30px;border-radius:50%;background:#ffd78d;box-shadow:0 0 25px rgba(255,196,100,.5)}.brand-moon:after{content:"";position:absolute;background:#111428;width:28px;height:28px;border-radius:50%;left:10px;top:-4px}.nav-links{display:flex;align-items:center;gap:clamp(.45rem,1.25vw,1.4rem)}.desktop-links{margin-left:auto}.nav-links a{position:relative;padding:.55rem .12rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:#c9c8d3;font-weight:800;white-space:nowrap}.nav-links a:after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--amber);transition:.25s}.nav-links a:hover,.nav-links a.active{color:#fff0d5}.nav-links a.active:after{left:0;right:0}.tracker-link{color:#ffc26c!important}.passport-link{border:1px solid rgba(255,188,95,.35);padding:.55rem .7rem!important}.pulse-dot{display:inline-block;width:7px;height:7px;margin-right:.35rem;border-radius:50%;background:#f78042;box-shadow:0 0 0 0 rgba(247,128,66,.65);animation:pulse 2s infinite}.header-tools{display:flex;gap:.4rem}.round-tool,.menu-button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);width:38px;height:38px;display:grid;place-items:center;border-radius:50%;cursor:pointer}.round-tool svg{width:18px;fill:#d5d3dc}.menu-button{display:none}.menu-button span{display:block;width:17px;height:1px;background:#fff;margin:2px}.preference-panel{position:absolute;right:1rem;top:68px;width:min(330px,calc(100vw - 2rem));padding:1.3rem;background:rgba(15,14,29,.98);border:1px solid rgba(255,170,70,.35);box-shadow:0 22px 70px #000;border-radius:4px}.preference-panel header{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.8rem;margin-bottom:.8rem}.preference-panel header button{border:0;background:none;font-size:1.5rem}.preference-panel label{display:flex;gap:.6rem;padding:.5rem 0;font-size:.9rem}.preference-panel small{display:block;color:#9c9baa;margin-top:.5rem}.mobile-nav{display:none}

/* Hero */
.hero-night{position:relative;height:max(760px,100svh);min-height:680px;overflow:hidden;display:grid;place-items:center;background:#090b18}.hero-art{position:absolute;inset:-3%;background:url('/art/berg-en-bos-night.png') center/cover no-repeat;filter:saturate(.85) contrast(1.05);transform:scale(1.035);animation:heroBreathe 14s ease-in-out infinite alternate}.hero-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,14,.62),transparent 35%,transparent 65%,rgba(5,5,14,.48)),linear-gradient(180deg,rgba(5,6,14,.4),transparent 35%,rgba(5,6,14,.78));}.moon-halo{position:absolute;left:60%;top:10%;width:14rem;height:14rem;border-radius:50%;background:rgba(181,192,255,.1);filter:blur(35px);animation:moonPulse 8s ease-in-out infinite}.cloud{position:absolute;width:38rem;height:8rem;background:radial-gradient(ellipse,rgba(91,98,146,.22),transparent 65%);filter:blur(16px)}.cloud-one{top:12%;left:-10rem;animation:cloudMove 45s linear infinite}.cloud-two{top:22%;right:-8rem;animation:cloudMove 58s linear infinite reverse}.hero-fog{position:absolute;height:10rem;width:70vw;background:radial-gradient(ellipse,rgba(199,206,224,.22),transparent 67%);filter:blur(24px);opacity:.45}.fog-one{left:-15%;bottom:7%;animation:fogDrift 29s linear infinite}.fog-two{right:-25%;bottom:18%;animation:fogDrift 38s linear infinite reverse}.hero-copy{position:relative;z-index:3;text-align:center;width:min(820px,calc(100% - 2rem));margin-top:3rem;text-shadow:0 3px 20px #050611}.hero-copy .eyebrow{color:#f5c37b;margin-bottom:1.1rem}.hero-copy h1{margin:0;display:flex;flex-direction:column;align-items:center}.hero-copy h1 span{font-size:clamp(3.2rem,8.5vw,7.8rem);letter-spacing:.04em;color:#f5e8c9;text-shadow:0 4px 0 #3c1e37,0 8px 30px #000}.hero-copy h1 strong{font-size:clamp(2rem,5vw,4.9rem);letter-spacing:.07em;color:#ffad3e;text-shadow:0 3px 0 #672c23,0 8px 28px #000}.hero-copy h1 em{font-family:var(--body);font-size:clamp(.92rem,2vw,1.2rem);font-style:normal;letter-spacing:.55em;padding-left:.55em;margin-top:.6rem;color:#f1d7b0}.hero-whisper{font-family:Georgia,serif;font-size:clamp(1rem,2vw,1.25rem);font-style:italic;color:#dad9e3;margin:1.4rem 0}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:clamp(.45rem,2vw,1.5rem);margin:1.5rem auto 1.7rem}.countdown div{display:flex;flex-direction:column;min-width:3rem}.countdown strong{font-size:clamp(1.6rem,4vw,2.65rem);font-weight:400;font-variant-numeric:tabular-nums}.countdown span{font-size:.57rem;text-transform:uppercase;letter-spacing:.15em;color:#b7b5c4}.countdown b{font-size:1.5rem;color:#9b5c55;font-weight:400}.enter-world{margin:auto;display:flex;align-items:center;gap:1.2rem;min-height:58px;border:1px solid #f7b15c;background:linear-gradient(135deg,rgba(255,171,64,.95),rgba(197,75,31,.95));padding:.8rem .9rem .8rem 1.8rem;color:#160f19;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:900;cursor:pointer;box-shadow:0 0 0 5px rgba(255,153,51,.07),0 0 55px rgba(250,115,33,.25);transition:.25s}.enter-world i{font-style:normal;font-size:1.4rem;border-left:1px solid rgba(0,0,0,.2);padding-left:.9rem}.enter-world:hover{transform:scale(1.035);box-shadow:0 0 70px rgba(250,115,33,.45)}.live-shortcut{display:block;margin-top:1rem;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#d8d5df}.scroll-cue{position:absolute;bottom:1.3rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:#aaa9b8}.scroll-cue span{width:1px;height:28px;margin-bottom:.45rem;background:linear-gradient(#f5a048,transparent);animation:scroll 2s infinite}.bat-swarm i{position:absolute;z-index:2;width:24px;height:9px;border-radius:50% 50% 0 0;border-top:3px solid #080812;filter:drop-shadow(0 3px 2px #000);animation:batFly 16s linear infinite}.bat-swarm i:nth-child(1){top:20%;left:-5%;}.bat-swarm i:nth-child(2){top:28%;left:-9%;animation-delay:5s;transform:scale(.6)}.bat-swarm i:nth-child(3){top:14%;left:-12%;animation-delay:10s;transform:scale(.8)}.floating-leaves i{position:absolute;z-index:4;top:-10%;width:13px;height:8px;border-radius:90% 0;background:#b94d24;animation:leafFall 13s linear infinite}.floating-leaves i:nth-child(1){left:8%}.floating-leaves i:nth-child(2){left:28%;animation-delay:3s}.floating-leaves i:nth-child(3){left:54%;animation-delay:6s}.floating-leaves i:nth-child(4){left:76%;animation-delay:8s}.floating-leaves i:nth-child(5){left:91%;animation-delay:11s}

/* Modal and shared experiences */
.portal-overlay{position:fixed;z-index:200;inset:0;background:rgba(3,4,12,.85);backdrop-filter:blur(12px);display:grid;place-items:center;padding:1rem}.portal-dialog{position:relative;width:min(580px,100%);padding:clamp(2rem,6vw,4rem);text-align:center;background:radial-gradient(circle at 50% 10%,#312041,#121221 54%,#090a15);border:1px solid rgba(255,175,72,.38);box-shadow:0 30px 120px #000,0 0 60px rgba(202,96,35,.12)}.portal-dialog:before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.06);pointer-events:none}.dialog-close{position:absolute;right:1rem;top:1rem;width:42px;height:42px;border:0;background:none;font-size:1.8rem;cursor:pointer}.portal-dialog h2{font-size:clamp(2rem,6vw,3.4rem);margin:1rem 0}.portal-dialog p{color:#c6c3ce}.portal-actions{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.portal-actions button{display:flex;flex-direction:column}.portal-actions small{font-size:.57rem;letter-spacing:.05em;text-transform:none;margin-top:.2rem}.lantern-orbit{height:55px;display:grid;place-items:center}.lantern-orbit span{width:25px;height:35px;border:2px solid #d08336;border-radius:4px;background:#ffc563;box-shadow:0 0 30px #ff8e2c;animation:lantern 3s ease-in-out infinite}.event-alert{position:relative;z-index:5;width:min(var(--max),calc(100% - 2rem));margin:1rem auto -1rem;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;border:1px solid rgba(255,163,58,.4);background:#26172a}.event-alert p{margin:0}.safety-alert{background:#491d21;border-color:#ef765f}.whisper-loader{min-height:18rem;display:grid;place-items:center;align-content:center;gap:1rem;color:#b8b6c7}.lantern-loader{display:block;width:28px;height:38px;background:#f6b552;border:2px solid #9d612d;box-shadow:0 0 35px #e57835;border-radius:4px;animation:lantern 2s ease-in-out infinite}

/* Homepage content */
.story-intro{display:grid;grid-template-columns:1.03fr .97fr;gap:clamp(2rem,7vw,7rem);align-items:center}.story-copy h2{margin:.8rem 0 1.5rem}.story-copy .lead{font-size:1.25rem;color:#e5dbc9}.story-copy>p:not(.lead){color:#aeadbc;max-width:60ch}.story-copy blockquote{position:relative;margin:3rem 0 0;padding:1.5rem 1.5rem 1.5rem 2rem;background:linear-gradient(90deg,rgba(255,153,51,.09),transparent);border-left:2px solid var(--amber);font-family:Georgia,serif;font-size:1.05rem;font-style:italic;color:#ddd1c2}.story-copy cite{display:block;margin-top:.8rem;font-family:var(--body);font-size:.65rem;font-style:normal;letter-spacing:.12em;color:#c27f4b}.ranger-scene{position:relative;height:650px;display:grid;align-items:end;justify-items:center;overflow:hidden}.ranger-scene img{position:relative;z-index:2;height:630px;width:auto;object-fit:contain;filter:drop-shadow(0 20px 30px #000)}.ranger-glow{position:absolute;width:25rem;height:25rem;bottom:8rem;border-radius:50%;background:radial-gradient(circle,rgba(255,152,44,.25),transparent 65%);filter:blur(10px)}.ranger-label{position:absolute;z-index:3;bottom:1.5rem;right:0;padding:1rem 1.3rem;background:rgba(10,10,20,.9);border-left:2px solid var(--amber);font-family:var(--display);font-size:.92rem}.ranger-label small{display:block;font-family:var(--body);font-size:.55rem;letter-spacing:.12em;color:#c7814b;margin-bottom:.2rem}.meter-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:5rem;align-items:center;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}.meter-copy h2{font-size:clamp(2rem,4.5vw,4rem);margin:.6rem 0}.meter-copy p{color:#aeadbc}.monster-meter{padding:2rem;background:radial-gradient(circle at 50% 50%,rgba(92,59,117,.22),transparent)}.meter-numbers{display:flex;align-items:baseline;gap:.6rem}.meter-numbers strong{font-size:clamp(2.5rem,7vw,5rem);color:#ffbf62;font-weight:300;font-variant-numeric:tabular-nums}.meter-numbers span{font-size:.63rem;letter-spacing:.13em;color:#b8b3c2}.meter-track{position:relative;height:16px;background:#141528;border:1px solid #3e3650;box-shadow:inset 0 2px 8px #000}.meter-track span{display:block;width:var(--meter);height:100%;background:linear-gradient(90deg,#6b3986,#e35d32,#ffc15b);box-shadow:0 0 25px #ec6c35}.meter-track i{position:absolute;left:var(--meter);top:50%;width:30px;height:30px;transform:translate(-50%,-50%);background:#ffd47c;border-radius:50%;box-shadow:0 0 30px #ff7133}.monster-meter>small{display:block;margin-top:.8rem;color:#9896a7}.section-heading{text-align:center;margin-bottom:3rem}.section-heading h2{margin:.6rem}.portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.world-card{position:relative;min-height:390px;padding:1.6rem;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:linear-gradient(160deg,#1c172c,#0e1020);border:1px solid rgba(255,255,255,.08);transition:.35s}.world-card:after{content:"";position:absolute;inset:auto 0 0;height:65%;background:linear-gradient(transparent,rgba(3,4,10,.75));z-index:0}.world-card>*{position:relative;z-index:1}.world-card:hover{transform:translateY(-8px);border-color:rgba(255,170,70,.45);box-shadow:0 25px 60px rgba(0,0,0,.35)}.world-card h3{font-family:var(--display);font-size:1.5rem;margin:.5rem 0}.world-card p{font-size:.88rem;color:#b9b6c3}.world-card>strong{color:#ffc063;font-size:.65rem;letter-spacing:.1em}.card-number{position:absolute;left:1rem;top:1rem;color:#777387;font-size:.65rem}.tracker-card{background:radial-gradient(circle at 50% 30%,rgba(79,152,140,.35),transparent 35%),linear-gradient(160deg,#11282d,#0c101f)}.quest-card{background:radial-gradient(circle at 50% 28%,rgba(255,142,48,.3),transparent 31%),linear-gradient(160deg,#2a1a29,#0d0e1c)}.game-card{background:radial-gradient(circle at 50% 25%,rgba(139,69,167,.4),transparent 35%),linear-gradient(160deg,#24163c,#0d0e1c)}.news-card{background:linear-gradient(155deg,#634d36,#241b1b)}.tracker-radar{position:absolute!important;left:50%;top:17%;width:150px;height:150px;transform:translateX(-50%);border:1px solid rgba(107,230,203,.4);border-radius:50%;box-shadow:0 0 50px rgba(56,214,183,.12)}.tracker-radar:before,.tracker-radar:after{content:"";position:absolute;inset:25%;border:1px solid rgba(107,230,203,.28);border-radius:50%}.tracker-radar:after{inset:48%}.tracker-radar i{position:absolute;left:50%;bottom:50%;width:1px;height:50%;background:linear-gradient(transparent,#6fe0c8);transform-origin:bottom;animation:radar 4s linear infinite}.tracker-radar b{position:absolute;width:8px;height:8px;left:68%;top:35%;border-radius:50%;background:#ffb950;box-shadow:0 0 15px #ff8637;animation:pulse 2s infinite}.lantern-icon{width:55px;height:75px;margin:0 auto 5rem;border:3px solid #9b5e34;background:#ffc060;box-shadow:0 0 55px #e97235;border-radius:8px}.pumpkin-icon{margin:auto auto 5rem;width:90px;height:70px;display:grid;place-items:center;font-size:2rem;border-radius:48%;background:#d96a2c;box-shadow:0 0 35px #d84627}.paper-stack{height:130px;margin-bottom:3rem;background:linear-gradient(160deg,#ddc69c,#b79b70);transform:rotate(-3deg);box-shadow:6px 8px 0 #59452e}.latest-dispatch{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:5rem}.dispatch-title h2{margin:.7rem 0 1rem}.dispatch-title p{max-width:52ch;color:#b8b6c2}.wolf-portrait{position:relative;max-height:460px;overflow:hidden;border:1px solid rgba(255,187,91,.25)}.wolf-portrait img{width:100%;height:460px;object-fit:cover;object-position:center 35%}.wolf-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,#090a14)}.wolf-portrait span{position:absolute;z-index:2;bottom:1.5rem;left:1.5rem;font-family:var(--display);font-size:1.4rem}.wolf-portrait small{display:block;font-family:var(--body);font-size:.55rem;letter-spacing:.15em;color:#f5a349}.safe-note{display:grid;grid-template-columns:auto 1.2fr 1fr;gap:2rem;align-items:center;border-top:1px solid rgba(255,255,255,.08)}.safe-mark,.shield-moon{width:86px;height:86px;display:grid;place-items:center;border:1px solid #b57640;border-radius:50%;font-family:var(--display);font-size:2rem;color:#ffc06c;box-shadow:inset 0 0 25px rgba(255,133,41,.15)}.safe-note h2{font-size:clamp(1.6rem,3vw,2.8rem);margin:.4rem 0}.safe-note p{color:#aaa8b7}.safe-note .text-link{grid-column:2}

/* Inner page heroes */
.page-hero{position:relative;min-height:450px;padding:135px max(1.5rem,calc((100% - var(--max))/2)) 60px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;background:radial-gradient(circle at 80% 35%,rgba(112,61,131,.26),transparent 28rem),linear-gradient(145deg,#11132a,#090a16 70%);border-bottom:1px solid rgba(255,255,255,.07)}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgba(221,102,40,.04));pointer-events:none}.page-hero>div:first-child{position:relative;z-index:2;max-width:800px}.page-hero h1{font-size:clamp(3rem,8vw,7rem);margin:.6rem 0 1rem;letter-spacing:-.06em}.page-hero p{max-width:54ch;color:#b8b6c5;font-size:1.08rem}.tracker-hero{background:radial-gradient(circle at 80%,rgba(64,161,141,.2),transparent 30rem),#090d18}.monster-meter-mini{position:relative;z-index:2;display:flex;flex-direction:column;padding:1.4rem 2rem;border:1px solid rgba(103,221,197,.35);background:rgba(10,27,31,.75)}.monster-meter-mini span{font-size:.55rem;letter-spacing:.2em;color:#7bd1bd}.monster-meter-mini strong{font-family:var(--display);font-size:1.25rem}.moon-clock{position:relative;width:170px;height:170px;border-radius:50%;display:flex!important;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 40% 35%,#ffe6ab,#e8a056);color:#2b1727;box-shadow:0 0 80px rgba(247,175,85,.3)}.moon-clock span{font-family:var(--display);font-size:4rem;line-height:.9}.moon-clock small{font-weight:900;letter-spacing:.3em}.paper-moon{width:220px;height:170px;background:var(--paper);transform:rotate(5deg);box-shadow:12px 14px 0 rgba(98,63,44,.5)}.paper-moon:after{content:"NACHTBODE";display:block;color:#2a1e1d;border:4px double #4d382a;margin:1rem;padding:2.5rem 1rem;font-family:var(--display);font-size:1.1rem}.book-emblem{width:160px;height:190px;border-radius:4px 18px 18px 4px;display:grid;place-items:center;background:#38223e;border:2px solid #bc7c43;box-shadow:12px 12px 0 #090a13,0 0 60px rgba(145,71,148,.25)}.book-emblem span{width:85px;height:85px;border:1px solid #c68c50;border-radius:50%;display:grid;place-items:center;font-family:var(--display);color:#ffc977}.door-silhouette{width:170px;height:230px;border:7px solid #33233b;border-bottom:0;border-radius:80px 80px 0 0;background:#070810;box-shadow:0 0 70px rgba(255,131,41,.13)}.door-silhouette i{display:block;width:8px;height:8px;background:#ffae49;border-radius:50%;margin:135px 0 0 125px;box-shadow:0 0 25px #ff8c31}.pass-visual{position:relative;width:270px;height:170px;padding:1.5rem;border-radius:8px;transform:rotate(4deg);background:linear-gradient(135deg,#4d2859,#1c1a35);border:1px solid #d68c45;box-shadow:0 20px 50px #000}.pass-visual span{display:grid;place-items:center;width:65px;height:65px;border:1px solid #edaf59;border-radius:50%;font-family:var(--display);color:#ffc975}.pass-visual i{position:absolute;right:1rem;top:1rem;width:60px;height:60px;background:repeating-linear-gradient(90deg,#ddd 0 3px,transparent 3px 6px)}.pass-visual small{position:absolute;left:1.5rem;bottom:1.2rem;letter-spacing:.11em}.games-hero{background:radial-gradient(circle at 78%,rgba(178,73,156,.27),transparent 28rem),#100c21}.game-orbit{position:relative;width:220px;height:220px;border:1px solid rgba(197,110,209,.3);border-radius:50%;animation:radar 16s linear infinite}.game-orbit i{position:absolute;width:44px;height:44px;border-radius:50%;background:#c9673a;box-shadow:0 0 28px #e75436}.game-orbit i:nth-child(1){left:15px;top:20px}.game-orbit i:nth-child(2){right:0;top:80px;background:#7b4c9b}.game-orbit i:nth-child(3){left:65px;bottom:-8px;background:#e2ac57}

/* Tracker */
.tracker-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:720px;background:#090b15}.map-wrap{position:relative;min-height:720px;overflow:hidden}.monster-map{position:absolute;inset:0;background:#11182a}.monster-map .maplibregl-canvas{filter:saturate(.55) sepia(.15) hue-rotate(178deg) brightness(.65)}.map-fog{position:absolute;inset:auto -20% 0;height:45%;z-index:2;pointer-events:none;background:radial-gradient(ellipse,rgba(168,177,203,.22),transparent 68%);filter:blur(30px);animation:fogDrift 30s linear infinite}.map-status{position:absolute;z-index:3;left:1rem;top:1rem;padding:.65rem .9rem;background:rgba(7,13,22,.9);border:1px solid rgba(92,193,171,.4);font-size:.6rem;letter-spacing:.12em}.map-actions{position:absolute;z-index:4;right:1rem;top:1rem}.map-locate{min-height:48px;border:1px solid rgba(255,176,74,.5);background:rgba(15,14,27,.93);padding:.7rem 1rem;cursor:pointer;font-size:.75rem;font-weight:800}.map-locate span{font-size:1.2rem;color:#ffc368}.map-legend{position:absolute;z-index:3;left:1rem;bottom:1rem;display:flex;gap:1rem;align-items:center;padding:.7rem .9rem;background:rgba(7,9,18,.9);font-size:.62rem}.map-legend span{display:flex;gap:.35rem;align-items:center}.map-legend i{width:9px;height:9px;border-radius:50%}.legend-house{background:#f5a44a}.legend-monster{background:#6dcbb8;box-shadow:0 0 0 5px rgba(109,203,184,.2)}.legend-help{background:#bd80cf}.tracker-sidebar{padding:2rem;background:linear-gradient(160deg,#141326,#0a0b15);border-left:1px solid rgba(255,255,255,.07)}.tracker-reading{margin:1rem 0 2rem;padding:1.4rem;background:radial-gradient(circle at 50%,rgba(65,169,146,.18),transparent),#0c151c;border:1px solid rgba(78,191,167,.3);text-align:center}.tracker-reading small{letter-spacing:.16em;color:#72cbb7}.tracker-reading strong{display:block;font-family:var(--display);font-size:1.4rem;margin:.5rem}.tracker-reading p{color:#b1bdc0;font-size:.86rem}.tracker-reading.sleeping{filter:saturate(.5)}.direction-arrow{display:block;font-size:3rem;color:#ffa44b;filter:drop-shadow(0 0 12px #e56235)}.tracker-reading b{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.house-list header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.08)}.house-list h2{font-family:var(--body);font-size:1rem;letter-spacing:.04em}.house-list header span{font-size:.65rem;color:#8ccfbd}.house-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;text-align:left;gap:.8rem;align-items:center;padding:1rem 0;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:none;cursor:pointer}.house-sigil{width:38px;height:38px;display:grid;place-items:center;border:1px solid #754e38;color:#ffb15b}.house-row span:nth-child(2){display:flex;flex-direction:column}.house-row small{color:#8f8d9b;font-size:.65rem}.house-row i{font-style:normal;color:#cb8551}.privacy-note{margin-top:2rem;padding:1rem;border-left:2px solid #6ab7a8;background:rgba(80,164,147,.07)}.privacy-note strong{font-size:.78rem}.privacy-note p{font-size:.73rem;color:#aaaeb9;margin:.4rem 0}.halloween-house-marker{width:28px;height:34px;background:#f29a3d;clip-path:polygon(50% 0,100% 35%,90% 100%,10% 100%,0 35%);border:2px solid #ffe0a1;filter:drop-shadow(0 0 8px #ff7b30)}

/* Program and news */
.phase-strip{display:flex;align-items:center;justify-content:center;gap:1rem;color:#777584;font-size:.63rem;letter-spacing:.15em}.phase-strip i{width:12vw;height:1px;background:rgba(255,255,255,.1)}.phase-strip strong{color:#ffc268}.timeline{max-width:900px;margin:4rem auto}.timeline-item{display:grid;grid-template-columns:90px 20px 1fr;gap:1.2rem;position:relative}.timeline-item>time{font-size:1.25rem;color:#c5b6a8;padding-top:.8rem}.timeline-dot{position:relative;width:15px;height:15px;margin-top:1rem;border:2px solid #aa7044;border-radius:50%;background:var(--night);z-index:2}.timeline-item:not(:last-child) .timeline-dot:after{content:"";position:absolute;top:13px;left:5px;width:1px;height:calc(100% + 8rem);background:linear-gradient(#77513c,rgba(119,81,60,.1))}.timeline-item>div{margin-bottom:2.5rem;padding:1.5rem 2rem;background:linear-gradient(90deg,rgba(255,255,255,.045),transparent);border-left:1px solid rgba(255,181,80,.2)}.timeline-item h2{font-family:var(--body);font-size:1.4rem;margin:.2rem 0}.timeline-item p{color:#a7a5b3}.timeline-item div>span,.timeline-item small{font-size:.62rem;letter-spacing:.12em;color:#c17a49}.timeline-item.is-now .timeline-dot{background:#ffb44c;box-shadow:0 0 25px #f06c33}.timeline-item.is-now>div{border-color:#ffad48;background:linear-gradient(90deg,rgba(255,147,49,.12),transparent)}.cancelled{opacity:.5;text-decoration:line-through}.ranger-tip{display:flex;align-items:center;gap:1.5rem;max-width:720px;margin:2rem auto;padding:1.5rem;background:#171426;border:1px solid rgba(255,164,68,.2)}.ranger-tip img{width:110px;height:110px;object-fit:cover;object-position:top;border-radius:50%;filter:drop-shadow(0 0 16px rgba(255,138,45,.25))}.ranger-tip p{font-family:Georgia,serif;font-style:italic;margin:.4rem 0}.announcements{padding:2rem;margin-bottom:4rem;border:1px solid rgba(113,190,174,.3);background:rgba(48,114,105,.08)}.announcements>header{display:flex;gap:1rem;align-items:center;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:1rem}.official-seal{width:45px;height:45px;display:grid;place-items:center;border:1px solid #75c0b0;border-radius:50%;color:#82d3c1;font-size:1.4rem}.announcements h2{font-family:var(--body);font-size:1.4rem;margin:.2rem 0}.announcements article{display:grid;grid-template-columns:100px 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid rgba(255,255,255,.06)}.announcements article:last-child{border:0}.announcements time{font-size:.72rem;color:#6eb7a7}.announcements h3{font-size:1.05rem;margin:0}.announcements p{margin:.3rem 0;color:#aaaebb}.newspaper{position:relative;padding:clamp(1.5rem,5vw,4rem);background:var(--paper);color:#2b211f;box-shadow:0 35px 100px #000;transform:rotate(-.25deg)}.newspaper:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.5' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.newspaper>header{text-align:center;border-top:4px double #3f3028;border-bottom:4px double #3f3028;padding:1rem}.newspaper>header span{font-family:Georgia,serif}.newspaper>header h2{font-family:var(--display);font-size:clamp(2.2rem,7vw,5.5rem);margin:0;letter-spacing:.05em}.newspaper>header small{letter-spacing:.16em;font-size:.55rem}.newspaper-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;padding-top:2rem}.paper-article h3{font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,3rem);line-height:.95;margin:.4rem 0 1rem}.paper-article p{font-family:Georgia,serif;font-size:1rem}.paper-article time,.paper-category{font-size:.58rem;letter-spacing:.12em;font-weight:bold}.reactions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.2rem}.reactions button{border:1px solid #9b8265;background:transparent;color:#33251e;padding:.45rem .65rem;font-size:.65rem;cursor:pointer}.reactions button:hover{background:#34251f;color:#f0dfbd}.reactions b{margin-left:.3rem}.paper-ad{border:4px double #3d3028;padding:2rem;text-align:center;align-self:start}.paper-ad span{font-size:.65rem;letter-spacing:.4em}.paper-ad strong{display:block;font-family:var(--display);font-size:2rem;margin:.8rem}.paper-ad small{font-weight:bold}

/* Book */
.monster-book{position:relative}.book-spine{position:absolute;left:50%;top:9rem;bottom:9rem;width:1px;background:linear-gradient(transparent,#5b3a3e,transparent)}.book-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 0 2rem;border-bottom:1px solid rgba(255,255,255,.08)}.book-toolbar>div{display:flex;align-items:baseline;gap:.6rem}.book-toolbar strong{font-family:var(--display);font-size:2rem;color:#ffc069}.book-toolbar span,.book-toolbar label{font-size:.7rem;letter-spacing:.1em;color:#9896a5}.book-toolbar select{margin-left:.6rem;background:#121321;border:1px solid #403846;padding:.5rem;color:#eee}.monster-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.monster-entry{display:grid;grid-template-columns:160px 1fr;gap:1.5rem;padding:3rem;border-bottom:1px solid rgba(255,255,255,.07)}.monster-entry:nth-child(odd){padding-left:0;padding-right:4rem}.monster-entry:nth-child(even){padding-right:0;padding-left:4rem}.portrait-frame{position:relative;height:210px;overflow:hidden;border:1px solid #6a4637;background:#171322}.portrait-frame img{width:100%;height:100%;object-fit:cover}.sigil-portrait{display:grid;place-items:center;background:radial-gradient(circle,#4f2856,#171322 65%)}.sigil-portrait>span{font-family:var(--display);font-size:3rem;color:#d59055}.sigil-portrait i{position:absolute;inset:16px;border:1px solid rgba(222,148,79,.3);border-radius:50%}.rarity{position:absolute;bottom:0;left:0;right:0;padding:.35rem;background:rgba(6,6,13,.86);text-align:center;text-transform:uppercase;letter-spacing:.1em;color:#bfb4a9}.rarity.rare{color:#dc9ef0}.rarity.legendary{color:#ffd068}.entry-copy>span{font-size:.57rem;letter-spacing:.12em;color:#c17b4d}.entry-copy h2{font-size:1.45rem;margin:.4rem 0 .7rem}.entry-copy p{font-size:.84rem;color:#aaa8b6}.entry-copy dl{display:grid;grid-template-columns:60px 1fr;margin:1rem 0;font-size:.67rem}.entry-copy dt{color:#7e7b8c}.entry-copy dd{margin:0;color:#d9d1c8}.secret-entry{filter:saturate(.4)}.book-callout{margin-top:4rem;padding:3rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;background:linear-gradient(90deg,#2f1c37,#151426);border:1px solid #764c55}.book-callout h2{font-size:1.6rem;margin:0}.book-callout p{margin:0;color:#aaa5b4}.stamp{width:90px;height:90px;display:grid;place-items:center;border:2px solid #cf8650;border-radius:50%;font-size:.58rem;text-align:center;transform:rotate(-8deg);color:#e19c64}

/* Join and forms */
.join-choices{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem}.join-choices button{min-height:145px;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.09);background:#111221;cursor:pointer}.join-choices button.active{border-color:#e7974c;background:radial-gradient(circle at 50%,rgba(217,103,52,.18),transparent),#1b1526;transform:translateY(-5px)}.join-choices button>span{font-size:1.6rem;color:#ef9e52}.join-choices strong{font-family:var(--display);font-size:.78rem;margin:.5rem 0}.join-choices small{font-size:.63rem;color:#8d8b9b}.join-form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;padding:5rem 0}.join-form-wrap aside h2{font-size:2.5rem;margin:.6rem 0}.join-form-wrap aside p,.join-form-wrap aside li{color:#aaa8b5}.join-form-wrap aside ul{padding-left:1.1rem}.join-form-wrap aside li{padding:.25rem}.world-form{display:grid;gap:1.1rem}.world-form label{display:flex;flex-direction:column;gap:.4rem;color:#c4bfca;font-size:.74rem;font-weight:700;letter-spacing:.04em}.world-form label>span{font-weight:400;color:#858391}.world-form input,.world-form textarea,.world-form select,.inline-form input,.inline-form select,.create-family input,.command-grid textarea,.command-grid select{width:100%;border:1px solid #3d3749;background:rgba(5,6,14,.58);padding:.85rem 1rem;color:#f4eadb;outline:none;border-radius:2px}.world-form input:focus,.world-form textarea:focus,.world-form select:focus{border-color:#e9914c;box-shadow:0 0 0 3px rgba(233,145,76,.12)}.world-form fieldset{border:0;padding:0;margin:0}.world-form legend{font-size:.74rem;color:#c4bfca;margin-bottom:.6rem}.chip-options,.check-grid{display:flex;flex-wrap:wrap;gap:.5rem}.chip-options label{display:block}.chip-options input{position:absolute;opacity:0;width:1px}.chip-options span{display:block;border:1px solid #3c3747;padding:.6rem .8rem;cursor:pointer}.chip-options input:checked+span{border-color:#ee9a4b;background:rgba(238,154,75,.12);color:#ffd18e}.world-form .consent{flex-direction:row;align-items:flex-start}.consent input{width:19px;height:19px;flex:0 0 auto;accent-color:#e88b45}.form-message{padding:.8rem 1rem;border-left:2px solid #c85050;background:rgba(190,58,58,.08)}.form-message.success{border-color:#61b89f;background:rgba(72,169,141,.08)}.resident-door{padding:2rem 2.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;background:linear-gradient(90deg,#25172d,#12121f);border:1px solid rgba(255,155,60,.2)}.resident-door h2{font-size:1.8rem;margin:.4rem 0}.resident-door p{color:#a6a3b1;margin:0}

/* Games */
.game-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}.game-tabs button{min-height:105px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr 1fr;text-align:left;align-items:end;column-gap:.8rem;padding:1rem;border:1px solid rgba(255,255,255,.08);background:#111221;cursor:pointer}.game-tabs button.active{border-color:#a85fb2;background:#21142d}.game-tabs button>span{grid-row:1/3;width:50px;height:50px;align-self:center}.game-tabs strong{font-family:var(--display);font-size:.8rem}.game-tabs small{color:#8e8b9c}.mini-ghost{border-radius:50% 50% 10% 10%;background:#c4c2de}.mini-pumpkin{border-radius:45%;background:#d96b2d}.mini-moon{border:2px solid #e6c476;border-radius:50%}.game-cabinet{border:1px solid #55395e;background:linear-gradient(160deg,#1a1026,#0a0b17);box-shadow:0 35px 80px #000}.game-cabinet>header,.game-cabinet>footer{min-height:55px;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:.63rem;letter-spacing:.12em}.game-cabinet>header div{display:flex;gap:1.5rem;color:#efb15d;font-variant-numeric:tabular-nums}.game-cabinet>footer{border:0;border-top:1px solid rgba(255,255,255,.08)}.ghost-game,.pumpkin-game,.memory-game{position:relative;min-height:520px;overflow:hidden;background:radial-gradient(circle at 50% 70%,#322042,#0b0e20 62%)}.game-instructions{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.game-instructions h2{font-size:2.3rem;margin:1rem 0 .5rem}.game-instructions p{color:#b6b3c3;max-width:42ch}.big-ghost{width:75px;height:85px;border-radius:50% 50% 14% 14%;background:#dcdcf0;box-shadow:0 0 45px rgba(190,185,239,.35)}.big-pumpkin{width:95px;height:75px;border-radius:45%;background:#dd7132;box-shadow:0 0 45px rgba(239,105,38,.35)}.ghost-target{position:absolute;width:72px;height:80px;transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer;transition:left .18s,top .18s}.ghost-target span{display:block;width:60px;height:68px;border-radius:50% 50% 15% 15%;background:#dddcef;box-shadow:0 0 30px rgba(204,197,247,.5);animation:ghostFloat 1.3s ease-in-out infinite}.ghost-target span:before,.ghost-target span:after{content:"";position:absolute;top:25px;width:7px;height:10px;border-radius:50%;background:#312441}.ghost-target span:before{left:22px}.ghost-target span:after{left:42px}.pumpkin-patch{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding:4rem;min-height:520px;align-items:center}.pumpkin-button{position:relative;height:100px;border:0;background:none;cursor:pointer}.pumpkin-button span{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:80px;height:65px;border-radius:45%;background:#743f29;border:2px solid #9d5830;transition:.15s}.pumpkin-button i{position:absolute;z-index:2;left:50%;bottom:60px;width:8px;height:20px;background:#375733;transform:rotate(10deg)}.pumpkin-button.lit span{background:#e9782d;border-color:#ffbe55;box-shadow:0 0 30px #e65a2e;transform:translateX(-50%) scale(1.1)}.memory-game{padding:2rem}.memory-board{display:grid;grid-template-columns:repeat(6,1fr);gap:.8rem}/* memory-card/card-back/card-face opbouw staat in Spelletjes.razor.css (fysieke dubbelzijdige kaart) */.memory-sigil{width:48px;height:48px;border:3px solid #7a3f50;border-radius:50%}.memory-win{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.memory-win strong{color:#ffc268}.score-save{border:1px solid #9a613f;background:none;color:#ffc069;padding:.55rem .8rem;cursor:pointer}

/* Account and command */
.auth-gate{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1000px;margin:auto}.auth-gate aside h2{font-size:3rem;margin:.5rem 0}.auth-gate aside p,.auth-gate aside li{color:#aaa8b5}.auth-panel,.parchment-panel{padding:2rem;background:linear-gradient(155deg,rgba(48,31,55,.8),rgba(14,14,26,.9));border:1px solid rgba(221,139,70,.25)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:2rem}.auth-tabs button{padding:.8rem;border:0;border-bottom:1px solid #3b3443;background:none;color:#8f8d9c;cursor:pointer}.auth-tabs button.active{color:#ffc06b;border-color:#e18845}.auth-panel details{margin-top:1rem;color:#8c8998;font-size:.7rem}.auth-panel code{display:block}.field-hint{font-size:.65rem;color:#858291}.dashboard-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:2rem}.dashboard-head h2{font-size:2.5rem;margin:.4rem 0}.dashboard-head>div:last-child{display:flex;gap:1rem;align-items:center}.dashboard-grid{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:1rem;margin:2rem 0 4rem}.dash-panel{min-height:230px;padding:1.5rem;background:#121320;border:1px solid rgba(255,255,255,.08)}.dash-panel header{display:flex;justify-content:space-between}.dash-panel header strong{font-size:.7rem;color:#8f8d9b}.child-list{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}.child-chip{min-width:85px;display:flex;flex-direction:column;align-items:center}.child-chip i{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#382345;color:#efac64;font-style:normal}.child-chip b{font-size:.75rem;margin-top:.4rem}.child-chip small{color:#8d8a99;font-size:.6rem}.add-child{min-height:48px;align-self:center;border:1px dashed #654b65;background:none;color:#ca9acc;cursor:pointer}.inline-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.5rem;margin-top:1rem}.inline-form button{border:0;background:#d7803d;color:#17101b;font-weight:800}.points-panel{text-align:center;background:radial-gradient(circle,#2c1d39,#11121e)}.points-panel>strong{display:block;font-size:4rem;color:#ffb65b;line-height:1;margin-top:1.5rem}.points-panel>small{font-size:.55rem;letter-spacing:.15em}.mini-meter{height:6px;background:#292735;margin:1rem 0}.mini-meter span{display:block;height:100%;background:linear-gradient(90deg,#6f3987,#f3a348)}.points-panel a{font-size:.65rem;color:#e4a059}.quest-panel h3{font-family:var(--display);font-size:1.2rem;margin-top:1rem}.quest-panel p{color:#aaa7b5}.quest-panel>div{display:flex;justify-content:space-between;font-size:.68rem}.quest-panel>div strong{color:#ffb765}.create-family{max-width:720px;margin:3rem auto;text-align:center}.create-family h2{font-size:2.4rem}.create-family form{display:flex;gap:.7rem}.two-column{grid-template-columns:1fr 1fr;margin-top:2rem}.two-column .wide{grid-column:1/-1}.check-grid label{flex-direction:row}.check-grid input{width:auto}.location-field{display:flex;align-items:center;gap:1rem}.location-field span{font-size:.65rem;color:#aaa}.command-shell,.actor-shell{min-height:100vh;padding:1rem 2rem 3rem;background:#070b12;color:#dbe5df;font-family:var(--body)}.command-header,.actor-shell>header{height:90px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #263239}.command-header>div,.actor-shell>header>div{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center}.command-header h1,.actor-shell h1{grid-column:2;font-family:var(--body);font-size:1.4rem;letter-spacing:.08em;margin:0}.command-header small,.actor-shell header small{color:#657b78;letter-spacing:.18em}.command-header>a,.actor-shell header>a{font-size:.65rem;letter-spacing:.1em}.command-light,.actor-live{grid-row:1/3;width:12px;height:12px;background:#5dd0a7;border-radius:50%;box-shadow:0 0 14px #5dd0a7}.command-status{height:80px;display:flex;align-items:center;gap:2rem;border-bottom:1px solid #1e292e}.command-status>span{color:#6b807e;font-size:.65rem;letter-spacing:.2em}.command-status strong{font-family:monospace;color:#63d3ad;font-size:1.3rem}.command-status time{margin-left:auto;font-family:monospace}.command-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#1d292e;margin:1.5rem 0}.command-metrics article{background:#0b1117;padding:1.5rem}.command-metrics span{display:block;font-size:.58rem;letter-spacing:.15em;color:#627775}.command-metrics strong{font-family:monospace;font-size:2.6rem;font-weight:400}.command-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.command-grid>section{padding:1.5rem;border:1px solid #213138;background:#0a1016}.command-grid header{display:flex;align-items:center;gap:.7rem}.command-grid header span{color:#566c69;font-family:monospace}.command-grid h2{font-family:var(--body);font-size:1rem;margin:0}.command-grid label{display:block;font-size:.65rem;color:#6e817f;margin-top:1rem}.phase-actions{display:grid;gap:.5rem;margin-top:1.5rem}.phase-actions button,.command-button,.finale-button{min-height:48px;border:1px solid #314943;background:#101b20;color:#d5e4de;font-size:.7rem;font-weight:bold;cursor:pointer}.phase-actions .start{border-color:#347a67;color:#70dcb6}.phase-actions .pause{border-color:#a97935;color:#efb65e}.phase-actions .end{border-color:#7e353b;color:#e36c73}.command-button{width:100%;margin-top:1rem}.goal-command>strong{display:block;font-family:monospace;font-size:2rem;margin-top:2rem}.goal-command>div{height:12px;background:#172228}.goal-command>div i{display:block;height:100%;background:#5dc5a2}.finale-button{width:100%;margin-top:2rem;border-color:#7a3d7d;color:#d998dd}.command-denied{max-width:600px;margin:6rem auto;padding:3rem;text-align:center;border:1px solid #643b43;background:#170f14}.command-denied strong{color:#e16e78;letter-spacing:.2em}.command-denied code{display:block;color:#8f858a}.actor-live{background:#6b7773;box-shadow:none}.actor-live.on{background:#f1564c;box-shadow:0 0 14px #f1564c;animation:pulse 1.2s infinite}.actor-start,.actor-active{max-width:900px;margin:3rem auto}.actor-start h2{font-size:2.4rem}.actor-characters{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.actor-characters button{padding:1rem;border:1px solid #29353c;background:#0a1117;display:flex;flex-direction:column;color:#b9c4c0;cursor:pointer}.actor-characters button.selected{border-color:#ce7252;background:#21171a}.actor-characters button span{font-family:var(--display);font-size:1.8rem;color:#e39a64}.actor-characters button small{color:#637875}.actor-warning{margin:2rem 0;padding:1rem;border-left:2px solid #d89548;background:#171714}.actor-warning p{margin:.4rem 0;color:#9fa9a5}.actor-start-button,.actor-stop-button{width:100%;min-height:70px;border:1px solid #b96346;background:#301714;color:#ffa77c;font-size:1rem;letter-spacing:.15em;font-weight:900;cursor:pointer}.actor-radar{position:relative;width:330px;height:330px;margin:2rem auto;border:1px solid #36554c;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,transparent 0 54px,rgba(81,151,132,.15) 55px 56px)}.actor-radar i{position:absolute;left:50%;bottom:50%;width:1px;height:50%;background:#63c6a8;transform-origin:bottom;animation:radar 3s linear infinite}.actor-radar b{width:12px;height:12px;border-radius:50%;background:#e15c4e;box-shadow:0 0 20px #e15c4e}.actor-radar strong{position:absolute;bottom:65px;font-size:.65rem;letter-spacing:.1em}.actor-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#263338}.actor-stats div{padding:1rem;background:#0c1217}.actor-stats small{display:block;color:#617471}.actor-stats strong{font-family:monospace}.qr-console{margin:2rem 0;padding:2rem;text-align:center;border:1px solid #25373c}.qr-console h2{font-size:1.6rem}.token-visual{padding:1rem;background:#d5ddda;color:#111;display:flex;flex-direction:column}.token-visual code{font-size:.8rem}.actor-stop-button{border-color:#8d3840;color:#ff7474;background:#261114}

/* Safety and footer */
.safety-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.safety-grid article{padding:2rem;background:#11121f;border:1px solid rgba(255,255,255,.07)}.safety-grid article>span{font-family:var(--display);color:#d4864b}.safety-grid h2{font-family:var(--body);font-size:1.2rem;margin:1rem 0 .5rem}.safety-grid p{font-size:.85rem;color:#aaa7b5}.retention-table{margin-top:4rem;border-top:1px solid rgba(255,255,255,.1)}.retention-table h2{font-size:2rem;margin:2rem 0}.retention-table>div{display:grid;grid-template-columns:220px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.06)}.retention-table span{color:#a6a3b1}.world-footer{width:min(var(--max),calc(100% - 3rem));margin:0 auto;padding:3rem 0;display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:2rem;align-items:center;border-top:1px solid rgba(255,255,255,.08);color:#8e8c9b;font-size:.7rem}.world-footer>div{display:flex;flex-direction:column}.world-footer strong{font-family:var(--display);color:#d7b480}.world-footer p{margin:0}.world-footer nav{display:flex;justify-content:flex-end;gap:1rem}.world-footer a:hover{color:#ffc16b}

#blazor-error-ui{background:#24151b;color:#f4dfcf;bottom:0;box-shadow:0 -1px 18px rgba(0,0,0,.7);display:none;left:0;padding:1rem 3rem;position:fixed;width:100%;z-index:1000}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:1rem}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.js .reveal.visible{opacity:1;transform:none}

@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(247,128,66,.55)}50%{box-shadow:0 0 0 8px rgba(247,128,66,0)}}@keyframes heroBreathe{to{transform:scale(1.055)}}@keyframes moonPulse{50%{transform:scale(1.12);opacity:.7}}@keyframes cloudMove{to{transform:translateX(calc(100vw + 45rem))}}@keyframes fogDrift{0%{transform:translateX(-8%) scale(1)}50%{transform:translateX(18%) scale(1.1)}100%{transform:translateX(-8%) scale(1)}}@keyframes batFly{0%{transform:translateX(0) translateY(0) rotate(4deg)}50%{transform:translateX(55vw) translateY(8vh) rotate(-4deg)}100%{transform:translateX(115vw) translateY(-3vh) rotate(7deg)}}@keyframes leafFall{to{transform:translate(15vw,115vh) rotate(760deg)}}@keyframes scroll{50%{transform:scaleY(.4);transform-origin:top}}@keyframes lantern{50%{filter:brightness(1.25);box-shadow:0 0 55px #ff8e2c;transform:translateY(-3px)}}@keyframes radar{to{transform:rotate(360deg)}}@keyframes ghostFloat{50%{transform:translateY(-8px)}}

@media(max-width:1100px){.desktop-links{display:none}.menu-button{display:block}.mobile-nav{position:fixed;z-index:80;inset:76px 0 auto;display:block;background:rgba(8,9,19,.98);border-bottom:1px solid #382a3e}.mobile-links{display:grid;grid-template-columns:1fr 1fr;padding:1rem}.mobile-links a{padding:1rem;border-bottom:1px solid rgba(255,255,255,.06)}.header-tools{margin-left:auto}.portal-grid{grid-template-columns:1fr 1fr}.story-intro{gap:2rem}.tracker-layout{grid-template-columns:minmax(0,1fr) 330px}.monster-grid{grid-template-columns:1fr}.book-spine{display:none}.monster-entry:nth-child(n){padding:2.5rem 0}.dashboard-grid{grid-template-columns:1fr 1fr}.family-panel{grid-column:1/-1}.command-grid{grid-template-columns:1fr 1fr}.command-grid>section:last-child{grid-column:1/-1}.join-choices{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.section-pad{width:min(100% - 2rem,var(--max));padding-block:4.5rem}.world-header{height:68px}.brand small{display:none}.mobile-nav{top:68px}.hero-night{height:800px;min-height:100svh}.hero-art{inset:0;background-position:58% center}.hero-vignette{background:linear-gradient(180deg,rgba(4,5,13,.58),transparent 28%,rgba(4,5,13,.88) 78%)}.hero-copy{margin-top:4rem;align-self:end;margin-bottom:5rem}.hero-copy h1 span{font-size:clamp(2.7rem,15vw,4.5rem)}.hero-copy h1 strong{font-size:clamp(1.7rem,9vw,2.8rem)}.countdown{gap:.45rem}.scroll-cue{display:none}.portal-actions{grid-template-columns:1fr}.story-intro,.meter-section,.latest-dispatch,.safe-note,.join-form-wrap,.auth-gate{grid-template-columns:1fr}.ranger-scene{height:530px}.ranger-scene img{height:520px}.meter-section{gap:2rem}.portal-grid{grid-template-columns:1fr 1fr}.world-card{min-height:320px}.latest-dispatch{gap:2rem}.safe-note .text-link{grid-column:1}.page-hero{min-height:380px;padding-top:110px}.page-hero h1{font-size:clamp(2.8rem,13vw,5rem)}.page-hero>div:nth-child(2){display:none}.tracker-layout{grid-template-columns:1fr}.map-wrap{min-height:60svh}.tracker-sidebar{border-left:0}.map-legend{right:1rem;flex-wrap:wrap}.program-page{padding-top:3rem}.timeline-item{grid-template-columns:55px 15px 1fr;gap:.7rem}.timeline-item>div{padding:1rem}.ranger-tip img{width:80px;height:80px}.newspaper-grid{grid-template-columns:1fr}.newspaper{transform:none}.monster-entry{grid-template-columns:110px 1fr}.portrait-frame{height:160px}.book-callout{grid-template-columns:1fr;text-align:center;justify-items:center}.join-choices{grid-template-columns:1fr 1fr}.resident-door{align-items:flex-start;flex-direction:column}.game-tabs{grid-template-columns:1fr}.game-tabs button{min-height:75px}.ghost-game,.pumpkin-game,.memory-game{min-height:480px}.pumpkin-patch{grid-template-columns:repeat(3,1fr);padding:2rem 1rem}.memory-board{grid-template-columns:repeat(3,1fr)}.dashboard-head{align-items:flex-start;gap:1rem;flex-direction:column}.dashboard-head>div:last-child{flex-wrap:wrap}.dashboard-grid{grid-template-columns:1fr}.family-panel{grid-column:auto}.inline-form{grid-template-columns:1fr}.two-column{grid-template-columns:1fr}.two-column .wide{grid-column:auto}.create-family form{flex-direction:column}.command-shell,.actor-shell{padding:1rem}.command-header h1,.actor-shell h1{font-size:1rem}.command-metrics{grid-template-columns:1fr 1fr}.command-grid{grid-template-columns:1fr}.command-grid>section:last-child{grid-column:auto}.actor-characters{grid-template-columns:1fr 1fr}.actor-radar{width:270px;height:270px}.actor-stats{grid-template-columns:1fr}.safety-grid{grid-template-columns:1fr 1fr}.world-footer{grid-template-columns:1fr;text-align:center}.world-footer nav{justify-content:center}}
@media(max-width:480px){.round-tool:first-child{display:none}.brand strong{font-size:.72rem}.hero-copy .eyebrow{font-size:.56rem}.hero-copy h1 em{font-size:.72rem}.countdown strong{font-size:1.55rem}.portal-grid{grid-template-columns:1fr}.world-card{min-height:285px}.story-copy blockquote{margin-left:0;margin-right:0}.ranger-scene{height:430px}.ranger-scene img{height:420px}.ranger-label{font-size:.7rem}.map-status{max-width:170px}.map-legend{font-size:.55rem}.tracker-sidebar{padding:1.2rem}.phase-strip{gap:.4rem;font-size:.5rem}.timeline-item{grid-template-columns:45px 10px 1fr}.timeline-item>time{font-size:.85rem}.newspaper{padding:1rem}.monster-entry{grid-template-columns:1fr;padding:2rem 0!important}.portrait-frame{height:260px}.join-choices{grid-template-columns:1fr}.join-choices button{min-height:100px}.memory-game{padding:1rem}.memory-board{gap:.45rem}.safety-grid{grid-template-columns:1fr}.retention-table>div{grid-template-columns:1fr}.world-footer{width:calc(100% - 2rem)}.portal-dialog{max-height:calc(100svh - 2rem);overflow:auto}.command-status{gap:.6rem}.command-status time{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-art{transform:none}.js .reveal{opacity:1;transform:none}}
html.reduced-motion *,html.reduced-motion *:before,html.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.performance-minimal .hero-fog,html.performance-minimal .floating-leaves,html.performance-minimal .bat-swarm,html.performance-minimal .ambient-grain{display:none}
.ambient-eyes{display:none}.ambient-shadow{display:none}.ambient-ghost-flyby{position:fixed;z-index:70;pointer-events:none;width:200px;height:260px;background:url('/assets/halloween/characters/woodland-ghosts.png') left/200% 100% no-repeat;opacity:0}.ambient-ghost-flyby.ghost-side-a{background-position:left center}.ambient-ghost-flyby.ghost-side-b{background-position:right center}.ambient-ghost-flyby.ghost-fly-across{right:-220px;bottom:12vh;animation:ghostFlyAcross 4.5s ease-in-out both}.ambient-ghost-flyby.ghost-fly-reverse{left:-220px;bottom:18vh;animation:ghostFlyReverse 4.5s ease-in-out both}.ambient-ghost-flyby.ghost-fly-diagonal{right:-220px;bottom:-60px;animation:ghostFlyDiagonal 5s ease-in-out both}.ambient-ghost-flyby.ghost-peek-left{left:-80px;top:30vh;animation:ghostPeekLeft 3.5s ease-in-out both}.ambient-ghost-flyby.ghost-peek-right{right:-80px;top:25vh;animation:ghostPeekRight 3.5s ease-in-out both}.ambient-ghost-flyby.ghost-float-up{left:50%;bottom:-260px;transform:translateX(-50%);animation:ghostFloatUp 5s ease-in-out both}.ambient-ghost-flyby.ghost-pass-behind{right:-200px;top:40vh;animation:ghostPassBehind 4s ease-in-out both;filter:brightness(.6);z-index:5}.user-position-marker{width:18px;height:18px;border:3px solid white;border-radius:50%;background:#5ec7b0;box-shadow:0 0 0 8px rgba(94,199,176,.25),0 0 25px #56c1aa}.atmosphere-burst:after{content:"";position:fixed;z-index:999;inset:0;pointer-events:none;background:#d7def2;animation:flash .8s ease both}.page-hidden *{animation-play-state:paused!important}@keyframes ghostFlyAcross{0%{transform:translateX(0) translateY(0) rotate(-3deg);opacity:0}10%{opacity:.55}50%{opacity:.65;transform:translateX(calc(-50vw - 220px)) translateY(-40px) rotate(2deg)}90%{opacity:.45}100%{transform:translateX(calc(-100vw - 300px)) translateY(-80px) rotate(-1deg);opacity:0}}@keyframes ghostFlyReverse{0%{transform:translateX(0) translateY(0) rotate(3deg);opacity:0}10%{opacity:.5}50%{opacity:.6;transform:translateX(calc(50vw + 220px)) translateY(-55px) rotate(-2deg)}90%{opacity:.4}100%{transform:translateX(calc(100vw + 300px)) translateY(-100px) rotate(1deg);opacity:0}}@keyframes ghostFlyDiagonal{0%{transform:translateX(0) translateY(0) rotate(-8deg);opacity:0}10%{opacity:.5}50%{opacity:.6;transform:translateX(calc(-50vw - 200px)) translateY(-35vh) rotate(4deg)}90%{opacity:.35}100%{transform:translateX(calc(-100vw - 280px)) translateY(-65vh) rotate(-2deg);opacity:0}}@keyframes ghostPeekLeft{0%,100%{transform:translateX(0);opacity:0}25%{opacity:.55}50%{transform:translateX(70px);opacity:.65}75%{opacity:.45}}@keyframes ghostPeekRight{0%,100%{transform:translateX(0);opacity:0}25%{opacity:.55}50%{transform:translateX(-70px);opacity:.65}75%{opacity:.45}}@keyframes ghostFloatUp{0%{transform:translateX(-50%) translateY(0) rotate(0);opacity:0}10%{opacity:.5}50%{opacity:.55;transform:translateX(-50%) translateY(-45vh) rotate(5deg)}90%{opacity:.3}100%{transform:translateX(-50%) translateY(-90vh) rotate(-3deg);opacity:0}}@keyframes ghostPassBehind{0%{transform:translateX(0);opacity:0}15%{opacity:.4}50%{opacity:.5;transform:translateX(calc(-50vw - 200px))}85%{opacity:.35}100%{transform:translateX(calc(-100vw - 280px));opacity:0}}@keyframes flash{0%,100%{opacity:0}12%{opacity:.18}22%{opacity:0}34%{opacity:.07}}

/* Visual-review corrections: content stays useful before intersection events fire. */
.skip-link{top:0;transform:translateY(-140%)}.skip-link:focus{top:0}.skip-link:focus-visible{transform:translateY(0)}
.js .reveal{opacity:1;transform:none}.js .reveal.visible{animation:revealIn .8s ease both}
.monster-map .maplibregl-canvas{filter:saturate(.72) sepia(.08) hue-rotate(175deg) brightness(.94) contrast(1.12)}
h1:focus{outline:none}
.error-hero{min-height:70vh;display:grid;place-items:center;text-align:center}.error-hero .cta-primary{display:inline-flex;margin-top:1.25rem}.request-id{display:block;margin-top:1.5rem;color:#8c8993;font-family:monospace}
.finale-active body{animation:finaleWorld 12s ease both}.finale-active .moon-halo{filter:hue-rotate(235deg) saturate(1.7);transform:scale(1.12)}@keyframes finaleWorld{0%,100%{filter:none}8%,18%{filter:brightness(.45) saturate(1.35)}12%,22%{filter:brightness(1.18) hue-rotate(18deg)}}
.director-command{display:flex;flex-direction:column;gap:.75rem}.director-command>small{color:#d99654;letter-spacing:.15em}.director-command>strong{font-size:1.2rem}.director-command>p{color:#91a19e;line-height:1.6}.director-command>code{align-self:flex-start;padding:.4rem .6rem;border:1px solid #37574e;color:#6fd0b2}.director-command>em{font-size:.66rem;color:#617370}.operations-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin-top:1rem}.operations-panel{min-width:0;border:1px solid #213138;background:#0a1016}.operations-panel>header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem;border-bottom:1px solid #213138}.operations-panel h2{font-family:var(--body);font-size:1rem;margin:.3rem 0 0}.operations-panel>header>small{font:700 .6rem monospace;color:#d47d70}.command-map{height:340px;background:#0b1017}.command-monster-marker{display:block;width:18px;height:18px;border:3px solid #ffce9a;border-radius:50%;background:#e24f45;box-shadow:0 0 0 8px rgba(226,79,69,.2),0 0 20px #e24f45}.operation-list{max-height:340px;overflow:auto}.operation-list article{min-height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.8rem 1rem;border-bottom:1px solid #1d2a30}.operation-list article>div{display:flex;min-width:0;flex-direction:column}.operation-list strong{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operation-list small{font-size:.58rem;color:#6d807d}.operation-list button{min-height:36px;border:1px solid #456158;background:#101a1e;color:#7dd5b7;font-size:.6rem;font-weight:800;cursor:pointer}.operation-list .command-light{grid-row:auto;width:8px;height:8px;background:#45524f;box-shadow:none}.operation-list .command-light.active,.quest-status.active{background:#5dd0a7;box-shadow:0 0 10px #5dd0a7}.operation-list .house-sigil{width:28px;height:28px}.quest-status{width:8px;height:8px;border-radius:50%;background:#4c5754}
@media(max-width:1100px){.operations-grid{grid-template-columns:1fr 1fr}.exact-map-panel{grid-column:1/-1}}
@media(max-width:768px){.operations-grid{grid-template-columns:1fr}.exact-map-panel{grid-column:auto}.command-map{height:280px}}
.pass-progress{margin:0 0 3rem;padding:2rem;border:1px solid rgba(228,157,79,.25);background:radial-gradient(circle at 80% 0,rgba(126,62,137,.18),transparent 35%),#11121e}.pass-progress>header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:1.2rem}.pass-progress h2{font-size:2.2rem;margin:.4rem 0 0}.pass-progress>header>strong{font-size:2rem;color:#ffb35a}.pass-progress>header small{display:block;font-size:.55rem;letter-spacing:.12em;color:#96919f}.pass-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#302c39;margin:1rem 0}.pass-stat-grid article{padding:1rem;background:#12131f;display:flex;flex-direction:column}.pass-stat-grid strong{font-size:1.6rem}.pass-stat-grid span{font-size:.62rem;color:#918e9a}.badge-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.badge-shelf article{display:grid;grid-template-columns:42px 1fr;gap:.7rem;align-items:center;padding:.8rem;border:1px solid #35313f}.badge-shelf article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#272331;color:#716b77}.badge-shelf article.earned{border-color:#80623b;background:rgba(225,145,61,.06)}.badge-shelf article.earned>span{background:#694220;color:#ffd06f;box-shadow:0 0 20px rgba(236,149,62,.18)}.badge-shelf article>div{display:flex;flex-direction:column}.badge-shelf strong{font-size:.75rem}.badge-shelf small{font-size:.6rem;color:#8e8a96}.badge-shelf .locked{filter:saturate(.2);opacity:.65}@media(max-width:768px){.pass-progress>header{align-items:flex-start;flex-direction:column;gap:1rem}.pass-stat-grid{grid-template-columns:1fr 1fr}.badge-shelf{grid-template-columns:1fr}}
.command-shell,.actor-shell{padding-top:92px}
@keyframes revealIn{from{opacity:.2;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:768px){.hero-copy h1 span{font-size:clamp(2.2rem,11.5vw,4.5rem);letter-spacing:0}.command-shell,.actor-shell{padding-top:82px}}

/* ─── Nachtbode Public ─────────────────────────────────────────────────────── */
.nachtbode-hero{position:relative;padding:calc(76px + 3rem) max(1.5rem,calc((100% - var(--max))/2)) 3rem;background:radial-gradient(ellipse at 20% 50%,rgba(42,21,53,.7),transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(16,14,32,.9),transparent 40%),linear-gradient(165deg,#18142a,#0b0c1a 60%,#060713);border-bottom:2px solid rgba(212,178,100,.25);overflow:hidden}
.nachtbode-hero:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(240,213,165,.025) 0,rgba(240,213,165,.025) 1px,transparent 1px,transparent 3rem);pointer-events:none}
.nachtbode-masthead{position:relative;z-index:1;text-align:center;max-width:860px;margin:0 auto}
.nachtbode-edition{font-size:.6rem;letter-spacing:.3em;color:#c08b55;margin-bottom:.8rem;font-weight:700}
.nachtbode-title{font-family:var(--display);font-size:clamp(2.8rem,8vw,6.5rem);letter-spacing:-.02em;color:#f0dfbd;margin:.25rem 0;text-shadow:0 4px 24px rgba(0,0,0,.6)}
.nachtbode-title em{font-style:normal;color:#ffc968;font-size:1.1em}
.nachtbode-slogan{font-style:italic;color:#9e96b0;font-size:.95rem;margin:.5rem 0 0}
.news-hero{justify-content:center;gap:2rem}
.paper-moon{width:200px;height:155px;background:var(--paper);transform:rotate(4deg);box-shadow:10px 12px 0 rgba(90,58,38,.5);flex-shrink:0;display:grid;place-items:center}
.paper-moon:after{content:"NACHTBODE";display:block;color:#2a1e1d;border:3px double #4d382a;margin:1rem;padding:2.5rem 1rem;font-family:var(--display);font-size:.95rem;text-align:center}

/* Breaking ticker */
.breaking-ticker{display:flex;align-items:center;gap:1rem;padding:.7rem max(1.5rem,calc((100% - var(--max))/2));background:#7a1c1c;border-bottom:1px solid rgba(255,100,100,.3);overflow:hidden}
.breaking-label{flex-shrink:0;font-size:.62rem;font-weight:900;letter-spacing:.2em;background:#c92f2f;color:#fff;padding:.25rem .6rem}
.breaking-scroll{font-size:.8rem;font-weight:700;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffdad4}

/* Nachtbode page layout */
.nachtbode-page{width:min(var(--max),calc(100% - 3rem));margin-inline:auto;padding-block:4rem}
.nachtbode-grid{display:grid;grid-template-columns:1fr 280px;gap:4rem;margin-top:4rem}
.nachtbode-section{margin-bottom:3rem}
.section-head{font-family:var(--display);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:#c08b55;border-bottom:1px solid rgba(240,213,165,.15);padding-bottom:.5rem;margin-bottom:1.5rem}

/* Featured article */
.nachtbode-featured{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding:2.5rem;background:linear-gradient(135deg,rgba(42,21,53,.45),rgba(12,10,22,.8));border:1px solid rgba(240,213,165,.15);margin-bottom:4rem}
.nachtbode-featured-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.nachtbode-featured-content .nachtbode-category{font-size:.58rem;letter-spacing:.22em;font-weight:900;color:#c08b55;text-transform:uppercase}
.nachtbode-featured-content h2{font-size:clamp(1.6rem,3vw,2.8rem);margin:.4rem 0;letter-spacing:-.03em}
.nachtbode-featured-content h2 a{color:#f0dfbd}
.nachtbode-featured-content h2 a:hover{color:#ffc968}
.nachtbode-lead{font-size:1.1rem;color:#c8bfa8;margin:.5rem 0}
.nachtbode-article-lead{color:#a8a0ba;font-size:.9rem}

/* Article cards grid */
.nachtbode-articles{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.nachtbode-card{background:#0f0f1f;border:1px solid rgba(255,255,255,.07);overflow:hidden;transition:border-color .2s}
.nachtbode-card:hover{border-color:rgba(240,213,165,.3)}
.nachtbode-card--breaking{border-color:rgba(180,40,40,.5)!important;background:#12050a}
.nachtbode-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.nachtbode-card-body{padding:1.1rem}
.nachtbode-card-body .nachtbode-category{font-size:.55rem;letter-spacing:.2em;font-weight:900;color:#c08b55;text-transform:uppercase;display:block;margin-bottom:.4rem}
.nachtbode-card-body h3{font-size:1rem;margin:.2rem 0 .5rem;line-height:1.2;font-family:var(--display)}
.nachtbode-card-body h3 a{color:#f0dfbd}
.nachtbode-card-body h3 a:hover{color:#ffc968}
.nachtbode-card-body p{font-size:.8rem;color:#8e8aa0;margin:.4rem 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nachtbode-byline{display:flex;align-items:center;gap:.7rem;margin-top:.8rem;font-size:.65rem;color:#6e6b7e}
.nachtbode-byline a{color:#a89070;text-decoration:none}
.nachtbode-byline a:hover{color:#ffc968}
.nachtbode-byline time{margin-left:auto}

/* Sidebar */
.nachtbode-sidebar{display:flex;flex-direction:column;gap:2rem}
.sidebar-tip,.sidebar-reporters{padding:1.5rem;background:#0f0f1f;border:1px solid rgba(240,213,165,.12)}
.sidebar-tip h2,.sidebar-reporters h2{font-family:var(--display);font-size:.9rem;letter-spacing:.08em;margin-bottom:.7rem;color:#c08b55}
.sidebar-tip p{font-size:.82rem;color:#9e96b0;margin-bottom:1rem}
.reporters-link{font-size:.75rem;color:#a89070}
.reporters-link:hover{color:#ffc968}
.btn-secondary{display:inline-block;padding:.65rem 1.1rem;border:1px solid rgba(240,213,165,.35);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f0dfbd;transition:border-color .2s,background .2s}
.btn-secondary:hover{border-color:#ffc968;background:rgba(255,196,100,.08);color:#ffc968}
.btn-primary{display:inline-block;padding:.65rem 1.4rem;background:#c08b55;border:0;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#13101a;cursor:pointer;transition:background .2s}
.btn-primary:hover{background:#ffc968}
.btn-link{font-size:.72rem;color:#a89070;text-decoration:underline;background:none;border:0;cursor:pointer;padding:0}
.btn-link:hover{color:#ffc968}
.btn-add-block{display:block;width:100%;padding:.8rem;margin-top:.5rem;border:1px dashed rgba(240,213,165,.2);background:none;color:#7e7890;font-size:.72rem;cursor:pointer;text-align:center}
.btn-add-block:hover{border-color:rgba(240,213,165,.45);color:#c08b55}

/* ─── Nachtbode Article page ────────────────────────────────────────────────── */
.nachtbode-article{width:min(860px,calc(100% - 3rem));margin:calc(76px + 2rem) auto 5rem}
.nachtbode-article--official{border-top:4px solid #ef765f}
.official-notice{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#3d0f0f;border:1px solid rgba(239,118,95,.4);margin-bottom:2rem;font-size:.82rem}
.official-seal{width:32px;height:32px;display:grid;place-items:center;background:#c92f2f;color:#fff;font-weight:900;font-size:1rem;flex-shrink:0;border-radius:50%}
.breadcrumb{font-size:.65rem;letter-spacing:.08em;color:#6e6b7e;margin-bottom:.8rem}
.breadcrumb a{color:#8e7c60}
.breadcrumb a:hover{color:#ffc968}
.nachtbode-article-header{border-bottom:1px solid rgba(240,213,165,.12);margin-bottom:2rem;padding-bottom:1.5rem}
.breaking-badge{display:inline-block;background:#c92f2f;color:#fff;font-size:.58rem;font-weight:900;letter-spacing:.2em;padding:.25rem .6rem;margin-bottom:.6rem;vertical-align:middle}
.breaking-badge-small{display:inline-block;background:#c92f2f;color:#fff;font-size:.5rem;font-weight:900;letter-spacing:.15em;padding:.15rem .4rem;vertical-align:middle;margin-left:.4rem}
.nachtbode-category{font-size:.6rem;font-weight:900;letter-spacing:.22em;color:#c08b55;text-transform:uppercase;display:block;margin-bottom:.5rem}
.nachtbode-article-header h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.04em;color:#f0dfbd;margin:.3rem 0 .6rem}
.nachtbode-subtitle{font-size:1.15rem;color:#b3aac5;margin:.3rem 0;font-style:italic}
.nachtbode-meta{display:flex;align-items:center;gap:1.2rem;margin-top:1rem;flex-wrap:wrap}
.reporter-byline{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#a89070}
.reporter-byline:hover{color:#ffc968}
.reporter-avatar-small{width:32px;height:32px;border-radius:50%;object-fit:cover}
.reporter-byline span{font-size:.8rem;font-weight:700}
.reporter-byline small{font-size:.6rem;color:#6e6b7e;margin-left:.2rem}
.reporter-byline time{font-size:.68rem;color:#6e6b7e}
.story-arc-link{font-size:.65rem;color:#7e6b50;border:1px solid rgba(120,100,70,.3);padding:.2rem .5rem;margin-left:.5rem}
.story-arc-link:hover{color:#ffc968}
.nachtbode-hero-figure{margin:0 0 2rem;position:relative}
.nachtbode-hero-figure img{width:100%;max-height:520px;object-fit:cover}
.nachtbode-hero-figure figcaption{padding:.6rem 0;font-size:.72rem;color:#7e7890;border-bottom:1px solid rgba(255,255,255,.08)}
.nachtbode-hero-figure figcaption cite{font-style:normal;color:#5e5a6c}

/* Article body */
.nachtbode-article-body{font-size:1.05rem;line-height:1.75;color:#d4cfc8}
.nachtbode-article-body p{margin-bottom:1.4rem;max-width:72ch}
.nachtbode-article-body h2{font-size:1.5rem;color:#f0dfbd;margin:2.5rem 0 .8rem;letter-spacing:-.03em}
.nachtbode-article-body blockquote{border-left:3px solid #c08b55;margin:2rem 0;padding:1rem 1.5rem;background:rgba(192,139,85,.06);font-style:italic;font-size:1.05rem;color:#d5cbb8}
.nachtbode-article-body blockquote footer{margin-top:.7rem;font-style:normal;font-size:.72rem;color:#7e6b50}
.nachtbode-article-body blockquote footer cite{font-style:italic}
.article-figure{margin:2rem 0}
.article-figure img{width:100%;max-height:480px;object-fit:cover}
.article-figure figcaption{padding:.5rem 0;font-size:.7rem;color:#7e7890}
.article-callout{margin:2rem 0;padding:1.2rem 1.5rem;background:rgba(192,139,85,.09);border:1px solid rgba(192,139,85,.3)}
.article-callout strong{display:block;font-size:.62rem;letter-spacing:.18em;color:#c08b55;text-transform:uppercase;margin-bottom:.5rem}
.article-clue{margin:2rem 0;padding:1rem 1.5rem;background:rgba(95,189,169,.07);border:1px solid rgba(95,189,169,.25);display:flex;gap:1rem;align-items:flex-start}
.clue-icon{font-size:1.5rem;flex-shrink:0;margin-top:.1rem}
.article-related-link{display:block;margin:1.5rem 0;padding:1rem 1.2rem;background:#0f0f1f;border:1px solid rgba(255,255,255,.08);font-size:.85rem;color:#a89070;transition:border-color .2s}
.article-related-link:hover{border-color:rgba(240,213,165,.35);color:#ffc968}
.article-related-link strong{color:#f0dfbd}
.article-divider{border:0;border-top:1px solid rgba(255,255,255,.1);margin:2.5rem 0}

/* Characters, tags, reactions, related */
.article-characters,.article-reactions,.article-related{margin:3rem 0;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08)}
.article-characters h2,.article-reactions h2,.article-related h2{font-size:.8rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#6e6b7e;margin-bottom:1rem}
.character-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.character-list li a{color:#a89070}
.character-list li a:hover{color:#ffc968}
.character-role{color:#5e5a6c}
.article-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0}
.tag{display:inline-block;padding:.3rem .7rem;border:1px solid rgba(255,255,255,.1);font-size:.65rem;letter-spacing:.08em;color:#7e7890}
.reactions-intro{font-size:.82rem;color:#7e7890;margin-bottom:.8rem}
.reaction-buttons{display:flex;flex-wrap:wrap;gap:.6rem}
.reaction-btn{display:flex;align-items:center;gap:.4rem;padding:.55rem .9rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);font-size:.8rem;cursor:pointer;transition:all .2s}
.reaction-btn:hover{border-color:rgba(240,213,165,.45);background:rgba(192,139,85,.1)}
.reaction-btn--active{border-color:#c08b55!important;background:rgba(192,139,85,.18)!important;color:#ffc968}
.reaction-btn strong{font-size:.72rem;font-weight:900;color:#a89070;min-width:1.4em}
.related-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.7rem}
.related-list li a{color:#a89070;font-size:.9rem}
.related-list li a:hover{color:#ffc968}
.related-list li small{color:#5e5a6c;font-size:.68rem}

/* ─── Reporter pages ────────────────────────────────────────────────────────── */
.reporters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2rem;width:min(var(--max),calc(100% - 3rem));margin:0 auto}
.reporter-card{background:#0f0f1f;border:1px solid rgba(255,255,255,.08);overflow:hidden;transition:border-color .25s,transform .25s}
.reporter-card:hover{border-color:rgba(240,213,165,.3);transform:translateY(-3px)}
.reporter-card-link{display:block;text-decoration:none}
.reporter-portrait{height:260px;overflow:hidden}
.reporter-portrait img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .4s}
.reporter-card:hover .reporter-portrait img{transform:scale(1.04)}
.reporter-portrait--placeholder{background:radial-gradient(circle at 50% 35%,#2a1535,#0f0f1f);display:grid;place-items:center}
.reporter-portrait--placeholder:after{content:"?";font-family:var(--display);font-size:4rem;color:#3a2845;line-height:1}
.reporter-card-info{padding:1.2rem 1.3rem}
.reporter-reliability{display:inline-block;font-size:.55rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:.2rem .5rem;border:1px solid rgba(192,139,85,.4);color:#c08b55;margin-bottom:.5rem}
.reporter-card-info h2{font-size:1.1rem;margin:.3rem 0;letter-spacing:-.02em;color:#f0dfbd}
.reporter-card-info .reporter-job{font-size:.72rem;color:#7e7890;margin:.25rem 0}
.reporter-specialties{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0}
.reporter-specialties li{font-size:.58rem;letter-spacing:.08em;padding:.2rem .5rem;background:rgba(255,255,255,.06);color:#9e96b0;border-radius:2px}
.reporter-quote{margin:.8rem 0 0;padding:.7rem 1rem;border-left:2px solid rgba(192,139,85,.4);font-style:italic;font-size:.8rem;color:#7e7890}

/* Reporter profile */
.reporter-profile{width:min(var(--max),calc(100% - 3rem));margin:calc(76px + 2rem) auto 5rem}
.reporter-profile-header{display:grid;grid-template-columns:280px 1fr;gap:3rem;margin-bottom:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(240,213,165,.12)}
.reporter-profile-portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;filter:drop-shadow(0 20px 40px rgba(0,0,0,.7))}
.reporter-profile-meta .reporter-reliability{display:inline-block;margin-bottom:.8rem}
.reporter-profile-meta h1{font-size:clamp(2.2rem,4.5vw,3.8rem);margin:.3rem 0;letter-spacing:-.04em;color:#f0dfbd}
.reporter-job{font-size:.85rem;color:#7e7890;margin:.3rem 0}
.reporter-profile-quote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:3px solid rgba(192,139,85,.5);font-family:Georgia,serif;font-size:1.05rem;font-style:italic;color:#c5b8a0}
.reporter-stats{font-size:.72rem;color:#5e5a6c;margin-top:1rem}
.reporter-bio{max-width:70ch;font-size:1rem;line-height:1.7;color:#b3aac5;margin-bottom:2rem}
.reporter-full-bio{margin-bottom:2rem;border:1px solid rgba(255,255,255,.08);padding:1rem}
.reporter-full-bio summary{font-size:.75rem;color:#8e7c60;cursor:pointer;letter-spacing:.08em}
.reporter-full-bio p{font-size:.9rem;color:#a3a0b3;margin-top:.8rem}
.reporter-articles{margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08)}
.reporter-articles h2{font-family:var(--display);font-size:1.2rem;margin-bottom:1.5rem;color:#c08b55}

/* ─── Tip page ──────────────────────────────────────────────────────────────── */
.tip-page{width:min(640px,calc(100% - 3rem));margin:0 auto}
.tip-form{display:flex;flex-direction:column;gap:1.2rem}
.tip-intro{font-size:.9rem;color:#a3a0b3;margin-bottom:.5rem}
.tip-intro strong{color:#f0dfbd}
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-group label{font-size:.72rem;font-weight:700;color:#c5bec8;letter-spacing:.04em}
.form-group select,.form-group textarea,.form-group input[type="text"]{border:1px solid rgba(255,255,255,.12);background:rgba(5,6,14,.6);color:#f0dfbd;padding:.8rem 1rem;font-size:.9rem;outline:none;border-radius:2px;width:100%}
.form-group select:focus,.form-group textarea:focus,.form-group input:focus{border-color:#c08b55;box-shadow:0 0 0 3px rgba(192,139,85,.1)}
.form-group small{font-size:.65rem;color:#6e6b7e}
.form-group .optional{color:#5e5a6c;font-weight:400}
.form-error{padding:.8rem 1rem;background:#3d0a0a;border:1px solid rgba(180,50,50,.5);color:#ef8080;font-size:.82rem;border-radius:2px}
.form-errors{padding:.8rem 1rem;background:#3d0a0a;border:1px solid rgba(180,50,50,.5);font-size:.82rem;border-radius:2px}
.form-errors strong{color:#ef8080;display:block;margin-bottom:.4rem}
.form-errors ul{margin:.4rem 0;padding-left:1.2rem;color:#ef8080}
.form-warnings{padding:.8rem 1rem;background:#3d2a0a;border:1px solid rgba(180,140,50,.4);font-size:.82rem;border-radius:2px}
.form-warnings strong{color:#f0c060;display:block;margin-bottom:.4rem}
.form-warnings ul{margin:.4rem 0;padding-left:1.2rem;color:#c9a04a}
.form-success{padding:.7rem 1rem;background:#0a2f1f;border:1px solid rgba(50,160,100,.4);color:#5fbda9;font-size:.82rem;border-radius:2px}
.tip-success{text-align:center;padding:3rem 2rem;background:linear-gradient(135deg,#0f1a2a,#0b0c1a);border:1px solid rgba(95,189,169,.3)}
.tip-success h2{font-size:2rem;color:#5fbda9;margin-bottom:.8rem}
.tip-success p{color:#a3a0b3;margin-bottom:1.5rem}
.loading-text{text-align:center;padding:3rem;color:#6e6b7e;font-size:.85rem}
.nachtbode-not-found{width:min(700px,calc(100% - 3rem));margin:calc(76px + 2rem) auto 5rem;text-align:center}
.nachtbode-not-found h1{font-size:clamp(2rem,5vw,4rem);color:#c08b55}
.nachtbode-not-found p{color:#a3a0b3;margin:1rem 0 2rem}
.page-loading{min-height:40vh;display:grid;place-items:center;color:#6e6b7e;font-size:.85rem}

/* ─── CMS ───────────────────────────────────────────────────────────────────── */
.cms-page{min-height:100vh;background:#07080f;padding-top:76px}
.cms-header{display:flex;align-items:center;gap:2rem;padding:1rem 2rem;background:#0c0d1c;border-bottom:1px solid rgba(240,213,165,.12);flex-wrap:wrap}
.cms-header h1{font-family:var(--display);font-size:1.1rem;letter-spacing:.05em;color:#c08b55;margin:0;white-space:nowrap}
.cms-header h1 small{font-size:.65rem;letter-spacing:.12em;color:#5e5a6c;display:block;font-family:var(--body)}
.cms-header-actions{display:flex;align-items:center;gap:1rem;margin-left:auto;flex-wrap:wrap}
.cms-nav{display:flex;gap:0;flex-shrink:0}
.cms-nav a{padding:.55rem .9rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7e7890;border-right:1px solid rgba(255,255,255,.06);transition:color .15s,background .15s}
.cms-nav a:hover{color:#f0dfbd;background:rgba(255,255,255,.04)}
.cms-nav a.active{color:#c08b55;border-bottom:2px solid #c08b55}
.cms-content{padding:2rem;max-width:1400px}
.autosave-indicator{font-size:.68rem;color:#6e6b7e;font-style:italic}

/* Dashboard stats */
.cms-dashboard-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:.8rem;margin-bottom:2.5rem}
.stat-card{padding:1rem 1.2rem;background:#10101f;border:1px solid rgba(255,255,255,.07);text-align:center}
.stat-card strong{display:block;font-size:2rem;font-variant-numeric:tabular-nums;color:#f0dfbd;line-height:1}
.stat-card span{font-size:.6rem;letter-spacing:.12em;color:#5e5a6c;text-transform:uppercase;display:block;margin-top:.3rem}
.stat-card--draft strong{color:#9e96b0}
.stat-card--review strong{color:#c08b55}
.stat-card--approved strong{color:#5fbda9}
.stat-card--scheduled strong{color:#a878d0}
.stat-card--live strong{color:#f0dfbd}
.stat-card--breaking strong{color:#ef5050}
.cms-warnings{padding:1rem 1.5rem;background:#1e0808;border:1px solid rgba(200,60,60,.3);margin-bottom:2rem;border-radius:2px}
.cms-warnings h2{font-size:.75rem;font-weight:900;letter-spacing:.12em;color:#ef8080;margin-bottom:.6rem}
.cms-warnings ul{margin:0;padding-left:1.2rem;font-size:.8rem;color:#c26060}
.cms-recent h2{font-size:.8rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#5e5a6c;margin-bottom:1rem}
.cms-table{width:100%;border-collapse:collapse;font-size:.78rem}
.cms-table th{padding:.5rem .8rem;text-align:left;font-size:.6rem;letter-spacing:.12em;color:#5e5a6c;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700}
.cms-table td{padding:.65rem .8rem;border-bottom:1px solid rgba(255,255,255,.05);color:#c5bec8;vertical-align:middle}
.cms-table tr:hover td{background:rgba(255,255,255,.025)}
.cms-quick-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}

/* Status badges */
.status-badge{display:inline-block;font-size:.55rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;padding:.2rem .5rem;border-radius:2px}
.status-draft,.status-Draft{background:rgba(158,150,176,.15);color:#9e96b0;border:1px solid rgba(158,150,176,.3)}
.status-inreview,.status-InReview{background:rgba(192,139,85,.15);color:#c08b55;border:1px solid rgba(192,139,85,.3)}
.status-approved,.status-Approved{background:rgba(95,189,169,.15);color:#5fbda9;border:1px solid rgba(95,189,169,.3)}
.status-scheduled,.status-Scheduled{background:rgba(168,120,208,.15);color:#a878d0;border:1px solid rgba(168,120,208,.3)}
.status-published,.status-Published{background:rgba(240,213,165,.12);color:#f0dfbd;border:1px solid rgba(240,213,165,.3)}
.status-unpublished,.status-Unpublished{background:rgba(100,100,130,.1);color:#6e6b7e;border:1px solid rgba(100,100,130,.2)}
.status-archived,.status-Archived{background:rgba(60,60,80,.1);color:#4e4c60;border:1px solid rgba(60,60,80,.2)}
.status-rejected,.status-Rejected{background:rgba(200,60,60,.1);color:#ef5050;border:1px solid rgba(200,60,60,.2)}

/* CMS Editor */
.cms-editor-layout{display:grid;grid-template-columns:1fr 300px;gap:2rem;padding:2rem;align-items:start}
.cms-editor-main{min-width:0}
.cms-editor-sidebar{background:#0c0d1c;border:1px solid rgba(255,255,255,.08);padding:1.2rem;position:sticky;top:calc(76px + 2rem)}
.cms-form{display:flex;flex-direction:column;gap:1.2rem}
.form-group--title input{font-size:1.5rem;font-family:var(--display);padding:1rem}
.sidebar-section{margin-bottom:1.2rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(255,255,255,.06)}
.sidebar-section:last-of-type{border-bottom:0}
.sidebar-section label{display:block;font-size:.65rem;font-weight:700;letter-spacing:.06em;color:#7e7890;margin-bottom:.4rem}
.sidebar-section select,.sidebar-section input{width:100%;background:#080913;border:1px solid rgba(255,255,255,.1);color:#f0dfbd;padding:.55rem .7rem;font-size:.8rem;margin-bottom:.4rem;border-radius:2px}
.sidebar-section input:focus,.sidebar-section select:focus{border-color:#c08b55;outline:none}
.sidebar-flags{display:flex;flex-direction:column;gap:.4rem}
.sidebar-flags label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#9e96b0;cursor:pointer}
.sidebar-flags input[type=checkbox]{accent-color:#c08b55}
.sidebar-actions{display:flex;flex-direction:column;gap:.6rem;padding-top:.6rem}
.sidebar-actions .btn-primary,.sidebar-actions .btn-secondary,.sidebar-actions .btn-danger{width:100%;text-align:center;cursor:pointer;font:inherit}
.btn-danger{display:inline-block;padding:.65rem 1.4rem;background:rgba(180,40,40,.2);border:1px solid rgba(180,40,40,.5);color:#ef8080;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.btn-danger:hover{background:rgba(180,40,40,.35)}
.btn-danger-small{border:0;background:none;color:#7e5050;font-size:.9rem;cursor:pointer;padding:.2rem .4rem}
.btn-danger-small:hover{color:#ef5050}
.hero-preview{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:.5rem;border:1px solid rgba(255,255,255,.06)}
.file-upload-btn{display:block;padding:.5rem .8rem;border:1px dashed rgba(240,213,165,.25);text-align:center;cursor:pointer;font-size:.72rem;color:#7e7890;margin-bottom:.5rem;position:relative;overflow:hidden}
.file-upload-btn:hover{border-color:rgba(240,213,165,.5);color:#c08b55}
.file-upload-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

/* Block editor */
.cms-blocks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;color:#7e7890;text-transform:uppercase}
.cms-block{border:1px solid rgba(255,255,255,.08);padding:1rem;margin-bottom:.6rem;background:#09091a}
.cms-block--heading{border-left:3px solid rgba(192,139,85,.5)}
.cms-block--quote{border-left:3px solid rgba(95,189,169,.5)}
.cms-block--callout{border-left:3px solid rgba(168,120,208,.4)}
.cms-block--clue{border-left:3px solid rgba(95,189,169,.7);background:rgba(95,189,169,.04)}
.cms-block-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}
.cms-block-header select{flex:1;background:#080913;border:1px solid rgba(255,255,255,.1);color:#9e96b0;padding:.35rem .5rem;font-size:.68rem}
.cms-block-actions{display:flex;gap:.2rem;margin-left:auto}
.cms-block-actions button{padding:.3rem .5rem;border:1px solid rgba(255,255,255,.08);background:none;color:#6e6b7e;font-size:.7rem;cursor:pointer}
.cms-block-actions button:hover:not(:disabled){border-color:rgba(240,213,165,.3);color:#c08b55}
.cms-block-actions button:disabled{opacity:.25;cursor:default}
.cms-block textarea,.cms-block input[type=text]{width:100%;background:#050614;border:1px solid rgba(255,255,255,.08);color:#f0dfbd;padding:.6rem .8rem;font-size:.9rem;resize:vertical;margin-bottom:.4rem;border-radius:2px}
.cms-block textarea:focus,.cms-block input:focus{border-color:#c08b55;outline:none}

/* CMS reporter grid */
.cms-reporters-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}
.cms-reporter-card{background:#0f0f1f;border:1px solid rgba(255,255,255,.07);padding:1.2rem;display:flex;flex-direction:column;gap:.5rem}
.cms-reporter-card h3{font-size:.95rem;margin:0;color:#f0dfbd}
.cms-reporter-card small{font-size:.65rem;color:#5e5a6c}
.cms-reporter-card .reporter-actions{display:flex;gap:.6rem;margin-top:.5rem}

/* Media library */
.media-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:1rem}
.media-asset-card{border:1px solid rgba(255,255,255,.07);overflow:hidden;cursor:pointer;position:relative;background:#09091a}
.media-asset-card img{width:100%;aspect-ratio:1;object-fit:cover}
.media-asset-card .media-meta{padding:.5rem;font-size:.62rem;color:#6e6b7e}
.media-asset-card .media-ai-badge{position:absolute;top:.4rem;right:.4rem;background:#2a1535;color:#a878d0;font-size:.52rem;font-weight:700;letter-spacing:.1em;padding:.15rem .4rem}
.media-asset-card:hover{border-color:rgba(240,213,165,.35)}
.media-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.media-toolbar input,.media-toolbar select{background:#080913;border:1px solid rgba(255,255,255,.1);color:#f0dfbd;padding:.55rem .8rem;font-size:.8rem;border-radius:2px}

/* Tips queue */
.tip-queue{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}
.tip-item{display:grid;grid-template-columns:120px 1fr auto;gap:1rem;align-items:start;padding:1rem 1.2rem;background:#09091a;border:1px solid rgba(255,255,255,.06)}
.tip-item .tip-category{font-size:.6rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;padding:.2rem .5rem;background:rgba(95,189,169,.12);color:#5fbda9;border-radius:2px}
.tip-item .tip-text{font-size:.82rem;color:#b3aac5}
.tip-item .tip-date{font-size:.6rem;color:#5e5a6c}
.tip-item .tip-actions{display:flex;flex-direction:column;gap:.4rem}
.tip-new{border-color:rgba(192,139,85,.3)!important}

/* Story arc timeline */
.story-arc-timeline{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}
.arc-item{border:1px solid rgba(255,255,255,.08);padding:1.5rem;background:#09091a}
.arc-item h3{font-size:1rem;margin:0 0 .5rem;color:#f0dfbd}
.arc-phases{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.8rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.06)}
.arc-phase{padding:.4rem .8rem;background:rgba(168,120,208,.1);border:1px solid rgba(168,120,208,.3);font-size:.65rem;color:#a878d0}

/* Calendar */
.cms-calendar{margin-top:1.5rem}
.calendar-filters{display:flex;gap:.8rem;margin-bottom:1.5rem;flex-wrap:wrap}
.calendar-filters select{background:#080913;border:1px solid rgba(255,255,255,.1);color:#f0dfbd;padding:.5rem .8rem;font-size:.75rem;border-radius:2px}
.calendar-timeline{display:flex;flex-direction:column;gap:.4rem}
.calendar-item{display:grid;grid-template-columns:90px 100px 1fr auto;align-items:center;gap:1rem;padding:.6rem 1rem;border:1px solid rgba(255,255,255,.06);background:#09091a;font-size:.75rem}
.calendar-item:hover{border-color:rgba(240,213,165,.2)}
.calendar-item .cal-date{color:#6e6b7e;font-size:.65rem;font-variant-numeric:tabular-nums}
.calendar-item .cal-type{font-size:.6rem;letter-spacing:.1em;color:#5e5a6c;text-transform:uppercase}
.calendar-item .cal-title{color:#c5bec8;font-weight:600}
.calendar-item .cal-reporter{font-size:.65rem;color:#6e6b7e}

/* Live update form */
.live-update-form{max-width:640px}
.live-update-form .urgency-note{display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;background:#1e0f0f;border:1px solid rgba(200,50,50,.3);margin-bottom:1.5rem;font-size:.8rem;color:#ef8080}

/* Search */
.search-bar{display:flex;gap:.6rem;margin-bottom:1.5rem}
.search-bar input{flex:1;background:#080913;border:1px solid rgba(255,255,255,.1);color:#f0dfbd;padding:.7rem 1rem;font-size:.9rem;border-radius:2px}
.search-bar input:focus{border-color:#c08b55;outline:none}
.search-results{display:flex;flex-direction:column;gap:.6rem}
.search-result{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;align-items:center;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.06);background:#09091a}
.search-result img{aspect-ratio:1;object-fit:cover}
.search-result h3{font-size:.9rem;margin:0 0 .2rem;color:#f0dfbd}
.search-result p{font-size:.72rem;color:#6e6b7e;margin:0}

/* Nachtbode article list page */
.cms-article-filters{display:flex;gap:.8rem;margin-bottom:1.5rem;flex-wrap:wrap}
.cms-article-filters select,.cms-article-filters input{background:#080913;border:1px solid rgba(255,255,255,.1);color:#f0dfbd;padding:.5rem .8rem;font-size:.75rem;border-radius:2px}
.cms-article-list{display:flex;flex-direction:column;gap:.4rem}
.cms-article-row{display:grid;grid-template-columns:2fr 100px 120px 120px 120px 80px;align-items:center;gap:.8rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.06);background:#09091a;font-size:.75rem}
.cms-article-row:hover{background:#0c0c1e}
.cms-article-row .art-title{font-weight:600;color:#c5bec8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cms-article-row .art-type{font-size:.62rem;color:#5e5a6c}
.cms-article-row .art-date{font-size:.65rem;color:#5e5a6c;font-variant-numeric:tabular-nums}

/* ─── Responsive Nachtbode ────────────────────────────────────────────────── */
@media(max-width:1024px){.nachtbode-grid{grid-template-columns:1fr}.nachtbode-sidebar{display:grid;grid-template-columns:1fr 1fr}.cms-editor-layout{grid-template-columns:1fr}.cms-editor-sidebar{position:static}.cms-dashboard-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.nachtbode-featured{grid-template-columns:1fr}.nachtbode-articles{grid-template-columns:1fr}.reporters-grid{grid-template-columns:1fr 1fr}.reporter-profile-header{grid-template-columns:1fr}.reporter-profile-portrait img{aspect-ratio:3/2}.cms-article-row{grid-template-columns:1fr auto auto}.cms-article-row .art-type,.cms-article-row .art-reporter,.cms-article-row .art-date{display:none}.cms-dashboard-stats{grid-template-columns:repeat(2,1fr)}.calendar-item{grid-template-columns:80px 1fr auto}.calendar-item .cal-type,.calendar-item .cal-reporter{display:none}}
@media(max-width:480px){.nachtbode-hero{padding-top:calc(68px + 2rem)}.nachtbode-title{font-size:clamp(2rem,12vw,3.5rem)}.reporters-grid{grid-template-columns:1fr}.nachtbode-sidebar{grid-template-columns:1fr}.reaction-buttons{gap:.4rem}.reaction-btn{padding:.5rem .7rem;font-size:.72rem}.cms-nav{flex-wrap:wrap}.cms-dashboard-stats{grid-template-columns:repeat(3,1fr)}}

/* Monster Tracker — cinematic live play surface */
.tracker-world{position:relative;isolation:isolate;min-height:100svh;padding:106px clamp(18px,2.4vw,44px) 32px;overflow:hidden;background:radial-gradient(ellipse at 50% 25%,#14201d 0,#07100d 48%,#020504 100%);color:#d2ccbe}.tracker-world:before{content:"";position:absolute;z-index:-3;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.74),transparent 18%,transparent 80%,rgba(0,0,0,.75)),url('/assets/halloween/backgrounds/berg-en-bos-night.png') center/cover;opacity:.31;filter:saturate(.72) brightness(.46)}.tracker-frame-art{position:absolute;z-index:20;inset:80px 0 0;pointer-events:none;background:url('/assets/halloween/tracker-frame.png') center/100% 100% no-repeat;opacity:.54;filter:drop-shadow(0 0 30px #000)}.tracker-glowing-eyes{position:absolute;z-index:21;right:4.2%;top:54%;display:flex;gap:8px;pointer-events:none}.tracker-glowing-eyes i{width:5px;height:3px;border-radius:50%;background:#ffc15a;box-shadow:0 0 8px #ff8a18;animation:eyesBlink 8s step-end infinite}.tracker-stage{position:relative;z-index:25;width:min(100%,1840px);height:calc(100svh - 138px);min-height:680px;margin:auto;display:grid;grid-template-columns:minmax(240px,285px) minmax(520px,1fr) minmax(260px,310px);gap:14px}.tracker-panel{position:relative;background:rgba(6,9,10,.9);border:1px solid #6f4b20;box-shadow:0 10px 35px rgba(0,0,0,.55),inset 0 0 0 5px rgba(229,163,66,.05)}.tracker-panel:before,.tracker-panel:after{content:"";position:absolute;width:18px;height:18px;pointer-events:none}.tracker-panel:before{left:5px;top:5px;border-left:2px solid #a67835;border-top:2px solid #a67835}.tracker-panel:after{right:5px;bottom:5px;border-right:2px solid #a67835;border-bottom:2px solid #a67835}.tracker-info{align-self:start;margin-top:42px;padding:24px 22px 18px}.tracker-info .kicker{color:#83b957;letter-spacing:.08em}.tracker-info h1{font-size:clamp(25px,2vw,35px);color:#f5b24c;margin:5px 0 16px}.tracker-info>p{font-family:var(--newspaper-body);font-size:14px;line-height:1.55;color:#d2ccbe}.tracker-key{display:grid;gap:9px;padding:14px 0;border-block:1px solid rgba(229,163,66,.14)}.tracker-key span,.filter-list label span{display:flex;align-items:center;gap:10px;font-family:var(--newspaper-body);font-size:13px}.tracker-key i,.filter-list i{width:27px;height:27px;flex:none;display:grid;place-items:center;font-style:normal;font-weight:800;border-radius:50%}.key-house{border-radius:2px!important;background:#4a4640;border:1px solid #776f62;clip-path:polygon(50% 0,100% 35%,91% 100%,9% 100%,0 35%)}.key-house.active{background:#f28c28;box-shadow:0 0 12px rgba(255,138,24,.55)}.key-monster{background:#9d292d;border:1px solid #e2584e;color:#160506}.key-activity{background:#3a6d35;border:1px solid #83b957;color:#dff5b0}.key-mystery{background:#4f2678;border:1px solid #9b59e8;color:#fff}.key-user{background:#1e5f91;border:1px solid #69b9f3;color:#fff}.tracker-primary{width:100%;min-height:46px;margin-top:15px;padding:8px 13px;display:flex;justify-content:space-between;align-items:center;border:1px solid #78944b;background:linear-gradient(#3f5b2d,#22351e);color:#f2e4c4;font-family:var(--heading);font-size:12px;text-transform:uppercase;cursor:pointer;box-shadow:inset 0 0 15px #16220e}.tracker-primary:hover{filter:brightness(1.18)}.tracker-info blockquote{margin:19px -8px -7px;padding:15px 12px 8px;border-top:1px solid rgba(111,75,32,.5);font-family:var(--newspaper);font-size:13px;font-style:italic;color:#c9b78f}.tracker-map-column{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.tracker-map-shell{position:relative;min-height:0;overflow:hidden;border:1px solid #6f4b20;box-shadow:0 12px 42px #000;background:#07100d}.tracker-map-shell:after{content:"";position:absolute;z-index:6;inset:0;pointer-events:none;box-shadow:inset 0 0 65px 18px rgba(0,0,0,.67),inset 0 0 0 5px rgba(199,154,82,.08)}.tracker-map-shell .monster-map{position:absolute;inset:0;touch-action:pan-x pan-y}.tracker-map-shell .monster-map .maplibregl-canvas{filter:saturate(.78) sepia(.16) hue-rotate(335deg) brightness(.73) contrast(1.12)}.map-light-wash{position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(circle at 30% 38%,rgba(255,138,24,.09),transparent 21%),radial-gradient(circle at 72% 63%,rgba(255,193,90,.07),transparent 18%);mix-blend-mode:screen}.tracker-map-shell .map-fog{z-index:3;pointer-events:none;position:absolute;width:72%;height:16%;border-radius:50%;background:rgba(193,202,203,.11);filter:blur(27px)}.map-fog-back{left:-24%;top:20%;animation:fogDrift 33s linear infinite}.map-fog-front{right:-24%;bottom:13%;animation:fogDrift 41s linear infinite reverse}.tracker-loading{position:absolute;z-index:12;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:#08100e;color:#ddc89c;font-family:var(--newspaper);transition:opacity .5s}.tracker-loading i{width:29px;height:42px;border:2px solid #a67835;background:#ffc15a;box-shadow:0 0 28px #f28c28;animation:lantern 2.4s ease-in-out infinite}.tracker-connection{position:absolute;z-index:10;left:16px;top:16px;display:flex;align-items:center;gap:6px;padding:7px 10px;background:rgba(6,9,10,.88);border:1px solid #6f4b20;font-size:10px;font-weight:800;letter-spacing:.12em}.tracker-connection>span{width:7px;height:7px;border-radius:50%;background:#d69531}.tracker-connection.live>span{background:#61cb76;box-shadow:0 0 9px #61cb76}.tracker-connection.offline>span{background:#d6473f}.tracker-connection small{font-weight:400;letter-spacing:0;color:#8e8b82}.map-search{position:absolute;z-index:10;top:16px;right:68px;width:min(290px,40%);display:flex;align-items:center;background:rgba(6,9,10,.91);border:1px solid #856129;box-shadow:0 7px 24px #000}.map-search label{position:absolute;width:1px;height:1px;overflow:hidden}.map-search>span{padding-left:12px;color:#f5b24c;font-size:21px}.map-search input{width:100%;height:44px;padding:0 12px;border:0;outline:0;background:transparent;color:#f2e4c4;font-size:13px}.map-search-results{position:absolute;left:-1px;right:-1px;top:46px;padding:5px;background:#080c0a;border:1px solid #6f4b20}.map-search-results button{width:100%;padding:9px;display:flex;justify-content:space-between;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:none;color:#f2e4c4;text-align:left;cursor:pointer}.map-search-results small{color:#8e8b82}.map-control-stack{position:absolute;z-index:10;right:12px;top:16px;display:grid;gap:5px}.map-control-stack button{width:46px;height:46px;border:1px solid #856129;background:rgba(6,9,10,.92);color:#f2e4c4;font-size:23px;cursor:pointer;box-shadow:0 5px 16px #000}.map-control-stack button:hover{color:#f5b24c;border-color:#f5b24c}.map-control-stack button:last-child{margin-top:6px;color:#69b9f3}.mobile-filter-button{display:none}.tracker-toast{position:absolute;z-index:11;left:50%;bottom:20px;translate:-50% 0;width:min(520px,calc(100% - 40px));padding:13px 18px;display:flex;gap:12px;align-items:center;background:rgba(6,9,10,.93);border:1px solid #856129;box-shadow:0 10px 30px #000}.tracker-toast strong{color:#f5b24c;font:700 11px var(--heading);white-space:nowrap}.tracker-toast span{font-family:var(--newspaper-body);font-size:13px}.direction-hunt{position:absolute;z-index:14;inset:0;display:grid;place-content:center;justify-items:center;background:radial-gradient(circle,rgba(38,14,17,.45),rgba(2,5,4,.79));pointer-events:none;text-align:center}.direction-hunt .kicker{color:#f5b24c;font-size:15px}.direction-compass{--direction:0deg;width:132px;height:132px;margin:20px;display:grid;place-items:center;border:1px solid rgba(245,178,76,.45);border-radius:50%;color:#ffc15a;font-size:88px;line-height:1;filter:drop-shadow(0 0 20px #f28c28);transform:rotate(var(--direction));transition:transform .18s linear}.direction-hunt strong{font:700 17px var(--heading);color:#f2e4c4}.direction-hunt small{margin-top:6px;color:#f5b24c;letter-spacing:.18em}.tracker-stats{height:74px;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(6,9,10,.92);border:1px solid #6f4b20;border-top:0}.tracker-stats>div{min-width:0;padding:9px 13px;display:grid;grid-template-columns:42px auto;grid-template-rows:auto auto;align-content:center;border-right:1px solid rgba(111,75,32,.43)}.tracker-stats>div:last-child{border:0}.tracker-stats i{grid-row:1/3;align-self:center;font-style:normal;font-size:28px}.tracker-stats strong{font:700 19px var(--heading);color:#f5b24c}.tracker-stats span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aaa297;font:11px var(--newspaper-body)}.stat-house{color:#f28c28}.stat-activity{color:#83b957}.stat-monster{color:#d6473f}.stat-mystery{color:#9b59e8}.tracker-sidebar{align-self:start;margin-top:26px;max-height:calc(100% - 42px);padding:17px;overflow:auto}.tracker-reading{margin:0 0 17px;padding:14px;background:radial-gradient(circle at 50%,rgba(131,185,87,.12),transparent),#0a100d;border:1px solid rgba(131,185,87,.3);text-align:center}.tracker-reading small{font-size:9px;letter-spacing:.15em;color:#83b957}.tracker-reading strong{display:block;margin:5px;font:700 14px var(--heading);color:#f2e4c4}.tracker-reading p{margin:0;color:#aaa297;font:12px var(--newspaper-body)}.filter-list{margin-bottom:18px}.filter-list h2,.house-list h2{margin:0;font:700 14px var(--heading);color:#f5b24c}.filter-list label{min-height:42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(111,75,32,.28);cursor:pointer}.filter-list input{appearance:none;width:30px;height:17px;border-radius:12px;background:#4b4b46;position:relative}.filter-list input:after{content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;border-radius:50%;background:#d2ccbe;transition:.2s}.filter-list input:checked{background:#55b96a}.filter-list input:checked:after{translate:13px}.filter-list i{width:21px;height:21px;font-size:10px}.house-list header{display:flex;justify-content:space-between;align-items:center;padding-bottom:9px;border-bottom:1px solid #6f4b20}.house-list header span{color:#83b957;font-size:11px}.house-row{width:100%;min-height:58px;display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;padding:8px 0;border:0;border-bottom:1px solid rgba(111,75,32,.25);background:none;color:#d2ccbe;text-align:left;cursor:pointer}.house-row:hover{background:rgba(245,178,76,.04)}.house-sigil{width:36px;height:36px;display:grid;place-items:center;color:#f28c28;border:1px solid #6f4b20;background:#17130e;font-size:22px}.house-row>span:nth-child(2){min-width:0;display:flex;flex-direction:column}.house-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 12px var(--newspaper-body);color:#f2e4c4}.house-row small{font-size:10px;color:#8e8b82}.house-row i{font-style:normal;color:#f28c28;font-size:21px}.privacy-note{margin-top:14px;padding:10px;border-left:2px solid #83b957;background:rgba(131,185,87,.05)}.privacy-note strong{font-size:11px;color:#b7cc91}.privacy-note p{margin:3px 0 0;font:10px/1.4 var(--newspaper-body);color:#8e8b82}.halloween-house-marker{position:relative;width:34px;height:38px;border:2px solid #ffc15a;background:#f28c28;clip-path:polygon(50% 0,100% 33%,92% 100%,8% 100%,0 33%);cursor:pointer;filter:drop-shadow(0 0 8px #ff8a18);transition:transform .18s,filter .18s}.halloween-house-marker:after{content:"";position:absolute;left:9px;bottom:5px;width:10px;height:12px;background:#ffd37a;box-shadow:0 0 12px #ffd37a}.halloween-house-marker:hover,.halloween-house-marker:focus-visible{transform:scale(1.08);filter:drop-shadow(0 0 13px #ffc15a);outline:2px solid #fff}.halloween-house-marker.is-closed{filter:grayscale(.8) brightness(.6);opacity:.72}.halloween-house-marker.layer-hidden{display:none}.user-position-marker{width:22px;height:22px;border-radius:50%;background:#3188ca;border:3px solid #fff;box-shadow:0 0 0 8px rgba(49,136,202,.22),0 0 20px #3188ca}.halloween-popup .maplibregl-popup-content{max-width:250px;padding:14px;background:#090d0b;color:#d2ccbe;border:1px solid #856129;box-shadow:0 10px 30px #000;border-radius:1px}.halloween-popup strong{color:#f5b24c;font-family:var(--heading)}.halloween-popup p{margin:8px 0 0;font-size:12px}.halloween-popup .maplibregl-popup-tip{border-top-color:#856129!important}.filter-sheet,.filter-backdrop{display:none}
.visual-test-monster{position:absolute;z-index:9;left:64%;top:43%;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;border:2px solid #e2584e;background:#9d292d;color:#160506;font:900 19px var(--heading);box-shadow:0 0 0 7px rgba(214,71,63,.16),0 0 22px #d6473f}
@keyframes eyesBlink{0%,47%,51%,100%{scale:1 1}49%{scale:1 .05}}

@media(max-width:1180px){.tracker-stage{grid-template-columns:minmax(210px,250px) minmax(480px,1fr) 280px}.tracker-info{padding-inline:16px}.tracker-key span{font-size:12px}.tracker-frame-art{opacity:.35}}
@media(max-width:980px){.tracker-world{padding-inline:12px}.tracker-stage{grid-template-columns:220px minmax(0,1fr)}.tracker-sidebar{display:none}.mobile-filter-button{position:absolute;z-index:10;left:14px;top:60px;display:block;min-height:44px;padding:0 13px;border:1px solid #856129;background:rgba(6,9,10,.92);color:#f2e4c4;font:700 11px var(--heading);text-transform:uppercase}.filter-backdrop{display:block;position:fixed;z-index:110;inset:0;background:rgba(0,0,0,.68)}.filter-sheet{display:block;position:fixed;z-index:111;left:0;right:0;bottom:0;max-height:78svh;overflow:auto;padding:18px;border-radius:0}.filter-sheet>header{min-height:44px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#f5b24c;font-family:var(--heading)}.filter-sheet>header button{width:44px;height:44px;border:0;background:none;color:#f2e4c4;font-size:27px}.filter-sheet .house-list{display:none}}
@media(max-width:720px){.world-shell:has(.tracker-world) .world-footer{display:none}.tracker-world{height:100svh;min-height:580px;padding:72px 0 0}.tracker-world:before{opacity:.18}.tracker-frame-art,.tracker-glowing-eyes,.tracker-info{display:none}.tracker-stage{width:100%;height:calc(100svh - 72px);min-height:0;display:block}.tracker-map-column{height:100%;display:block}.tracker-map-shell{height:100%;border-inline:0}.tracker-stats{position:absolute;z-index:11;left:12px;right:12px;bottom:12px;height:56px;border:1px solid #6f4b20;box-shadow:0 8px 24px #000}.tracker-stats>div{padding:6px;grid-template-columns:28px auto}.tracker-stats i{font-size:20px}.tracker-stats strong{font-size:14px}.tracker-stats span{font-size:8px}.map-search{left:12px;right:66px;top:12px;width:auto}.map-control-stack{right:12px;top:68px}.tracker-connection{top:64px;left:12px}.mobile-filter-button{top:108px;left:12px}.tracker-toast{bottom:81px;display:grid;gap:2px}.direction-hunt{padding-bottom:55px}.direction-compass{width:110px;height:110px;font-size:74px}.tracker-map-shell .map-fog{opacity:.55}.maplibregl-ctrl-attrib{font-size:9px}.filter-sheet{padding-bottom:max(20px,env(safe-area-inset-bottom))}}

/* Georeferenced BAG / Leaflet Monster Map */
.geo-monster-map{background:#050807}.geo-monster-map .leaflet-tile-pane{filter:none}.geo-monster-map .leaflet-control-container{font-family:var(--body)}
.halloween-bag-tooltip{padding:8px 10px!important;border:1px solid #9b6a2b!important;border-radius:2px!important;background:rgba(7,9,8,.96)!important;color:#efe0bd!important;box-shadow:0 8px 22px #000!important}
.halloween-bag-tooltip:before{border-top-color:#9b6a2b!important}.bag-tooltip{display:grid;gap:4px;font-size:12px}.bag-tooltip strong{font-family:var(--heading);color:#ffc667}.bag-tooltip strong span{color:#b8b0a0;font:10px var(--body)}.bag-tooltip em{font-style:normal;color:#ffd985}.bag-tooltip small{color:#8f918c}
.bag-popup h3{margin:0 0 8px;color:#ffc667;font:700 17px var(--heading)}.bag-popup p{line-height:1.45}.bag-popup>strong{color:#9fd66e}.bag-popup ul{display:flex;flex-wrap:wrap;gap:5px;padding:0;list-style:none}.bag-popup li{padding:3px 6px;border:1px solid #765124;color:#e8d4aa;font-size:11px}
.participating-house-glow{filter:drop-shadow(0 0 4px #ff9d28) drop-shadow(0 0 9px rgba(255,154,39,.55))}.participation-artwork-tile{mix-blend-mode:screen}.geo-monster-marker{background:none;border:0;font-size:29px;filter:drop-shadow(0 0 7px #9c63ff)}
.geo-tracker-world .leaflet-popup-content-wrapper{border:1px solid #8d632d;border-radius:2px;background:#090d0b;color:#d2ccbe;box-shadow:0 12px 35px #000}.geo-tracker-world .leaflet-popup-tip{background:#8d632d}.geo-tracker-world .leaflet-popup-close-button{color:#eacb90!important}
@media(prefers-reduced-motion:reduce){.tracker-world .map-fog,.tracker-glowing-eyes i,.tracker-loading i{animation:none}.halloween-house-marker,.direction-compass{transition:none}}

/* Halloween Berg en Bos 2026 design contract */
:root{--color-night-950:#040706;--color-night-900:#07100d;--color-night-850:#0b1512;--color-night-800:#101b17;--color-night-blue:#091521;--color-pumpkin-700:#a94b15;--color-pumpkin-600:#c65c19;--color-pumpkin-500:#e27822;--color-pumpkin-400:#f09a3e;--color-pumpkin-glow:#ffb04a;--color-moss-800:#395227;--color-moss-700:#526f32;--color-moss-600:#718f3d;--color-moss-500:#91b84a;--color-moss-glow:#b2d866;--color-spirit-800:#4f2678;--color-spirit-700:#682e98;--color-spirit-600:#8543c7;--color-spirit-500:#a05ae5;--color-spirit-glow:#c37cff;--color-gold-700:#856129;--color-gold-600:#a67835;--color-gold-500:#c79a52;--color-gold-400:#ddb875;--color-parchment-100:#efe2c5;--color-parchment-200:#ddc89c;--color-parchment-300:#c6a977;--color-parchment-dark:#80684a;--color-text-primary:#f4e8d2;--color-text-secondary:#c8bca6;--color-text-muted:#8f887c;--color-text-black:#17120d;--color-danger:#b44236;--color-warning:#d69531;--color-success:#718f3d;--max:1600px;--display:"Cinzel Decorative","Cinzel",serif;--heading:"Cinzel",serif;--body:"Source Sans 3",system-ui,sans-serif;--newspaper:"IM Fell English",Georgia,serif;--newspaper-body:"Source Serif 4",Georgia,serif}
html,body{background:var(--color-night-950);color:var(--color-text-primary);font-family:var(--body);font-size:16px}.world-shell>main{min-height:calc(100vh - 160px)}
.world-header{height:88px;padding:0 clamp(20px,2.2vw,42px);gap:clamp(14px,1.8vw,30px);background:rgba(4,8,7,.87);border-bottom:1px solid rgba(166,120,53,.38);box-shadow:0 7px 30px rgba(0,0,0,.48);backdrop-filter:blur(8px)}
.brand{width:250px;align-self:stretch;position:relative;flex:0 0 250px}.brand-logo{position:absolute;top:10px;left:0;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 4px 4px #000)}.brand-logo strong,.brand-logo b{font-family:var(--display);line-height:.88;text-shadow:1px 2px 0 #1c0d05}.brand-logo strong{font-size:27px;color:var(--color-pumpkin-500);letter-spacing:.02em}.brand-logo b{font-size:23px;color:var(--color-parchment-100)}.brand-logo em{font-family:var(--heading);font-style:normal;font-weight:700;font-size:17px;color:var(--color-moss-500);line-height:1.1}
.nav-links{gap:clamp(10px,1.25vw,24px);margin:auto}.nav-links a{position:relative;font-family:var(--heading);font-size:clamp(11px,.74vw,14px);letter-spacing:.015em;color:var(--color-parchment-200);padding:13px 2px}.nav-links a:hover{color:var(--color-gold-400)}.nav-links a.active{padding-inline:14px;color:var(--color-parchment-100);background:linear-gradient(180deg,rgba(79,38,120,.42),rgba(10,11,9,.8));border:1px solid var(--color-gold-700);box-shadow:inset 0 0 18px rgba(160,90,229,.15),0 0 16px rgba(0,0,0,.6)}.nav-home-icon{color:var(--color-spirit-glow);font-size:10px}.header-tools{gap:7px;margin-left:auto}.sound-control,.atmosphere-control{height:36px;padding:0 12px;display:flex;align-items:center;gap:7px;color:var(--color-gold-400);background:rgba(6,10,8,.85);border:1px solid var(--color-gold-700);font-family:var(--heading);font-size:10px;letter-spacing:.05em;cursor:pointer}.sound-control svg,.atmosphere-control svg{width:17px;height:17px;fill:currentColor}.account-control{min-width:174px;height:54px;margin-left:12px;padding:6px 7px 6px 14px;display:flex;align-items:center;justify-content:space-between;background:rgba(6,10,8,.82);border:1px solid var(--color-gold-700);font-family:var(--newspaper)}.account-control span{display:flex;flex-direction:column}.account-control strong{font-size:14px;font-weight:400}.account-control small{font-size:12px;color:var(--color-text-secondary)}.account-control i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-style:normal;color:var(--color-gold-400);border:2px solid var(--color-gold-600);background:radial-gradient(circle,#5b321f,#100b08 70%)}.preference-panel{top:78px;background:rgba(5,9,7,.97);border-color:var(--color-gold-700)}
.neighborhood-home{position:relative;isolation:isolate;min-height:900px;padding:108px clamp(22px,2vw,38px) 28px;overflow:hidden;background:var(--color-night-950)}.neighborhood-scene{position:absolute;z-index:-6;inset:0;background-image:linear-gradient(180deg,rgba(3,6,7,.24),rgba(3,6,6,.05) 45%,rgba(2,5,4,.75) 100%),url('/assets/halloween/backgrounds/berg-en-bos-night.png');background-size:cover;background-position:center top;transform:scale(1.02)}.neighborhood-home.phase-eventlive .neighborhood-scene{filter:saturate(1.15) contrast(1.07)}.neighborhood-home.phase-eventpaused .neighborhood-scene{filter:grayscale(.5) brightness(.55)}.neighborhood-home:after{content:"";position:absolute;z-index:-4;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(1,4,3,.55),transparent 21%,transparent 78%,rgba(1,4,3,.55)),radial-gradient(ellipse at 50% 45%,transparent 30%,rgba(0,0,0,.45) 100%)}
.scene-clouds{position:absolute;z-index:-5;width:70vw;height:180px;top:95px;left:-10vw;opacity:.1;background:radial-gradient(ellipse,#d9e3ef 0,transparent 65%);filter:blur(20px);animation:cloudCross 42s linear infinite}.scene-fog{position:absolute;z-index:-2;left:-20%;width:80%;height:90px;border-radius:50%;background:rgba(209,215,207,.11);filter:blur(24px);animation:fogDrift 28s linear infinite}.scene-fog-a{top:49%}.scene-fog-b{top:68%;animation-delay:-14s;animation-direction:reverse}.scene-leaves i{position:absolute;z-index:3;top:-30px;width:11px;height:7px;border-radius:80% 0;background:#9e4d18;animation:leafFall 12s linear infinite}.scene-leaves i:nth-child(1){left:15%;animation-delay:-4s}.scene-leaves i:nth-child(2){left:35%;animation-delay:-9s}.scene-leaves i:nth-child(3){left:58%;animation-delay:-2s}.scene-leaves i:nth-child(4){left:77%;animation-delay:-7s}.scene-leaves i:nth-child(5){left:91%;animation-delay:-11s}.scene-bats{position:absolute;z-index:-1;top:14%;left:61%}.scene-bats i{position:absolute;width:18px;height:8px;border-top:3px solid #050706;border-radius:50%;transform:rotate(15deg);animation:batFloat 7s ease-in-out infinite}.scene-bats i:nth-child(2){translate:62px 28px;scale:.7;animation-delay:-3s}.scene-bats i:nth-child(3){translate:-40px 48px;scale:.55;animation-delay:-5s}
.home-world-grid{position:relative;width:min(100%,1600px);min-height:760px;margin:auto;display:grid;grid-template-columns:minmax(245px,280px) minmax(500px,1fr) minmax(270px,305px);grid-template-rows:555px 168px;grid-template-areas:"news hero side" "features features features";gap:18px 28px}.parchment-panel{position:relative;color:#281d12;background-color:#d7c49b;background-image:linear-gradient(95deg,rgba(78,49,24,.16),transparent 12%,transparent 86%,rgba(70,42,18,.18)),radial-gradient(circle at 20% 30%,rgba(255,249,220,.24),transparent 34%);border:1px solid #856b44;box-shadow:0 7px 25px rgba(0,0,0,.7),inset 0 0 30px rgba(91,59,29,.28);clip-path:polygon(1% 0,12% 1%,21% 0,34% 1%,49% 0,64% 1%,78% 0,90% 1%,99% 0,100% 14%,99% 29%,100% 42%,99% 56%,100% 71%,99% 86%,100% 100%,86% 99%,71% 100%,57% 99%,42% 100%,27% 99%,13% 100%,0 99%,1% 84%,0 71%,1% 56%,0 41%,1% 27%,0 12%)}.dark-ornament-panel,.home-feature{background:rgba(5,9,7,.9);border:1px solid #6e552a;box-shadow:0 7px 22px rgba(0,0,0,.72),inset 0 0 24px rgba(0,0,0,.65);position:relative}.dark-ornament-panel:before,.home-feature:before{content:"";position:absolute;inset:5px;border:1px solid rgba(199,154,82,.18);pointer-events:none}
.nachtbode-preview{grid-area:news;align-self:start;margin-top:58px;padding:18px 14px 15px;max-height:495px;font-family:var(--newspaper-body)}.nachtbode-preview h2{font-family:var(--newspaper);font-size:25px;line-height:.87;text-align:center;letter-spacing:-.02em;margin:0 20px 13px}.nachtbode-preview h2 span{display:block;font-size:17px}.crow-ornament{position:absolute;right:20px;top:25px;font-size:10px;color:#17120d}.nachtbode-list{display:grid;gap:6px}.nachtbode-list article{display:grid;grid-template-columns:61px 1fr;gap:9px;min-height:69px;padding:6px;background:rgba(27,20,13,.9);color:var(--color-parchment-100);box-shadow:0 1px 5px rgba(0,0,0,.45)}.news-miniature{background-image:url('/assets/halloween/characters/bor-wolf.jpg');background-size:cover;background-position:center;border:1px solid #79562d}.miniature-1{background-image:url('/assets/halloween/characters/berg-en-boswachter.png');background-position:50% 14%}.miniature-2{background-image:url('/assets/halloween/backgrounds/festival-world.png');background-position:55% 55%}.miniature-3{filter:hue-rotate(245deg);background-position:30% 50%}.nachtbode-list time{display:block;color:var(--color-pumpkin-400);font-family:var(--heading);font-size:9px;text-transform:uppercase}.nachtbode-list h3{font-family:var(--newspaper-body);font-size:13px;line-height:1.12;margin:2px 0}.nachtbode-list a{font-size:11px;font-style:italic;color:var(--color-gold-400)}.vintage-button{min-height:38px;padding:8px 16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-gold-600);font-family:var(--heading);font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;color:var(--color-parchment-100);text-shadow:0 1px 2px #000;box-shadow:inset 0 0 12px rgba(0,0,0,.55),0 2px 7px #000;transition:.2s}.vintage-button.moss{background:linear-gradient(#496532,#25371d)}.vintage-button.spirit{background:linear-gradient(#74329b,#42155e)}.vintage-button:hover{transform:translateY(-2px);filter:brightness(1.18)}.nachtbode-preview>.vintage-button{width:100%;margin-top:10px}
.home-hero{grid-area:hero;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;text-align:center}.hero-message{width:min(100%,650px);padding-top:46px;filter:drop-shadow(0 4px 4px rgba(0,0,0,.95))}.hero-message h1{margin:0;font-family:var(--display);font-size:clamp(41px,3.4vw,62px);line-height:1.03;text-shadow:2px 3px 0 #15100a}.hero-message h1 span,.hero-message h1 strong{display:block}.hero-message h1 span{color:var(--color-parchment-100)}.hero-message h1 strong{color:var(--color-moss-500);font-size:1.02em}.phase-eventlive .hero-message h1 span{font-size:.7em;color:var(--color-pumpkin-400)}.phase-eventlive .hero-message h1 strong{color:var(--color-parchment-100)}.hero-message p{font-family:var(--newspaper-body);font-size:17px;line-height:1.45;margin:17px auto;color:#f1e7d4;text-shadow:0 2px 4px #000}.hero-cta{width:min(310px,100%);height:59px;position:relative;margin:2px auto 16px;color:var(--color-parchment-100);font-family:var(--heading);font-size:16px;font-weight:700;letter-spacing:.02em;cursor:pointer;border:1px solid var(--color-gold-500);background:linear-gradient(135deg,#4c1f68,#822fb0 55%,#4b1d67);box-shadow:inset 0 0 0 4px rgba(25,9,31,.55),0 0 22px rgba(160,90,229,.48)}.hero-cta:before,.hero-cta:after{content:"◆";position:absolute;top:17px;color:var(--color-spirit-glow)}.hero-cta:before{left:16px}.hero-cta:after{right:16px}.hero-cta:hover{transform:scale(1.025);box-shadow:inset 0 0 0 4px rgba(25,9,31,.55),0 0 36px rgba(195,124,255,.65)}.countdown-panel{width:min(540px,100%);margin:0 auto;background:rgba(8,11,9,.88);border-block:1px solid var(--color-gold-600);padding:8px 15px 12px;box-shadow:0 8px 20px rgba(0,0,0,.65)}.countdown-title{display:block;margin-bottom:3px;font-family:var(--heading);font-size:11px;color:var(--color-parchment-200)}.countdown-values{display:grid;grid-template-columns:repeat(4,1fr)}.countdown-values>div{display:flex;flex-direction:column;border-left:1px solid rgba(199,154,82,.32)}.countdown-values>div:first-child{border:0}.countdown-values strong{font-family:var(--heading);font-size:38px;line-height:1;color:var(--color-pumpkin-400)}.countdown-values span{font-family:var(--heading);font-size:10px;color:var(--color-parchment-100)}.ambient-ghost{position:absolute;width:310px;opacity:.72;pointer-events:none;animation:ghostFloat 5s ease-in-out infinite}.ghost-left{left:-115px;bottom:73px;clip-path:inset(0 50% 0 0)}.ghost-right{right:-130px;bottom:58px;object-position:right;clip-path:inset(0 0 0 50%);animation-delay:-2.5s}
.home-side-right{grid-area:side;display:grid;gap:13px;grid-template-rows:245px 1fr;margin-top:25px}.ranger-poster{overflow:hidden;padding:17px 12px 53px}.ranger-poster .ranger-copy{position:relative;z-index:2;width:53%}.ranger-poster h2{font-family:var(--newspaper);font-size:21px;line-height:1.02;margin-bottom:15px}.ranger-poster p,.ranger-poster strong{font-family:var(--newspaper);font-style:italic;font-size:14px;line-height:1.25}.ranger-poster img{position:absolute;right:-35px;bottom:-104px;width:215px;filter:drop-shadow(-4px 4px 5px rgba(0,0,0,.6))}.ranger-poster>.vintage-button{position:absolute;z-index:3;left:21px;right:21px;bottom:13px;width:calc(100% - 42px)}.quick-panel{padding:13px 18px}.quick-panel h2{font-family:var(--display);font-size:18px;color:var(--color-pumpkin-400);margin:0 0 5px}.quick-panel a{display:grid;grid-template-columns:31px 1fr;grid-template-rows:auto auto;padding:5px 3px;color:var(--color-gold-400)}.quick-panel a:hover{background:rgba(199,154,82,.09)}.quick-panel a>span{grid-row:1/3;font-size:22px;color:var(--color-spirit-glow)}.quick-panel strong{font-family:var(--newspaper-body);font-size:13px}.quick-panel small{font-size:10px;color:var(--color-text-secondary)}
.home-feature-row{grid-area:features;display:grid;grid-template-columns:1fr 1.06fr 1.08fr .92fr;gap:18px}.home-feature{min-width:0;overflow:hidden;padding:18px 20px;color:var(--color-text-primary);background-color:rgba(5,12,9,.89);background-image:linear-gradient(110deg,rgba(74,109,45,.17),transparent 50%)}.home-feature h2{font-family:var(--display);font-size:19px;color:var(--color-moss-glow);margin:0 0 7px}.home-feature p{font-family:var(--newspaper-body);font-size:13px;line-height:1.35;margin:0 0 11px;max-width:67%}.home-feature .vintage-button{height:31px;min-height:31px;font-size:10px;padding:5px 13px}.witch-silhouette{position:absolute;right:20px;bottom:-12px;width:80px;height:133px;background:linear-gradient(90deg,transparent,#020504 25%);clip-path:polygon(50% 0,63% 29%,85% 34%,67% 40%,79% 100%,23% 100%,35% 43%,9% 37%,40% 29%)}.radar-feature{display:flex;justify-content:space-between}.radar-feature>div:first-child{z-index:2}.reference-radar{position:absolute;right:12px;top:7px;width:145px;height:145px;border-radius:50%;border:1px solid var(--color-moss-500);background:repeating-radial-gradient(circle,transparent 0 21px,rgba(145,184,74,.35) 22px 23px),linear-gradient(90deg,transparent 49.5%,rgba(145,184,74,.28) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,rgba(145,184,74,.28) 50%,transparent 50.5%),rgba(4,19,10,.72);box-shadow:0 0 22px rgba(145,184,74,.25)}.reference-radar i{position:absolute;inset:50% 50% 0 0;transform-origin:100% 0;background:linear-gradient(35deg,transparent,rgba(178,216,102,.48));animation:radarSweep 3.4s linear infinite}.reference-radar b{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--color-moss-glow);box-shadow:0 0 8px var(--color-moss-glow)}.reference-radar b:nth-of-type(1){left:68%;top:30%}.reference-radar b:nth-of-type(2){left:31%;top:57%}.reference-radar b:nth-of-type(3){left:61%;top:72%}.houses-feature{background-image:linear-gradient(90deg,rgba(5,9,7,.95),rgba(5,9,7,.28)),url('/assets/halloween/backgrounds/festival-world.png');background-size:auto,cover;background-position:center}.mini-map{position:absolute;right:25px;bottom:18px;width:70px;height:85px;border:1px solid var(--color-gold-700);transform:rotate(4deg);background:rgba(7,16,13,.72)}.mini-map:before,.mini-map:after{content:"";position:absolute;background:var(--color-parchment-dark);height:2px;width:90px;left:-12px;transform:rotate(35deg)}.mini-map:before{top:25px}.mini-map:after{top:53px;transform:rotate(-27deg)}.mini-map i{position:absolute;z-index:2;width:12px;height:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--color-pumpkin-500);box-shadow:0 0 10px var(--color-pumpkin-glow)}.mini-map i:nth-child(1){left:18px;top:12px}.mini-map i:nth-child(2){left:45px;top:40px}.mini-map i:nth-child(3){left:20px;top:65px}.team-feature{background:radial-gradient(circle at 90% 90%,rgba(104,46,152,.22),transparent 45%),rgba(8,7,12,.92)}.team-heading{display:flex;gap:9px;align-items:center}.team-heading>span{color:var(--color-gold-400);font-size:25px}.team-feature h2{color:var(--color-spirit-glow)}.team-progress{height:10px;border:1px solid var(--color-gold-700);background:#251c28;margin:8px 0 2px}.team-progress span{display:block;height:100%;background:linear-gradient(90deg,#7440a6,#b464e7);box-shadow:0 0 10px var(--color-spirit-500)}.team-feature>small{font-size:9px}.team-feature p{margin-top:9px}.team-feature p strong{color:var(--color-gold-400)}.reward-chest{position:absolute;right:25px;bottom:22px;font-size:45px;color:var(--color-gold-400);text-shadow:0 0 14px var(--color-pumpkin-500)}
.home-status-banner{position:absolute;z-index:10;left:0;right:0;top:88px;min-height:30px;display:flex;align-items:center;justify-content:center;gap:18px;background:#3d1a11;border-block:1px solid var(--color-pumpkin-500);font-size:13px}.home-status-banner strong{font-family:var(--heading);color:var(--color-pumpkin-400)}.home-status-banner.paused{background:#431515;border-color:var(--color-danger)}.portal-dialog.dark-ornament-panel{background:rgba(5,9,7,.97)}.ranger-dialog{color:#281d12}.ranger-dialog .kicker{color:var(--color-pumpkin-700)}
.world-footer{min-height:128px;padding:22px clamp(24px,3vw,48px) 12px;display:grid;grid-template-columns:minmax(300px,430px) 1fr minmax(280px,390px);grid-template-rows:1fr auto;align-items:center;gap:12px 28px;background-color:#030705;background-image:linear-gradient(rgba(3,7,5,.72),rgba(3,7,5,.95)),url('/assets/halloween/backgrounds/berg-en-bos-night.png');background-size:cover;background-position:center 76%;border-top:1px solid rgba(166,120,53,.35)}.night-melody{height:55px;display:flex;align-items:center;gap:13px;padding:7px 17px;background:rgba(4,8,7,.88);border:1px solid var(--color-gold-700);color:var(--color-text-primary);cursor:pointer;text-align:left}.night-melody>span:first-child{font-size:29px;color:var(--color-gold-400)}.night-melody>span:nth-child(2){display:flex;flex-direction:column;font-family:var(--newspaper-body)}.night-melody small{color:var(--color-text-secondary);font-size:11px}.night-melody i{margin-left:auto;width:50px;height:20px;background:repeating-linear-gradient(90deg,var(--color-pumpkin-500) 0 3px,transparent 3px 7px);clip-path:polygon(0 80%,10% 35%,20% 70%,30% 10%,40% 62%,50% 22%,60% 73%,70% 32%,80% 57%,90% 8%,100% 82%,100% 100%,0 100%)}.social-links{justify-self:center;display:flex;gap:19px}.social-links a{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(199,154,82,.38);background:rgba(8,11,12,.75);font-family:Georgia;font-size:20px;color:var(--color-text-secondary)}.footer-social{padding:8px 18px;display:flex;flex-direction:column;border:1px solid var(--color-gold-700);background:rgba(7,10,8,.8);font-family:var(--newspaper-body)}.footer-social strong{font-family:var(--heading);color:var(--color-gold-400)}.footer-social span{font-size:12px;color:var(--color-text-secondary)}.footer-legal{grid-column:1/-1;display:flex;justify-content:space-between;color:var(--color-text-muted);font-size:11px}.footer-legal nav{display:flex;gap:20px}
.houses-hero{background-image:linear-gradient(90deg,rgba(4,7,6,.98),rgba(4,7,6,.3)),url('/assets/halloween/backgrounds/festival-world.png')}.house-moon{font-size:90px;color:var(--color-pumpkin-400);text-shadow:0 0 35px var(--color-pumpkin-500)}.houses-page{display:grid;grid-template-columns:minmax(430px,1.15fr) minmax(390px,.85fr);gap:35px}.houses-map-shell{position:sticky;top:105px;height:650px;border:1px solid var(--color-gold-700);box-shadow:0 12px 35px #000}.houses-map-shell .monster-map{height:100%}.house-card-grid{display:grid;gap:18px}.halloween-house-card{display:grid;grid-template-columns:145px 1fr;gap:18px;padding:15px;background:rgba(5,9,7,.91);border:1px solid var(--color-gold-700);box-shadow:inset 0 0 25px #000}.house-card-art{position:relative;min-height:210px;display:grid;place-items:center;background:linear-gradient(rgba(8,14,11,.28),rgba(4,7,6,.85)),url('/assets/halloween/backgrounds/berg-en-bos-night.png') center/cover}.house-card-art span{font-size:65px;color:var(--color-pumpkin-400);text-shadow:0 0 20px var(--color-pumpkin-500)}.halloween-house-card h2{font-size:24px;color:var(--color-parchment-100);margin:5px 0}.halloween-house-card h3{font-family:var(--newspaper);color:var(--color-gold-400);font-size:15px}.halloween-house-card p{font-size:14px;color:var(--color-text-secondary)}.house-open{font-family:var(--heading);font-size:11px;color:var(--color-moss-glow)}.halloween-house-card ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0}.halloween-house-card li{padding:3px 7px;border:1px solid var(--color-gold-700);font-size:11px}.house-time{display:block;margin-bottom:9px;color:var(--color-pumpkin-400)}
@keyframes cloudCross{to{transform:translateX(65vw)}}@keyframes leafFall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.8}100%{transform:translateY(850px) translateX(90px) rotate(540deg);opacity:0}}@keyframes batFloat{50%{transform:translate(20px,9px) rotate(-12deg)}}@keyframes ghostFloat{50%{transform:translateY(-13px) rotate(2deg)}}

/* ═══════ Enhanced Page Hero Atmosphere — 2026 ═══════ */
.page-hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 30% 85%,rgba(165,175,210,.07),transparent 55%),radial-gradient(ellipse at 85% 15%,rgba(255,200,120,.04),transparent 40%);pointer-events:none}.page-hero .page-scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.page-hero .page-fog{position:absolute;width:90vw;height:12rem;filter:blur(35px);opacity:.28;pointer-events:none}.page-hero .page-fog-a{left:-20%;bottom:8%;background:radial-gradient(ellipse,rgba(180,190,220,.18),transparent 65%);animation:fogDrift 24s linear infinite}.page-hero .page-fog-b{right:-25%;bottom:22%;background:radial-gradient(ellipse,rgba(141,106,181,.1),transparent 65%);animation:fogDrift 30s linear infinite reverse}.page-hero .page-leaves i{position:absolute;width:8px;height:8px;border-radius:0 50% 50% 50%;background:rgba(145,184,74,.35);animation:leafFall 14s linear infinite}.page-hero .page-leaves i:nth-child(1){left:12%;top:-10px;animation-delay:0s}.page-hero .page-leaves i:nth-child(2){left:55%;top:-10px;animation-delay:-4s;animation-duration:16s}.page-hero .page-leaves i:nth-child(3){left:82%;top:-10px;animation-delay:-8s;animation-duration:12s}.page-hero .page-bats i{position:absolute;width:18px;height:7px;background:transparent;border-top:2px solid rgba(200,195,220,.18);border-radius:50% 50% 0 0;animation:batFloat 8s ease-in-out infinite}.page-hero .page-bats i:nth-child(1){left:25%;top:18%;animation-delay:0s}.page-hero .page-bats i:nth-child(2){left:70%;top:12%;animation-delay:-2.5s;animation-duration:9s}.page-hero .page-ghost-accent{position:absolute;width:180px;opacity:.3;filter:blur(1px);animation:ghostFloat 6s ease-in-out infinite;pointer-events:none}

/* Per-page atmospheric backgrounds */
.program-hero{background:radial-gradient(circle at 75% 30%,rgba(247,175,85,.12),transparent 25rem),radial-gradient(circle at 20% 80%,rgba(109,59,135,.15),transparent 30rem),linear-gradient(160deg,#111428,#090a18 60%,#060714);border-bottom-color:rgba(247,175,85,.08)}.program-hero .page-fog-a{background:radial-gradient(ellipse,rgba(247,175,85,.06),transparent 65%)}.program-hero .page-fog-b{background:radial-gradient(ellipse,rgba(141,106,181,.08),transparent 65%)}.join-hero{background:radial-gradient(circle at 70% 40%,rgba(160,90,229,.1),transparent 28rem),radial-gradient(circle at 15% 85%,rgba(65,48,98,.18),transparent 22rem),linear-gradient(155deg,#0f1025,#0a0b19 65%,#060710);border-bottom-color:rgba(160,90,229,.1)}.join-hero .page-fog-a{background:radial-gradient(ellipse,rgba(160,90,229,.08),transparent 65%)}.join-hero .page-fog-b{background:radial-gradient(ellipse,rgba(100,70,140,.1),transparent 65%)}.games-hero{background:radial-gradient(circle at 78%,rgba(178,73,156,.27),transparent 28rem),radial-gradient(circle at 25% 75%,rgba(141,106,181,.1),transparent 22rem),linear-gradient(160deg,#120e28,#100c21 60%,#08091a);border-bottom-color:rgba(178,73,156,.12)}.games-hero .page-fog-a{background:radial-gradient(ellipse,rgba(178,73,156,.06),transparent 65%)}.games-hero .page-fog-b{background:radial-gradient(ellipse,rgba(141,106,181,.08),transparent 65%)}.book-hero{background:radial-gradient(circle at 65% 35%,rgba(188,124,67,.1),transparent 22rem),radial-gradient(circle at 25% 80%,rgba(56,34,62,.2),transparent 25rem),linear-gradient(160deg,#120e22,#0a0b18 60%,#070810);border-bottom-color:rgba(188,124,67,.08)}.book-hero .page-fog-a{background:radial-gradient(ellipse,rgba(188,124,67,.06),transparent 65%)}.book-hero .page-fog-b{background:radial-gradient(ellipse,rgba(56,34,62,.1),transparent 65%)}.account-hero{background:radial-gradient(circle at 80% 30%,rgba(199,154,82,.08),transparent 25rem),radial-gradient(circle at 10% 75%,rgba(65,48,98,.12),transparent 28rem),linear-gradient(155deg,#0e0f24,#090a17 65%,#060710);border-bottom-color:rgba(199,154,82,.06)}.account-hero .page-fog-a{background:radial-gradient(ellipse,rgba(199,154,82,.05),transparent 65%)}.account-hero .page-fog-b{background:radial-gradient(ellipse,rgba(100,70,140,.08),transparent 65%)}.news-hero{background:radial-gradient(circle at 70% 40%,rgba(240,221,189,.07),transparent 22rem),radial-gradient(circle at 20% 75%,rgba(109,59,135,.1),transparent 25rem),linear-gradient(160deg,#111428,#090a18 60%,#060714);border-bottom-color:rgba(240,221,189,.06)}.news-hero .page-fog-a{background:radial-gradient(ellipse,rgba(240,221,189,.05),transparent 65%)}.news-hero .page-fog-b{background:radial-gradient(ellipse,rgba(141,106,181,.08),transparent 65%)}.safety-hero{background:radial-gradient(circle at 75% 35%,rgba(145,184,74,.08),transparent 25rem),radial-gradient(circle at 20% 80%,rgba(56,46,62,.15),transparent 22rem),linear-gradient(160deg,#0e1020,#0a0b17 65%,#060710);border-bottom-color:rgba(145,184,74,.06)}.safety-hero .page-fog-a{background:radial-gradient(ellipse,rgba(145,184,74,.05),transparent 65%)}.safety-hero .page-fog-b{background:radial-gradient(ellipse,rgba(56,46,62,.1),transparent 65%)}

/* ═══════ End Enhanced Page Hero Atmosphere ═══════ */
@media (max-width:1280px){.brand{width:200px;flex-basis:200px}.brand-logo strong{font-size:23px}.brand-logo b{font-size:20px}.account-control{display:none}.home-world-grid{grid-template-columns:235px minmax(430px,1fr) 260px;gap-inline:15px}.ambient-ghost{width:260px}.home-feature{padding:15px}.home-feature h2{font-size:16px}.reference-radar{width:128px;height:128px}.world-footer{grid-template-columns:1fr auto 1fr}}
@media (min-width:1281px) and (max-width:1500px){.world-header{padding-inline:20px;gap:14px}.brand{width:210px;flex-basis:210px}.brand-logo strong{font-size:23px}.brand-logo b{font-size:20px}.nav-links{gap:8px}.nav-links a{font-size:10px}.nav-links a.active{padding-inline:10px}.sound-control,.atmosphere-control{padding-inline:8px}.account-control{min-width:145px;margin-left:4px;padding-left:10px}.account-control i{width:34px;height:34px}.account-control strong{font-size:12px}.account-control small{font-size:10px}}
@media (max-width:1023px){.world-header{height:72px}.brand{width:190px;flex-basis:190px}.brand-logo{top:8px}.desktop-links,.sound-control span,.atmosphere-control span{display:none}.sound-control,.atmosphere-control{width:39px;padding:0;justify-content:center;border-radius:0}.home-status-banner{top:72px}.neighborhood-home{padding:92px 22px 28px}.home-world-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;grid-template-areas:"hero hero" "features features" "news side";gap:22px}.home-hero{min-height:590px}.home-feature-row{grid-template-columns:1fr 1fr}.home-feature{min-height:165px}.nachtbode-preview{margin:0;max-height:none}.home-side-right{margin:0;grid-template-rows:270px auto}.houses-page{grid-template-columns:1fr}.houses-map-shell{position:relative;top:auto;height:500px}.world-footer{grid-template-columns:1fr auto}.footer-social{display:none}.footer-legal{grid-column:1/-1}.mobile-nav{top:72px}}
@media (max-width:640px){.world-header{padding:0 13px}.brand{width:150px;flex-basis:150px}.brand-logo strong{font-size:19px}.brand-logo b{font-size:16px}.brand-logo em{font-size:13px}.sound-control{display:flex}.atmosphere-control{display:none}.neighborhood-home{padding:76px 14px 24px;background:#040706}.neighborhood-scene{height:650px;background-position:56% top}.neighborhood-home:after{background:linear-gradient(180deg,transparent 0,rgba(4,7,6,.2) 35%,#040706 70%)}.home-world-grid{display:flex;flex-direction:column;gap:17px}.home-hero{order:1;min-height:555px}.home-feature-row{order:2;display:contents}.radar-feature{order:3}.houses-feature{order:4}.nachtbode-preview{order:5}.home-side-right{order:6;display:contents}.ranger-poster{order:6;min-height:285px}.quick-panel{order:7}.team-feature{order:8}.volunteer-feature{order:9}.hero-message{padding-top:10px;align-self:start;margin-top:90px}.hero-message h1{font-size:clamp(33px,10vw,42px)}.hero-message p{font-size:16px;line-height:1.38}.hero-cta{width:min(100%,320px)}.countdown-panel{padding-inline:7px}.countdown-values strong{font-size:29px}.countdown-values span{font-size:8px}.ambient-ghost{display:none}.home-feature{min-height:165px}.home-feature p{max-width:65%}.nachtbode-preview{max-width:none}.home-status-banner{position:relative;top:-4px;margin:-4px -14px 4px;padding:8px 12px;flex-direction:column;gap:0;text-align:center}.quick-panel{padding:16px 20px}.quick-panel a{padding:9px 4px}.world-footer{grid-template-columns:1fr;padding:20px 14px 84px}.social-links{justify-self:center}.footer-legal{flex-direction:column;gap:8px}.houses-page{width:calc(100% - 28px);padding-block:45px}.houses-map-shell{height:430px}.halloween-house-card{grid-template-columns:1fr}.house-card-art{min-height:180px}.portal-dialog{width:calc(100% - 24px);padding:28px 20px}.portal-actions{grid-template-columns:1fr}}

/* Monster Tracker miniature-world finish */
.tracker-map-shell{background:#071016!important}
.tracker-map-shell .monster-map{background:
radial-gradient(circle at 18% 28%,rgba(38,54,43,.34),transparent 28%),
radial-gradient(circle at 82% 76%,rgba(66,43,28,.2),transparent 26%),#102027!important}
.tracker-map-shell .monster-map .maplibregl-canvas{filter:saturate(.88) sepia(.10) hue-rotate(342deg) brightness(.78) contrast(1.12)!important}
.tracker-map-shell::after{z-index:7;background:
linear-gradient(90deg,rgba(2,6,8,.34),transparent 13%,transparent 87%,rgba(2,6,8,.38)),
radial-gradient(ellipse at center,transparent 52%,rgba(1,5,7,.5) 100%);box-shadow:inset 0 0 45px rgba(0,0,0,.46)!important}
.tracker-map-shell .map-light-wash{opacity:.7;mix-blend-mode:screen}
.tracker-map-shell .map-fog{opacity:.36}
.tracker-house-debug{top:76px!important;right:12px!important;max-width:285px!important;color:#d9ccb0!important;background:rgba(5,9,10,.94)!important;border-color:#8a5a28!important;text-shadow:0 1px #000}
.halloween-popup .maplibregl-popup-content{background:rgba(7,12,13,.96);border-color:#9a6d34;color:#c9bba6}
.halloween-popup strong{color:#e8c98b}
@media(max-width:720px){.tracker-house-debug{display:none}.tracker-map-shell .map-fog{opacity:.18}}
@media (max-width:360px){.header-tools{gap:4px}.sound-control{width:35px}.brand{width:142px;flex-basis:142px}.neighborhood-home{padding-inline:12px}.reference-radar{right:-8px}.nachtbode-list article{grid-template-columns:55px 1fr}.hero-message h1{font-size:31px}}
@media (prefers-reduced-motion:reduce){.scene-clouds,.scene-fog,.scene-leaves i,.scene-bats i,.ambient-ghost,.reference-radar i,.page-fog,.page-leaves i,.page-bats i,.page-ghost-accent{animation:none!important}.hero-cta:hover,.vintage-button:hover{transform:none}}

/* ── Music Page ── */
.music-hero{background:linear-gradient(135deg,var(--color-night-950) 0%,#1a0a2e 40%,#0d1b3e 100%);color:var(--color-parchment-100);display:flex;align-items:center;gap:3rem}.music-hero-vinyl{position:absolute;right:8%;top:50%;transform:translateY(-50%);opacity:.12}.vinyl-disc{width:280px;height:280px;border-radius:50%;background:repeating-radial-gradient(circle,#1a1a1a 0,#1a1a1a 4px,#2a2a2a 4px,#2a2a2a 8px);border:3px solid #333;animation:vinyl-spin 8s linear infinite}
@keyframes vinyl-spin{to{transform:rotate(360deg)}}
.music-page{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
.music-now-playing{display:flex;align-items:center;gap:2rem;background:linear-gradient(135deg,#0d0d1a,#1a0a2e);border:1px solid rgba(160,90,229,.25);border-radius:1rem;padding:2rem;margin-bottom:3rem;position:relative;overflow:hidden}
.music-now-playing::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(160,90,229,.08),transparent 60%);pointer-events:none}
.music-player-visual{flex-shrink:0}.music-vinyl{width:80px;height:80px;border-radius:50%;background:repeating-radial-gradient(circle,#222 0,#222 3px,#333 3px,#333 6px);border:2px solid #444;transition:transform .3s}.music-vinyl.spinning{animation:vinyl-spin 2s linear infinite}
.music-player-info{flex:1;min-width:0}.music-player-info h2{font-family:var(--heading);font-size:1.5rem;margin:.5rem 0 .25rem;color:var(--color-parchment-100)}.music-player-info small{color:var(--color-moss-500);font-size:.85rem}
.music-player-controls{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.music-btn{width:48px;height:48px;border-radius:50%;border:2px solid rgba(160,90,229,.4);background:rgba(160,90,229,.12);color:var(--color-parchment-100);font-size:1.2rem;cursor:pointer;display:grid;place-items:center;transition:all .2s}
.music-btn:hover{background:rgba(160,90,229,.25);border-color:var(--color-spirit-500);transform:scale(1.05)}
.music-btn-play{width:56px;height:56px;font-size:1.4rem;background:var(--color-spirit-500);border-color:var(--color-spirit-500)}
.music-btn-play:hover{background:#b36cf0}
.music-btn-sm{width:32px;height:32px;border-radius:50%;border:1px solid rgba(160,90,229,.3);background:rgba(160,90,229,.08);color:var(--color-parchment-100);font-size:.85rem;cursor:pointer;display:grid;place-items:center;transition:all .2s}
.music-btn-sm:hover{background:rgba(160,90,229,.2)}
.music-remaining{color:var(--color-moss-500);font-size:.85rem;white-space:nowrap}
.music-artists h2,.music-all-tracks h2{font-family:var(--heading);font-size:1.6rem;color:var(--color-parchment-100);margin-bottom:1.5rem}
.music-artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:3rem}
.music-artist-card{background:linear-gradient(145deg,rgba(13,13,26,.9),rgba(26,10,46,.7));border:1px solid rgba(160,90,229,.15);border-radius:.75rem;padding:1.5rem;transition:border-color .2s}
.music-artist-card:hover{border-color:rgba(160,90,229,.4)}
.music-artist-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-spirit-500),var(--color-pumpkin-500));display:grid;place-items:center;font-family:var(--display);font-size:1.3rem;color:#fff;margin-bottom:.75rem}
.music-artist-card h3{font-family:var(--heading);font-size:1.1rem;color:var(--color-parchment-100);margin-bottom:.25rem}
.music-artist-card small{color:var(--color-moss-500);font-size:.8rem;display:block;margin-bottom:1rem}
.music-track-list{list-style:none;padding:0;margin:0}
.music-track-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:.5rem;cursor:pointer;transition:background .15s}
.music-track-list li:hover{background:rgba(160,90,229,.1)}
.music-track-list li.active{background:rgba(160,90,229,.2);border-left:3px solid var(--color-spirit-500)}
.music-track-title{font-size:.9rem;color:var(--color-parchment-100)}
.music-track-duration{font-size:.8rem;color:rgba(239,226,197,.5)}
.music-table{width:100%;border-collapse:collapse;margin-bottom:2rem}
.music-table th{text-align:left;font-family:var(--heading);font-size:.85rem;color:var(--color-moss-500);padding:.75rem .5rem;border-bottom:1px solid rgba(160,90,229,.2)}
.music-table td{padding:.6rem .5rem;font-size:.9rem;color:var(--color-parchment-100);border-bottom:1px solid rgba(255,255,255,.04)}
.music-table tr:hover td{background:rgba(160,90,229,.06)}
.music-table tr.active td{background:rgba(160,90,229,.12)}
.music-info-footer{text-align:center;padding:2rem 0;border-top:1px solid rgba(160,90,229,.15);margin-top:2rem}
.music-info-footer p{color:rgba(239,226,197,.6);font-size:.9rem;margin-bottom:.5rem}
.music-info-footer small{color:var(--color-moss-500);font-size:.8rem}
.music-loading,.music-empty{text-align:center;padding:4rem 2rem;color:var(--color-parchment-100);font-family:var(--heading);font-size:1.1rem}
#audio{display:none}
@media(max-width:768px){.music-now-playing{flex-direction:column;text-align:center}.music-player-controls{justify-content:center}.music-artist-grid{grid-template-columns:1fr}.music-hero-vinyl{display:none}.music-table{font-size:.8rem}}
@media (prefers-reduced-motion:reduce){.vinyl-disc,.music-vinyl.spinning{animation:none!important}}

/* Ghost Arcade 2.0 */
.ghost-arcade-shell{position:relative;min-height:560px;padding:1.1rem 1.1rem 1.4rem;background:radial-gradient(circle at 12% 14%,rgba(255,176,84,.16),transparent 28%),radial-gradient(circle at 84% 8%,rgba(83,166,132,.15),transparent 34%),linear-gradient(165deg,#0f141f,#090c15 52%,#0d101b)}
.ghost-arcade-readout{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}
.ghost-arcade-kicker{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#f6c683;font-weight:800}
.ghost-arcade-badges{display:flex;gap:.55rem;flex-wrap:wrap}
.ghost-arcade-badges b{display:inline-flex;align-items:baseline;gap:.35rem;border:1px solid rgba(255,255,255,.16);background:rgba(6,9,16,.66);padding:.28rem .45rem;font-size:.58rem;letter-spacing:.11em;text-transform:uppercase}
.ghost-arcade-badges strong{color:#ffd07f;font-size:.9rem}
.ghost-arcade-stage{position:relative;width:100%;min-height:455px;border:1px solid rgba(241,188,115,.35);overflow:hidden;background:radial-gradient(circle at 50% -18%,rgba(255,224,180,.16),transparent 58%),radial-gradient(circle at 6% 90%,rgba(32,102,90,.36),transparent 42%),radial-gradient(circle at 90% 86%,rgba(48,46,92,.38),transparent 44%),linear-gradient(180deg,#0a0f17 0,#14142a 44%,#1b1228 75%,#140f1f 100%);touch-action:none;outline:none}
.ghost-arcade-stage:before,.ghost-arcade-stage:after{content:"";position:absolute;inset:0;pointer-events:none}
.ghost-arcade-stage:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 44px);mix-blend-mode:soft-light}
.ghost-arcade-stage:after{background:radial-gradient(circle at 50% 50%,transparent 48%,rgba(4,6,12,.62))}
.ghost-arcade-layer{position:absolute;inset:0;pointer-events:none}
.ghost-arcade-depth{position:absolute;inset:auto 0 0;height:45%;pointer-events:none}
.ghost-arcade-depth.back{height:64%;background:linear-gradient(180deg,transparent,rgba(53,57,93,.28))}
.ghost-arcade-depth.mid{background:linear-gradient(180deg,transparent,rgba(37,74,66,.34) 45%,rgba(7,11,17,.46)),repeating-linear-gradient(110deg,rgba(12,24,23,.42) 0,rgba(12,24,23,.42) 26px,transparent 26px,transparent 55px)}
.ghost-arcade-depth.front{height:33%;background:linear-gradient(180deg,transparent,rgba(15,23,19,.58)),repeating-linear-gradient(90deg,rgba(22,34,32,.66) 0,rgba(22,34,32,.66) 34px,transparent 34px,transparent 77px)}
.ghost-arcade-player{position:absolute;width:36px;height:18px;border-radius:12px 12px 4px 4px;border:1px solid rgba(255,243,204,.55);background:linear-gradient(180deg,rgba(255,201,112,.92),rgba(232,107,55,.82));box-shadow:0 0 20px rgba(255,153,88,.48);transform:translate(-50%,-50%)}
.ghost-arcade-reticle{position:absolute;width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,246,213,.86);box-shadow:0 0 0 6px rgba(255,208,127,.14);transform:translate(-50%,-50%)}
.ghost-arcade-reticle:before,.ghost-arcade-reticle:after{content:"";position:absolute;background:rgba(255,246,213,.86)}
.ghost-arcade-reticle:before{width:2px;left:50%;top:7px;bottom:7px;transform:translateX(-50%)}
.ghost-arcade-reticle:after{height:2px;top:50%;left:7px;right:7px;transform:translateY(-50%)}
.ghost-arcade-ghost{position:absolute;width:var(--size,64px);height:calc(var(--size,64px) * 1.08);border:0;border-radius:50% 50% 20% 20%;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.98),rgba(223,232,255,.88) 55%,rgba(141,178,238,.72));box-shadow:0 0 30px rgba(175,206,255,.43);transform:translate(-50%,-50%);pointer-events:none}
.ghost-arcade-ghost:before,.ghost-arcade-ghost:after{content:"";position:absolute;top:28%;width:8px;height:11px;border-radius:50%;background:#223149}
.ghost-arcade-ghost:before{left:30%}
.ghost-arcade-ghost:after{right:30%}
.ghost-arcade-ghost.back{filter:saturate(.75) brightness(.78);opacity:.62}
.ghost-arcade-ghost.front{filter:drop-shadow(0 0 18px rgba(158,217,197,.54))}
.ghost-arcade-ghost.hide{opacity:.36}
.ghost-arcade-ghost.lunge{filter:hue-rotate(-22deg) saturate(1.2) drop-shadow(0 0 20px rgba(255,126,99,.54))}
.ghost-arcade-projectile{position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.ghost-arcade-projectile.player{background:radial-gradient(circle at 35% 35%,#fffbe8,#ffd379 65%,#d7722f);box-shadow:0 0 16px rgba(255,165,92,.58)}
.ghost-arcade-projectile.enemy{width:15px;height:15px;background:radial-gradient(circle at 35% 35%,#b7f7de,#5ac7a9 60%,#17695d);box-shadow:0 0 15px rgba(94,225,180,.52)}
.ghost-arcade-clock{position:absolute;width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,240,204,.8);background:radial-gradient(circle at 48% 42%,#fffce8,#ffd98d 70%,#e18532);box-shadow:0 0 20px rgba(255,170,84,.55);transform:translate(-50%,-50%);pointer-events:none}
.ghost-arcade-clock:before{content:"";position:absolute;left:50%;top:7px;width:2px;height:11px;background:#513119;transform:translateX(-50%) rotate(18deg);transform-origin:bottom center}
.ghost-arcade-clock:after{content:"";position:absolute;left:50%;top:50%;width:9px;height:2px;background:#513119;transform:translate(-8%,-50%) rotate(-24deg);transform-origin:left center}
.ghost-arcade-banner{position:absolute;left:50%;top:1rem;transform:translateX(-50%);min-height:34px;min-width:210px;max-width:min(80%,460px);display:grid;place-items:center;text-align:center;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.22);background:rgba(6,10,16,.78);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:#fae2b1;pointer-events:none}
.ghost-arcade-controls{margin-top:.9rem;display:flex;align-items:center;flex-wrap:wrap;gap:.55rem}
.ghost-arcade-controls .button-primary,.ghost-arcade-controls .button-ghost,.ghost-arcade-controls .button-quiet{min-height:44px}
.ghost-arcade-help{margin:.8rem 0 0;color:#b6c1d6;font-size:.78rem}
.ghost-arcade-live{margin:.55rem 0 0;color:#9fd6c7;min-height:1.3rem;font-size:.76rem}
.ghost-arcade-shell .button-primary:disabled,.ghost-arcade-shell .button-ghost:disabled,.ghost-arcade-shell .button-quiet:disabled{opacity:.45;cursor:not-allowed}
.ghost-arcade-stage[data-state="countdown"] .ghost-arcade-banner,.ghost-arcade-stage[data-state="roundrestart"] .ghost-arcade-banner{border-color:rgba(255,197,104,.55);box-shadow:0 0 18px rgba(255,154,74,.33)}
.ghost-arcade-stage[data-state="lifelost"] .ghost-arcade-banner{border-color:rgba(255,123,106,.62);color:#ffd0c6}
.ghost-arcade-stage[data-state="gameover"] .ghost-arcade-banner{border-color:rgba(255,211,151,.45);color:#ffe3bd}
.ghost-arcade-stage.is-reduced .ghost-arcade-ghost,.ghost-arcade-stage.is-reduced .ghost-arcade-projectile,.ghost-arcade-stage.is-reduced .ghost-arcade-clock{transition:none!important}
@media(max-width:768px){.ghost-arcade-shell{min-height:520px;padding:.85rem .85rem 1.05rem}.ghost-arcade-stage{min-height:400px}.ghost-arcade-readout{align-items:flex-start;flex-direction:column;gap:.5rem}.ghost-arcade-controls{gap:.45rem}.ghost-arcade-controls .button-primary,.ghost-arcade-controls .button-ghost,.ghost-arcade-controls .button-quiet{flex:1;min-width:105px}}
@media(max-width:480px){.ghost-arcade-stage{min-height:350px}.ghost-arcade-banner{min-width:160px;font-size:.56rem}}

:root{
	--witch-black:#050807;
	--witch-night:#090D15;
	--witch-deep-purple:#170D21;
	--witch-panel:#211329;
	--witch-panel-light:#2A1632;
	--potion-green-dark:#1C541E;
	--potion-green:#4CBC35;
	--potion-green-bright:#7BEE42;
	--potion-green-glow:#9AFF66;
	--witch-purple-dark:#381646;
	--witch-purple:#702D8A;
	--witch-purple-light:#A14BC4;
	--witch-purple-glow:#CF78EF;
	--pumpkin-dark:#A84A12;
	--pumpkin-orange:#EE7522;
	--pumpkin-bright:#FF932C;
	--pumpkin-glow:#FFB34B;
	--gold-dark:#866128;
	--gold:#D09A3F;
	--gold-light:#F0C66F;
	--parchment-dark:#9B754A;
	--parchment:#D8BD8C;
	--parchment-light:#F1D9A8;
	--parchment-text:#2A190E;
	--text-primary:#F1E7D6;
	--text-secondary:#BEB2A2;
	--text-muted:#7F7882;
	--life-full:#EA3037;
	--life-empty:#443138;
	--bonus-blue:#4BC6F2;
	--bonus-blue-glow:#93E7FF;
}

.game-tabs button .mini-cauldron{
	width:42px;
	height:34px;
	border-radius:34% 34% 38% 38%;
	background:linear-gradient(180deg,var(--pumpkin-bright),var(--pumpkin-dark));
	border:1px solid rgba(255,188,113,.45);
	position:relative;
	box-shadow:0 8px 20px rgba(255,148,55,.2);
}

.game-tabs button .mini-cauldron:before,
.game-tabs button .mini-cauldron:after{
	content:"";
	position:absolute;
	border:2px solid rgba(255,205,145,.72);
	border-radius:50%;
	top:9px;
	width:10px;
	height:10px;
}

.game-tabs button .mini-cauldron:before{left:-8px;border-right:none;}
.game-tabs button .mini-cauldron:after{right:-8px;border-left:none;}

.game-tabs button:nth-child(2).active{
	background:linear-gradient(135deg,#25132D,#391443);
	border-color:#B65CD2;
	box-shadow:0 0 18px rgba(180,80,215,.18);
}

.witch-cauldron-shell{
	position:relative;
	min-height:650px;
	padding:1rem;
	border:1px solid rgba(186,112,216,.38);
	background:radial-gradient(circle at 82% 6%,rgba(225,128,255,.14),transparent 34%),
			   radial-gradient(circle at 12% 14%,rgba(255,167,78,.13),transparent 36%),
			   linear-gradient(160deg,var(--witch-panel),#0f1220 58%,#0a1211 100%);
}

.witch-cauldron-briefing{
	display:grid;
	grid-template-columns:minmax(220px,1.15fr) minmax(360px,1.7fr) minmax(180px,1fr);
	gap:.85rem;
	margin-bottom:.85rem;
}

.witch-cauldron-hilde-card,
.witch-cauldron-recipe-card,
.witch-cauldron-hud-card{
	border:1px solid rgba(255,209,141,.24);
	background:linear-gradient(165deg,rgba(8,11,17,.92),rgba(19,14,31,.9));
	padding:.75rem;
}

.witch-cauldron-hilde-card h2{
	margin:.2rem 0 .3rem;
	font-family:var(--display);
	color:var(--pumpkin-bright);
	font-size:1.55rem;
	letter-spacing:.02em;
}

.witch-cauldron-hilde-card p{
	margin:0;
	color:var(--text-secondary);
	font-size:.88rem;
	line-height:1.4;
}

.witch-cauldron-hilde-kicker{
	text-transform:uppercase;
	letter-spacing:.18em;
	font-size:.58rem;
	color:var(--gold-light);
	font-weight:800;
}

.witch-cauldron-hilde-line{
	margin-top:.45rem!important;
	color:var(--parchment-light)!important;
	font-family:var(--display);
	font-size:.86rem!important;
}

.witch-cauldron-recipe-card header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.7rem;
	margin-bottom:.45rem;
}

.witch-cauldron-recipe-card h3{
	margin:0;
	font-family:var(--display);
	color:var(--parchment-light);
	font-size:1.3rem;
	text-transform:uppercase;
	letter-spacing:.06em;
}

.witch-cauldron-recipe-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
	gap:.5rem;
}

.witch-cauldron-recipe-item{
	display:grid;
	grid-template-columns:42px 1fr;
	align-items:center;
	gap:.45rem;
	border:1px solid rgba(214,180,112,.23);
	background:linear-gradient(160deg,rgba(241,219,178,.92),rgba(201,159,104,.9));
	color:var(--parchment-text);
	min-height:54px;
	padding:.35rem .45rem;
}

.witch-cauldron-recipe-item.done{
	border-color:rgba(129,224,111,.52);
	box-shadow:0 0 18px rgba(123,233,110,.18);
}

.witch-cauldron-recipe-item strong{
	font-family:var(--display);
	font-size:.78rem;
	display:block;
}

.witch-cauldron-recipe-item small{
	font-size:.72rem;
	color:#3a2814;
}

.witch-cauldron-recipe-empty{
	margin:0;
	border:1px dashed rgba(214,180,112,.33);
	color:var(--parchment-light);
	min-height:66px;
	display:grid;
	place-items:center;
	text-align:center;
	font-size:.8rem;
	background:rgba(16,12,22,.58);
}

.witch-ingredient-icon{
	width:38px;
	height:38px;
	border-radius:50%;
	display:grid;
	place-items:center;
	font-family:var(--display);
	font-size:.65rem;
	color:#fdf7ef;
	background:radial-gradient(circle at 35% 30%,var(--witch-purple-light),var(--witch-purple-dark));
	border:1px solid rgba(255,226,165,.48);
	box-shadow:0 0 12px rgba(199,120,240,.28);
}

.witch-cauldron-hud-card{
	display:grid;
	gap:.5rem;
	align-content:start;
}

.witch-cauldron-hearts{
	display:flex;
	gap:.35rem;
}

.witch-heart{
	width:24px;
	height:22px;
	display:inline-block;
	clip-path:path("M12 21C11.8 20.8 11.3 20.3 10.6 19.7C7.2 16.7 1 11.4 1 6.9C1 4.2 3.2 2 5.9 2C7.7 2 9.2 2.9 10 4.2C10.8 2.9 12.3 2 14.1 2C16.8 2 19 4.2 19 6.9C19 11.4 12.8 16.7 9.4 19.7C8.7 20.3 8.2 20.8 8 21H12Z");
	background:var(--life-empty);
	filter:drop-shadow(0 0 5px rgba(0,0,0,.4));
}

.witch-heart.full{background:var(--life-full);box-shadow:0 0 14px rgba(234,48,55,.34);}

.witch-cauldron-timer,
.witch-cauldron-level{
	border:1px solid rgba(244,196,122,.23);
	background:rgba(8,11,17,.72);
	min-height:54px;
	padding:.4rem .55rem;
	display:grid;
	align-content:center;
	gap:.15rem;
}

.witch-cauldron-timer span,
.witch-cauldron-level span{
	font-size:.6rem;
	text-transform:uppercase;
	letter-spacing:.14em;
	color:var(--gold-light);
	font-weight:700;
}

.witch-cauldron-timer strong,
.witch-cauldron-level strong{
	font-family:var(--display);
	font-size:1.35rem;
	color:var(--text-primary);
}

.witch-cauldron-stage{
	position:relative;
	width:100%;
	min-height:440px;
	height:clamp(440px,56vh,720px);
	border:1px solid rgba(244,197,132,.38);
	overflow:hidden;
	touch-action:none;
	outline:none;
	background:linear-gradient(180deg,#090b12,#0d1020 45%,#1c1228 100%);
}

.witch-cauldron-scene{
	position:relative;
	width:100%;
	height:100%;
	overflow:hidden;
	background:radial-gradient(circle at 52% 10%,rgba(147,115,217,.22),transparent 43%),
			   radial-gradient(circle at 54% 74%,rgba(122,255,91,.18),transparent 46%),
			   linear-gradient(180deg,#130f1f 0,#2c1a2e 37%,#1d1718 60%,#131112 100%);
}

.witch-room-wall,
.witch-window-moon,
.witch-room-beams,
.witch-room-shelves,
.witch-room-web,
.witch-room-lantern{position:absolute;pointer-events:none;}

.witch-room-wall{inset:0;background:radial-gradient(circle at 50% 42%,rgba(65,60,88,.45),transparent 60%),linear-gradient(180deg,rgba(16,8,23,.92),rgba(31,20,29,.9));}
.witch-room-sign{position:absolute;z-index:1;left:50%;top:4%;transform:translateX(-50%) rotate(-2deg);padding:.45rem 1.3rem;border:5px solid #382119;border-radius:4px;background:linear-gradient(160deg,#a86d3e,#5d3623 55%,#382018);box-shadow:0 8px 18px #0008,inset 0 0 0 2px #c28b4b;color:#f2d08c;font-family:var(--display);font-size:clamp(.85rem,2vw,1.4rem);letter-spacing:.11em;text-shadow:2px 2px #32170f,0 0 8px #9df36d;}
.witch-room-sign::after{content:"";position:absolute;left:8%;right:8%;bottom:-9px;height:11px;background:linear-gradient(90deg,transparent,#73d359 20%,#a8f17e 48%,#4a9c42 80%,transparent);filter:blur(2px);opacity:.8;}
.witch-room-spider{position:absolute;z-index:2;left:18%;top:18%;color:#0d0a12;font-size:1.4rem;animation:witchSpiderWalk 12s ease-in-out infinite;filter:drop-shadow(0 0 3px #000);}
.witch-window-moon{left:38%;top:9%;width:24%;height:28%;border-radius:52% 52% 8% 8%;border:1px solid rgba(215,192,242,.2);background:radial-gradient(circle at 68% 28%,rgba(231,230,255,.55),rgba(130,120,179,.2) 35%,rgba(10,14,22,.05) 56%);box-shadow:inset 0 0 25px rgba(176,156,225,.24);}
.witch-room-beams{inset:auto 0 0;height:38%;background:repeating-linear-gradient(100deg,rgba(42,26,23,.58) 0,rgba(42,26,23,.58) 42px,rgba(19,15,17,.38) 42px,rgba(19,15,17,.38) 86px);}
.witch-room-shelves{left:0;right:0;top:14%;height:24%;background:linear-gradient(180deg,transparent,rgba(53,33,19,.2)),repeating-linear-gradient(90deg,transparent 0,transparent 56px,rgba(203,151,89,.08) 56px,rgba(203,151,89,.08) 65px);}
.witch-room-web{left:-3%;top:-6%;width:26%;height:24%;background:radial-gradient(circle at 10% 10%,rgba(255,255,255,.22) 1px,transparent 2px),repeating-radial-gradient(circle at 6% 8%,rgba(255,255,255,.18) 0 1px,transparent 1px 13px);opacity:.35;}
.witch-room-lantern{right:8%;bottom:20%;width:66px;height:104px;border:1px solid rgba(244,183,104,.45);background:radial-gradient(circle at 50% 48%,rgba(255,214,111,.68),rgba(239,124,37,.3) 58%,transparent 74%);box-shadow:0 0 26px rgba(255,166,78,.2);}

.witch-cauldron-layer{position:absolute;inset:0;pointer-events:none;}

.witch-hilde{
	position:absolute;
	left:2%;
	bottom:10%;
	width:22%;
	height:42%;
	background:radial-gradient(circle at 36% 36%,#f4c89d 7%,#ca875e 15%,transparent 16%),
			   radial-gradient(circle at 51% 21%,#2f1f3f 20%,transparent 21%),
			   radial-gradient(circle at 47% 46%,#6f4f43 12%,transparent 13%),
			   radial-gradient(circle at 48% 58%,#24122f 38%,transparent 39%),
			   radial-gradient(circle at 44% 24%,#b6acbb 15%,transparent 16%);
	filter:drop-shadow(0 8px 12px rgba(0,0,0,.5));
	pointer-events:none;
}
.witch-hilde-art{position:absolute;z-index:2;inset:-18% -23% -13% -24%;width:148%;height:131%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 13px rgba(0,0,0,.48));}
.witch-hilde-hat,.witch-hilde-eye{z-index:3;}

.witch-hilde-speech{
	position:absolute;
	left:4%;
	bottom:28%;
	max-width:24%;
	min-height:56px;
	padding:.5rem .65rem;
	border-radius:14px;
	border:1px solid rgba(201,163,101,.55);
	background:rgba(238,220,186,.92);
	color:#2f2012;
	font-size:.78rem;
	line-height:1.35;
	font-family:var(--heading);
	box-shadow:0 10px 22px rgba(0,0,0,.24);
}

.witch-cat{
	position:absolute;
	right:5%;
	bottom:11%;
	width:120px;
	height:146px;
	background:radial-gradient(circle at 35% 32%,#ffe794 4px,transparent 6px),
			   radial-gradient(circle at 64% 32%,#ffe794 4px,transparent 6px),
			   radial-gradient(circle at 50% 60%,#251735 34%,transparent 35%),
			   radial-gradient(circle at 46% 26%,#291b37 23%,transparent 24%);
	filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));
	transition:transform .32s ease;
	pointer-events:none;
}

.witch-cat.react{transform:translateY(-8px) rotate(-8deg);}

.witch-cauldron{
	position:absolute;
	left:50%;
	bottom:8%;
	width:42%;
	max-width:500px;
	min-width:300px;
	aspect-ratio:1.35/1;
	transform:translateX(-50%);
	border-radius:42% 42% 38% 38% / 33% 33% 50% 50%;
	background:linear-gradient(180deg,#2b2b31,#110f17 48%,#0c0c11 100%);
	border:1px solid rgba(255,215,145,.26);
	box-shadow:0 22px 34px rgba(0,0,0,.45),0 0 30px rgba(79,233,76,.14);
}
.witch-cauldron-art{position:absolute;z-index:2;inset:-29% -18% -18%;width:136%;height:147%;object-fit:contain;object-position:center bottom;pointer-events:none;filter:drop-shadow(0 18px 18px rgba(0,0,0,.42));}
.witch-cauldron.has-art{border:0;background:transparent;box-shadow:none;}
.witch-cauldron.has-art::before,.witch-cauldron.has-art::after,.witch-cauldron.has-art .witch-cauldron-runes,.witch-cauldron.has-art .witch-cauldron-face{display:none;}
.witch-cauldron.has-art .witch-cauldron-liquid{z-index:3;top:3%;left:13%;right:13%;height:22%;opacity:.28;mix-blend-mode:screen;}
.witch-cauldron.has-art .witch-cauldron-steam{z-index:4;top:-37%;left:8%;right:8%;height:60%;}

.witch-cauldron:before,.witch-cauldron:after{
	content:"";
	position:absolute;
	top:34%;
	width:32px;
	height:46px;
	border:2px solid rgba(203,179,138,.45);
	border-radius:20px;
}

.witch-cauldron:before{left:-20px;border-right:none;}
.witch-cauldron:after{right:-20px;border-left:none;}

.witch-cauldron-liquid{
	position:absolute;
	left:8%;
	right:8%;
	top:8%;
	height:30%;
	border-radius:50%;
	background:radial-gradient(circle at 48% 38%,var(--potion-green-bright),var(--potion-green) 48%,var(--potion-green-dark));
	box-shadow:0 0 26px rgba(154,255,102,.58);
	animation:witchPotionPulse 2.5s ease-in-out infinite;
}

.witch-cauldron-steam{
	position:absolute;
	left:17%;
	right:17%;
	top:-26%;
	height:45%;
	pointer-events:none;
	background:radial-gradient(circle at 20% 85%,rgba(100,255,137,.16),transparent 42%),radial-gradient(circle at 72% 48%,rgba(109,254,129,.14),transparent 52%),radial-gradient(circle at 45% 14%,rgba(206,255,210,.18),transparent 58%);
	filter:blur(1.2px);
	animation:witchSteamRise 3.6s linear infinite;
}

.witch-cauldron.pulse{box-shadow:0 18px 30px rgba(0,0,0,.45),0 0 44px rgba(130,255,111,.5);}
.witch-cauldron.wrong .witch-cauldron-liquid{background:radial-gradient(circle at 48% 38%,#d17cfa,#7f2f9d 56%,#2f1739);box-shadow:0 0 24px rgba(203,120,239,.4);}

.witch-cauldron-banner{
	position:absolute;
	left:50%;
	top:1rem;
	transform:translateX(-50%);
	min-width:220px;
	max-width:min(80%,560px);
	min-height:32px;
	display:grid;
	place-items:center;
	text-align:center;
	padding:.4rem .8rem;
	border:1px solid rgba(248,208,146,.4);
	background:rgba(13,12,23,.76);
	color:var(--parchment-light);
	font-size:.66rem;
	text-transform:uppercase;
	letter-spacing:.15em;
	pointer-events:none;
}

.witch-cauldron-overlay{
	position:absolute;
	inset:0;
	z-index:8;
	display:grid;
	place-content:center;
	gap:.55rem;
	text-align:center;
	padding:1.1rem;
	background:radial-gradient(circle at 50% 38%,rgba(24,17,40,.86),rgba(8,8,13,.94));
}

.witch-cauldron-overlay[hidden]{display:none;}

.witch-cauldron-overlay h3{
	margin:0;
	font-family:var(--display);
	font-size:1.9rem;
	color:var(--pumpkin-bright);
	letter-spacing:.04em;
}

.witch-cauldron-overlay p{
	margin:0;
	max-width:440px;
	color:var(--text-primary);
	font-size:.95rem;
	line-height:1.45;
}

.witch-overlay-action,
.witch-overlay-secondary{
	justify-self:center;
	min-width:220px;
	min-height:44px;
	border:1px solid rgba(255,206,133,.5);
	background:linear-gradient(180deg,#24172f,#160f21);
	color:var(--parchment-light);
	font-family:var(--heading);
	font-weight:800;
	letter-spacing:.11em;
	text-transform:uppercase;
	padding:0 .9rem;
}

.witch-overlay-action{background:linear-gradient(180deg,var(--pumpkin-bright),var(--pumpkin-dark));color:#2a1a0e;}

.witch-overlay-stats dl{
	margin:.2rem auto;
	width:min(420px,100%);
	display:grid;
	grid-template-columns:1fr auto;
	gap:.2rem .8rem;
	text-align:left;
	color:var(--text-primary);
	font-size:.8rem;
}

.witch-overlay-stats dt{color:var(--text-secondary);}
.witch-overlay-stats dd{margin:0;color:var(--gold-light);font-family:var(--display);}

.witch-ingredient{
	position:absolute;
	left:0;
	top:0;
	width:var(--size,64px);
	height:var(--size,64px);
	border:1px solid rgba(255,225,168,.48);
	border-radius:18px;
	background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.88),rgba(117,81,172,.88) 30%,rgba(29,20,46,.92));
	box-shadow:0 10px 20px rgba(0,0,0,.35),0 0 18px rgba(171,114,238,.22);
	color:#f8f2ff;
	pointer-events:auto;
	cursor:grab;
	padding:0;
	display:grid;
	place-items:end center;
}

.witch-ingredient span{
	display:block;
	width:calc(100% - 6px);
	margin:0 3px 4px;
	font-size:.56rem;
	line-height:1.2;
	text-align:center;
	text-shadow:0 1px 2px rgba(0,0,0,.6);
}

.witch-ingredient:before{
	content:"";
	position:absolute;
	left:18%;
	right:18%;
	top:15%;
	height:44%;
	border-radius:50%;
	background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.76),rgba(55,33,83,.96) 72%);
}

.witch-ingredient.special{
	border-color:rgba(147,231,255,.7);
	box-shadow:0 0 22px rgba(147,231,255,.4),0 10px 20px rgba(0,0,0,.35);
	background:radial-gradient(circle at 30% 22%,#effcff,#5eb8df 34%,#0f3454 100%);
}

.witch-ingredient.gag,
.witch-ingredient.danger{
	border-color:rgba(240,146,120,.6);
	background:radial-gradient(circle at 30% 22%,#ffe6cb,#d08059 34%,#592f27 100%);
}

.witch-ingredient.dragging{cursor:grabbing;filter:drop-shadow(0 0 18px rgba(255,199,115,.5));}

.witch-ingredient.spinnenpoot:before{clip-path:polygon(18% 0,82% 0,68% 32%,90% 64%,80% 100%,20% 100%,10% 64%,32% 32%);background:radial-gradient(circle at 50% 30%,#1a1a26,#0b0d12 72%);}
.witch-ingredient.paarse-paddenstoel:before{border-radius:52% 52% 45% 45%;background:radial-gradient(circle at 50% 30%,#d48cff,#7432a2 70%);}
.witch-ingredient.pompoenpit:before{clip-path:ellipse(45% 50% at 50% 50%);background:radial-gradient(circle at 50% 36%,#f9e3b4,#c6924c 74%);}
.witch-ingredient.nachtblad:before{clip-path:polygon(50% 0,75% 26%,100% 35%,80% 62%,86% 100%,50% 82%,14% 100%,20% 62%,0 35%,25% 26%);background:radial-gradient(circle at 50% 30%,#79d351,#2f7629 78%);}
.witch-ingredient.oogbal:before{border-radius:50%;background:radial-gradient(circle at 50% 48%,#6738a0 0 18%,#f6f1ff 19% 48%,#a98be2 49% 68%,#4a3162 69% 100%);}
.witch-ingredient.vleermuisvleugel:before{clip-path:polygon(0 52%,16% 36%,34% 42%,50% 24%,66% 42%,84% 36%,100% 52%,78% 78%,62% 66%,50% 80%,38% 66%,22% 78%);background:radial-gradient(circle at 50% 35%,#b77eff,#5a2d7f 80%);}
.witch-ingredient.pompoen:before{border-radius:46%;background:radial-gradient(circle at 50% 35%,#ffcf75,#dd6c27 75%);}
.witch-ingredient.verboden-bes:before{background:radial-gradient(circle at 50% 35%,#f8a5ff,#831f84 76%);box-shadow:0 0 14px rgba(223,126,247,.46);}

.witch-particle{
	position:absolute;
	left:0;
	top:0;
	width:8px;
	height:8px;
	border-radius:50%;
	transform:translate(var(--x),var(--y));
	animation:witchParticle var(--ttl) ease-out forwards;
	pointer-events:none;
}

.witch-particle.good{background:radial-gradient(circle,#e8ffd2,#7bee42 70%,#32592b);}
.witch-particle.wrong{background:radial-gradient(circle,#ffd6fb,#a04ed0 70%,#3c184e);}
.witch-particle.bonus{background:radial-gradient(circle,#e9fbff,#4bc6f2 70%,#205a7a);}

.witch-cauldron-statusbar{
	margin-top:.8rem;
	border:1px solid rgba(182,109,211,.32);
	background:rgba(10,13,21,.82);
	min-height:46px;
	display:grid;
	grid-template-columns:1fr 1fr auto;
	gap:.45rem;
	align-items:center;
	padding:.5rem .65rem;
	color:var(--text-primary);
	font-size:.81rem;
}

.witch-cauldron-statusbar span:last-child{
	justify-self:end;
	font-family:var(--display);
	color:var(--gold-light);
	letter-spacing:.05em;
}

.witch-cauldron-controls{
	margin-top:.7rem;
	display:flex;
	flex-wrap:wrap;
	gap:.55rem;
}

.witch-cauldron-controls .button-primary,
.witch-cauldron-controls .button-ghost,
.witch-cauldron-controls .button-quiet{min-height:44px;}

.witch-cauldron-help,
.witch-cauldron-live,
.witch-orientation-tip{
	margin:.62rem 0 0;
	font-size:.79rem;
	color:var(--text-secondary);
}

.witch-cauldron-live{color:#92f1bf;min-height:1.35rem;}
.witch-orientation-tip{display:none;color:#d6b07a;}

.witch-cauldron-stage[data-state="countdown"] .witch-cauldron-banner,
.witch-cauldron-stage[data-state="recipecomplete"] .witch-cauldron-banner{border-color:rgba(129,246,90,.5);}
.witch-cauldron-stage[data-state="lifelost"] .witch-cauldron-banner{border-color:rgba(209,120,250,.62);color:#ffd8fb;}
.witch-cauldron-stage[data-state="paused"] .witch-cauldron-banner{border-color:rgba(140,188,253,.55);color:#d8edff;}
.witch-cauldron-stage[data-state="gameover"] .witch-cauldron-banner{border-color:rgba(255,155,108,.55);color:#ffd7bd;}

@keyframes witchSteamRise{
	0%{transform:translateY(6px) scale(1);opacity:.55;}
	60%{opacity:.32;}
	100%{transform:translateY(-12px) scale(1.07);opacity:.08;}
}

@keyframes witchPotionPulse{
	0%,100%{transform:scale(1);filter:brightness(1);}
	50%{transform:scale(1.04);filter:brightness(1.14);}
}

@keyframes witchParticle{
	0%{opacity:.95;transform:translate(var(--x),var(--y)) scale(1);}
	100%{opacity:0;transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) scale(.3);}
}

@media(max-width:1080px){
	.witch-cauldron-briefing{grid-template-columns:1fr 1.35fr;}
	.witch-cauldron-hud-card{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;align-items:stretch;}
}

@media(max-width:860px){
	.witch-cauldron-shell{min-height:590px;padding:.85rem;}
	.witch-cauldron-briefing{grid-template-columns:1fr;}
	.witch-cauldron-stage{height:clamp(420px,62vh,640px);}
	.witch-cauldron-statusbar{grid-template-columns:1fr;gap:.2rem;}
	.witch-cauldron-statusbar span:last-child{justify-self:start;}
	.witch-hilde-speech{max-width:36%;font-size:.72rem;}
	.witch-cauldron{min-width:250px;width:44%;}
}

@media(max-width:640px){
	.witch-cauldron-shell{min-height:520px;padding:.72rem;}
	.witch-cauldron-stage{height:clamp(360px,60vh,520px);min-height:360px;}
	.witch-cauldron-controls .button-primary,
	.witch-cauldron-controls .button-ghost,
	.witch-cauldron-controls .button-quiet{flex:1;min-width:145px;}
	.witch-hilde{width:30%;height:38%;left:1%;}
	.witch-hilde-speech{max-width:50%;left:2%;bottom:25%;}
	.witch-cat{width:92px;height:114px;right:3%;}
	.witch-cauldron-banner{font-size:.58rem;min-width:160px;}
}

@media(max-width:480px) and (orientation:portrait){
	.witch-orientation-tip{display:block;}
}

.reduced-motion .witch-cauldron-liquid,
.reduced-motion .witch-cauldron-steam,
.reduced-motion .witch-particle,
.witch-cauldron-stage.is-reduced .witch-cauldron-liquid,
.witch-cauldron-stage.is-reduced .witch-cauldron-steam,
.witch-cauldron-stage.is-reduced .witch-particle{
	animation:none!important;
	transition:none!important;
}

/* De ketel-scene gebruikt losse lagen: zo blijft Hilde levend en kan een
   ingrediënt echt achter de rand verdwijnen. */
.witch-cauldron-runes{
	position:absolute;z-index:3;left:12%;right:12%;bottom:17%;padding:.28rem;
	color:rgba(151,255,120,.5);font-size:clamp(.65rem,1.4vw,1rem);letter-spacing:.7em;
	text-align:center;text-shadow:0 0 12px rgba(114,255,94,.7);transform:rotate(-3deg);
}
.witch-cauldron-face{
	position:absolute;z-index:3;left:50%;top:40%;transform:translate(-50%,-50%);
	color:rgba(201,255,155,.66);font-family:Georgia,serif;font-size:clamp(1rem,2.6vw,1.8rem);
	text-shadow:0 0 13px #9cff6e;opacity:.72;animation:witchFaceBlink 6s steps(1,end) infinite;
}
.witch-cauldron.splash .witch-cauldron-liquid{animation:witchSplash .65s ease-out!important;}
.witch-cauldron.shake{animation:witchCauldronShake .36s ease-in-out;}
.witch-new-record{display:block;color:#ffd46e;font-family:var(--display);font-size:1.25rem;text-shadow:0 0 18px #f39c42;animation:witchRecord .8s ease-out both;}
.witch-particle.record{width:12px;height:12px;background:radial-gradient(circle,#fff7bd,#ffc13b 55%,#cb5f25);box-shadow:0 0 14px #ffd35e;}
.witch-hilde-hat{position:absolute;left:21%;top:3%;width:56%;height:24%;border-radius:50% 50% 10% 10%;background:#241332;transform:rotate(-7deg);box-shadow:0 -9px 0 -2px #17101f,0 0 15px rgba(182,112,235,.35);}
.witch-hilde-eye{position:absolute;left:35%;top:25%;width:8%;height:5%;border-radius:50%;background:#f7d58e;box-shadow:30px 0 #f7d58e;animation:witchHildeBlink 5.4s steps(1,end) infinite;}
.witch-hilde.react{animation:witchHildeCelebrate .6s ease-out;}
.witch-hilde.panic{animation:witchHildePanic .55s ease-in-out;}
.witch-cauldron-stage[data-state="gameover"] .witch-hilde{filter:grayscale(.7) brightness(.72) drop-shadow(0 8px 12px rgba(0,0,0,.5));}

@keyframes witchFaceBlink{0%,92%,100%{opacity:.72}94%,96%{opacity:.08}}
@keyframes witchHildeBlink{0%,91%,100%{transform:scaleY(1)}93%,96%{transform:scaleY(.12)}}
@keyframes witchHildeCelebrate{35%{transform:translateY(-12px) rotate(-3deg)}70%{transform:translateY(0) rotate(3deg)}}
@keyframes witchHildePanic{25%{transform:translateX(-5px) rotate(-5deg)}50%{transform:translateX(5px) rotate(5deg)}75%{transform:translateY(-7px) rotate(-2deg)}}
@keyframes witchSplash{0%{transform:scale(1)}30%{transform:scale(1.14,.72)}70%{transform:scale(.98,1.08)}100%{transform:scale(1)}}
@keyframes witchCauldronShake{0%,100%{transform:translateX(-50%)}25%{transform:translateX(calc(-50% - 5px)) rotate(-1deg)}75%{transform:translateX(calc(-50% + 5px)) rotate(1deg)}}
@keyframes witchRecord{0%{transform:scale(.55) rotate(-5deg);opacity:0}65%{transform:scale(1.12) rotate(2deg);opacity:1}100%{transform:scale(1)}}
@keyframes witchSpiderWalk{0%,100%{transform:translate(0,0)}28%{transform:translate(70px,24px)}56%{transform:translate(38px,68px)}78%{transform:translate(-12px,42px)}}

/* Heksenketel v2: de werkplaats vult de hele game in plaats van een donker
   vlak. Interactieve objecten blijven losse lagen boven dit artwork. */
.witch-cauldron-shell{padding:0;border-color:#76502b;background:#130f12;box-shadow:0 25px 70px #000c;}
.witch-cauldron-briefing{position:relative;z-index:4;grid-template-columns:minmax(230px,.78fr) minmax(440px,1.75fr) minmax(170px,.55fr);gap:0;margin:0;padding:1rem 1rem 0;background:linear-gradient(180deg,#0c0b10 0%,transparent 100%);pointer-events:none;}
.witch-cauldron-briefing > *{pointer-events:auto;}
.witch-cauldron-hilde-card{margin-top:.35rem;min-height:164px;transform:rotate(-2deg);clip-path:polygon(4% 0,96% 4%,100% 86%,94% 100%,8% 96%,0 11%);border:0;background:linear-gradient(135deg,#f1d8a9,#bc8550);box-shadow:0 10px 22px #0008;color:#28170f;}
.witch-cauldron-hilde-card h2,.witch-cauldron-hilde-card .witch-cauldron-hilde-kicker{color:#4d2717;text-shadow:none;}.witch-cauldron-hilde-card p,.witch-cauldron-hilde-card .witch-cauldron-hilde-line{color:#382014!important;text-shadow:none;}
.witch-cauldron-recipe-card{min-height:154px;padding:.8rem 1.1rem;border:10px solid transparent;border-image:linear-gradient(145deg,#6f4426,#e6bd78,#754522) 1;background:linear-gradient(135deg,#efd19b,#d5a96d);box-shadow:0 12px 24px #0008;color:#28170f;}
.witch-cauldron-recipe-card h3{color:#26150f;font-size:1.45rem;text-align:center;}.witch-cauldron-recipe-grid{grid-template-columns:repeat(3,1fr);gap:.7rem;}.witch-cauldron-recipe-item{min-height:88px;grid-template-columns:54px 1fr;border-color:#a77442;background:linear-gradient(135deg,#f8dfaa,#c7965c);box-shadow:inset 0 0 0 2px #efd09a;}.witch-ingredient-icon{width:52px;height:52px;font-size:.8rem;background:radial-gradient(circle,#b9ff6d,#244421 60%,#121010 61%);}.witch-cauldron-recipe-item strong{font-size:.88rem;}.witch-cauldron-hud-card{align-content:stretch;padding:.45rem;border:7px solid #5a3522;border-radius:12px;background:linear-gradient(145deg,#2e1716,#0c0b12);box-shadow:0 10px 24px #0009;}.witch-cauldron-hearts{justify-content:center;padding:.35rem}.witch-heart{width:31px;height:29px;}.witch-cauldron-timer,.witch-cauldron-level,.witch-cauldron-score{min-height:48px;text-align:center;border-color:#75472c;background:#100f15;}.witch-cauldron-timer strong,.witch-cauldron-level strong,.witch-cauldron-score strong{font-size:1.38rem;color:#ffe6b6;}.witch-cauldron-score{display:grid;align-content:center;gap:.15rem;padding:.4rem .55rem;}.witch-cauldron-score span{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-light);font-weight:700;}
.witch-cauldron-stage{height:clamp(520px,61vh,760px);margin-top:-.2rem;border:0;background:#171112;}.witch-cauldron-scene{background-image:linear-gradient(180deg,rgba(4,4,8,.04),rgba(0,0,0,.08)),url('/assets/halloween/games/witch-cauldron/werkplaats-v2.png');background-position:center;background-size:cover;}.witch-room-wall,.witch-window-moon,.witch-room-beams,.witch-room-shelves,.witch-room-web,.witch-room-lantern{display:none;}
.witch-room-sign{z-index:4;left:13%;top:4%;font-size:clamp(1rem,2vw,1.7rem);}.witch-hilde{z-index:3;left:3%;bottom:7%;width:33%;height:62%;background:none;}.witch-hilde-art{inset:-12% -16% -10%;width:132%;height:122%;}.witch-hilde-hat,.witch-hilde-eye{display:none;}.witch-hilde-speech{z-index:5;left:3%;bottom:54%;max-width:24%;font-size:.82rem;border:0;background:#efd4a1;box-shadow:0 7px 15px #0008;}.witch-cat{z-index:3;right:4%;bottom:12%;width:160px;height:160px;background:none;}.witch-cat-art{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 12px #0009);}
.witch-cauldron{z-index:4;bottom:6%;width:40%;min-width:360px;}.witch-cauldron-art{inset:-24% -18% -18%;width:136%;height:142%;}.witch-cauldron.has-art .witch-cauldron-steam{top:-64%;height:88%;filter:blur(2px) saturate(1.5);}.witch-cauldron-banner{z-index:7;top:42%;font-size:1rem;border:0;background:transparent;color:#d8ffad;font-family:var(--display);text-shadow:0 0 10px #3ecb3f,0 2px 2px #000;}
.witch-cauldron-statusbar{margin:0;border-inline:0;border-color:#75492b;background:linear-gradient(90deg,#160d0c,#342115,#160d0c);min-height:54px;padding:.7rem 1.25rem;}.witch-cauldron-controls{margin:0;padding:.7rem 1rem;justify-content:space-between;border-top:1px solid #71442a;background:linear-gradient(180deg,#28160f,#120d0c);}.witch-cauldron-controls .button-primary,.witch-cauldron-controls .button-ghost,.witch-cauldron-controls .button-quiet{border-color:#a56c36;background:linear-gradient(145deg,#3a2117,#171016);color:#ffe4ad;box-shadow:inset 0 0 0 2px #0b0707,0 3px 7px #0008;}.witch-cauldron-controls .button-primary{background:linear-gradient(145deg,#7ec74e,#265d29);}.witch-cauldron-help{position:absolute;z-index:6;left:50%;transform:translateX(-50%);bottom:69px;margin:0;padding:.5rem 1.2rem;border:1px solid #8e6035;border-radius:999px;background:#180f0d;color:#f0cb91;}.witch-cauldron-live{display:none;}
.witch-ingredient-dock{position:relative;z-index:8;display:flex;align-items:stretch;gap:.45rem;min-height:108px;padding:.55rem 1rem;overflow-x:auto;overflow-y:hidden;border-top:3px solid #5c3824;border-bottom:3px solid #160d0b;background:linear-gradient(180deg,#4a2b1b,#170e0c 34%,#2c190f);scroll-snap-type:x mandatory;}.witch-ingredient-dock .witch-ingredient{position:relative;flex:0 0 92px;left:auto!important;top:auto!important;width:92px!important;height:92px!important;min-height:92px;border:3px solid #75472b;border-radius:12px;background:radial-gradient(circle at 50% 34%,rgba(127,255,87,.22),transparent 30%),linear-gradient(145deg,#40271f,#151016);box-shadow:inset 0 0 0 2px #130c0b,0 5px 10px #0008;scroll-snap-align:start;transition:transform .18s ease,box-shadow .18s ease;}.witch-ingredient-dock .witch-ingredient:hover,.witch-ingredient-dock .witch-ingredient:focus{transform:translateY(-5px) scale(1.04);box-shadow:0 0 18px rgba(132,255,89,.45),inset 0 0 0 2px #130c0b;}.witch-ingredient-dock .witch-ingredient:before{top:10%;height:53%;}.witch-ingredient-dock .witch-ingredient span{z-index:2;margin-bottom:5px;padding:3px 2px;border-radius:3px;background:#f0d5a4;color:#28150c;font-family:var(--heading);font-size:.62rem;text-shadow:none;}.witch-ingredient-dock .witch-ingredient.danger{background:radial-gradient(circle at 50% 34%,rgba(255,94,72,.25),transparent 30%),linear-gradient(145deg,#40271f,#151016);}
@media(max-width:860px){.witch-cauldron-briefing{grid-template-columns:1fr 1.45fr;}.witch-cauldron-hud-card{grid-column:1/-1;grid-template-columns:repeat(4,1fr);}.witch-hilde{width:34%;height:52%;}.witch-cauldron{min-width:280px;width:46%;}.witch-cauldron-hilde-speech{max-width:31%;}.witch-cauldron-stage{height:clamp(450px,62vh,620px);}}
@media(max-width:640px){.witch-cauldron-briefing{padding:.5rem;grid-template-columns:1fr;}.witch-cauldron-hilde-card{display:none;}.witch-cauldron-recipe-card{min-height:0;border-width:5px;}.witch-cauldron-recipe-grid{gap:.35rem;}.witch-cauldron-recipe-item{min-height:62px;grid-template-columns:36px 1fr;padding:.22rem;}.witch-ingredient-icon{width:34px;height:34px;font-size:.56rem;}.witch-cauldron-hud-card{grid-column:auto;grid-template-columns:repeat(4,1fr);}.witch-cauldron-score{display:grid;}.witch-cauldron-stage{height:430px;}.witch-hilde{width:42%;height:43%;bottom:10%;}.witch-hilde-speech{display:none;}.witch-cat{width:90px;height:90px;right:1%;}.witch-cauldron{width:62%;min-width:240px;bottom:11%;}.witch-cauldron-controls{gap:.35rem;padding:.5rem;}.witch-cauldron-controls .button-primary,.witch-cauldron-controls .button-ghost,.witch-cauldron-controls .button-quiet{min-width:0;flex:1;font-size:.58rem;}.witch-cauldron-help{display:none;}}

/* Heksenketel v3: compact viewport composition and illustrated ingredients. */
.games-page:has(.witch-cauldron-shell){width:min(1536px,calc(100% - 24px));padding-block:12px;}
.witch-cauldron-shell{height:calc(100svh - 112px);min-height:650px;max-height:920px;display:grid;grid-template-rows:auto minmax(300px,1fr) 102px 42px 58px;overflow:hidden;}
.witch-cauldron-briefing{min-height:0;padding:.65rem .75rem 0;}
.witch-cauldron-hilde-card{min-height:138px;padding:.65rem;}
.witch-cauldron-hilde-card h2{font-size:1.25rem;}
.witch-cauldron-hilde-card p{font-size:.78rem;line-height:1.28;}
.witch-cauldron-recipe-card{min-height:138px;padding:.55rem .85rem;border-width:7px;}
.witch-cauldron-recipe-card h3{font-size:1.18rem;}
.witch-cauldron-recipe-item{min-height:72px;grid-template-columns:48px 1fr;}
.witch-cauldron-hud-card{min-height:138px;gap:.3rem;border-width:5px;}
.witch-cauldron-stage{height:auto!important;min-height:0!important;margin:0;}
.witch-ingredient-dock{min-height:0;height:102px;padding:.4rem .75rem;}
.witch-ingredient-dock .witch-ingredient{flex-basis:84px;width:84px!important;height:84px!important;min-height:84px;touch-action:none;user-select:none;-webkit-user-select:none;}
.witch-cauldron-statusbar{min-height:42px;padding:.35rem 1rem;}
.witch-cauldron-controls{min-height:58px;padding:.4rem .7rem;}
.witch-cauldron-controls .button-primary,.witch-cauldron-controls .button-ghost,.witch-cauldron-controls .button-quiet{min-height:42px;padding:.55rem 1rem;}
.witch-ingredient.dragging{position:fixed!important;z-index:1000!important;margin:0!important;left:0;top:0;pointer-events:none;transform:none!important;transition:none!important;}
.witch-ingredient:before,.witch-ingredient-icon:before{content:"";position:absolute;background-image:url('/assets/halloween/games/witch-cauldron/ingredients-v2.png')!important;background-repeat:no-repeat!important;background-size:500% 400%!important;filter:drop-shadow(0 4px 5px #0009);}
.witch-ingredient:before{left:8%;right:8%;top:4%;height:64%;border-radius:0;background-color:transparent!important;clip-path:none!important;box-shadow:none!important;}
.witch-ingredient-icon{position:relative;border:0;border-radius:8px;background:radial-gradient(circle,#f5dca8,#b77c42);overflow:hidden;}
.witch-ingredient-icon:before{inset:2px;}
.spinnenpoot:before{background-position:0 0!important}.paarse-paddenstoel:before{background-position:25% 0!important}.pompoenpit:before{background-position:50% 0!important}.nachtblad:before{background-position:75% 0!important}.botje:before{background-position:100% 0!important}
.oogbal:before{background-position:0 33.333%!important}.vleermuisvleugel:before{background-position:25% 33.333%!important}.pompoen:before{background-position:50% 33.333%!important}.slijmfles:before{background-position:75% 33.333%!important}.toverbloem:before{background-position:100% 33.333%!important}
.maanbes:before{background-position:0 66.667%!important}.kraaienveer:before{background-position:25% 66.667%!important}.dennenappel:before{background-position:50% 66.667%!important}.sterrenstof:before{background-position:75% 66.667%!important}.heksenkruid:before{background-position:100% 66.667%!important}
.wolfshaar:before{background-position:0 100%!important}.appel:before{background-position:25% 100%!important}.knoflook:before{background-position:50% 100%!important}.verboden-bes:before{background-position:75% 100%!important}
@media(max-width:860px){.witch-cauldron-shell{height:auto;max-height:none;grid-template-rows:auto 430px 94px 42px auto}.witch-cauldron-briefing{grid-template-columns:1fr 1.45fr}.witch-cauldron-hud-card{grid-column:1/-1;min-height:66px}.witch-ingredient-dock{height:94px}.witch-ingredient-dock .witch-ingredient{flex-basis:76px;width:76px!important;height:76px!important;min-height:76px}}
@media(max-width:640px){.games-page:has(.witch-cauldron-shell){width:100%;padding-block:0}.witch-cauldron-shell{grid-template-rows:auto 390px 86px 40px auto;min-height:0}.witch-cauldron-briefing{grid-template-columns:1fr}.witch-cauldron-hud-card{grid-template-columns:repeat(4,1fr)}.witch-ingredient-dock{height:86px}.witch-ingredient-dock .witch-ingredient{flex-basis:68px;width:68px!important;height:68px!important;min-height:68px}.witch-ingredient-dock .witch-ingredient span{font-size:.5rem}.witch-cauldron-statusbar{font-size:.67rem}.witch-cauldron-controls{flex-wrap:nowrap}}

/* Heksenketel v4: de HUD zweeft in de wereld en neemt geen speelruimte in. */
.witch-cauldron-shell{grid-template-rows:minmax(0,1fr) 102px 42px 58px;}
.witch-cauldron-playfield{position:relative;min-height:0;overflow:hidden;isolation:isolate;}
.witch-cauldron-playfield .witch-cauldron-stage{position:absolute;inset:0;width:100%;height:100%!important;}
.witch-cauldron-briefing{position:absolute;z-index:12;inset:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;margin:0;padding:12px 16px;background:none;pointer-events:none;}
.witch-cauldron-briefing>*{pointer-events:auto;}
.witch-cauldron-hilde-card{display:none!important;}
.witch-cauldron-recipe-card{min-width:0;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:#fff;pointer-events:none!important;}
.witch-cauldron-recipe-card header{justify-content:center;min-height:24px;margin:0 0 4px;pointer-events:none;}
.witch-cauldron-recipe-card h3{padding:.25rem .7rem;border:1px solid rgba(218,172,91,.8);border-radius:999px;background:rgba(30,18,14,.74);color:#ffe5a6;font-size:.78rem;letter-spacing:.12em;text-shadow:0 1px 2px #000;box-shadow:inset 0 0 8px #0006,0 3px 12px #0006;backdrop-filter:blur(4px);}
.witch-cauldron-recipe-card header .button-quiet{position:absolute;right:176px;top:12px;min-height:29px;padding:.25rem .6rem;border-color:rgba(220,177,91,.8);border-radius:999px;background:rgba(31,19,16,.76);font-size:.5rem;pointer-events:auto;backdrop-filter:blur(4px);}
.witch-cauldron-recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(112px,190px));justify-content:center;gap:8px;}
.witch-cauldron-recipe-item{position:relative;min-height:70px;padding:6px 8px;grid-template-columns:48px minmax(0,1fr);gap:6px;border:1px solid rgba(219,176,91,.92);border-radius:8px;background:linear-gradient(145deg,rgba(38,25,22,.78),rgba(13,18,17,.7));box-shadow:inset 0 0 12px #0008,0 5px 14px #0007;color:#fff;backdrop-filter:blur(4px);animation:witchHudCardIn .22s ease-out both;}
.witch-cauldron-recipe-item:nth-child(2){animation-delay:.05s}.witch-cauldron-recipe-item:nth-child(3){animation-delay:.1s}
.witch-cauldron-recipe-item strong{font-family:var(--heading);font-size:.68rem;line-height:1.05;letter-spacing:.025em;color:#fff3d1;text-shadow:0 1px 3px #000;overflow-wrap:anywhere;}
.witch-cauldron-recipe-item small{font-size:.66rem;color:#fff;font-weight:800;text-shadow:0 1px 2px #000;}
.witch-cauldron-recipe-item.done{border-color:#b8ed73;background:linear-gradient(145deg,rgba(42,74,31,.82),rgba(13,27,16,.72));box-shadow:inset 0 0 12px #8ce85a44,0 0 18px #9df16a99;animation:witchHudComplete .45s ease-out both;}
.witch-cauldron-recipe-item.done small:after{content:" ✓";color:#dfffad;}
.witch-cauldron-stage:is([data-level="4"],[data-level="5"],[data-level="6"],[data-level="7"],[data-level="8"],[data-level="9"],[data-level="10"]):not(.recipe-expanded)+.witch-cauldron-briefing .witch-cauldron-recipe-item strong{display:none;}
.witch-cauldron-stage:is([data-level="4"],[data-level="5"],[data-level="6"],[data-level="7"],[data-level="8"],[data-level="9"],[data-level="10"]):not(.recipe-expanded)+.witch-cauldron-briefing .witch-cauldron-recipe-item{grid-template-columns:48px auto;}
.witch-cauldron-recipe-empty{width:min(540px,70vw);min-height:54px;margin:auto;border:1px solid rgba(219,176,91,.75);border-radius:8px;background:rgba(22,16,17,.72);backdrop-filter:blur(4px);}
.witch-cauldron-hud-card{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;}
.witch-cauldron-hud-card>div{display:flex;align-items:center;justify-content:center;gap:7px;min-height:29px;padding:4px 9px;border:1px solid rgba(219,176,91,.82);border-radius:7px;background:rgba(18,17,21,.75);box-shadow:inset 0 0 8px #0008,0 4px 12px #0007;backdrop-filter:blur(4px);}
.witch-cauldron-hearts{min-height:34px!important;}
.witch-cauldron-hud-card>div>span{font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:#efc878;font-weight:800;}
.witch-cauldron-hud-card>div>strong{font-family:var(--display);font-size:.92rem;color:#fff2cf;line-height:1;}
.witch-cauldron-hud-card .witch-heart{width:25px;height:23px;padding:0;border:0;background:var(--life-empty);backdrop-filter:none;}
.witch-cauldron-hud-card .witch-heart.full{background:var(--life-full);}
.witch-cauldron-current-score,.witch-cauldron-combo{display:flex;}
.witch-room-sign{left:7%;top:18%;font-size:clamp(.75rem,1.3vw,1.1rem);transform:rotate(-4deg);}
.witch-hilde{left:1%;bottom:4%;width:36%;height:69%;}
.witch-cauldron{bottom:3%;}
.witch-hilde-speech{bottom:47%;max-width:20%;min-height:0;padding:.4rem .55rem;font-size:.68rem;background:rgba(239,212,161,.88);opacity:0;transform:translateY(5px);transition:opacity .22s ease,transform .22s ease;pointer-events:none;}
.witch-hilde-speech.visible{opacity:1;transform:none;}
@keyframes witchHudCardIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes witchHudComplete{0%{transform:scale(1)}45%{transform:scale(1.045);box-shadow:0 0 28px #baff7ccc}100%{transform:scale(1)}}
@media(max-width:860px){.witch-cauldron-shell{grid-template-rows:460px 94px 42px auto}.witch-cauldron-briefing{grid-template-columns:minmax(0,1fr) 118px;padding:8px}.witch-cauldron-recipe-card header .button-quiet{right:130px;top:8px}.witch-cauldron-recipe-grid{grid-template-columns:repeat(3,minmax(90px,1fr));gap:5px}.witch-cauldron-recipe-item{min-height:62px;grid-template-columns:38px 1fr;padding:4px}.witch-cauldron-hud-card{grid-column:auto;display:flex}.witch-cauldron-hud-card>div{min-height:25px;padding:3px 5px}.witch-cauldron-current-score,.witch-cauldron-score{display:none!important}.witch-hilde{width:39%;height:61%}}
@media(max-width:640px){.witch-cauldron-shell{grid-template-rows:410px 86px 40px auto}.witch-cauldron-briefing{grid-template-columns:minmax(0,1fr) 92px;padding:5px}.witch-cauldron-recipe-card header{justify-content:flex-start}.witch-cauldron-recipe-card header .button-quiet{display:none}.witch-cauldron-recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.witch-cauldron-recipe-item{min-height:58px;display:flex;flex-direction:column;align-items:center;padding:3px;text-align:center}.witch-cauldron-recipe-item .witch-ingredient-icon{width:34px;height:34px;flex:none}.witch-cauldron-recipe-item strong{display:none}.witch-cauldron-recipe-item small{font-size:.58rem}.witch-cauldron-hud-card>div{min-height:24px;padding:2px}.witch-cauldron-hud-card .witch-heart{width:20px;height:19px}.witch-cauldron-level{display:none!important}.witch-hilde{width:47%;height:55%}.witch-room-sign{display:none}.witch-hilde-speech{max-width:30%;}}



/* Footer music hover menu - minimal, small, transparent */
.footer-music{position:relative;display:inline-flex;align-items:center}
.footer-music__trigger{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .12rem;border:0;background:none;color:rgba(200,205,215,.72);font-family:inherit;font-size:11px;letter-spacing:.02em;text-transform:none;cursor:default;line-height:1}
.footer-music__trigger:hover{color:#fff}
.footer-music__note{color:rgba(230,214,180,.9);font-size:13px;line-height:1}
.footer-music__label{white-space:nowrap}
.footer-music__eq{display:inline-flex;align-items:flex-end;gap:2px;height:10px;margin-left:.05rem}
.footer-music__eq i{width:2px;background:rgba(120,235,200,.9);transform-origin:bottom;animation:musicEq .9s ease-in-out infinite}
.footer-music__eq i:nth-child(1){height:5px;animation-delay:-.55s}
.footer-music__eq i:nth-child(2){height:10px;animation-delay:-.25s}
.footer-music__eq i:nth-child(3){height:7px;animation-delay:-.7s}
.footer-music__eq i:nth-child(4){height:9px;animation-delay:-.4s}
@keyframes musicEq{0%,100%{transform:scaleY(.35);opacity:.5}50%{transform:scaleY(1);opacity:1}}

.footer-music__bridge{position:absolute;left:-30px;right:-8px;bottom:calc(100% - 2px);height:16px}

.music-panel{
  position:absolute;
  right:-8px;
  bottom:calc(100% + 10px);
  width:min(20rem,calc(100vw - 2rem));
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.14);
  border-radius:.8rem;
  background:rgba(12,14,20,.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.15);
  backdrop-filter:blur(16px) saturate(1.15);
  box-shadow:0 12px 32px rgba(0,0,0,.32);
  color:#eef1f7;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transform-origin:bottom right;
  transition:opacity .14s ease,transform .14s ease,visibility .14s;
  pointer-events:none;
  z-index:80;
  overflow:hidden;
  max-height:min(30rem,72vh);
}
.footer-music:hover .music-panel,
.footer-music:focus-within .music-panel,
.footer-music.is-open .music-panel{opacity:1;visibility:visible;transform:none;pointer-events:auto}

.music-panel__head{padding:.55rem .7rem .45rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-shrink:0}
.music-panel__kicker{font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(150,240,205,.9);font-weight:700;white-space:nowrap}
.music-panel__head strong{display:none}

.music-panel__now{padding:.5rem .7rem .45rem;border-bottom:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .7rem;flex-shrink:0}
.music-panel__now-copy{display:grid;gap:0;min-width:0;align-content:center}
.music-panel__now-copy small{display:none}
.music-panel__now-copy strong{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.music-panel__now-copy span{font-size:.66rem;color:rgba(200,205,215,.78);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-panel__controls{display:flex;gap:.3rem;align-items:center}
.music-panel__btn{width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:rgba(245,235,210,.95);display:grid;place-items:center;font-size:.72rem;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}
.music-panel__btn:hover{border-color:rgba(120,235,200,.85);background:rgba(120,235,200,.16);color:#fff}
.music-panel__btn--play{width:31px;height:31px;border-color:rgba(120,235,200,.75);background:rgba(120,235,200,.9);color:#06100c;font-size:.8rem}
.music-panel__progress{grid-column:1/-1;height:2px;margin:.1rem 0 .35rem;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden}
.music-panel__progress span{display:block;height:100%;background:rgba(120,235,200,.95);box-shadow:0 0 6px rgba(120,235,200,.7)}
.music-panel__meta{display:none}

.music-panel__list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent;padding:.35rem;display:grid;gap:.18rem;max-height:min(16rem,44vh)}
.music-panel__track{display:grid;grid-template-columns:1.4rem minmax(0,1fr) auto;gap:.5rem;align-items:center;text-align:left;width:100%;padding:.32rem .45rem;border:0;border-radius:.5rem;background:transparent;color:rgba(235,238,245,.9);cursor:pointer;transition:background .12s ease}
.music-panel__track:hover{background:rgba(255,255,255,.08)}
.music-panel__track.is-active{background:rgba(120,235,200,.16)}
.music-panel__track-idx{font-size:.58rem;color:rgba(200,205,215,.55);text-align:center;border:1px solid rgba(255,255,255,.12);border-radius:5px;padding:.1rem 0;font-variant-numeric:tabular-nums}
.music-panel__track.is-active .music-panel__track-idx{color:#06100c;background:rgba(120,235,200,.95);border-color:transparent;font-weight:700}
.music-panel__track-copy{display:grid;gap:0;min-width:0}
.music-panel__track-copy strong{font-size:.76rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.music-panel__track-copy span{font-size:.6rem;color:rgba(200,205,215,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-panel__track-extra{display:grid;justify-items:end;align-items:center}
.music-panel__track-extra small{display:none}
.music-panel__track-extra time{font-size:.62rem;color:rgba(230,214,180,.85);font-variant-numeric:tabular-nums}

.music-panel__foot{display:none}
.music-panel__empty{padding:.8rem .7rem;color:rgba(210,215,225,.75);font-size:.76rem}

@media(max-width:640px){
  .music-panel{width:min(20rem,calc(100vw - 2rem));right:-10px}
}

@media (prefers-reduced-motion:reduce){
  .footer-music__eq i{animation:none!important;transform:none!important;opacity:1}
  .music-panel{transition:none!important;transform:none!important}
}

/* Halloween scene map: atmospheric fog overlay */
.tracker-map-shell{position:relative;overflow:hidden;background:#071016}
.tracker-map-shell::after{content:'';position:absolute;inset:0;background:
	radial-gradient(ellipse at 20% 78%,rgba(9,24,18,0.04) 0%,transparent 58%),
	radial-gradient(ellipse at 80% 22%,rgba(26,19,34,0.04) 0%,transparent 54%),
	radial-gradient(ellipse at 50% 50%,rgba(6,12,18,0.02) 0%,transparent 74%);
	pointer-events:none;z-index:7;mix-blend-mode:normal;box-shadow:inset 0 0 58px rgba(0,0,0,.52);opacity:.72}

.tracker-map-shell .monster-map{background:#102027}
.tracker-map-shell .monster-map .maplibregl-canvas{filter:saturate(.88) sepia(.10) hue-rotate(342deg) brightness(.82) contrast(1.12)!important}
.tracker-map-shell .map-light-wash{opacity:.62}

/* Reduce map-fog opacity when used together with scene fog */
.tracker-map-shell .map-fog{opacity:.28}

/* Degraded state banner */
.tracker-degraded-state{position:absolute;left:12px;right:12px;bottom:12px;z-index:18;padding:10px 12px;border:1px solid #a67835;background:rgba(6,9,10,.95);color:#f2e4c4;font:700 11px var(--heading);letter-spacing:.08em;text-transform:uppercase;pointer-events:none}

/* -- Extended Ghost Encounter System (halloween-ghosts.js) -- */
.hbb-ghost-wrap{position:fixed;left:0;top:0;pointer-events:none;will-change:transform}
/* Hard sharpness rule: the sprite itself is NEVER filtered or transformed at
   runtime — only its wrapper translates (whole pixels). Glow lives on the
   wrapper layer, so no blur/scale ever softens the ghost bitmap. */
.hbb-ghost-wrap .hbb-ghost{position:absolute!important;left:0;top:0;display:block;background:transparent;object-fit:contain;object-position:center center;image-rendering:auto;filter:none!important;transform:none!important;backdrop-filter:none!important;transition:none!important}
.hbb-ghost{display:block;position:fixed;z-index:70;pointer-events:none;background:transparent;object-fit:contain;will-change:transform,opacity;image-rendering:auto}
/* -- House-name picker (MijnHalloween registration) -- */
.house-name-picker{position:relative;display:flex;gap:.5rem;align-items:stretch}
.house-name-picker input{flex:1;min-width:0}
.house-name-options{position:absolute;z-index:40;left:0;right:0;top:100%;margin-top:.3rem;max-height:260px;overflow:auto;display:block;padding:.35rem;border:1px solid rgba(120,84,32,.7);background:rgba(12,14,22,.99);box-shadow:0 14px 34px rgba(0,0,0,.55)}
.house-name-group{display:block;padding:.35rem .45rem .2rem;color:#c99a52;font:700 .6rem var(--heading,serif);letter-spacing:.14em;text-transform:uppercase}
.house-name-option{display:block;width:100%;text-align:left;padding:.4rem .5rem;border:0;background:transparent;color:#efe3c8;font:0.82rem/1.2 var(--body,sans-serif);cursor:pointer}
.house-name-option:hover,.house-name-option.selected{background:rgba(201,146,60,.18);color:#ffd98a}
.house-name-empty{display:block;padding:.5rem;color:#a79b84;font-size:.78rem}
.field-error{display:block;margin-top:.35rem;color:#ff9a8a;font:600 .72rem var(--body,sans-serif)}

/* ── Huis-locatie editor (adres zoeken + kaart) ───────────────────────────── */
.cc-locator-block { border: 1px solid var(--cc-border, rgba(255,255,255,.14)); border-radius: 10px; padding: .6rem .9rem .9rem; margin: .2rem 0 .8rem; }
.cc-locator-block legend { padding: 0 .4rem; font-size: .78rem; letter-spacing: .08em; color: var(--cc-live, #e9b64c); }
.cc-locator-intro { font-size: .7rem; color: var(--cc-text-dim, #9aa3b2); margin: 0 0 .45rem; line-height: 1.35; }
.cc-locator-search { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.cc-locator-search .cc-input, .cc-locator-search input { height: 34px; padding: 0 .5rem; }
.cc-locator-results { margin-top: .5rem; display: flex; flex-direction: column; gap: .3rem; max-height: 168px; overflow: auto; }
.cc-locator-option { display: flex; flex-direction: column; gap: .1rem; text-align: left; padding: .4rem .55rem; border-radius: 8px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.12); cursor: pointer; color: inherit; font: inherit; }
.cc-locator-option:hover { border-color: var(--cc-live, #e9b64c); background: rgba(233,182,76,.08); }
.cc-locator-option-name { font-size: .78rem; }
.cc-locator-option-coords { font-size: .62rem; color: var(--cc-text-dim, #9aa3b2); font-family: ui-monospace, Consolas, monospace; }
.cc-locator-map { width: 100%; height: 330px; border-radius: 10px; margin-top: .6rem; overflow: hidden; border: 1px solid rgba(255,255,255,.14); position: relative; }
.cc-locator-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-top: .5rem; font-size: .72rem; }
.cc-locator-status { font-weight: 600; }
.cc-locator-status.ok { color: #59c98d; }
.cc-locator-status.warn { color: #e9b64c; }
.cc-locator-status.idle { color: var(--cc-text-dim, #9aa3b2); }
.cc-locator-coords { font-family: ui-monospace, Consolas, monospace; font-size: .66rem; color: var(--cc-text-dim, #9aa3b2); }
.cc-locator-address { font-style: italic; color: var(--cc-text-muted, #b7bec9); }
.hbb-locator-marker { width: 20px; height: 20px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: #e94b5a; border: 2px solid #fff; box-shadow: 0 0 0 3px rgba(0,0,0,.35), 0 4px 10px rgba(0,0,0,.4); cursor: grab; }
.hbb-locator-marker:active { cursor: grabbing; }
.hbb-locator-unavailable { padding: 1rem; color: var(--cc-text-dim, #9aa3b2); font-size: .75rem; }

/* ── Huis-locatie editor (adres zoeken + kaart) ───────────────────────────── */
.cc-locator-block { border: 1px solid var(--cc-border, rgba(255,255,255,.14)); border-radius: 10px; padding: .6rem .9rem .9rem; margin: .2rem 0 .8rem; }
.cc-locator-block legend { padding: 0 .4rem; font-size: .78rem; letter-spacing: .08em; color: var(--cc-live, #e9b64c); }
.cc-locator-intro { font-size: .7rem; color: var(--cc-text-dim, #9aa3b2); margin: 0 0 .45rem; line-height: 1.35; }
.cc-locator-search { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.cc-locator-search .cc-input, .cc-locator-search input { height: 34px; padding: 0 .5rem; }
.cc-locator-results { margin-top: .5rem; display: flex; flex-direction: column; gap: .3rem; max-height: 168px; overflow: auto; }
.cc-locator-option { display: flex; flex-direction: column; gap: .1rem; text-align: left; padding: .4rem .55rem; border-radius: 8px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.12); cursor: pointer; color: inherit; font: inherit; }
.cc-locator-option:hover { border-color: var(--cc-live, #e9b64c); background: rgba(233,182,76,.08); }
.cc-locator-option-name { font-size: .78rem; }
.cc-locator-option-coords { font-size: .62rem; color: var(--cc-text-dim, #9aa3b2); font-family: ui-monospace, Consolas, monospace; }
.cc-locator-map { width: 100%; height: 330px; border-radius: 10px; margin-top: .6rem; overflow: hidden; border: 1px solid rgba(255,255,255,.14); position: relative; }
.cc-locator-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-top: .5rem; font-size: .72rem; }
.cc-locator-status { font-weight: 600; }
.cc-locator-status.ok { color: #59c98d; }
.cc-locator-status.warn { color: #e9b64c; }
.cc-locator-status.idle { color: var(--cc-text-dim, #9aa3b2); }
.cc-locator-coords { font-family: ui-monospace, Consolas, monospace; font-size: .66rem; color: var(--cc-text-dim, #9aa3b2); }
.cc-locator-address { font-style: italic; color: var(--cc-text-muted, #b7bec9); }
.hbb-locator-marker { width: 20px; height: 20px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: #e94b5a; border: 2px solid #fff; box-shadow: 0 0 0 3px rgba(0,0,0,.35), 0 4px 10px rgba(0,0,0,.4); cursor: grab; }
.hbb-locator-marker:active { cursor: grabbing; }
.hbb-locator-unavailable { padding: 1rem; color: var(--cc-text-dim, #9aa3b2); font-size: .75rem; }

/* Header account button without subtitle stays compact and slightly smaller */
.account-control--solo { min-width: 164px; }
.account-control--solo strong { font-size: 12px; letter-spacing: .02em; }

/* Command Center: georeferenced artwork calibration. */
.calibration-page { --cal-good:#31d07d; --cal-warning:#ffd166; --cal-error:#ff516d; }
.calibration-toolbar { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.calibration-toolbar .cc-field { min-width:min(28rem, 48vw); }
.calibration-status { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; color:var(--cc-text-muted); font-size:.72rem; }
.calibration-status > span { border:1px solid var(--cc-border); border-radius:999px; padding:.35rem .55rem; }
.calibration-status .status-pill.active { color:var(--cal-good); border-color:var(--cal-good); }
.calibration-workspace { display:grid; grid-template-columns:minmax(280px, .7fr) minmax(480px, 1.3fr); gap:1rem; }
.calibration-source-panel,.calibration-map-panel { min-width:0; }
.calibration-source { position:relative; overflow:hidden; aspect-ratio:1012/1554; max-height:68vh; margin:auto; background:#09070d; border:1px solid var(--cc-border); cursor:crosshair; user-select:none; }
.calibration-source img { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.calibration-source.has-pending-point::after { content:""; position:absolute; z-index:4; left:var(--pending-x); top:var(--pending-y); width:18px; height:18px; border:2px dashed #fff; border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 3px #6e3aff; }
.calibration-source-point { position:absolute; z-index:5; width:1.45rem; height:1.45rem; transform:translate(-50%,-50%); border-radius:50%; border:2px solid #c8a8ff; background:#160d24; color:#fff; font:700 .65rem/1 monospace; cursor:pointer; }
.calibration-source-point.point-good { border-color:var(--cal-good); }.calibration-source-point.point-warning { border-color:var(--cal-warning); }.calibration-source-point.point-error { border-color:var(--cal-error); }
.calibration-reference-map { height:min(68vh, 720px); min-height:520px; background:#0a0710; border:1px solid var(--cc-border); }
.calibration-reference-map .leaflet-image-layer { image-rendering:auto; }
.calibration-reference-map .leaflet-control-attribution { font-size:9px; }
.calibration-point-label { background:#140c20; color:#fff; border:1px solid #6e3aff; box-shadow:none; font:700 10px monospace; }
.calibration-comparison { display:grid; grid-template-columns:auto minmax(8rem,1fr) auto; align-items:center; gap:.75rem; padding:.7rem 0 0; font-size:.72rem; color:var(--cc-text-muted); }
.calibration-controls { margin-top:1rem; align-items:start; }
.calibration-input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.calibration-help { color:var(--cc-text-muted); font-size:.72rem; margin:.6rem 0 0; }
.calibration-point-list { display:grid; gap:.4rem; max-height:25rem; overflow:auto; }
.calibration-point-row { display:grid; grid-template-columns:1.5rem 1fr 1fr 4rem 1.5rem; align-items:center; gap:.4rem; padding:.5rem; border-left:3px solid #8d7ba5; background:rgba(255,255,255,.025); font:600 .68rem/1.35 monospace; }
.calibration-point-row.good { border-color:var(--cal-good); }.calibration-point-row.warning { border-color:var(--cal-warning); }.calibration-point-row.error { border-color:var(--cal-error); }
.calibration-point-row button { border:0; background:transparent; color:var(--cc-text-muted); font-size:1.25rem; cursor:pointer; }
.calibration-publish { display:grid; grid-template-columns:minmax(13rem,.55fr) minmax(20rem,1fr) minmax(14rem,.6fr); gap:1rem; margin-top:1rem; align-items:start; }
.calibration-version-list { display:flex; flex-wrap:wrap; gap:.45rem; }
.calibration-version { display:grid; gap:.15rem; min-width:8.5rem; padding:.55rem; text-align:left; background:#100a18; color:var(--cc-text); border:1px solid var(--cc-border); cursor:pointer; }
.calibration-version.selected { border-color:#8f5cff; box-shadow:0 0 0 1px #8f5cff inset; }.calibration-version span,.calibration-version small { color:var(--cc-text-muted); font-size:.62rem; }
.calibration-activation { display:grid; gap:.6rem; }
@media (max-width: 980px) { .calibration-workspace,.calibration-publish { grid-template-columns:1fr; }.calibration-toolbar { align-items:stretch; flex-direction:column; }.calibration-toolbar .cc-field { min-width:0; }.calibration-status { justify-content:flex-start; }.calibration-reference-map { min-height:420px; }.calibration-comparison { grid-template-columns:1fr; } }

/* Direct geographic Monster Tracker calibration editor */
.direct-calibration-header { align-items:flex-end; }
.direct-calibration-selector { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.direct-calibration-selector .cc-field { min-width:min(34rem,55vw); }
.calibration-status .status-pill.unsaved { color:#ffd166; border-color:#ffd166; background:rgba(255,209,102,.08); }
.direct-calibration-editor { padding:.75rem; overflow:hidden; }
.direct-calibration-toolbar,.direct-calibration-view-options { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; padding:.35rem .2rem .75rem; }
.direct-calibration-toolbar { justify-content:space-between; }
.calibration-tool-buttons { display:flex; flex-wrap:wrap; gap:.35rem; }
.calibration-tool-buttons .cc-button.active { color:#fff; border-color:#8f5cff; background:rgba(110,58,255,.28); }
.direct-opacity { display:grid; grid-template-columns:auto minmax(11rem,24rem); align-items:center; gap:.65rem; color:var(--cc-text-muted); font-size:.72rem; }
.direct-opacity input { accent-color:#8f5cff; }
.direct-calibration-view-options { border-top:1px solid var(--cc-border); color:var(--cc-text-muted); font-size:.72rem; }
.direct-calibration-view-options label { display:flex; align-items:center; gap:.35rem; }
.direct-calibration-view-options select { color:var(--cc-text); background:#100a18; border:1px solid var(--cc-border); padding:.3rem; }
.direct-calibration-map { height:min(72vh,820px); min-height:620px; position:relative; touch-action:none; }
.direct-map-diagnostics { display:flex; justify-content:space-between; gap:1rem; padding:.6rem .2rem 0; color:var(--cc-text-muted); font:600 .66rem/1.4 monospace; }
.halloween-direct-image { position:absolute; top:0; left:0; max-width:none!important; max-height:none!important; user-select:none; will-change:transform; image-rendering:auto; }
.leaflet-calibration-bag-pane,.leaflet-calibration-bag-pane * { pointer-events:none!important; }
.halloween-direct-image.is-grabbing { cursor:grabbing!important; }
.halloween-overlay-editor { position:absolute; inset:0; pointer-events:none; overflow:visible; }
.halloween-overlay-outline { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.halloween-overlay-outline polygon { fill:none; stroke:#f6dfad; stroke-width:1; vector-effect:non-scaling-stroke; stroke-dasharray:5 4; }
.tool-move .halloween-overlay-outline polygon { pointer-events:auto; cursor:grab; fill:rgba(0,0,0,.001); }
.halloween-overlay-outline .rotation-stem { stroke:#f6dfad; stroke-width:1; stroke-dasharray:3 3; }
.overlay-handle { position:absolute; top:0; left:0; display:none; width:18px; height:18px; padding:0; border:2px solid #fff; border-radius:50%; background:#6e3aff; box-shadow:0 2px 12px rgba(0,0,0,.7); pointer-events:auto; touch-action:none; cursor:nwse-resize; }
.handle-ne,.handle-sw { cursor:nesw-resize; }
.handle-rotate { width:22px; height:22px; background:#e48735; cursor:grab; }
.tool-scale .handle-nw,.tool-scale .handle-ne,.tool-scale .handle-se,.tool-scale .handle-sw,.tool-rotate .handle-rotate { display:block; }
.tool-warp .halloween-overlay-outline,.tool-warp .overlay-handle { display:none!important; }
.tool-navigate .halloween-overlay-outline,.is-locked .halloween-overlay-outline { display:none; }
.is-locked .overlay-handle { display:none!important; }
.halloween-warp-canvas { position:absolute; top:0; left:0; width:100%; height:100%; touch-action:none; }
.stretch-warp-fieldset { grid-column:1 / -1; }
.stretch-warp-fieldset .cc-field { display:grid; gap:.35rem; }
.stretch-warp-fieldset input[type="range"] { accent-color:#8f5cff; width:100%; }
.corner-select-buttons { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; margin-top:.35rem; }
.corner-select-buttons .cc-label { font-size:.7rem; color:var(--cc-text-muted); margin-right:.25rem; }
.corner-select-buttons .cc-button { font-size:.65rem; padding:.25rem .5rem; }
.corner-select-buttons .cc-button.active { color:#fff; border-color:#8f5cff; background:rgba(110,58,255,.35); }
.direct-transform-panel { margin-top:1rem; }
.direct-transform-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.direct-transform-grid fieldset { display:grid; gap:.55rem; min-width:0; margin:0; padding:.75rem; border:1px solid var(--cc-border); }
.direct-transform-grid legend { padding:0 .35rem; color:#d7c4f2; font:700 .7rem/1 monospace; text-transform:uppercase; }
.fine-control { display:flex; flex-wrap:wrap; gap:.3rem; }
.fine-control button { min-height:2rem; padding:.25rem .5rem; color:var(--cc-text); background:#100a18; border:1px solid var(--cc-border); cursor:pointer; }
.calibration-distortion-warning { margin:0; padding:.45rem; color:#ffd166; background:rgba(255,209,102,.07); font-size:.7rem; }
.direct-transform-actions { margin-top:.8rem; }
@media (max-width: 980px) { .direct-calibration-header,.direct-calibration-selector,.direct-map-diagnostics { align-items:stretch; flex-direction:column; }.direct-calibration-selector .cc-field { min-width:0; }.direct-transform-grid { grid-template-columns:1fr; }.direct-calibration-map { min-height:540px; }.calibration-publish { grid-template-columns:1fr; } }
@media (max-width: 620px) { .direct-calibration-toolbar { align-items:stretch; flex-direction:column; }.direct-opacity { grid-template-columns:1fr; }.direct-calibration-map { min-height:65vh; }.overlay-handle { width:24px; height:24px; } }
body.monsterbook-reading {
    overflow: hidden;
}

body.monsterbook-reading .world-header,
body.monsterbook-reading .world-footer,
body.monsterbook-reading .mobile-nav,
body.monsterbook-reading .magic-encounter-dev-btn,
body.monsterbook-reading .weather-dev-panel,
body.monsterbook-reading #halloween-weather-dev-controls {
    display: none !important;
}
/* Alleen tijdens een fysieke Monsterboek-interactie blokkeren we browserselectie
   en native image/link drag. JS verwijdert deze class via een centrale cleanup. */
html.book-is-dragging,
html.book-is-dragging *,
html.book-is-dragging body {
    user-select: none !important;
    -webkit-user-select: none !important;
    -webkit-touch-callout: none !important;
}

.monsterbook-reading #monsterbook-reader img,
.monsterbook-reading #monsterbook-reader a {
    -webkit-user-drag: none;
}
