/* Ghoul Box additions — layered on top of base.css (Fright Queue / thejurn.com styling) */
:root{--cyan:#00ffff;--amber:#fbbf24}
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
.wrap{padding:0 1rem}
header.top .wrap{padding:.6rem 1rem}
.logo{font-size:1.7rem}
header.top nav{display:flex;flex-wrap:wrap;gap:.2rem .9rem}
header.top nav a{margin:0;font-size:.75rem}
header.top nav a.on{color:var(--green)}
.hero{padding:2rem 0 1rem}
.hero h1 .g{color:var(--green)}
.hero p{font-size:1rem}
.crumbs{font-size:.75rem;color:var(--dim);margin:1rem 0 0}.crumbs a{color:var(--lav);text-decoration:none}
/* buttons */
.btn{font-family:inherit;line-height:1.2;-webkit-tap-highlight-color:transparent;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.btn.big{font-size:1.05rem;padding:.9rem 1.6rem;border-radius:12px;background:linear-gradient(135deg,var(--purple),#6a00b8);border-color:var(--purple);color:#fff;box-shadow:0 0 24px rgba(191,0,255,.35)}
.btn.big:hover{box-shadow:0 0 34px rgba(191,0,255,.6),0 0 10px rgba(57,255,20,.4)}
.btn.alt{background:rgba(191,0,255,.12);border-color:rgba(191,0,255,.45);color:var(--lav)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible,.opt:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1rem 0}
.actions .btn{flex:1 1 140px;max-width:220px}
/* tool hub */
.tools{display:grid;grid-template-columns:1fr;gap:1rem;margin:1.5rem 0}
.tool{position:relative;background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.tool:hover{transform:translateY(-3px);box-shadow:0 0 26px rgba(57,255,20,.18),0 0 18px rgba(191,0,255,.3)}
.tool img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:contain;background:#111}
.tool .b{padding:1rem}
.tool h3{font-family:Creepster,cursive;font-size:1.7rem;color:var(--green);letter-spacing:1.5px;font-weight:400;line-height:1.1}
.tool p{font-size:.9rem;color:var(--bone);margin:.3rem 0 .6rem}
.tool.soon{opacity:.75;border-style:dashed}
.tool.soon .b{display:flex;flex-direction:column;justify-content:center;min-height:180px;text-align:center}
/* hub card seam fix: image melts into a purple-to-black body (sampled #2c0322 = OG image bottom) */
.tool:has(>img){background:#2c0322}
.tool>img{-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent);mask-image:linear-gradient(180deg,#000 75%,transparent)}
.tool>img+.b{flex:1;margin-top:-1px;background:linear-gradient(180deg,#2c0322 0%,#170a1c 45%,#0d0d14 100%)}
/* generator */
.stage{max-width:560px;margin:0 auto;text-align:center}
.result{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem;margin:1rem 0}
.result .band{font-family:Creepster,cursive;font-size:clamp(2rem,9vw,3rem);color:var(--green);line-height:1.05;letter-spacing:2px;text-shadow:0 0 18px rgba(57,255,20,.45);word-break:break-word}
.result .album{color:var(--bone);font-size:1.05rem;margin-top:.4rem}.result .album em{color:#fff;font-style:normal;font-weight:700}
.genre{display:inline-block;margin-top:.6rem;padding:.25rem .8rem;border-radius:20px;border:1px solid var(--purple);color:var(--lav);font-size:.75rem;letter-spacing:2px;text-transform:uppercase;font-weight:700;background:rgba(191,0,255,.12)}
canvas.cover{width:100%;height:auto;aspect-ratio:1/1;border-radius:12px;border:1px solid var(--border);box-shadow:0 0 40px rgba(191,0,255,.25);display:block;background:#0d0d14}
.hint{font-size:.75rem;color:var(--dim);margin-top:.5rem}
/* quiz */
.quiz{max-width:640px;margin:0 auto}
.progress{height:8px;border-radius:8px;background:rgba(255,255,255,.06);overflow:hidden;margin:1rem 0 .4rem;border:1px solid var(--border)}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--purple),var(--green));transition:width .3s}
.qcount{font-size:.75rem;color:var(--mint);letter-spacing:2px;text-transform:uppercase;font-weight:700}
.q h2{font-family:Creepster,cursive;font-weight:400;color:#fff;font-size:clamp(1.6rem,6vw,2.3rem);line-height:1.1;letter-spacing:1px;margin:.4rem 0 1rem}
.opts{display:grid;gap:.6rem}
.opt{text-align:left;background:#0d0d14;border:1px solid var(--border);color:var(--bone);padding:.9rem 1rem;border-radius:12px;font:inherit;font-size:.98rem;cursor:pointer;min-height:52px;transition:border-color .15s,box-shadow .15s,background .15s}
.opt:hover{border-color:var(--green);box-shadow:0 0 14px rgba(57,255,20,.2)}
.opt.picked{background:rgba(57,255,20,.12);border-color:var(--green)}
.member{display:grid;gap:1.2rem;align-items:start;margin:1rem 0}
.member .tcard{max-width:360px;width:100%;height:auto;aspect-ratio:600/900;object-fit:contain;margin:0 auto;border-radius:16px;box-shadow:0 0 40px rgba(191,0,255,.35);animation:flip .7s ease-out}
@keyframes flip{from{transform:perspective(800px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}
.member h2{font-family:Creepster,cursive;font-weight:400;font-size:clamp(2.2rem,9vw,3.2rem);color:var(--green);letter-spacing:2px;line-height:1;text-shadow:0 0 18px rgba(57,255,20,.4)}
.member .role{color:var(--lav);text-transform:uppercase;letter-spacing:2px;font-size:.75rem;font-weight:700}
.member blockquote{border-left:3px solid var(--purple);padding:.3rem .8rem;margin:.8rem 0;color:#fff;font-style:italic}
.member ul{list-style:none;margin:.6rem 0}.member li{font-size:.9rem;margin:.25rem 0}.member li b{color:var(--mint);font-weight:700}
.member .src{font-size:.75rem;color:var(--dim)}
.member .actions{justify-content:flex-start}
/* explore block */
.explore{margin:2.5rem 0 1rem;padding:1.2rem;border:1px dashed var(--purple);border-radius:14px;background:rgba(191,0,255,.06)}
.explore h2{font-family:Creepster,cursive;font-weight:400;color:var(--green);font-size:1.8rem;letter-spacing:1.5px}
.explore .links{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:.8rem}
.explore .links a{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:10px;border:1px solid var(--border);background:#0d0d14;color:var(--bone);text-decoration:none;font-size:.9rem;min-height:44px}
.explore .links a:hover{border-color:var(--green);color:var(--green)}
.explore .links a.main{border-color:var(--green);color:var(--green);font-weight:700}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%) translateY(150%);background:#111119;border:1px solid var(--green);color:var(--green);padding:.6rem 1rem;border-radius:10px;font-size:.85rem;transition:transform .25s;z-index:50;pointer-events:none;max-width:90vw}
.toast.on{transform:translateX(-50%) translateY(0)}
footer{margin-top:2rem}
[hidden]{display:none!important}
@media(min-width:640px){.tools{grid-template-columns:repeat(2,1fr)}.explore .links{grid-template-columns:repeat(2,1fr)}.wrap{padding:0 1.25rem}}
@media(min-width:860px){.member{grid-template-columns:340px 1fr}.tools{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* ---- shared additions for tools #3-#6 ---- */
@media(max-width:639px){header.top nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%;padding-bottom:.15rem}header.top nav::-webkit-scrollbar{display:none}header.top nav a{white-space:nowrap}}
.btn.sm{min-height:38px;font-size:.72rem;padding:.4rem .8rem}
.stage.wide{max-width:720px}
canvas.cover.tall{aspect-ratio:4/5}
input,textarea{font-size:16px!important}
/* tombstone maker */
.ts-grid{display:grid;gap:1.2rem;margin:1rem 0;align-items:start}
.ts-form{display:grid;gap:.55rem;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem}
.ts-form label{display:grid;gap:.25rem;font-size:.8rem;color:var(--bone);font-weight:600;letter-spacing:.5px}
.ts-form input,.ts-form textarea{background:#0d0d14;border:1px solid var(--border);color:#fff;padding:.6rem .7rem;border-radius:10px;font:inherit;width:100%;resize:vertical}
.ts-form input:focus,.ts-form textarea:focus,.tune input:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.ts-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.ts-form .btn.sm{justify-self:start}
.picker{border:1px solid var(--border);border-radius:12px;padding:.6rem .7rem .7rem;margin-top:.3rem}
.picker legend{font-size:.8rem;color:var(--bone);font-weight:600;padding:0 .3rem}
.stones{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem}
.stones button{padding:0;border:2px solid var(--border);border-radius:8px;overflow:hidden;background:#111;cursor:pointer;aspect-ratio:4/5;position:relative}
.stones button img{width:100%;height:100%;object-fit:cover}
.stones button span{position:absolute;right:3px;bottom:2px;font-size:.62rem;font-weight:800;color:#fff;text-shadow:0 0 3px #000}
.stones button[aria-checked=true]{border-color:var(--green);box-shadow:0 0 12px rgba(57,255,20,.5)}
.ts-out{text-align:center}
canvas.stonecv{width:100%;height:auto;border-radius:12px;border:1px solid var(--border);box-shadow:0 0 40px rgba(191,0,255,.25);display:block;background:#0d0d14}
@media(min-width:860px){.ts-grid{grid-template-columns:minmax(300px,420px) 1fr}.ts-out{position:sticky;top:5rem}}
/* movie night */
.reels{display:grid;gap:.7rem;margin:1rem 0}
.reel{background:#0b0b12;border:1px solid var(--border);border-radius:14px;padding:.9rem 1rem;position:relative;overflow:hidden;box-shadow:inset 0 0 30px rgba(0,0,0,.8)}
.reel::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 2px,transparent 2px 5px)}
.reel .rl{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--mint);font-weight:700}
.reel .rv{font-family:Creepster,cursive;font-size:clamp(1.7rem,7vw,2.5rem);color:var(--green);line-height:1.1;letter-spacing:1.5px;text-shadow:0 0 14px rgba(57,255,20,.45);word-break:break-word;margin-top:.2rem}
.reel .rv.rule{font-family:Inter,sans-serif;font-weight:700;font-size:1.05rem;color:#fff;letter-spacing:0;text-shadow:none;line-height:1.35}
.reel .rs{color:var(--lav);font-size:.85rem;font-weight:600}
.reel.spin .rv{filter:blur(1.5px);opacity:.8}
.reroll{margin-top:-.4rem}
/* radio fortune */
.crt{position:relative;border-radius:22px;padding:14px;background:linear-gradient(145deg,#2a2a33,#0c0c10);border:2px solid #333;box-shadow:0 0 0 4px #111,0 0 40px rgba(57,255,20,.15),inset 0 0 20px #000;margin:1rem 0}
.crt .static{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);border-radius:14px;opacity:.16;image-rendering:pixelated;pointer-events:none;z-index:2;mix-blend-mode:screen}
.crt.tuning .static{opacity:.75}
.crt-in{position:relative;min-height:340px;border-radius:14px;background:radial-gradient(ellipse at center,#06200c 0%,#020a04 75%);padding:1rem 1.1rem;text-align:left;overflow:hidden;font-family:VT323,ui-monospace,monospace;color:#5dff7a;text-shadow:0 0 6px rgba(93,255,122,.7);font-size:1.35rem;line-height:1.25;animation:flick 4s infinite}
.crt-in::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 2px,transparent 2px 4px);pointer-events:none;z-index:1}
.crt-in::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 60px rgba(0,0,0,.9);pointer-events:none;z-index:1}
.crt-top{display:flex;justify-content:space-between;color:#ffb000;text-shadow:0 0 6px rgba(255,176,0,.6);font-size:1.05rem;border-bottom:1px dashed rgba(93,255,122,.3);padding-bottom:.3rem;margin-bottom:.6rem}
.crt-top .rec{color:#ff3b3b;text-shadow:0 0 6px #f00;animation:blink 1.2s steps(2) infinite}
.tx p{margin:.25rem 0}.tx .dim{opacity:.65}.tx .amb{color:#ffb000;text-shadow:0 0 6px rgba(255,176,0,.6)}.tx .big{font-size:1.7rem;color:#c8ffd0}
.tx .cur::after{content:'█';animation:blink .8s steps(2) infinite;margin-left:2px}
@keyframes blink{50%{opacity:0}}
@keyframes flick{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.85}94%{opacity:1}97%{opacity:.92}}
.tune{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.tune input{flex:1 1 200px;max-width:320px;background:#0d0d14;border:1px solid var(--border);color:#fff;padding:.7rem .8rem;border-radius:12px;font:inherit}
.snd{display:inline-flex;gap:.4rem;align-items:center;font-size:.8rem;color:var(--dim);margin-top:.6rem;cursor:pointer}
/* V1SION compliance test */
.nn-card{background:#f4f6f8;color:#1d2430;border-radius:6px;padding:1rem 1.1rem;text-align:left;box-shadow:0 0 0 1px #cfd6de,0 20px 50px rgba(0,0,0,.5);font-family:Inter,system-ui,sans-serif;max-width:640px;margin:1.2rem auto 0}
.nn-head{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;border-bottom:2px solid #1d2430;padding-bottom:.4rem;margin-bottom:.6rem;font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:#5b6676}
.nn-head b{color:#1d2430;font-weight:900;letter-spacing:3px}
.nn-pre p{font-size:.9rem;color:#3c4656}
.nn .progress{background:#dde3ea;border-color:#cfd6de}.nn .progress i{background:#1d2430}
.nn .q h2{font-family:Inter,sans-serif;font-weight:800;color:#1d2430;font-size:clamp(1.15rem,4.5vw,1.45rem);letter-spacing:0;line-height:1.3}
.nn .opt{background:#fff;border:1px solid #cfd6de;color:#1d2430}
.nn .opt:hover{border-color:#ff1744;box-shadow:0 0 0 2px rgba(255,23,68,.15)}
.nn .opt.picked{background:#1d2430;color:#fff;border-color:#1d2430}
.nn-fine{font-size:.68rem;color:#8a94a3;margin-top:.8rem;letter-spacing:1px}
.vres{display:grid;gap:1.2rem;align-items:start;margin:1rem 0}
.vres canvas{max-width:440px;margin:0 auto}
.vscore{font-family:Inter,sans-serif;font-weight:900;font-size:1.1rem;color:var(--bone);text-transform:uppercase;letter-spacing:2px}
.vscore span{font-size:3rem;color:var(--green);text-shadow:0 0 18px rgba(57,255,20,.4)}
.vres h2{font-family:Creepster,cursive;font-weight:400;font-size:clamp(2rem,8vw,2.8rem);color:var(--green);letter-spacing:2px;line-height:1.05}
.vres.bad .vscore span,.vres.bad h2{color:#ff1744;text-shadow:0 0 18px rgba(255,23,68,.4)}
.nn-verdict{font-family:ui-monospace,monospace;font-size:.85rem;color:var(--lav);border-left:3px solid var(--purple);padding:.3rem .7rem;margin:.8rem 0}
.vres .actions{justify-content:flex-start}
@media(min-width:860px){.vres{grid-template-columns:420px 1fr}}
