/* Puzzle Atrium high-definition visual polish
   Lightweight vector/CSS upgrade: keeps pages fast while making puzzles sharper on high-DPI screens. */
:root{
  --hd-gold:#fbbf24;
  --hd-gold-soft:#fde68a;
  --hd-emerald:#34d399;
  --hd-blue:#60a5fa;
  --hd-ink:#030712;
  --hd-panel:#0f172a;
  --hd-line:rgba(226,232,240,.22);
  --hd-glass:rgba(15,23,42,.78);
  --hd-shadow:0 30px 95px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.07);
}
html{background:#030712;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;}
body{
  background:
    radial-gradient(circle at 12% 6%, rgba(251,191,36,.22), transparent 28rem),
    radial-gradient(circle at 83% 8%, rgba(52,211,153,.16), transparent 30rem),
    radial-gradient(circle at 50% 105%, rgba(96,165,250,.12), transparent 38rem),
    linear-gradient(135deg,#020617 0%,#07111f 48%,#0b1220 100%);
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.12;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.9) 0 1px, transparent 1.6px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,.6) 0 .8px, transparent 1.4px);
  background-size:190px 190px, 310px 310px;
  mix-blend-mode:screen;
}
.site-header{box-shadow:0 12px 34px rgba(0,0,0,.22)}
.logo-mark{box-shadow:0 0 0 1px rgba(255,255,255,.25),0 16px 34px rgba(251,191,36,.32)}
.panel,.hero-card,.game-card,.ad-slot,.modal-card,.expert-card-v228,.pv-overlay-card,.clock-modal-card,.gear-modal-card,.photo-modal-card{
  border-color:rgba(226,232,240,.18)!important;
  box-shadow:var(--hd-shadow)!important;
}
.panel,.hero-card,.game-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0) 32%),
    linear-gradient(145deg,rgba(17,24,39,.96),rgba(15,23,42,.78))!important;
}
.btn.primary,.btn.success{box-shadow:0 15px 34px rgba(251,191,36,.18), inset 0 1px 0 rgba(255,255,255,.35)}
.btn:hover{filter:saturate(1.08) brightness(1.04)}
/* Puzzle boards */
.sudoku-grid,.crossword-grid{
  border-color:rgba(248,250,252,.92)!important;
  background:rgba(248,250,252,.94)!important;
  box-shadow:0 28px 72px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.14), inset 0 0 0 1px rgba(255,255,255,.32);
}
.sudoku-cell{
  background:linear-gradient(145deg,#07111f,#0c1728 70%,#111827)!important;
  border-color:rgba(203,213,225,.72)!important;
  text-shadow:0 1px 0 rgba(0,0,0,.65),0 0 16px rgba(96,165,250,.12);
}
.sudoku-cell.given{background:linear-gradient(145deg,#111827,#172033)!important;color:#fde68a!important;text-shadow:0 0 12px rgba(251,191,36,.35)}
.sudoku-cell.selected{outline-color:rgba(251,191,36,.95)!important;box-shadow:inset 0 0 0 999px rgba(251,191,36,.12),0 0 18px rgba(251,191,36,.26)}
.number-pad .pad-btn,.key,.letter-box{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 18px rgba(0,0,0,.24);
}
.letter-box{background:linear-gradient(145deg,#0b1220,#162033)!important;border-color:rgba(148,163,184,.32)!important}
.crossword-grid{border-radius:16px!important;overflow:hidden}
.cw-cell{border-color:rgba(203,213,225,.66)!important;background:#0b1220!important}
.cw-cell:not(.block){background:linear-gradient(145deg,#f8fafc,#e2e8f0)!important}
.cw-cell input{background:linear-gradient(145deg,#f8fafc,#e2e8f0)!important;color:#020617!important;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.cw-cell.block{
  background:
    radial-gradient(circle at 35% 30%,rgba(96,165,250,.18),transparent 42%),
    repeating-linear-gradient(135deg,#020617 0 8px,#172033 8px 16px)!important;
}
.cw-num{color:#0f172a!important;background:linear-gradient(135deg,#fbbf24,#fde68a);border-radius:999px;min-width:18px;height:18px;display:grid;place-items:center;top:4px!important;left:4px!important;box-shadow:0 4px 12px rgba(0,0,0,.25)}
/* Mystery scene global UHD styling */
.mystery-scene-v28{
  background:
    radial-gradient(circle at 50% 22%,rgba(251,191,36,.18),transparent 36%),
    radial-gradient(circle at 80% 70%,rgba(52,211,153,.12),transparent 38%),
    linear-gradient(180deg,#1a2435 0%,#0b1220 52%,#050914 100%)!important;
  border:1px solid rgba(226,232,240,.18)!important;
  box-shadow:0 35px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06)!important;
  isolation:isolate;
}
.mystery-scene-v28::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:72px 72px,72px 72px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,.08));
}
.mystery-scene-v28 .scene-floor{
  background:linear-gradient(180deg,transparent 0 56%,rgba(2,6,23,.45) 56%,rgba(2,6,23,.86) 100%)!important;
  border-top:1px solid rgba(148,163,184,.18);
}
.mystery-scene-v28 .scene-glow{filter:blur(18px);opacity:.85}
.room-object,.portal-v28,.safe-object{
  z-index:2;transform:translateZ(0);backface-visibility:hidden;
  filter:drop-shadow(0 18px 22px rgba(0,0,0,.38));
  transition:transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.room-object:hover,.portal-v28:hover,.safe-object:hover{transform:translateY(-2px) scale(1.012);filter:drop-shadow(0 20px 26px rgba(0,0,0,.46)) brightness(1.06)}
.room-label{background:rgba(15,23,42,.76)!important;border:1px solid rgba(226,232,240,.18)!important;box-shadow:0 10px 24px rgba(0,0,0,.32);backdrop-filter:blur(8px)}
.safe-object{
  background:linear-gradient(145deg,#526078,#111827 48%,#020617)!important;
  border:2px solid rgba(203,213,225,.52)!important;border-radius:16px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 22px 34px rgba(0,0,0,.42)!important;
}
.safe-door{background:linear-gradient(145deg,#0f172a,#020617)!important;border:2px solid rgba(148,163,184,.45)!important}
.safe-screen{background:linear-gradient(180deg,#052e16,#020617)!important;color:#86efac!important;text-shadow:0 0 10px rgba(34,197,94,.75)!important}
.safe-dial{background:radial-gradient(circle,#cbd5e1 0 26%,#111827 28% 58%,#94a3b8 60% 100%)!important;box-shadow:0 0 18px rgba(203,213,225,.22)!important}
.portal-v28{
  background:radial-gradient(circle at 50% 52%,rgba(52,211,153,.26),rgba(16,185,129,.08) 42%,rgba(2,6,23,.46) 72%)!important;
  border:2px solid rgba(52,211,153,.38)!important;box-shadow:0 0 38px rgba(16,185,129,.22),inset 0 0 45px rgba(16,185,129,.08)!important;
}
.portal-v28.portal-open{box-shadow:0 0 68px rgba(52,211,153,.62), inset 0 0 70px rgba(52,211,153,.18)!important;border-color:#86efac!important}
/* Object-specific vector-like polish */
.painting-object,.canvas-object{border:8px solid #7c2d12!important;background:linear-gradient(135deg,#2563eb 0%,#16a34a 52%,#f59e0b 100%)!important;box-shadow:inset 0 0 0 3px rgba(251,191,36,.45),0 20px 32px rgba(0,0,0,.32)!important}
.painting-object::after,.canvas-object::after{content:"";position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,#fde68a 0 18%,transparent 20%);transform:translate(24%,-22%);opacity:.9}
.clock-object{border-radius:50%!important;background:radial-gradient(circle,#fff7ed 0 48%,#92400e 50% 68%,#451a03 70% 100%)!important;border:0!important;box-shadow:0 0 0 5px rgba(146,64,14,.5),0 16px 30px rgba(0,0,0,.34)!important}
.clock-object::before{content:"";position:absolute;left:48%;top:18%;width:5%;height:34%;border-radius:999px;background:#0f172a;transform:rotate(24deg);transform-origin:bottom center;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.clock-object::after{content:"";position:absolute;left:50%;top:48%;width:26%;height:5%;border-radius:999px;background:#f59e0b;transform:rotate(-58deg);transform-origin:left center;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
.desk-object{background:linear-gradient(180deg,#9a5b24 0 44%,#5b3318 45% 100%)!important;border-radius:12px!important;border:1px solid rgba(251,191,36,.16)!important}
.desk-object::before{content:"";position:absolute;left:0;right:0;top:48%;height:3px;background:rgba(0,0,0,.25)}
.desk-object::after{content:"";position:absolute;left:12%;right:12%;bottom:21%;height:11%;background:radial-gradient(circle at 12% 50%,#fde68a 0 4px,transparent 5px),radial-gradient(circle at 38% 50%,#fde68a 0 4px,transparent 5px),radial-gradient(circle at 64% 50%,#fde68a 0 4px,transparent 5px),radial-gradient(circle at 90% 50%,#fde68a 0 4px,transparent 5px)}
.terminal-object,.monitor-object,.screen-object{background:linear-gradient(145deg,#1e293b,#020617)!important;border:3px solid rgba(100,116,139,.85)!important;border-radius:16px!important;box-shadow:inset 0 0 26px rgba(34,197,94,.08),0 22px 36px rgba(0,0,0,.38)!important}
.old-terminal-screen{background:linear-gradient(180deg,#052e16,#020617)!important;color:#86efac!important;border:1px solid rgba(34,197,94,.48)!important;text-shadow:0 0 10px rgba(34,197,94,.7)!important;box-shadow:inset 0 0 18px rgba(34,197,94,.14)!important}
.lamp-object{background:radial-gradient(circle at 50% 22%,#fde68a 0 25%,#f59e0b 28% 42%,transparent 45%),linear-gradient(90deg,transparent 46%,#94a3b8 47% 53%,transparent 54%)!important;border:0!important;box-shadow:0 0 38px rgba(251,191,36,.26)!important}
.cabinet-object,.crate-object{background:linear-gradient(180deg,#475569,#1e293b 55%,#111827)!important;border:2px solid rgba(148,163,184,.36)!important;border-radius:12px!important}
.cabinet-object::before,.crate-object::before{content:"";position:absolute;inset:18% 8%;background:repeating-linear-gradient(180deg,rgba(255,255,255,.12) 0 2px,transparent 2px 24%);border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(0,0,0,.35)}
.panel-object{background:radial-gradient(circle at 28% 35%,#22c55e 0 6px,transparent 7px),radial-gradient(circle at 50% 35%,#22c55e 0 6px,transparent 7px),radial-gradient(circle at 72% 35%,#22c55e 0 6px,transparent 7px),linear-gradient(145deg,#1f2937,#0f172a)!important;border:2px solid rgba(148,163,184,.4)!important;border-radius:14px!important}
.plaque-object{background:linear-gradient(145deg,#b45309,#92400e 52%,#451a03)!important;border:2px solid rgba(253,230,138,.55)!important;border-radius:12px!important;box-shadow:inset 0 0 18px rgba(251,191,36,.25)!important}
.statue-object{background:linear-gradient(145deg,#cbd5e1,#64748b 58%,#334155)!important;border-radius:46% 46% 16% 16%!important;border:1px solid rgba(226,232,240,.28)!important;box-shadow:inset -12px -18px 25px rgba(15,23,42,.35)!important}
.pipes-object{background:radial-gradient(circle at 15% 50%,#fde68a 0 12%,transparent 14%),linear-gradient(135deg,#334155,#0f172a)!important;border:2px solid rgba(251,191,36,.38)!important;border-radius:16px!important}
.pipes-object::after{content:"";position:absolute;inset:18%;background:repeating-linear-gradient(90deg,transparent 0 18%,rgba(253,230,138,.32) 18% 22%,transparent 22% 34%);border-radius:12px;opacity:.75}
.gear-ring-object{background:radial-gradient(circle,#020617 0 20%,#fbbf24 22% 28%,#78350f 30% 55%,#0f172a 56% 100%)!important;border-radius:50%!important;border:2px solid rgba(253,230,138,.5)!important}
.gear-ring-object::before{content:"";position:absolute;inset:18%;border-radius:50%;border:10px dashed rgba(253,230,138,.8);animation:hd-slow-spin 18s linear infinite;opacity:.75}
@keyframes hd-slow-spin{to{transform:rotate(360deg)}}
.cipher-window-object,.strip-object{background:linear-gradient(135deg,rgba(15,23,42,.95),rgba(96,165,250,.18)),repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 8px)!important;border:2px solid rgba(96,165,250,.42)!important;border-radius:14px!important}
.chain-console-object{background:linear-gradient(145deg,#334155,#0f172a)!important;border:2px solid rgba(203,213,225,.35)!important;border-radius:16px!important}
.chain-console-object::after{content:"";position:absolute;inset:12%;background:repeating-linear-gradient(90deg,transparent 0 18%,rgba(251,191,36,.42) 19% 21%,transparent 22% 34%);opacity:.75}
.camera-object,.tripod-object{background:radial-gradient(circle at 44% 30%,#020617 0 16%,#475569 18% 25%,transparent 27%),linear-gradient(145deg,#475569,#111827)!important;border:2px solid rgba(203,213,225,.36)!important;border-radius:18px!important}
.camera-object::before{content:"";position:absolute;left:18%;top:22%;width:42%;height:34%;border-radius:14px;background:radial-gradient(circle,#020617 0 30%,#94a3b8 32% 48%,#1e293b 50% 100%)}
.strip-object{box-shadow:inset 0 0 28px rgba(96,165,250,.12),0 20px 36px rgba(0,0,0,.35)!important}
.alarm-object{background:radial-gradient(circle,#fde68a 0 18%,#f59e0b 21% 43%,#7c2d12 46% 100%)!important;border-radius:50%!important;box-shadow:0 0 34px rgba(251,191,36,.38)!important}
.hooks-object{background:radial-gradient(circle at 25% 35%,#94a3b8 0 8%,transparent 9%),radial-gradient(circle at 60% 62%,#94a3b8 0 8%,transparent 9%),linear-gradient(145deg,#020617,#1e293b)!important;border:2px solid rgba(148,163,184,.38)!important;border-radius:16px!important}
.red-door-object{background:linear-gradient(90deg,#450a0a,#991b1b 50%,#450a0a)!important;border:3px solid rgba(248,113,113,.55)!important;border-radius:18px 18px 10px 10px!important;box-shadow:0 0 42px rgba(239,68,68,.22)!important}
.radio-object,.console-object{background:linear-gradient(145deg,#1e293b,#020617)!important;border:2px solid rgba(56,189,248,.42)!important;border-radius:16px!important;box-shadow:inset 0 0 24px rgba(56,189,248,.08)!important}
.radio-object::before,.console-object::before{content:"";position:absolute;inset:16%;background:radial-gradient(circle at 20% 50%,#22c55e 0 5px,transparent 6px),radial-gradient(circle at 42% 50%,#f59e0b 0 5px,transparent 6px),radial-gradient(circle at 64% 50%,#ef4444 0 5px,transparent 6px);opacity:.9}
.reward-pop-v28{box-shadow:0 28px 80px rgba(0,0,0,.6),0 0 0 1px rgba(253,230,138,.45), inset 0 1px 0 rgba(255,255,255,.1)!important;background:linear-gradient(145deg,#0f172a,#1e293b)!important}
.reward-icon{filter:drop-shadow(0 0 18px rgba(251,191,36,.45))}
/* Modal/puzzle layer polish */
.hd-panel,.pipe-board-v214,.pipe-grid-v214,.crate-lock-v214,.gear-dial-board,.negative-preview,.projection-stage,.cable-board-v229,.raster-board-v228,.radio-scope-v228{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 24px 55px rgba(0,0,0,.38)!important;
}
input[type="range"]{accent-color:#fbbf24;filter:drop-shadow(0 3px 8px rgba(251,191,36,.14))}
@media (max-width:760px){
  .mystery-scene-v28{box-shadow:0 20px 55px rgba(0,0,0,.42)!important}
  body::before{opacity:.08}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
