/* Escape Tilt City: "How it works" pill + floating modal (etc/how.js). Works on Home (the app) and the guest landing. */
.hw-pill .hw-ic,.hw-stp .hw-ic{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;color:#f0cf86;
  background:rgba(226,186,92,.14);box-shadow:inset 0 0 0 1.5px rgba(226,186,92,.65)}
.hw-pill .hw-ic svg,.hw-stp .hw-ic svg{width:13px;height:13px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.hw-pill .hw-ic svg path,.hw-stp .hw-ic svg path{fill:none}
.hw-pill .hw-ic svg circle,.hw-stp .hw-ic svg circle{stroke:none}
/* phone Home: the two pills side by side under the caption, same glass as "Watch the story" */
.hw-row{display:flex;justify-content:center;align-items:center;gap:8px;align-self:center;flex-wrap:wrap;margin-top:8px}
.hw-row .st-phone{display:inline-flex;margin-top:0}
.hw-ph{height:36px;background:var(--glass,rgba(18,25,33,.7));border:1px solid var(--glass-line,rgba(255,255,255,.14));
  -webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 8px 22px rgba(8,16,28,.22)}
/* the landing: beside "Watch the story" */
.storyrow{gap:8px;flex-wrap:wrap}
.lhs .storyrow{display:flex}
.hw-stp{padding-right:14px}
.hw-stp .hw-ic{width:26px;height:26px}
.hero .storyrow{gap:6px}
.hero .hw-stp{gap:6px;padding:0 12px 0 5px}.hero .hw-stp .hw-ic{width:22px;height:22px}

/* ---------- the modal ---------- */
.hw-modal{position:fixed;inset:0;z-index:61;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
  background:rgba(6,10,16,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .22s ease}
.hw-modal.on{opacity:1}
.hw-modal[hidden]{display:none}
.hw-card{--hw-ink:#eef3f8;--hw-muted:#aeb9c5;--hw-line:rgba(255,255,255,.12);--hw-in:rgba(255,255,255,.06);
  width:min(980px,calc(100vw - 64px));max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;border-radius:22px;color:var(--hw-ink);
  background:rgba(18,25,33,.9);border:1px solid var(--hw-line);box-shadow:0 24px 70px rgba(0,0,0,.5);
  transform:translateY(10px) scale(.985);transition:transform .25s cubic-bezier(.22,.8,.25,1);display:flex;flex-direction:column}
:root:not([data-mode="dark"]) .hw-modal:not(.hw-land) .hw-card{--hw-ink:#16202b;--hw-muted:#56636f;--hw-line:rgba(20,32,44,.12);--hw-in:rgba(20,32,44,.05);background:rgba(250,252,254,.95);border-color:rgba(255,255,255,.7)}
.hw-modal.on .hw-card{transform:none}
.hw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 4px 22px;flex:none}
.hw-head small{display:block;font:600 10px/1 Outfit,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#e2ba5c}
.hw-head b{display:block;font:600 19px/1.2 Outfit,system-ui,sans-serif;margin-top:4px}
.hw-x{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--hw-ink);background:rgba(127,140,155,.16);border:1px solid rgba(127,140,155,.24);touch-action:manipulation;padding:0}
.hw-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.hw-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;padding:14px 22px 6px;align-items:center}
.hw-vid{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.hw-vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000;display:block}
.hw-poster{position:absolute;inset:0;padding:0;border:0;background:#000;cursor:pointer;display:block;width:100%;color:#fff}
.hw-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;transition:transform .4s ease}
.hw-poster:hover img{transform:scale(1.03)}
.hw-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.65) 100%)}
.hw-play{position:absolute;left:16px;bottom:16px;z-index:1;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 32% 28%,#f0cf86,#c99a3c 60%,#8a6a1e);box-shadow:0 0 0 6px rgba(226,186,92,.25),0 10px 26px rgba(0,0,0,.4)}
.hw-play svg{width:20px;height:20px;fill:currentColor;margin-left:3px}
.hw-cap{position:absolute;left:82px;bottom:22px;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left}
.hw-cap b{text-shadow:0 1px 6px rgba(0,0,0,.5)}
.hw-cap b{font:600 15px/1 Outfit,system-ui,sans-serif}
.hw-cap small{font:600 12px/1 "Source Sans 3",system-ui,sans-serif;color:rgba(255,255,255,.75)}
.hw-poster:focus-visible,.hw-x:focus-visible,.hw-go:focus-visible,.hw-alt:focus-visible{outline:2px solid #e2ba5c;outline-offset:2px}
.hw-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hw-steps li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--hw-in);border:1px solid var(--hw-line)}
.hw-steps i{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 13px/1 Outfit,system-ui,sans-serif;font-style:normal;color:#1a1408;background:#2E5E46}
.hw-steps span{font:400 14.5px/1.38 "Source Sans 3",system-ui,sans-serif;color:var(--hw-muted)}
.hw-steps b{font:600 15px/1.3 Outfit,system-ui,sans-serif;color:var(--hw-ink)}
.hw-foot{display:flex;align-items:center;gap:14px;padding:14px 22px 20px;flex:none}
.hw-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 26px;border-radius:999px;border:0;cursor:pointer;
  font:700 16px/1 Outfit,system-ui,sans-serif;color:#1a1408;background:linear-gradient(180deg,#f0c45e,#2E5E46);box-shadow:0 8px 22px rgba(227,174,58,.3)}
.hw-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hw-note{font:600 13px/1.3 "Source Sans 3",system-ui,sans-serif;color:var(--hw-muted)}
.hw-alt{background:none;border:0;padding:6px 2px;cursor:pointer;font:400 14.5px/1.3 "Source Sans 3",system-ui,sans-serif;color:var(--hw-muted)}
.hw-alt u{color:var(--hw-ink);text-decoration-color:rgba(227,174,58,.7);text-underline-offset:3px}
body.hw-open{overflow:hidden}

/* phones: one column; the video is a slim tile on top that opens the vertical story */
@media (max-width:899px) and (min-height:501px){
  .hw-modal{place-items:center;padding:12px}
  .hw-card{width:100%;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:20px}
  .hw-head{padding:10px 10px 2px 18px}
  .hw-body{grid-template-columns:1fr;gap:12px;padding:10px 14px 4px}
  .hw-vid{aspect-ratio:auto;height:88px;border-radius:14px}
  .hw-poster img{object-position:50% 88%}
  .hw-poster::after{background:linear-gradient(90deg,rgba(0,0,0,.65) 0,rgba(0,0,0,.15) 70%)}
  .hw-play{left:18px;bottom:auto;top:50%;transform:translateY(-50%);width:46px;height:46px;box-shadow:0 0 0 4px rgba(226,186,92,.25)}
  .hw-play svg{width:18px;height:18px}
  .hw-cap{left:78px;bottom:auto;top:50%;transform:translateY(-50%)}
  .hw-steps{gap:8px}
  .hw-steps li{padding:9px 11px;gap:10px}
  .hw-steps i{width:24px;height:24px;font-size:12px}
  .hw-steps span{font-size:14px}
  .hw-steps b{font-size:14.5px}
  .hw-foot{flex-direction:column;gap:6px;padding:12px 14px 16px}
  .hw-go{width:100%}
}
@media (max-width:899px) and (min-height:501px) and (max-height:700px){
  .hw-vid{height:64px}.hw-play{width:38px;height:38px;left:14px}.hw-cap{left:64px}
  .hw-steps li{padding:7px 10px}.hw-steps span{font-size:13px}.hw-steps b{font-size:13.5px}
  .hw-go{height:44px}
}
/* laptops with short screens and phones on their side: tighter */
@media (min-width:900px) and (max-height:760px){.hw-body{padding-top:8px}.hw-steps li{padding:8px 11px}.hw-foot{padding-bottom:16px}}
@media (orientation:landscape) and (max-height:500px){
  .hw-card{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 24px)}
  .hw-head{padding:6px 8px 0 16px}.hw-head b{font-size:16px}.hw-x{width:34px;height:34px}
  .hw-body{gap:14px;padding:8px 16px 2px}.hw-steps{gap:6px}.hw-steps li{padding:6px 10px}.hw-steps span{font-size:13px}
  .hw-foot{padding:8px 16px 12px}.hw-go{height:40px}
}
@media (prefers-reduced-motion:reduce){.hw-modal,.hw-card,.hw-poster img{transition:none}}
