/* AntlerFlok — "Hang the node" drone mini-game. Host: the "1,800 years tall" beat ([data-drone-game]). */
[data-drone-game]{--gold:#ffd66b;--ink:#0b1220}
[data-drone-game]{min-height:100cqh!important}
[data-drone-game].dg-play{height:100cqh;display:block}
[data-drone-game].dg-play > :not(.dg){visibility:hidden}
.dg{position:absolute;inset:0;z-index:5;font-family:'Instrument Sans',system-ui,sans-serif;pointer-events:none}
.dg *{box-sizing:border-box}
/* the sky + the same tree sit under the beat before you play, so the game is the picture */
.dg-stage{position:absolute;inset:0;overflow:hidden;opacity:1}
[data-drone-game]:not(.dg-play) > *:not(.dg):not(img):not(svg){position:relative;z-index:7}
/* the beat's own full-bleed gradient overlay must never eat the Tap-to-play tap */
[data-drone-game]:not(.dg-play) > div[style*="inset:0"],[data-drone-game]:not(.dg-play) > div[style*="inset: 0"]{pointer-events:none;opacity:.3}   /* and it must not dull the sky or the yellow button */
[data-drone-game]:not(.dg-play) .dg-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,20,14,0),rgba(12,20,14,.28) 60%,rgba(12,20,14,.88))}
.dg-sky{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.04)}
.dg-forest{position:absolute;left:0;right:0;bottom:0;width:100%;height:58%;object-fit:cover;object-position:50% 20%;opacity:0;transition:opacity .8s ease;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%);mask-image:linear-gradient(180deg,transparent 0,#000 38%)}
.dg-tree{position:absolute;left:50%;bottom:-6%;height:70%;width:auto;max-width:none;transform:translateX(-50%);filter:drop-shadow(0 -10px 40px rgba(0,0,0,.35))}
.dg-tree.after{opacity:0;transition:opacity 1.2s ease}
.dg-drone{position:absolute;left:0;top:0;width:min(34%,26vh);will-change:transform;filter:drop-shadow(0 18px 26px rgba(0,0,0,.45))}
.dg-drone img{display:block;width:100%;height:auto}
.dg-led{position:absolute;left:50%;top:14%;width:6%;height:6%;border-radius:50%;background:#ff3b3b;box-shadow:0 0 10px 4px rgba(255,60,60,.9),0 0 22px 8px rgba(255,60,60,.4);animation:dg-blink 1.1s steps(1) infinite}
.dg-led.b{left:31%;top:52%;animation-delay:.55s;background:#fff;box-shadow:0 0 8px 3px rgba(255,255,255,.9)}
.dg-led.c{left:69%;top:52%;animation-delay:.55s;background:#fff;box-shadow:0 0 8px 3px rgba(255,255,255,.9)}
@keyframes dg-blink{0%,45%{opacity:1}50%,100%{opacity:.08}}
.dg-line{position:absolute;left:0;top:0;width:2px;height:0;background:linear-gradient(#111,#333);transform-origin:50% 0;opacity:0}
.dg-recv{position:absolute;left:0;top:0;width:40px;opacity:0;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));transition:opacity .4s}
.dg-recv img{display:block;width:100%;height:auto}
.dg-recv .led{position:absolute;left:30%;top:58%;width:9%;height:0;padding-top:9%;border-radius:50%;background:#2a2f2a;box-shadow:inset 0 0 2px #000}
.dg-recv.linked .led{background:#5cff7a;box-shadow:0 0 6px 2px rgba(92,255,122,.8);animation:dgLed 1.1s ease-in-out infinite}
@keyframes dgLed{0%,100%{opacity:1}50%{opacity:.25}}
[data-drone-game]:not(.dg-play) .dg-recv{opacity:0!important}
.dg-node{position:absolute;left:0;top:0;width:min(15%,11vh);transform-origin:50% 6%;will-change:transform;opacity:0;filter:drop-shadow(0 10px 14px rgba(0,0,0,.45))}
.dg-node img{display:block;width:100%;height:auto}
/* intro + pill */
.dg-intro{position:absolute;left:0;right:0;top:38%;transform:translateY(-50%);padding:0 18px;text-align:center;pointer-events:none;transition:opacity .4s ease}
.dg-intro .k{font-family:'Archivo',sans-serif;font-weight:900;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.dg-intro h3{font-family:'Archivo',sans-serif;font-weight:900;font-size:26px;line-height:1.02;letter-spacing:-.04em;margin:8px 0 8px;color:#fff;text-shadow:0 6px 30px rgba(0,0,0,.95)}
.dg-intro p{font-size:15px;line-height:1.45;color:#dbe5f5;margin:0 auto;max-width:30ch;text-shadow:0 2px 16px rgba(0,0,0,.95)}
.dg-play .dg-intro{opacity:0}
.dg-pill{position:relative;margin-top:16px;display:inline-flex;align-items:center;gap:9px;min-height:48px;padding:0 20px;border-radius:999px;background:var(--gold);color:var(--ink);font-family:'Archivo',sans-serif;font-weight:900;font-size:14px;letter-spacing:.04em;white-space:nowrap;box-shadow:0 14px 40px rgba(0,0,0,.5);border:0;cursor:pointer;pointer-events:auto;transition:opacity .35s ease,transform .35s ease}
.dg-pill img{height:26px;width:auto}
.dg-pill.hint{background:rgba(9,13,21,.88);color:#fff;border:1px solid rgba(255,214,107,.6);pointer-events:none}
.dg-pill.gone{opacity:0;pointer-events:none}
/* HUD */
.dg-hud{position:absolute;left:14px;right:14px;top:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;opacity:0;transition:opacity .4s ease}
.dg-play .dg-hud{opacity:1}
.dg-hud span{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 11px;border-radius:999px;background:rgba(9,13,21,.8);border:1px solid rgba(255,255,255,.14);color:#fff;font-family:'Archivo',sans-serif;font-weight:800;font-size:11.5px;letter-spacing:.06em}
.dg-hud .wind i{display:inline-block;width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.12);position:relative}
.dg-hud .wind i:after{content:"";position:absolute;left:50%;top:50%;width:0;height:0;border:5px solid transparent;border-left:9px solid var(--gold);transform:translate(-30%,-50%) rotate(var(--w,0deg));transform-origin:20% 50%}
.dg-hud .close{pointer-events:auto;cursor:pointer}
.dg-hud .day{color:var(--gold)}
/* controller */
.dg-ctl{position:absolute;left:50%;bottom:82px;width:min(230px,58%);transform:translateX(-50%) translateY(30px);opacity:0;transition:opacity .4s ease,transform .4s ease;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}
.dg-play .dg-ctl{opacity:1;transform:translateX(-50%)}
.dg-play .dg-ctl.off{opacity:0;pointer-events:none}
.dg-ctl img{display:block;width:100%;height:auto;pointer-events:none}
.dg-ctl button{position:absolute;appearance:none;border:0;background:transparent;border-radius:16px;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.dg-ctl button.on{background:rgba(255,214,107,.22);box-shadow:inset 0 0 0 2px rgba(255,214,107,.7)}
.dg-ctl .stick{position:absolute;top:0;width:34%;height:64%;border-radius:50%;cursor:grab;touch-action:none}
.dg-ctl .stick.sl{left:4%}.dg-ctl .stick.sr{left:62%}
.dg-ctl .stick .knob{position:absolute;left:50%;top:50%;width:46%;height:46%;margin:-23% 0 0 -23%;border-radius:50%;border:2px solid rgba(255,214,107,0);box-shadow:0 0 0 0 rgba(255,214,107,0);transition:border-color .15s,box-shadow .15s;pointer-events:none}
.dg-ctl .stick.on .knob{border-color:rgba(255,214,107,.9);box-shadow:0 0 18px 4px rgba(255,214,107,.45)}
.dg-ctl .dg-drop{left:39%;top:19%;width:22%;height:40%;border-radius:22%}
.dg-ctl .dg-drop.held{background:rgba(255,60,60,.25);box-shadow:inset 0 0 0 3px rgba(255,255,255,.7)}
.dg-ctl .dg-drop.ready{animation:dg-pulse .9s ease-in-out infinite;box-shadow:0 0 0 3px rgba(255,60,60,.9),0 0 26px 10px rgba(255,60,60,.55)}
@keyframes dg-pulse{0%,100%{box-shadow:0 0 0 3px rgba(255,60,60,.9),0 0 22px 8px rgba(255,60,60,.5)}50%{box-shadow:0 0 0 5px rgba(255,90,90,1),0 0 40px 16px rgba(255,60,60,.75)}}
.dg-ctl .label{position:absolute;left:50%;top:-30px;transform:translateX(-50%);white-space:nowrap;color:#fff;font-family:'Archivo',sans-serif;font-weight:900;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.9);opacity:0;transition:opacity .3s}
.dg-ctl .label.on{opacity:1}
/* result card */
.dg-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%);width:min(340px,86%);padding:22px 20px 18px;border-radius:22px;background:rgba(9,13,21,.94);border:1px solid rgba(255,214,107,.45);color:#fff;text-align:center;opacity:0;pointer-events:none;transition:opacity .45s ease,transform .45s ease;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.dg-card.on{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}
.dg-card .g{font-family:'Archivo',sans-serif;font-weight:900;font-size:64px;line-height:1;letter-spacing:-.05em;color:var(--gold)}
.dg-card .g.fail{color:#ff5b5b}
.dg-card h4{font-family:'Archivo',sans-serif;font-weight:900;font-size:21px;line-height:1.08;letter-spacing:-.03em;margin:8px 0 6px}
.dg-card p{font-size:14px;line-height:1.45;color:#c3cfe2;margin:0 0 14px}
.dg-card .rows{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:16px}
.dg-card .rows div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:9px 6px}
.dg-card .rows b{display:block;font-family:'Archivo',sans-serif;font-size:17px;color:#fff}
.dg-card .rows span{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#9fb0c9;margin-top:2px}
.dg-card .btns{display:flex;flex-direction:column;gap:8px}
.dg-card .btns a,.dg-card .btns button{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:13px;font-family:'Archivo',sans-serif;font-weight:900;font-size:14px;border:0;cursor:pointer;text-decoration:none}
.dg-card .again{background:var(--gold);color:var(--ink)}
.dg-card .more{background:#15291d;border:1.5px solid rgba(255,214,107,.45)!important;color:#fff}
@media (min-width:621px){.dg-ctl{width:300px;bottom:26px}.dg-hud{top:18px}.dg-card{left:auto;right:6%;transform:translate(0,-46%)}.dg-card.on{transform:translate(0,-50%)}.dg-intro h3{font-size:34px}.dg-intro p{max-width:40ch;font-size:16px}}
/* weather layers (levels 6+) */
.dg-weather{position:absolute;inset:-10% 0 0 0;pointer-events:none;opacity:0;transition:opacity .8s ease}
.dg-weather.rain{background:repeating-linear-gradient(112deg,rgba(255,255,255,0) 0 9px,rgba(220,235,255,.42) 9px 10px,rgba(255,255,255,0) 10px 22px);background-size:200px 300px;animation:dg-rain .55s linear infinite;mix-blend-mode:screen}
@keyframes dg-rain{to{background-position:-60px 300px}}
.dg-weather.snow{inset:-20% -10% 0 -10%;background-image:
  radial-gradient(2px 2px at 20px 30px,#fff 60%,transparent 62%),radial-gradient(1.5px 1.5px at 80px 120px,#fff 60%,transparent 62%),radial-gradient(2px 2px at 150px 60px,#fff 60%,transparent 62%),radial-gradient(1.5px 1.5px at 40px 170px,#fff 60%,transparent 62%),radial-gradient(2px 2px at 120px 200px,#fff 60%,transparent 62%),radial-gradient(1.5px 1.5px at 190px 140px,#fff 60%,transparent 62%),
  radial-gradient(4px 4px at 60px 90px,rgba(255,255,255,.9) 60%,transparent 62%),radial-gradient(3.5px 3.5px at 170px 20px,rgba(255,255,255,.9) 60%,transparent 62%),radial-gradient(4px 4px at 110px 250px,rgba(255,255,255,.9) 60%,transparent 62%);
  background-size:220px 240px,220px 240px,220px 240px,220px 240px,220px 240px,220px 240px,340px 380px,340px 380px,340px 380px;
  animation:dg-snow 5s linear infinite,dg-snow2 3.2s linear infinite}
@keyframes dg-snow{to{background-position:60px 240px,60px 240px,60px 240px,60px 240px,60px 240px,60px 240px,0 0,0 0,0 0}}
@keyframes dg-snow2{to{background-position:0 0,0 0,0 0,0 0,0 0,0 0,140px 380px,140px 380px,140px 380px}}
/* blizzard: a second, faster sheet driven sideways by the wind */
.dg-weather.snow:after{content:"";position:absolute;inset:0;opacity:var(--harsh,0);background-image:radial-gradient(2.5px 2.5px at 30px 40px,#fff 60%,transparent 62%),radial-gradient(3px 3px at 130px 160px,#fff 60%,transparent 62%),radial-gradient(2px 2px at 200px 90px,#fff 60%,transparent 62%),radial-gradient(3px 3px at 70px 230px,#fff 60%,transparent 62%);background-size:260px 260px;animation:dg-snow3 1.6s linear infinite}
@keyframes dg-snow3{to{background-position:-220px 260px}}
.dg-fog{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(235,240,246,.55),rgba(235,240,246,.25) 40%,rgba(235,240,246,.6));transition:opacity .8s ease}
/* eagles */
.dg-birds{position:absolute;inset:0;pointer-events:none}
.dg-eagle{position:absolute;left:0;top:0;will-change:transform;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
.dg-eagle svg{display:block;width:100%;height:100%}
.dg-warn{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%) scale(.8);padding:8px 16px;border-radius:999px;background:rgba(200,30,30,.92);color:#fff;font-family:'Archivo',sans-serif;font-weight:900;font-size:15px;letter-spacing:.2em;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 0 30px rgba(255,60,60,.6)}
.dg-warn.on{opacity:1;transform:translate(-50%,-50%) scale(1);animation:dg-warnblink .35s steps(1) infinite}
@keyframes dg-warnblink{50%{opacity:.35}}
/* card extras */
.dg-card .lvl{font-family:'Archivo',sans-serif;font-weight:900;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.dg-card .pts{font-family:'Archivo',sans-serif;font-weight:900;font-size:14px;color:#fff;margin:-6px 0 12px}
.dg-card .next{background:var(--gold);color:var(--ink)}
.dg-card .again{background:#15291d;border:1.5px solid rgba(255,214,107,.45)!important;color:#fff}
.dg-card .hire{background:rgba(255,255,255,.08)}
.dg-hud .lv{background:var(--gold)!important;color:var(--ink)!important;border-color:var(--gold)!important}
.dg-hud .score{margin-left:auto}
.dg-intro .job{margin-top:10px;font-size:13.5px;color:var(--gold);max-width:34ch}
.dg-pill .lvtag{opacity:.75;font-weight:700}
/* PC: the canopy beat keeps its full-screen forest shot before play; the pitch sits on the right, away from the old copy */
@media (min-width:621px){
  [data-drone-game]:not(.dg-play) .dg-stage{opacity:0}
  [data-drone-game] > .call{display:none}
  .dg-intro{left:auto;right:6%;top:44%;width:min(460px,42%);text-align:left;padding:0}
  .dg-intro p{margin:0}
  .dg-intro .job{max-width:none}
}

/* while flying, the page's own header steps out of the sky */
body.dg-playing .dc-top,body.dg-playing .sv > .top,body.dg-playing header.top{opacity:0!important;pointer-events:none!important}

/* park scenes + the target crown */
.dg-scene{position:absolute;left:0;top:30%;width:100%;height:80%;object-fit:cover;max-width:none;opacity:0;transition:opacity .6s ease;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%);mask-image:linear-gradient(180deg,transparent 0,#000 16%)}
.dg-target{position:absolute;left:0;top:0;width:120px;height:0;transform:translateX(-50%);pointer-events:none;opacity:0;transition:opacity .4s}
.dg-play .dg-target{opacity:.75}
.dg-target i{position:absolute;left:0;right:0;top:-14px;height:28px;border:2px dashed rgba(255,214,107,.85);border-radius:50%;box-shadow:0 0 14px rgba(255,214,107,.35)}
.dg-target b{position:absolute;left:50%;top:18px;transform:translateX(-50%);white-space:nowrap;font-family:'Archivo',sans-serif;font-weight:900;font-size:9.5px;letter-spacing:.2em;color:var(--gold);text-shadow:0 2px 8px rgba(0,0,0,.9)}
.dg-target.on{opacity:1}.dg-target.on i{border-style:solid;border-color:#ff5b5b;box-shadow:0 0 22px rgba(255,60,60,.7);animation:dg-pulse .9s ease-in-out infinite}
.dg-intro .parks{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;pointer-events:auto}
.dg-intro .parks button{appearance:none;cursor:pointer;border:1px solid rgba(255,255,255,.22);background:rgba(9,13,21,.7);color:#dbe5f5;border-radius:12px;padding:6px 10px;text-align:left;font-family:'Archivo',sans-serif}
.dg-intro .parks button b{display:block;font-size:11.5px;font-weight:900;letter-spacing:.02em;color:#fff}
.dg-intro .parks button span{display:block;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#9fb0c9;margin-top:1px}
.dg-intro .parks button.on{background:var(--gold);border-color:var(--gold)}
.dg-intro .parks button.on b,.dg-intro .parks button.on span{color:var(--ink)}
.dg-card .credit{font-size:10.5px;color:#8f9fb8;margin:-6px 0 10px}
@media (min-width:621px){.dg-intro .parks{justify-content:flex-start}}

/* wildlife */
.dg-bird{position:absolute;left:0;top:0;will-change:transform;opacity:.9}
.dg-bird svg{display:block;width:100%;height:100%}
.dg-bear{position:absolute;left:0;top:0;will-change:transform;opacity:0;transition:opacity .6s;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.dg-bear img{display:block;width:100%;height:auto}
[data-drone-game]:not(.dg-play) .dg-bear{opacity:0!important}

/* park facts widget — PC only; phones stay clean */
.dg-facts{display:none;position:absolute;left:18px;bottom:26px;width:min(360px,30%);padding:14px 16px 12px;border-radius:16px;background:rgba(9,13,21,.82);border:1px solid rgba(255,255,255,.14);color:#dbe5f5;backdrop-filter:blur(6px);pointer-events:auto;opacity:0;transition:opacity .4s}
.dg-play .dg-facts{opacity:1}
.dg-facts .hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.dg-facts .pk{font-family:'Archivo',sans-serif;font-weight:900;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.dg-facts .n{font-family:'Archivo',sans-serif;font-weight:800;font-size:10.5px;color:#8f9fb8}
.dg-facts .tx{margin:0;font-size:14px;line-height:1.5;min-height:63px;transition:opacity .18s}
.dg-facts .nav{display:flex;gap:6px;align-items:center;margin-top:10px}
.dg-facts .visit{display:inline-flex;align-items:center;gap:7px;margin-right:auto;min-height:32px;padding:0 12px 0 9px;border-radius:999px;background:var(--gold);color:var(--ink);text-decoration:none;font-family:'Archivo',sans-serif;font-weight:900;font-size:11.5px;letter-spacing:.04em}
.dg-facts .visit svg{width:16px;height:16px}
.dg-facts .visit:hover{background:#fff}
.dg-facts .nav button{appearance:none;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;border-radius:9px;width:34px;height:30px;cursor:pointer;font-size:12px}
.dg-facts .nav button:hover{border-color:var(--gold);color:var(--gold)}
@media (min-width:900px){.dg-play .dg-facts{display:block}}

.dg-pill.v2{display:inline-flex;margin:10px 0 0;min-height:34px;padding:0 14px;font-size:12px;letter-spacing:.04em;background:rgba(9,13,21,.72);color:#fff;border:1px solid rgba(255,214,107,.55);text-decoration:none}
.dg-pill.v2:hover{background:var(--gold);color:var(--ink)}

/* phone (portrait), before play: the beat's own copy stays on TOP in normal flow and the game pitch sits BELOW it in space the
   beat reserves (--dgIntroH, measured by drone-drop.js) — nothing stacks on the Tap-to-play pill, the v2 link or the beat's button */
@media (max-width:620px){
  [data-drone-game]:not(.dg-play){display:block!important;min-height:0!important;padding-bottom:var(--dgIntroH,440px)}
  [data-drone-game]:not(.dg-play) > .in{padding:12vh 20px 8px}
  [data-drone-game]:not(.dg-play) .dg-intro{top:auto;bottom:18px;transform:none}
  .dg-intro{top:33%}
  .dg-intro .job{display:none}
  .dg-intro p{font-size:14px;line-height:1.4;max-width:32ch}
  .dg-intro h3{font-size:23px;margin:6px 0 6px}
  .dg-intro .parks{gap:5px;margin-bottom:10px}
  .dg-intro .parks button{padding:5px 8px}
  .dg-pill{margin-top:12px;min-height:44px}
  .dg-pill.v2{margin-top:8px;min-height:30px;font-size:11px}
}

/* Tap to play: a light chases around the yellow rim so the button asks to be pressed */
@property --dgA{syntax:'<angle>';inherits:false;initial-value:0deg}
.dg-pill:not(.v2):not(.hint){isolation:isolate;overflow:visible}
.dg-pill:not(.v2):not(.hint)::before{content:"";position:absolute;inset:-3px;border-radius:999px;z-index:-1;background:conic-gradient(from var(--dgA),rgba(255,255,255,0) 0 68%,rgba(255,255,255,.95) 84%,#ffd66b 92%,rgba(255,255,255,0) 100%);animation:dgChase 2.4s linear infinite;filter:drop-shadow(0 0 6px rgba(255,214,107,.9))}
.dg-pill:not(.v2):not(.hint)::after{content:"";position:absolute;inset:0;border-radius:999px;z-index:-1;background:var(--gold)}
@keyframes dgChase{to{--dgA:360deg}}
