:root{ --bg:#050304; --card:rgba(14,10,11,.92); --line:#2a1a1c; --text:#ece6e6; --muted:#8c7f81; --alive:#22e07a; --gold:#e8c060; }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--text);min-height:100vh;overflow-x:hidden;background:var(--bg)}
  .bgimg{position:fixed;inset:0;z-index:0;pointer-events:none;
    background:radial-gradient(ellipse 55% 45% at 50% 40%, rgba(0,0,0,.05), rgba(0,0,0,.5) 70%, rgba(0,0,0,.92) 100%),
      linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.3) 45%, rgba(5,3,4,.96) 92%),
      url("../assets/img/background.jpg") center 20%/cover no-repeat;
    animation:flicker 7s infinite steps(1)}
  @keyframes flicker{0%,100%{opacity:1}42%{opacity:.82}43%{opacity:1}71%{opacity:.88}71.6%{opacity:1}}
  body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.08;background-image:repeating-radial-gradient(circle at 17% 32%, #fff 0 1px, transparent 1px 3px);mix-blend-mode:overlay}
  body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;box-shadow:inset 0 0 220px 70px rgba(0,0,0,.95)}
  main{position:relative;z-index:3}
  .bloodlayer{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
  .bdrip{position:absolute;top:0;width:var(--w,6px);border-radius:0 0 8px 8px;background:linear-gradient(180deg,#2a0006 0%,#6d000f 60%,#8f0016 100%);opacity:.85;animation:bdrip var(--d,14s) cubic-bezier(.45,0,.75,1) var(--delay,0s) infinite}
  .bdrip::after{content:"";position:absolute;bottom:-7px;left:50%;width:calc(var(--w,6px) + 5px);height:calc(var(--w,6px) + 9px);transform:translateX(-50%);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:#8f0016}
  @keyframes bdrip{0%{height:0;opacity:.9}70%{height:var(--h,180px);opacity:.9}100%{height:calc(var(--h,180px) + 10px);opacity:0}}
  .bsplat{position:absolute;width:var(--s,320px);opacity:0;transform:translate(-50%,-50%) rotate(var(--r,0deg)) scale(.4);filter:saturate(.9) brightness(.75);transition:opacity .25s ease, transform .25s cubic-bezier(.2,1.5,.4,1)}
  .bsplat.on{opacity:var(--o,.45);transform:translate(-50%,-50%) rotate(var(--r,0deg)) scale(1)}

  header{text-align:center;padding:56px 16px 0}
  header .eyebrow{font-size:11px;letter-spacing:6px;text-transform:uppercase;color:#9a7f82;margin-bottom:18px}
  header .eyebrow::before,header .eyebrow::after{content:"";display:inline-block;width:38px;height:1px;background:#6a2a30;vertical-align:middle;margin:0 14px}
  header h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(34px,5vw,62px);letter-spacing:-.5px;line-height:1.12;text-shadow:0 3px 18px rgba(0,0,0,.95)}
  header h1 em{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:600;font-size:1em;letter-spacing:0;color:#c80b24;text-shadow:0 0 24px rgba(200,10,35,.6),0 3px 0 #3a0008;display:inline-block}
  header h1 .dim{color:#b3a4a6;font-style:italic}
  header p{color:#a39597;margin-top:16px;font-size:14px;font-weight:300;max-width:560px;margin-inline:auto;line-height:1.7;text-shadow:0 2px 10px #000}

  .stage{display:flex;flex-direction:column;align-items:center;padding:20px 16px 6px}
  .btn-wrap{position:relative;width:460px;height:460px;display:grid;place-items:center}
  .btn-wrap::before{content:"";position:absolute;inset:-50px;border-radius:50%;background:radial-gradient(circle,rgba(210,10,35,.35) 0%,rgba(120,0,20,.12) 40%,transparent 68%);animation:breathe 3.2s ease-in-out infinite;pointer-events:none}
  @keyframes breathe{50%{opacity:.45;transform:scale(.96)}}
  .ticks{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.2) 0deg .5deg,transparent .5deg 6deg);
    -webkit-mask:radial-gradient(circle,transparent 215px,#000 216px,#000 229px,transparent 230px);mask:radial-gradient(circle,transparent 215px,#000 216px,#000 229px,transparent 230px);animation:spin 60s linear infinite}
  body.fast .ticks{animation-duration:6s}
  @keyframes spin{to{transform:rotate(360deg)}}
  .btn-base{position:absolute;inset:38px;border-radius:50%;background:conic-gradient(from 210deg,#2a2a2d,#0c0c0e 25%,#3a3a3e 50%,#0c0c0e 75%,#2a2a2d);box-shadow:0 30px 60px rgba(0,0,0,.95), 0 0 0 1px rgba(255,255,255,.06)}
  .btn-base::after{content:"";position:absolute;inset:15px;border-radius:50%;background:#050405;box-shadow:inset 0 8px 20px rgba(0,0,0,.95), 0 1px 0 rgba(255,255,255,.07)}
  .big-btn{position:relative;z-index:2;width:320px;height:320px;border-radius:50%;border:none;cursor:pointer;
    background:radial-gradient(ellipse 60% 38% at 50% 14%,rgba(255,255,255,.34),rgba(255,255,255,0) 70%),radial-gradient(circle at 50% 120%,rgba(255,60,80,.45),transparent 55%),radial-gradient(circle at 50% 42%,#d4102c 0%,#a20a20 45%,#5e0412 85%,#3a020b 100%);
    box-shadow:0 14px 0 #2b030a, 0 15px 0 #160105, 0 30px 46px rgba(0,0,0,.85), 0 0 60px rgba(220,15,40,.4), inset 0 -16px 30px rgba(0,0,0,.45), inset 0 2px 1px rgba(255,255,255,.25);
    display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;transition:transform .09s ease, box-shadow .09s ease, filter .3s}
  .big-btn::after{content:"";position:absolute;inset:20px;border-radius:50%;border:1px solid rgba(255,255,255,.14);pointer-events:none;z-index:3}
  .lbl{position:relative;z-index:4}
  .txtimg{width:262px;height:auto;margin-top:18px;filter:drop-shadow(0 3px 0 #3a0008) drop-shadow(0 0 10px rgba(0,0,0,.65)) drop-shadow(0 0 22px rgba(90,0,10,.7))}
  .lbl-line{width:70px;height:2px;background:rgba(255,255,255,.45);margin:14px 0 8px}
  .lbl-bot{font-size:11px;font-weight:700;letter-spacing:7px;color:#ffe1e1;opacity:.85;padding-left:7px;text-shadow:0 1px 4px rgba(0,0,0,.8)}
  .big-btn:hover{filter:brightness(1.1) saturate(1.1)}
  .big-btn:hover .txtimg{animation:jitter .25s steps(2) infinite}
  @keyframes jitter{50%{transform:translate(1px,-1px)}}
  .big-btn:active,.big-btn.pressed{transform:translateY(12px);box-shadow:0 2px 0 #2b030a,0 3px 0 #160105,0 8px 14px rgba(0,0,0,.7),0 0 30px rgba(220,15,40,.25),inset 0 -16px 30px rgba(0,0,0,.45)}
  .big-btn:disabled{cursor:not-allowed;filter:grayscale(.75) brightness(.5)}
  .big-btn.flare{animation:flare .5s ease}
  @keyframes flare{0%{filter:brightness(1.8) saturate(1.4)}100%{filter:none}}
  .pulse{position:absolute;inset:70px;border-radius:50%;border:1px solid rgba(224,26,53,.55);animation:pulse 3s cubic-bezier(.2,.6,.3,1) infinite;pointer-events:none;z-index:1}
  .pulse.p2{animation-delay:1.5s}
  body.fast .pulse{animation-duration:1.1s}
  @keyframes pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.5);opacity:0}}
  .shock{position:absolute;inset:70px;border-radius:50%;border:3px solid rgba(255,60,80,.9);pointer-events:none;z-index:1;opacity:0}
  .shock.go{animation:shock .7s cubic-bezier(.1,.7,.3,1)}
  @keyframes shock{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.9);border-width:1px}}
  .hint{margin-top:26px;font-size:10px;letter-spacing:4px;color:#7a6a6c;text-transform:uppercase}
  .hint kbd{font-family:inherit;border:1px solid #4a2a2c;border-radius:4px;padding:2px 7px;margin:0 4px;color:#a08f91}
  .speed{margin-top:12px;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:#ff3048;opacity:0;transition:opacity .6s;text-shadow:0 0 10px rgba(255,48,72,.6)}
  body.fast .speed{opacity:1;animation:sblink 1.2s steps(2) infinite}
  @keyframes sblink{50%{opacity:.4}}
  .conscience{min-height:28px;margin-top:14px;color:#c4a9ac;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:21px;text-align:center;max-width:560px;text-shadow:0 2px 10px #000}
  .search{height:36px;margin-top:4px;display:flex;align-items:center;gap:12px;color:#a39597;font-size:14px;opacity:0;transition:opacity .2s}
  .search.on{opacity:1}
  .search img{width:40px;height:27px;object-fit:cover;border-radius:3px;filter:saturate(.6)}
  @media(max-width:520px){ .btn-wrap{transform:scale(.7);margin:-60px 0} }

  .card{width:min(900px,94vw);margin:8px auto 0;background:var(--card);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:none;box-shadow:0 30px 80px rgba(0,0,0,.8);position:relative;scroll-margin-top:16px}
  .card.show{display:block;animation:fadein .6s ease}
  body.fast .card.show{animation-duration:.25s}
  @keyframes fadein{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .card.shake{animation:shake .5s}
  @keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}
  .card.villain{border-color:#6a5a2a;box-shadow:0 0 0 1px rgba(232,192,96,.25),0 30px 80px rgba(0,0,0,.8)}
  .card-top{display:flex;gap:28px;padding:26px;align-items:center;flex-wrap:wrap}
  .photo{position:relative;width:230px;height:230px;border-radius:10px;overflow:hidden;flex-shrink:0;border:1px solid #3a2a2c;background:#111}
  .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:filter 3s ease, transform 6s ease}
  body.fast .photo img{transition-duration:1s}
  .photo.dead img{filter:grayscale(1) brightness(.55) contrast(1.15);transform:scale(1.04)}
  .photo.redact img{filter:blur(14px) grayscale(1) brightness(.5)}
  .photo .redflash{position:absolute;inset:0;background:radial-gradient(circle,rgba(200,0,20,0),rgba(160,0,20,.75));opacity:0;pointer-events:none}
  .photo.dead .redflash{animation:rf 1.6s ease forwards}
  @keyframes rf{0%{opacity:0}12%{opacity:1}100%{opacity:.25}}
  .photo .ribbon{position:absolute;right:-40px;top:22px;width:160px;transform:rotate(45deg);background:#0a0a0a;height:16px;opacity:0;transition:opacity 1.5s 1.5s}
  .photo.dead .ribbon{opacity:.95}
  .stamp{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-14deg) scale(3);opacity:0;border:4px solid #d0102a;color:#d0102a;padding:6px 14px;font-weight:900;letter-spacing:4px;font-size:22px;border-radius:6px;background:rgba(0,0,0,.35);white-space:nowrap}
  .photo.dead .stamp{animation:stamp .35s 1.1s cubic-bezier(.2,1.6,.4,1) forwards}
  body.fast .photo.dead .stamp{animation-delay:.3s}
  @keyframes stamp{to{opacity:1;transform:translate(-50%,-50%) rotate(-14deg) scale(1)}}
  .who{flex:1;min-width:260px}
  .status{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:2px;font-weight:700;padding:5px 12px;border-radius:999px;border:1px solid}
  .status.alive{color:var(--alive);border-color:rgba(34,224,122,.4);background:rgba(34,224,122,.07)}
  .status.alive i{width:8px;height:8px;border-radius:50%;background:var(--alive);animation:blink 1s infinite}
  .status.dead{color:#ff3048;border-color:rgba(255,48,72,.4);background:rgba(255,48,72,.07)}
  .status.dead i{width:8px;height:8px;border-radius:50%;background:#ff3048}
  @keyframes blink{50%{opacity:.2}}
  .who h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(32px,4.2vw,46px);margin:12px 0 4px;line-height:1.1}
  .who .years{font-family:"Cormorant Garamond",Georgia,serif;color:var(--muted);font-size:18px;height:22px}
  .who .place{display:flex;align-items:center;gap:10px;color:#cdbfc1;font-size:16px;margin-top:6px}
  .who .place img{width:30px;height:20px;object-fit:cover;border-radius:2px}
  .now{margin-top:14px;font-size:15px;color:#d8cdce;line-height:1.5}
  .now b{color:var(--muted);font-weight:600;font-size:11px;letter-spacing:2px;display:block;margin-bottom:2px}
  canvas.ecg{width:100%;height:64px;display:block;margin-top:14px;background:#050404;border:1px solid #1f1416;border-radius:8px}
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line)}
  .cell{background:#0e0a0b;padding:15px 22px}
  .cell .k{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:5px}
  .cell .v{font-size:15px;line-height:1.5}
  .msg{padding:18px 26px;border-top:1px solid var(--line);display:flex;gap:16px;align-items:flex-start}
  .msg .k{font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;min-width:120px;padding-top:9px}
  .bubble{background:#1a2a20;color:#e8f3ec;padding:10px 14px;border-radius:14px 14px 14px 4px;font-size:15px;max-width:520px}
  .bubble .tick{font-size:11px;color:#8fb39c;margin-left:10px}
  .left{padding:20px 26px;border-top:1px solid var(--line);font-family:"Cormorant Garamond",Georgia,serif;font-size:19px;line-height:1.55;color:#e6dada;opacity:0;transition:opacity 1.6s}
  body.fast .left{transition-duration:.4s}
  .left.on{opacity:1}
  .left .k{font-family:"Inter",sans-serif;font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
  .payout{padding:18px 26px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;opacity:0;transition:opacity .8s}
  .payout.on{opacity:1}
  .payout .amt{font-size:30px;font-weight:800;color:#d9d9d9}
  .payout .amt span{color:#55d38a}
  .payout .t{color:var(--muted);font-size:13px;max-width:430px;line-height:1.5;margin-top:4px}
  .again{background:linear-gradient(#c8102c,#7d0817);color:#fff;border:none;border-radius:999px;padding:12px 22px;font-weight:700;letter-spacing:2px;font-size:12px;cursor:pointer;box-shadow:0 6px 0 #3a0008,0 10px 24px rgba(200,10,35,.35);transition:transform .08s, box-shadow .08s}
  .again:active{transform:translateY(5px);box-shadow:0 1px 0 #3a0008}
  .again:disabled{opacity:.4;cursor:not-allowed}
  .floatmoney{position:fixed;z-index:70;pointer-events:none;font-weight:800;font-size:34px;color:#55d38a;text-shadow:0 0 18px rgba(85,211,138,.6),0 3px 0 #0b2a17;animation:floatup 1.8s cubic-bezier(.2,.7,.3,1) forwards}
  @keyframes floatup{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}15%{opacity:1;transform:translate(-50%,-10px) scale(1.1)}100%{opacity:0;transform:translate(-50%,-110px) scale(1)}}

  .stats{width:min(900px,94vw);margin:30px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  @media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}
  .stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
  .stat .n{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}
  .stat .t{font-size:12px;color:var(--muted);margin-top:3px}
  .stat.money .n{color:#55d38a}
  .stat.blood .n{color:#ff3048}

  .achbox{width:min(900px,94vw);margin:16px auto 0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
  .achs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
  .ach{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:10px;border:1px solid #241a1c;background:#0c0809;opacity:.45;filter:grayscale(1)}
  .ach.on{opacity:1;filter:none;border-color:rgba(232,192,96,.45);background:linear-gradient(135deg,rgba(232,192,96,.12),rgba(0,0,0,.2))}
  .ach .ic{font-size:26px;width:38px;text-align:center}
  .ach b{display:block;font-size:14px;color:#efe3c4}
  .ach span{font-size:12px;color:var(--muted)}

  .mapbox{width:min(900px,94vw);margin:16px auto 0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
  .mapbox h3,.memorial h3,.achbox h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:26px;margin-bottom:4px}
  .mapbox p.sub,.memorial p.sub,.achbox p.sub{color:var(--muted);font-size:13px;margin-bottom:14px}
  .mapwrap{position:relative;border-radius:10px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#140b0d,#070506);border:1px solid #1f1416}
  .mapwrap svg{display:block;width:100%;height:auto}
  .mapwrap path{fill:#1b1517;stroke:#0a0708;stroke-width:.5;transition:fill .6s ease}
  .mapwrap path[data-iso]{fill:#2b2224}
  .mapwrap path.hit{stroke:#ff6070;stroke-width:.5}
  .mapwrap path:hover{filter:brightness(1.5)}
  .mapdot{fill:#ff3048;pointer-events:none}
  .mapping{fill:none;stroke:#ff3048;stroke-width:1.5;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:ping 1.8s ease-out infinite}
  @keyframes ping{0%{transform:scale(.4);opacity:1}100%{transform:scale(3.2);opacity:0}}
  .maptip{position:absolute;pointer-events:none;background:rgba(10,6,7,.95);border:1px solid #3a2a2c;color:#ece6e6;font-size:12px;padding:6px 10px;border-radius:6px;opacity:0;transition:opacity .15s;white-space:nowrap;transform:translate(-50%,-130%)}
  .legend{position:absolute;left:12px;bottom:10px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
  .legend i{display:block;width:110px;height:8px;border-radius:4px;background:linear-gradient(90deg,#4a0f16,#8f0016,#ff2a40)}
  .mapstats{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;margin-top:18px}
  @media(max-width:700px){.mapstats{grid-template-columns:1fr}}
  .mapstats h4{font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-weight:600;margin-bottom:10px}
  .cbar{display:flex;align-items:center;gap:10px;margin:9px 0;font-size:14px}
  .cbar .l{width:84px;color:#d8cdce}
  .cbar .tr{flex:1;height:10px;background:#1d1517;border-radius:6px;overflow:hidden}
  .cbar .f{height:100%;background:linear-gradient(90deg,#5e000e,#ff3048);transition:width .7s cubic-bezier(.2,.8,.3,1)}
  .cbar .n{width:74px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
  .topc{display:flex;align-items:center;gap:10px;font-size:14px;padding:6px 0;border-bottom:1px solid #1d1517}
  .topc img{width:24px;height:16px;object-fit:cover;border-radius:2px}
  .topc .n{margin-left:auto;color:#ff3048;font-weight:700;font-variant-numeric:tabular-nums}
  .topc .rk{width:18px;color:var(--muted);font-size:12px}
  .cc{margin-top:10px;font-size:13px;color:var(--muted)}
  .cc b{color:#ece6e6}

  .memorial{width:min(900px,94vw);margin:16px auto 30px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
  .wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}
  .grave{text-align:center;font-size:12px;color:#bfb2b4}
  .grave img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;filter:grayscale(1) brightness(.7);border:1px solid #2a1f21}
  .grave b{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;color:#e6dada;font-size:15px;margin-top:6px}
  .grave.v b{color:var(--gold)}
  .empty{color:var(--muted);font-size:14px;font-style:italic}
  .reset{margin-top:16px;background:none;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:12px}
  .reset:hover{color:#fff}
  footer{text-align:center;color:#6d6264;font-size:12px;padding:0 16px 34px;line-height:1.6}
  #flash{position:fixed;inset:0;background:#8a0012;opacity:0;pointer-events:none;z-index:50}
  #flash.go{animation:flash .9s ease}
  @keyframes flash{0%{opacity:0}8%{opacity:.55}100%{opacity:0}}
  .sound{position:fixed;top:16px;right:16px;background:rgba(20,14,15,.7);backdrop-filter:blur(6px);border:1px solid var(--line);color:#a99a9c;border-radius:999px;padding:7px 14px;cursor:pointer;font-size:11px;letter-spacing:2px;text-transform:uppercase;z-index:60}

  /* overlays: achievement + rare endings */
  .ov{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.82);backdrop-filter:blur(6px)}
  .ov.on{display:flex;animation:fadein .5s ease}
  .ovbox{max-width:620px;width:100%;text-align:center;padding:38px 30px;border-radius:18px;border:1px solid rgba(232,192,96,.45);background:radial-gradient(ellipse at 50% 0%,rgba(232,192,96,.18),rgba(10,7,8,.96) 65%);box-shadow:0 0 80px rgba(232,192,96,.2)}
  .ovbox .tag{font-size:11px;letter-spacing:6px;color:var(--gold);text-transform:uppercase}
  .ovbox .big{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(40px,7vw,64px);color:#fff3d6;margin:10px 0 6px;line-height:1.05}
  .ovbox .medal{font-size:64px;filter:drop-shadow(0 0 20px rgba(232,192,96,.7));animation:spinin .9s cubic-bezier(.2,1.4,.4,1)}
  @keyframes spinin{from{transform:rotate(-200deg) scale(.2);opacity:0}}
  .ovbox p{color:#cbbcae;font-size:15px;line-height:1.65;margin-top:10px}
  .ovbox p.cold{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:20px;color:#e6dada}
  .ovbox button{margin-top:22px}
  .ovbox.dark{border-color:#3a1015;background:radial-gradient(ellipse at 50% 0%,rgba(140,0,20,.25),rgba(4,2,3,.98) 65%);box-shadow:0 0 120px rgba(140,0,20,.3)}
  .ovbox.dark .tag{color:#ff3048}
  .ovbox.dark .big{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(34px,6vw,54px);color:#c80b24}
  .ovbox.gold .big{color:var(--gold)}
  .ghost{background:none;border:1px solid #4a2a2c;color:#cdbfc1;border-radius:999px;padding:11px 20px;font-size:12px;letter-spacing:2px;cursor:pointer}
  body.over .stage, body.over #card{filter:grayscale(1) brightness(.4);pointer-events:none}

/* moral checkpoints */
.ovbox.buy{max-width:760px;max-height:92vh;overflow-y:auto;border-color:#4a2a2c;background:radial-gradient(ellipse at 50% 0%,rgba(232,192,96,.12),rgba(8,5,6,.97) 65%)}
.ovbox.buy .big{font-size:clamp(32px,5.5vw,50px)}
.ovbox p.small{font-size:12px;color:#8f8082}
.bfaces{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin:18px 0 6px}
.bface{display:flex;flex-direction:column;align-items:center;font-size:11px;color:#cbbcae;line-height:1.3}
.bface img{width:64px;height:64px;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.05);border:1px solid #3a2a2c;margin-bottom:5px}
.bface i{font-style:normal;color:#7d6e70;font-size:10px}
.bbtns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.ghost.buyyes{border-color:var(--gold);color:var(--gold)}
.buyitem{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #241a1c;font-size:13px}
.buyitem i{margin-left:auto;font-style:normal;color:#8f8082;font-size:12px}

footer .ver{margin-top:14px;font-size:11px;letter-spacing:3px;color:#6f5f61}

/* ===== v0.3.4: always-visible counter ===== */
.hud{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;justify-content:center;gap:28px;padding:9px 120px 9px 16px;background:rgba(8,5,6,.82);backdrop-filter:blur(8px);border-bottom:1px solid #2a1c1e}
.hud .hc{display:flex;align-items:baseline;gap:6px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#7f7072}
.hud .hc b{font-size:18px;letter-spacing:0;color:#e9dcdc;font-variant-numeric:tabular-nums}
.hud .money b{color:var(--gold)} .hud .blood b{color:#ff3048}
.hud.tick .money b{animation:htick .7s ease}
@keyframes htick{0%{text-shadow:0 0 0 transparent;transform:scale(1)}30%{text-shadow:0 0 18px rgba(232,192,96,.9);transform:scale(1.12)}100%{transform:scale(1)}}
.sound{top:56px}
main{padding-top:46px}
@media (max-width:700px){
  .hud{top:auto;bottom:0;border-bottom:0;border-top:1px solid #2a1c1e;gap:16px;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}
  .hud .hc{flex-direction:column;align-items:center;gap:0;font-size:9px;letter-spacing:1.5px}
  .hud .hc b{font-size:16px}
  .sound{top:12px}
  main{padding-top:0;padding-bottom:70px}
}
/* ===== mirror line ===== */
.mirror{max-width:640px;margin:6px auto 0;padding:0 18px;text-align:center;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:21px;line-height:1.4;color:#e6d6d6;opacity:0;transform:translateY(6px);transition:opacity 1.2s ease,transform 1.2s ease;min-height:0}
.mirror.on{opacity:1;transform:none;min-height:60px}
/* ===== decay: the screen dies with you (button stays red) ===== */
.crack{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;opacity:0;transition:opacity 3s}
.bgimg,header,.card,.stats,.achbox,.mapbox,.memorial,.mirror,footer{transition:filter 4s ease}
body.d1 :is(.bgimg,header,.card,.stats,.achbox,.mapbox,.memorial,footer){filter:saturate(.7)}
body.d2 :is(.bgimg,header,.card,.stats,.achbox,.mapbox,.memorial,footer){filter:saturate(.45) brightness(.92)}
body.d3 :is(.bgimg,header,.card,.stats,.achbox,.mapbox,.memorial,footer){filter:saturate(.2) contrast(1.1) brightness(.85)}
body.d4 :is(.bgimg,header,.card,.stats,.achbox,.mapbox,.memorial,footer){filter:grayscale(1) contrast(1.15) brightness(.78)}
body.d2 .crack{opacity:.35} body.d3 .crack{opacity:.6} body.d4 .crack{opacity:.85}
body.d2::before{opacity:.14} body.d3::before{opacity:.2} body.d4::before{opacity:.26}
body.d3::after,body.d4::after{box-shadow:inset 0 0 260px 110px rgba(0,0,0,.97)}
body.glitch main{animation:glitch .25s steps(3) 1}
body.glitch .hud{animation:glitch .25s steps(3) 1}
@keyframes glitch{0%{transform:translate(0)}33%{transform:translate(-3px,1px);filter:hue-rotate(-20deg)}66%{transform:translate(3px,-1px)}100%{transform:translate(0)}}
@media (prefers-reduced-motion:reduce){body.glitch main,body.glitch .hud{animation:none}}
.ovbox .bbtns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}


/* ===== v0.3.5: walk away + final receipt ===== */
.walk{display:none;margin:12px auto 0;padding:10px 20px;border:0;background:transparent;color:#8e7e80;font:500 11px/1 Inter,system-ui,sans-serif;letter-spacing:3px;text-transform:uppercase;cursor:pointer;border-bottom:1px solid transparent}
.walk.show{display:block}.walk:hover{color:#e6dada;border-color:#6a3037}.walk:disabled{opacity:.35;cursor:not-allowed}
.ghost.walkyes{border-color:#a32939;color:#ff7384}
.ovbox.receiptbox{max-width:720px;max-height:92vh;overflow:auto}
.receipt .big{font-size:clamp(38px,6vw,58px)}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}
.rgrid>div{padding:15px 8px;border:1px solid #352327;border-radius:10px;background:rgba(0,0,0,.22)}
.rgrid b{display:block;color:#fff0d4;font-family:"Cormorant Garamond",Georgia,serif;font-size:26px;font-weight:500}
.rgrid span{display:block;margin-top:3px;color:#7f7072;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.rnames{margin:17px 0;padding:14px 16px;border-top:1px solid #352327;border-bottom:1px solid #352327;color:#a9989a;font:italic 15px/1.7 "Cormorant Garamond",Georgia,serif}
.rnames span{display:block;color:#66585a;font:500 9px/1.4 Inter,system-ui,sans-serif;letter-spacing:2px;text-transform:uppercase}
.shareStatus{min-height:18px!important;margin:10px 0 0!important;color:#8d7d7f!important;font-size:11px!important}
body.over #bigBtn,body.over #againBtn,body.over #walkBtn{pointer-events:none}
@media (max-width:600px){.rgrid{grid-template-columns:repeat(2,1fr)}.rgrid b{font-size:22px}.ovbox.receiptbox{padding:28px 18px}}

/* ===== v0.3.7: mobile sound button no longer covers content ===== */
.sound .ic{font-size:13px}
@media (max-width:700px){
  .sound{top:auto;bottom:calc(66px + env(safe-area-inset-bottom));right:10px;width:38px;height:38px;padding:0;display:grid;place-items:center;opacity:.75}
  .sound .lb{display:none}
  .sound .ic{font-size:17px}
}

/* ===== v0.3.8: spending, random facts, receipt money strip ===== */
.hud .money{position:relative}
.hdelta{position:absolute;left:50%;top:100%;transform:translateX(-50%);font-style:normal;font-weight:700;font-size:15px;color:#ff3048;opacity:0;white-space:nowrap;pointer-events:none;text-shadow:0 0 12px rgba(255,48,72,.6)}
.hdelta.go{animation:hdelta 2s ease forwards}
@keyframes hdelta{0%{opacity:0;transform:translate(-50%,-6px)}12%{opacity:1;transform:translate(-50%,4px)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,22px)}}
.payout .t .fact{display:inline-block;margin-top:7px;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-size:19px;line-height:1.35;color:#d9c8c8}
.buytotal{margin-top:10px;padding-top:10px;border-top:1px solid #2a1c1e;font-size:12px;color:#8f8082;letter-spacing:.5px}
.rmoney{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 0}
.rmoney>div{padding:14px 6px;border-radius:10px;border:1px solid #4a2a2c;background:rgba(40,8,12,.35)}
.rmoney b{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:26px;font-weight:500;color:#fff0d4}
.rmoney>div:nth-child(2) b{color:#ff7384}
.rmoney span{display:block;margin-top:3px;color:#8a7a7c;font-size:9px;letter-spacing:2px;text-transform:uppercase}
.rgrid{margin-top:10px}
@media (max-width:700px){
  .hdelta{top:auto;bottom:100%;font-size:14px}
  @keyframes hdelta{0%{opacity:0;transform:translate(-50%,6px)}12%{opacity:1;transform:translate(-50%,-4px)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-22px)}}
  .rmoney b{font-size:19px}
  .eyebrow{letter-spacing:3px}
}

@media (max-width:700px){
  .eyebrow{flex-wrap:wrap;justify-content:center;text-align:center;row-gap:2px}
  header .eyebrow::before,header .eyebrow::after{display:none}
  .eyebrow span{display:block;width:100%}
  .eyebrow .dot{display:none}
}

/* ===== v0.3.9: beta testers ===== */
footer .beta{margin:12px auto 0;max-width:520px;font-size:12px;line-height:1.6;color:#8d7d7f}
footer .beta b{color:#c9b8ba;font-weight:600}

/* v0.3.10: charity first, creator tips secondary */
.realhelp{margin:22px 0 0;padding:25px 22px;border:1px solid #758f85;border-radius:14px;background:linear-gradient(145deg,rgba(25,65,53,.48),rgba(9,21,18,.9));text-align:center}
.help-label{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#a5cdbd}
.realhelp h3{font:500 clamp(27px,5vw,38px)/1.15 "Cormorant Garamond",Georgia,serif;color:#f0fff7;margin:10px 0}
.ovbox .realhelp p{color:#c3d9cf;font-size:14px;line-height:1.55}
.charity-primary{display:block;margin:18px auto 12px;padding:17px 20px;max-width:390px;border-radius:9px;background:#c7efda;color:#10251b;text-decoration:none;font:700 13px/1.4 Inter,system-ui,sans-serif;letter-spacing:1px;text-transform:uppercase;box-shadow:0 0 24px rgba(146,226,182,.15)}
.charity-primary:hover{background:#e0ffec}.charity-primary:focus-visible,.progress-link:focus-visible,.maker-tip a:focus-visible{outline:3px solid #fff;outline-offset:4px}
.progress-link{display:block;color:#c5e7d5;font-size:12px;text-underline-offset:3px;line-height:1.5}
.ovbox .realhelp .help-disclosure{font-size:10px;color:#9bb2a7;margin:13px 0 0}
.charity-progress:empty{display:none}.charity-progress{margin:12px 0}.charity-progress strong{display:block;color:#edfff4;font-size:22px}.charity-progress small{display:block;color:#a7c1b3;font-size:10px;line-height:1.5;margin:7px 0}.charity-progress progress{width:100%;height:9px;accent-color:#bce8ce}
.maker-tip{margin:17px 0 4px;color:#8f8082;font-size:11px;line-height:1.7}.maker-tip a{color:#bcaeb0;text-underline-offset:3px}.maker-tip span{display:block;font-size:10px;color:#796c6e}
@media(max-width:600px){.realhelp{padding:21px 15px}.charity-primary{padding:16px 12px;font-size:12px}}

.jg-widget-wrap{width:100%;max-width:400px;margin:18px auto 12px;overflow:hidden;border-radius:10px;background:#fff;height:700px}
.jg-widget-wrap iframe{display:block;width:400px;height:700px;border:0;transform-origin:top left;background:#fff}
.ovbox .realhelp .widget-note{font-size:10px;color:#9bb2a7;margin:8px 0}

/* v0.3.11: stopping is a central game choice */
.run-choices{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;justify-content:center}
.run-choices .again,.run-choices .walk{flex:1 1 180px;min-height:50px;margin:0;padding:14px 20px;border-radius:9px;font-size:12px;letter-spacing:1px}
.run-choices .walk.show{display:block;border:1px solid #bad7c7;background:#203c30;color:#e2f7eb;font-weight:600}
.run-choices .walk:hover{background:#2c5040}.walk[hidden],.hud-walk[hidden]{display:none!important}
.hud-walk{order:10;min-height:36px;border:1px solid #b1cabb;border-radius:7px;background:#233e31;color:#e4f6eb;padding:8px 12px;font:600 11px Inter,system-ui,sans-serif;white-space:nowrap;cursor:pointer}
.hud-walk:disabled,.run-choices button:disabled{opacity:.4;cursor:not-allowed}
.hud{align-items:center}.overlay-walk,.reflection-walk{border-color:#a8c5b4;color:#d8eee1;background:#20392d}.reflection-walk{display:inline-block;margin:12px 0;font:600 11px Inter,system-ui,sans-serif}
.walkyes{background:#234331!important;border-color:#c3e2ce!important;color:#edfff3!important}
@media(max-width:700px){.hud{gap:10px;padding-left:8px;padding-right:8px}.hud .hc b{font-size:14px}.hud .hc{font-size:8px;letter-spacing:.5px}.hud-walk{padding:7px 9px;font-size:10px;min-height:38px}.run-choices{width:100%}.run-choices .again,.run-choices .walk{flex-basis:100%;width:100%}}

/* v0.3.12: native widget, compact failure state, no fixed-height white box */
.jg-widget-wrap{height:auto!important;max-width:100%;width:400px;background:transparent;overflow:hidden}
.jg-widget-wrap[hidden]{display:none!important}
.jg-widget-wrap iframe{width:100%!important;max-width:100%!important;transform:none!important;height:revert-layer}
.jg-widget-wrap img{max-width:100%;height:auto}
.hud-walk{white-space:normal;max-width:140px;line-height:1.3}
@media(max-width:700px){.hud-walk{max-width:92px;font-size:10px}.hud{gap:7px}}

/* v0.3.14: reliable purchase symbols and readable fundraising widget */
.purchase-icon{display:inline-block;width:28px;height:28px;flex-shrink:0;vertical-align:middle;color:#f0d99c}
.medal .purchase-icon{width:62px;height:62px}.purchase-symbol{display:inline-flex;align-items:center;justify-content:center}
.receipt-purchases{margin:18px 0;text-align:left;border:1px solid #66514b;border-radius:10px;padding:14px;background:#1b1012}
.receipt-purchases h4{margin:0 0 8px;color:#f3e4d1;font-size:12px;letter-spacing:2px;text-transform:uppercase}
.receipt-purchase{display:flex;align-items:center;gap:12px;padding:10px 0;color:#f1e8df;font-size:14px;border-top:1px solid #4b3439}
.receipt-purchase b{margin-left:auto;color:#ead49e;font-size:12px;white-space:nowrap}
.buyitem{color:#f1e8df;border-color:#61434a}.buyitem i,.buytotal{color:#d2bfc3}
/* A light inset protects contrast even when JustGiving uses a cross-origin iframe.
   We cannot restyle a cross-origin document from this page. Same-DOM content is themed below. */
.jg-widget-wrap{background:#fffaf0!important;color:#201a1b!important;border:1px solid #c9b782;border-radius:10px;padding:16px;box-sizing:border-box;overflow:auto!important}
.jg-widget-wrap #jg-widget-wouldyoupressit-650{color:#201a1b!important;background:#fffaf0!important;font-family:Inter,Arial,sans-serif!important;max-width:100%}
#jg-widget-wouldyoupressit-650 :is(p,span,div,strong,b,small,h1,h2,h3,h4,label){color:#201a1b!important;border-color:#c8b994!important}
#jg-widget-wouldyoupressit-650 a{color:#164f3a!important;text-decoration:underline}
#jg-widget-wouldyoupressit-650 progress{accent-color:#236347;background:#ded4bd;height:12px;border-radius:6px}
.realhelp{border-color:#a6c7b7;background:linear-gradient(145deg,#142c23,#0c1c17)}
.ovbox .realhelp p{color:#e2eee6}.ovbox .realhelp .help-disclosure,.ovbox .realhelp .widget-note{color:#c3d6ca}
.maker-tip{color:#c7b9bc}.maker-tip span{color:#b5a5a9}.maker-tip a{color:#e1d3d6}
@media(max-width:600px){.receipt-purchase{gap:9px;font-size:12px}.receipt-purchase b{font-size:11px}.jg-widget-wrap{padding:10px}}

/* v0.3.15: restrained psychological tone, not Halloween */
.bloodlayer{display:none!important}
.bgimg{background:radial-gradient(ellipse at 50% 35%,rgba(45,30,34,.35),rgba(5,5,7,.95) 85%),linear-gradient(150deg,#171419,#09090c)!important;animation:none!important}
header h1 em{text-shadow:none;color:#c75361}
.button-copy{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px;color:#fff5e9;font-family:Inter,"Segoe UI",Arial,sans-serif;text-shadow:0 2px 3px rgba(0,0,0,.35)}
.button-copy span{font-size:15px;font-weight:600;letter-spacing:5px}
.button-copy strong{font-size:clamp(31px,7vw,44px);font-weight:700;letter-spacing:-1px;line-height:1.1}
.big-btn:hover .button-copy{animation:none!important}.lbl-bot{font-family:Inter,"Segoe UI",Arial,sans-serif;letter-spacing:2px}
.buytotal{line-height:1.8;overflow-wrap:anywhere}

/* v0.3.16: compact intro and charity panel */
header{padding-top:36px}header .eyebrow{margin-bottom:12px;font-size:10px;letter-spacing:4px}
header h1{font-size:clamp(32px,4.5vw,52px);line-height:1.12}
header p{max-width:580px;margin:14px auto 0;font-size:13px;line-height:1.6}
.realhelp{padding:18px 20px;margin-top:16px;border-radius:12px}
.realhelp h3{font-size:clamp(26px,4.5vw,32px);margin:0 0 8px;line-height:1.15}
.ovbox .realhelp p{font-size:13px;line-height:1.45;margin:6px 0}
.charity-primary{margin:12px auto 9px;padding:13px 18px;max-width:330px;font-size:12px}
.ovbox .realhelp .widget-note{font-size:10px;line-height:1.4;margin:7px 0;color:#c3d6ca}
.progress-link{font-size:11px;line-height:1.5}
.ovbox .realhelp .help-disclosure{font-size:10px;margin:9px 0 0;line-height:1.4}
.maker-tip{margin:12px 0 0;font-size:11px}.maker-tip span{font-size:10px}
@media(max-width:600px){header{padding-top:28px}.realhelp{padding:16px 14px}header .eyebrow{letter-spacing:2px}}
