:root{
  --dark-900:#06080A;
  --dark-850:#0C1015;
  --dark-800:#15191D;
  --dark-700:#22262C;
  --dark-600:#373A3E;
  --grey:#878787;
  --grey-light:#B5B5B5;
  --white:#fff;
  --sky:#4DB2BC;
  --gold:#D9B567;
  --gold-light:#F3D27A;
  --pine:#2F6B45;
  --green:#61C38F;
  --red:#AE4656;
  --red-light:#E27585;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--dark-900);color:var(--white);font-family:Inter,'Helvetica Neue',Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'Dela Gothic One',Impact,sans-serif;font-weight:400;margin:0;text-transform:uppercase}
a{color:var(--sky);text-decoration:none}
a:hover{color:var(--white)}
img{max-width:100%;display:block}
button{font:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
[hidden]{display:none !important}
.xm-wrap{max-width:1440px;margin:0 auto;padding:0 80px}

/* header */
.xm-head{border-bottom:1px solid var(--dark-700);position:relative;z-index:2}
.xm-head .xm-wrap{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.xm-nav{display:flex;gap:36px;font-size:14px;font-weight:500}
.xm-nav a{color:#E5E5E5}
.xm-head-right{display:flex;align-items:center;gap:24px}
.xm-phone{color:var(--white);font-size:14px;font-weight:600}
.xm-lang{display:flex;gap:4px;font-size:13px;font-weight:600}
.xm-lang a{color:var(--grey);padding:6px 8px}
.xm-lang a.is-active{color:var(--white);border:1px solid var(--dark-600);border-radius:5px}

/* buttons */
.xm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:0 36px;border-radius:10px;border:none;cursor:pointer;
  font-family:'Dela Gothic One',Impact,sans-serif;font-size:14px;letter-spacing:.06em;text-transform:uppercase;background:var(--gold);color:var(--dark-900);text-align:center}
.xm-btn:hover{color:var(--dark-900);filter:brightness(1.08)}
.xm-btn--ghost{background:transparent;border:2px solid #E5E5E5;color:#E5E5E5;padding:0 32px}
.xm-btn--ghost:hover{color:var(--dark-900);background:#E5E5E5}
.xm-btn--small{min-height:48px;padding:0 22px;font-size:12px}
.xm-link-btn{background:none;border:none;padding:6px 0;color:var(--sky);font-size:14px;font-weight:600;cursor:pointer}
.xm-link-btn:hover{color:var(--white)}

/* hero */
.xm-hero{position:relative;overflow:hidden;
  background:radial-gradient(ellipse 60% 70% at 78% 40%,rgba(217,181,103,.18),transparent 70%),
             radial-gradient(ellipse 40% 50% at 85% 85%,rgba(47,107,69,.25),transparent 70%),var(--dark-900)}
.xm-hero .xm-wrap{position:relative;min-height:720px;display:flex;flex-direction:column;justify-content:center;gap:32px;padding-top:64px;padding-bottom:64px}
.xm-eyebrow{display:flex;align-items:center;gap:12px;margin:0;font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.xm-eyebrow i{width:40px;height:2px;background:var(--gold);display:block}
.xm-hero h1{font-size:80px;line-height:1.02;max-width:860px}
.xm-lead{margin:0;max-width:600px;font-size:20px;line-height:1.5;color:#E5E5E5}
.xm-cta-row{display:flex;gap:16px;flex-wrap:wrap}
.xm-snow{position:absolute;inset:-200px 0 0;pointer-events:none;opacity:.55;
  background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(2px 2px at 140px 90px,#fff,transparent),
    radial-gradient(1.5px 1.5px at 90px 160px,#fff,transparent),radial-gradient(2.5px 2.5px at 200px 210px,#fff,transparent),
    radial-gradient(1.5px 1.5px at 260px 40px,#fff,transparent);
  background-size:300px 240px;animation:xm-snow 18s linear infinite}
@keyframes xm-snow{to{transform:translateY(240px)}}

/* sections */
.xm-section{padding:120px 0;border-top:1px solid var(--dark-700)}
.xm-section--alt{background:var(--dark-850)}
.xm-section h2{font-size:48px;line-height:1.1;margin-top:20px}
.xm-section-lead{max-width:640px;margin:20px 0 48px;font-size:18px;line-height:1.55;color:var(--grey-light)}

/* game 1: flashlight */
.xm-hunt{max-width:1200px}
.xm-hunt__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;font-size:15px;color:var(--grey-light)}
.xm-hunt__count b{color:var(--gold);font-size:18px}
.xm-hunt__actions{display:flex;gap:20px}
.xm-hunt__scene{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--dark-700);background:#05070A;
  cursor:none;touch-action:none;user-select:none;-webkit-user-select:none;
  --lx:50%;--ly:45%;--r:150px}
.xm-room{display:block;width:100%;height:auto}
.xm-dark{position:absolute;inset:0;pointer-events:none;transition:opacity 1.2s ease;
  background:radial-gradient(circle var(--r) at var(--lx) var(--ly),rgba(4,6,9,0) 0%,rgba(4,6,9,.08) 55%,rgba(4,6,9,.995) 100%)}
.xm-hunt.is-done .xm-dark{opacity:0}
.xm-hunt.is-done .xm-hunt__scene{cursor:default}
.xm-dark::after{content:'';position:absolute;inset:0;
  background:radial-gradient(circle calc(var(--r) * .9) at var(--lx) var(--ly),rgba(255,214,140,.12),transparent 70%);
  animation:xm-flicker 7s infinite}
@keyframes xm-flicker{0%,94%,100%{opacity:1}95%{opacity:.4}96%{opacity:1}97.5%{opacity:.6}}

.xm-gift{cursor:none;outline:none}
.xm-gift__hit{fill:transparent}
.xm-gift__box{transform-box:fill-box;transform-origin:50% 100%}
.xm-gift:focus-visible .xm-gift__hit{stroke:var(--gold);stroke-width:4;stroke-dasharray:8 8}
.xm-gift.is-found .xm-gift__box{animation:xm-pop .6s ease-out}
.xm-hunt.is-done .xm-gift .xm-gift__box{animation:xm-bob 2.4s ease-in-out infinite}
@keyframes xm-pop{0%{transform:scale(1)}40%{transform:scale(1.35) translateY(-8%)}100%{transform:scale(1)}}
@keyframes xm-bob{50%{transform:translateY(-6%)}}

.xm-marks{position:absolute;inset:0;pointer-events:none}
.xm-mark{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;
  background:radial-gradient(circle,var(--gold-light) 0 3px,rgba(243,210,122,.35) 4px,transparent 70%);animation:xm-twinkle 1.8s ease-in-out infinite}
.xm-hint-ring{position:absolute;width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);border-radius:50%;
  border:2px solid rgba(243,210,122,.55);animation:xm-hint 1.6s ease-out 2 forwards}
@keyframes xm-twinkle{50%{transform:scale(.7);opacity:.6}}
@keyframes xm-hint{0%{transform:scale(.4);opacity:0}30%{opacity:1}100%{transform:scale(1.15);opacity:0}}

.xm-toast{position:absolute;left:50%;bottom:20px;transform:translate(-50%,12px);margin:0;max-width:calc(100% - 32px);padding:12px 20px;border-radius:10px;
  background:rgba(12,16,21,.92);border:1px solid var(--gold);color:var(--white);font-weight:600;font-size:15px;text-align:center;
  opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}
.xm-toast.is-visible{opacity:1;transform:translate(-50%,0)}

/* scene lights: switched on when the hunt or the puzzles are completed */
.xm-wall-bulbs circle{fill:#2E3B49;transition:fill .4s}
.xm-hunt.is-done .xm-wall-bulbs circle{fill:var(--gold-light);filter:drop-shadow(0 0 6px var(--gold-light))}
.xm-hunt.is-done .xm-wall-bulbs circle:nth-child(3n+1){fill:var(--red-light)}
.xm-hunt.is-done .xm-wall-bulbs circle:nth-child(3n+2){fill:var(--sky)}
.xm-tree-bulbs circle,.xm-tree-star{transition:filter .4s}
.xm-hunt.is-done .xm-tree-bulbs circle,.xm-hunt.is-done .xm-tree-star{filter:brightness(1.5) drop-shadow(0 0 6px rgba(243,210,122,.8))}
.xm-fire{transform-box:fill-box;transform-origin:50% 100%;animation:xm-fire 1.4s ease-in-out infinite alternate}
@keyframes xm-fire{to{transform:scaleY(.86) scaleX(1.05)}}

.xm-done{margin-top:32px;padding:32px;border-radius:16px;border:1px solid var(--gold);
  background:linear-gradient(135deg,rgba(217,181,103,.12),rgba(47,107,69,.12));display:grid;gap:16px;justify-items:start}
.xm-done h3{font-size:28px;color:var(--gold-light)}
.xm-done p{margin:0;max-width:640px;font-size:17px;line-height:1.55;color:#E5E5E5}

/* game 2: puzzles */
.xm-garland{display:block;width:100%;max-width:800px;height:auto;margin:0 auto 32px}
.xm-bulb path{fill:var(--dark-600);transition:fill .4s,filter .4s}
.xm-bulb.is-on path{fill:var(--gold-light);filter:drop-shadow(0 0 10px var(--gold-light))}
.xm-bulb.is-on:nth-of-type(2) path{fill:var(--red-light);filter:drop-shadow(0 0 10px var(--red-light))}
.xm-bulb.is-on:nth-of-type(3) path{fill:var(--sky);filter:drop-shadow(0 0 10px var(--sky))}
.xm-bulb.is-on:nth-of-type(4) path{fill:var(--green);filter:drop-shadow(0 0 10px var(--green))}
.xm-puzzles.is-done .xm-bulb path{animation:xm-twinkle 1.6s ease-in-out infinite}

.xm-pz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.xm-pz{padding:28px;border-radius:16px;background:var(--dark-800);border:1px solid var(--dark-700);display:flex;flex-direction:column;gap:16px;transition:border-color .3s}
.xm-pz header{display:flex;align-items:center;gap:14px}
.xm-pz h3{font-size:20px;line-height:1.2}
.xm-pz__num{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--dark-600);color:var(--grey-light);font-weight:600}
.xm-pz__q{margin:0;font-size:16px;line-height:1.6;color:#E5E5E5}
.xm-pz__opts{display:flex;flex-wrap:wrap;gap:10px}
.xm-opt{min-height:44px;padding:8px 18px;border-radius:10px;border:1px solid var(--dark-600);background:var(--dark-850);color:var(--white);font-size:15px;cursor:pointer}
.xm-opt:hover{border-color:var(--gold)}
.xm-opt.is-wrong{border-color:var(--red);color:var(--red-light)}
.xm-opt.is-right{border-color:var(--green);background:rgba(97,195,143,.12)}
.xm-pz__form{display:flex;gap:10px}
.xm-pz__form input{width:120px;min-height:48px;padding:0 16px;border-radius:10px;border:1px solid var(--dark-600);background:var(--dark-850);color:var(--white);font-size:18px}
.xm-pz__form input:focus{border-color:var(--gold);outline:none}
.xm-pz__msg{margin:0;min-height:1.4em;font-weight:600;font-size:15px}
.xm-pz__msg.is-wrong{color:var(--red-light)}
.xm-pz__msg.is-right{color:var(--green)}
.xm-pz__why{margin:0;font-size:15px;line-height:1.55;color:var(--grey-light)}
.xm-pz.is-solved{border-color:var(--green)}
.xm-pz.is-solved .xm-pz__num{background:var(--green);border-color:var(--green);color:var(--dark-900)}
.xm-pz.is-shake{animation:xm-shake .4s}
@keyframes xm-shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

/* gift cards */
.xm-gc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.xm-gc{display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:16px;border:1px solid var(--dark-700);
  background:linear-gradient(160deg,var(--dark-800),var(--dark-850));color:var(--white);transition:border-color .2s,transform .2s}
.xm-gc:hover{border-color:var(--gold);color:var(--white);transform:translateY(-3px)}
.xm-gc__name{font-family:'Dela Gothic One',Impact,sans-serif;font-size:20px;text-transform:uppercase;line-height:1.2}
.xm-gc__price{color:var(--grey-light);font-size:15px}
.xm-gc__price b{color:var(--gold);font-size:22px}
.xm-gc__buy{margin-top:auto;padding-top:8px;color:var(--gold);font-weight:600;font-size:14px}
.xm-gc--amount{border-style:dashed}

/* footer */
.xm-foot{border-top:1px solid var(--dark-700);padding:48px 0}
.xm-foot .xm-wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.xm-foot-links{display:flex;gap:24px;flex-wrap:wrap;font-size:14px}
.xm-copy{color:var(--grey);font-size:13px}

@media (hover:none){
  .xm-hunt__scene,.xm-gift{cursor:default}
}
@media (max-width:1100px){
  .xm-wrap{padding:0 40px}
  .xm-nav{display:none}
  .xm-hero h1{font-size:60px}
}
@media (max-width:760px){
  .xm-wrap{padding:0 16px}
  .xm-head .xm-wrap{height:68px}
  .xm-phone{display:none}
  .xm-hero .xm-wrap{min-height:560px;gap:24px}
  .xm-hero h1{font-size:40px}
  .xm-lead{font-size:17px}
  .xm-btn{width:100%;padding:0 20px}
  .xm-btn--small{width:auto}
  .xm-section{padding:72px 0}
  .xm-section h2{font-size:30px}
  .xm-section-lead{font-size:16px;margin-bottom:32px}
  .xm-hunt__scene{border-radius:12px}
  .xm-gift__hit{r:90px}
  .xm-toast{font-size:13px;bottom:10px;padding:8px 12px}
  .xm-pz-grid{grid-template-columns:1fr}
  .xm-pz{padding:20px}
  .xm-done{padding:24px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
