/* Treasure Hunt Creator – isolated floating launcher only. No creator styles are loaded until open. */
.thc-chest-widget{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-transform:none;color:#17302a;isolation:isolate}
.thc-chest-widget,.thc-chest-widget *,.thc-chest-widget *::before,.thc-chest-widget *::after{box-sizing:border-box}
.thc-chest-widget .thc-chest-trigger{position:fixed;right:22px;bottom:22px;z-index:999980;display:flex;align-items:center;gap:10px;border:0;border-radius:999px;margin:0;padding:10px 16px 10px 10px;background:#174f3c;color:#fff;box-shadow:0 14px 38px rgba(18,49,39,.28);cursor:pointer;font:700 14px/1.2 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:normal;text-transform:none;transition:transform .18s ease,box-shadow .18s ease}
.thc-chest-widget .thc-chest-trigger:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(18,49,39,.34);background:#174f3c;color:#fff}
.thc-chest-widget .thc-chest-trigger:focus-visible{outline:3px solid #f2c66d;outline-offset:3px}
.thc-chest-widget .thc-chest-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff7df;color:#5b3a1f;flex:none}
.thc-chest-widget .thc-chest-icon svg{width:38px;height:38px;display:block}
.thc-chest-widget .thc-chest-label{white-space:nowrap}
.thc-chest-widget .thc-chest-modal[hidden]{display:none!important}
.thc-chest-widget .thc-chest-modal{position:fixed;inset:0;z-index:999990;display:grid;place-items:center;padding:18px;margin:0;overflow:hidden;overscroll-behavior:contain;touch-action:auto}
.thc-chest-widget .thc-chest-backdrop{position:absolute;inset:0;background:rgba(14,29,24,.72);backdrop-filter:blur(4px);touch-action:auto}
.thc-chest-widget .thc-chest-dialog{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;min-height:0;width:min(1580px,calc(100vw - 36px));height:min(94vh,980px);height:min(94dvh,980px);max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);margin:0;background:#f7faf8;border:0;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.38);overflow:hidden;color:#17302a}
.thc-chest-widget .thc-chest-scroll{position:relative;flex:1 1 auto;min-width:0;min-height:0;width:100%;height:auto;max-height:100%;overflow-x:hidden;overflow-y:auto;padding:28px 18px 36px;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.thc-chest-widget .thc-chest-close{position:absolute;top:12px;right:14px;z-index:20;width:42px;height:42px;border:0;border-radius:50%;margin:0;padding:0;background:#fff;color:#24372f;box-shadow:0 5px 18px rgba(0,0,0,.16);font:400 30px/38px Arial,sans-serif;letter-spacing:normal;text-transform:none;cursor:pointer;text-align:center}
.thc-chest-widget .thc-chest-close:hover{background:#f2f7f4;color:#24372f}
.thc-chest-widget .thc-app-chest{min-width:0!important;margin:0 auto!important;max-width:1500px!important;width:100%!important}
.thc-chest-widget .thc-app-chest .thc-sticky{bottom:8px}
.thc-chest-widget .thc-app-chest .thc-shell{padding-top:16px}
.thc-chest-widget .thc-chest-loading{display:flex;align-items:center;justify-content:center;min-height:260px;padding:32px;color:#63736e;font:600 15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
@media(max-width:720px){.thc-chest-widget .thc-chest-trigger{right:14px;bottom:14px;padding:8px}.thc-chest-widget .thc-chest-label{display:none}.thc-chest-widget .thc-chest-icon{width:46px;height:46px}.thc-chest-widget .thc-chest-modal{padding:0;align-items:stretch;justify-items:stretch}.thc-chest-widget .thc-chest-dialog{width:100vw;max-width:100vw;height:100vh;height:100svh;height:100dvh;max-height:100vh;max-height:100svh;max-height:100dvh;border-radius:0}.thc-chest-widget .thc-chest-scroll{padding:58px 10px calc(28px + env(safe-area-inset-bottom));scroll-padding-top:58px;scroll-padding-bottom:calc(28px + env(safe-area-inset-bottom))}.thc-chest-widget .thc-chest-close{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}}
@media(max-width:480px){.thc-chest-widget .thc-chest-scroll{padding-left:6px;padding-right:6px}}
@media(max-height:560px) and (orientation:landscape){.thc-chest-widget .thc-chest-scroll{padding-top:50px}.thc-chest-widget .thc-chest-close{top:6px;right:8px}}


/* 2.9.25 – the chest scroll viewport is the sticky containing block. */
.thc-chest-widget .thc-app-chest.thc-is-locations{overflow:visible!important;}
.thc-chest-widget .thc-app-chest.thc-is-locations .thc-shell{overflow:visible!important;}
.thc-chest-widget .thc-app-chest.thc-is-locations .thc-sticky{
  position:sticky!important;
  bottom:max(8px,env(safe-area-inset-bottom));
  z-index:500;
}


/* 2.9.26 – viewport-safe modal portal. The widget is mounted directly under body by chest.js,
 * and these dimensions keep the overlay tied to the visual viewport through responsive resizes. */
.thc-chest-widget[data-thc-chest-widget]{position:static!important;width:0!important;height:0!important;max-width:none!important;max-height:none!important;overflow:visible!important}
.thc-chest-widget .thc-chest-modal{
  position:fixed!important;
  top:0!important;right:0!important;bottom:0!important;left:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
}
.thc-chest-widget .thc-chest-dialog{flex:0 1 auto;min-height:0}
.thc-chest-widget .thc-chest-scroll{min-height:0;contain:layout paint;}
.thc-chest-widget .thc-app-chest.thc-is-locations .thc-step{padding-bottom:max(120px,calc(92px + env(safe-area-inset-bottom)))}
@media(max-width:720px){
  .thc-chest-widget .thc-chest-modal{width:100vw!important;height:100vh!important;height:100svh!important;height:100dvh!important}
  .thc-chest-widget .thc-chest-dialog{flex:1 1 auto;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important}
  .thc-chest-widget .thc-chest-scroll{flex:1 1 0%;height:0;max-height:none;overflow-y:auto!important}
  .thc-chest-widget .thc-app-chest.thc-is-locations .thc-step{padding-bottom:max(136px,calc(104px + env(safe-area-inset-bottom)))}
}


/* 2.9.27 – never switch the floating chest into page/fullscreen layout at a width breakpoint.
 * Keep one modal geometry at every width and let only the inset/padding tighten on small screens. */
.thc-chest-widget[data-thc-chest-widget] .thc-chest-modal{
  position:fixed!important;
  inset:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:18px!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.thc-chest-widget[data-thc-chest-widget] .thc-chest-modal[hidden]{display:none!important}
.thc-chest-widget[data-thc-chest-widget] .thc-chest-dialog{
  position:relative!important;
  display:flex!important;
  flex:0 1 auto!important;
  flex-direction:column!important;
  width:min(1580px,100%)!important;
  height:min(980px,calc(100% - 0px))!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  border-radius:24px!important;
  overflow:hidden!important;
}
.thc-chest-widget[data-thc-chest-widget] .thc-chest-scroll{
  position:relative!important;
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  contain:none!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  -webkit-overflow-scrolling:touch!important;
}
@media(max-width:720px){
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-modal{
    padding:8px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-dialog{
    flex:0 1 auto!important;
    width:100%!important;
    height:calc(100% - 0px)!important;
    max-width:100%!important;
    max-height:100%!important;
    border-radius:16px!important;
  }
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-scroll{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    padding:58px 10px calc(34px + env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:420px){
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-modal{padding:4px!important}
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-dialog{border-radius:12px!important}
  .thc-chest-widget[data-thc-chest-widget] .thc-chest-scroll{padding-left:7px!important;padding-right:7px!important}
}


/* 2.9.27 final – native dialog top-layer modal. This bypasses transformed/contained theme
 * ancestors entirely, so responsive theme breakpoints cannot turn the chest into page content. */
.thc-chest-widget dialog.thc-chest-modal{
  box-sizing:border-box!important;
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:18px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#17302a!important;
  overflow:hidden!important;
}
.thc-chest-widget dialog.thc-chest-modal:not([open]){display:none!important}
.thc-chest-widget dialog.thc-chest-modal[open]{display:flex!important;align-items:center!important;justify-content:center!important}
.thc-chest-widget dialog.thc-chest-modal::backdrop{background:rgba(14,29,24,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.thc-chest-widget dialog.thc-chest-modal .thc-chest-dialog{
  flex:0 1 auto!important;
  width:min(1580px,100%)!important;
  height:min(980px,100%)!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  border-radius:24px!important;
}
@media(max-width:720px){
  .thc-chest-widget dialog.thc-chest-modal{padding:8px!important}
  .thc-chest-widget dialog.thc-chest-modal .thc-chest-dialog{width:100%!important;height:100%!important;border-radius:16px!important}
}
@media(max-width:420px){
  .thc-chest-widget dialog.thc-chest-modal{padding:4px!important}
  .thc-chest-widget dialog.thc-chest-modal .thc-chest-dialog{border-radius:12px!important}
}


/* 2.10.7 – chest-to-creator launch animation. The launcher flies to the viewport centre,
 * opens, then the native top-layer dialog grows out of the same point. */
.thc-chest-trigger.thc-is-launching{opacity:0;pointer-events:none;transform:none!important}
.thc-chest-flight{position:fixed;left:var(--thc-flight-left);top:var(--thc-flight-top);width:var(--thc-flight-size);height:var(--thc-flight-size);z-index:2147483000;display:grid;place-items:center;border-radius:50%;background:#fff7df;color:#5b3a1f;box-shadow:0 18px 50px rgba(18,49,39,.32);pointer-events:none;will-change:transform,opacity}
.thc-chest-flight svg{display:block;width:86%;height:86%;overflow:visible;filter:drop-shadow(0 5px 6px rgba(66,40,17,.16))}
.thc-chest-flight svg path:first-child{transform-box:fill-box;transform-origin:50% 100%;transition:transform .30s cubic-bezier(.2,.85,.25,1)}
.thc-chest-flight.thc-is-opening{animation:thc-chest-pop .36s cubic-bezier(.2,.82,.2,1) both}
.thc-chest-flight.thc-is-opening svg path:first-child{transform:translateY(-7px) rotate(-13deg)}
.thc-chest-flight.thc-is-opening::after{content:"";position:absolute;inset:-24%;border-radius:50%;background:radial-gradient(circle,rgba(255,224,130,.58) 0,rgba(255,224,130,.18) 45%,rgba(255,224,130,0) 72%);z-index:-1;animation:thc-chest-glow .36s ease-out both}
@keyframes thc-chest-pop{0%{filter:brightness(1);transform-origin:center}55%{filter:brightness(1.12)}100%{filter:brightness(1)}}
@keyframes thc-chest-glow{0%{opacity:0;transform:scale(.65)}55%{opacity:1;transform:scale(1)}100%{opacity:.55;transform:scale(1.18)}}
.thc-chest-widget dialog.thc-chest-modal.thc-is-building::backdrop{background:rgba(14,29,24,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background .42s ease,backdrop-filter .42s ease,-webkit-backdrop-filter .42s ease}
.thc-chest-widget dialog.thc-chest-modal.thc-is-building .thc-chest-dialog{opacity:0;transform:scale(.075);transform-origin:50% 50%;clip-path:inset(38% 44% round 42px);transition:transform .48s cubic-bezier(.18,.82,.18,1),opacity .24s ease,clip-path .48s cubic-bezier(.18,.82,.18,1)}
.thc-chest-widget dialog.thc-chest-modal.thc-is-building.thc-is-built::backdrop{background:rgba(14,29,24,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.thc-chest-widget dialog.thc-chest-modal.thc-is-building.thc-is-built .thc-chest-dialog{opacity:1;transform:scale(1);clip-path:inset(0 round 24px)}
@media(max-width:720px){.thc-chest-widget dialog.thc-chest-modal.thc-is-building.thc-is-built .thc-chest-dialog{clip-path:inset(0 round 16px)}}
@media(max-width:420px){.thc-chest-widget dialog.thc-chest-modal.thc-is-building.thc-is-built .thc-chest-dialog{clip-path:inset(0 round 12px)}}
@media(prefers-reduced-motion:reduce){
 .thc-chest-flight{display:none!important}
 .thc-chest-widget dialog.thc-chest-modal.thc-is-building .thc-chest-dialog,.thc-chest-widget dialog.thc-chest-modal.thc-is-building::backdrop{transition:none!important;animation:none!important;transform:none!important;clip-path:none!important;opacity:1!important}
 .thc-chest-trigger.thc-is-launching{opacity:1}
}
