/* Bilipoa captive portal. Written by hand rather than pulled from the app bundle: this loads on a phone that is allowed to reach exactly one host, so every byte is inline and there is nothing to block on. */ *,*::before,*::after{box-sizing:border-box} html{-webkit-text-size-adjust:100%} body{margin:0;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; background:var(--hp-bg);color:var(--hp-text);-webkit-font-smoothing:antialiased} /* Ambient wash behind everything. Fixed so it does not scroll away. */ .hs-bg{position:fixed;inset:0;z-index:0;pointer-events:none; background: radial-gradient(760px 420px at 12% -8%,rgba(236,72,153,.20),transparent 62%), radial-gradient(720px 460px at 90% 6%,rgba(99,102,241,.22),transparent 64%), radial-gradient(900px 700px at 50% 108%,rgba(56,189,248,.10),transparent 70%)} .hs-shell{position:relative;z-index:1;max-width:520px;margin:0 auto;padding:18px 16px 40px} /* --- Surfaces ------------------------------------------------------- */ .hs-panel{background:color-mix(in srgb, var(--hp-card) 86%, transparent);border:1px solid rgba(148,163,184,.16); border-radius:var(--hp-radius);padding:22px 18px;backdrop-filter:blur(12px)} .hs-tile{display:block;width:100%;text-align:left;background:rgba(15,23,42,.72); border:1px solid rgba(148,163,184,.18);border-radius:14px;padding:14px;color:inherit; font:inherit;cursor:pointer;transition:border-color .15s,background .15s} .hs-tile:active{background:rgba(30,41,59,.9)} /* --- Brand ---------------------------------------------------------- */ .hs-brand{text-align:center;font-size:1.72rem;font-weight:800;letter-spacing:-.02em;margin:4px 0 10px; background:var(--hp-gradient); -webkit-background-clip:text;background-clip:text;color:transparent;word-break:break-word} .hs-welcome{text-align:center;font-size:1.02rem;font-weight:700;color:var(--hp-primary);margin:0 0 4px} .hs-sub{text-align:center;font-size:.9rem;color:#94a3b8;margin:0 0 18px} /* --- Help card ------------------------------------------------------ */ .hs-help{text-align:center;background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.14); border-radius:14px;padding:14px;margin-bottom:16px} .hs-help strong{display:block;color:var(--hp-primary);font-size:.95rem;margin-bottom:4px} .hs-help a{color:var(--hp-primary);font-weight:700;font-size:1.02rem;text-decoration:underline} /* --- Buttons -------------------------------------------------------- */ .hs-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%; padding:15px 16px;border:0;border-radius:13px;font:inherit;font-size:.95rem;font-weight:800; letter-spacing:.06em;text-transform:uppercase;color:#fff;cursor:pointer;text-decoration:none; background:var(--hp-gradient); box-shadow:0 10px 26px rgba(0,0,0,.35)} .hs-btn:active{transform:translateY(1px)} .hs-btn[disabled]{opacity:.55;cursor:default;box-shadow:none} .hs-btn-sm{width:auto;padding:9px 18px;font-size:.8rem;letter-spacing:.04em;border-radius:10px; background:#1d4ed8;box-shadow:none} .hs-btn-outline{width:auto;padding:8px 20px;font-size:.82rem;font-weight:700;letter-spacing:.02em; text-transform:none;color:#60a5fa;background:transparent;border:1px solid rgba(96,165,250,.55); border-radius:9px;box-shadow:none} /* --- Free trial ----------------------------------------------------- */ .hs-trial{display:flex;align-items:center;gap:12px;background:rgba(15,23,42,.72); border:1px solid rgba(59,130,246,.35);border-radius:14px;padding:13px 14px;margin:14px 0} .hs-trial-body{flex:1;min-width:0} .hs-trial-title{display:flex;align-items:center;gap:7px;font-weight:700;font-size:.95rem} .hs-trial-note{font-size:.8rem;color:#94a3b8;margin-top:2px} .hs-chip{font-size:.6rem;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:5px; color:#065f46;background:#34d399} /* --- Section heading ------------------------------------------------ */ .hs-rule{display:flex;align-items:center;gap:12px;margin:22px 0 14px; font-size:.72rem;font-weight:700;letter-spacing:.16em;color:#64748b} .hs-rule::before,.hs-rule::after{content:"";flex:1;height:1px;background:rgba(148,163,184,.18)} /* --- Plan rows ------------------------------------------------------ */ .hs-plan{display:flex;align-items:center;gap:12px;padding:14px;margin-bottom:10px; background:rgba(15,23,42,.66);border:1px solid rgba(244,63,94,.45);border-radius:12px; /* The blue edge is what makes the list read as a stack of tickets. */ border-left:3px solid #3b82f6} .hs-plan-body{flex:1;min-width:0} .hs-plan-name{font-weight:700;font-size:1rem;line-height:1.25} .hs-plan-price{font-size:.88rem;color:#94a3b8;margin-top:3px} .hs-plan-price b{color:var(--hp-primary);font-weight:800} /* --- Modal ---------------------------------------------------------- */ .hs-scrim{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center; padding:16px;background:rgba(2,6,23,.72);backdrop-filter:blur(3px)} .hs-modal{width:100%;max-width:490px;max-height:86vh;overflow-y:auto; background:rgba(19,26,44,.97);border:1px solid rgba(148,163,184,.18);border-radius:20px; padding:20px 18px;box-shadow:0 -18px 60px rgba(2,6,23,.7)} .hs-modal-head{display:flex;align-items:center;gap:10px;margin-bottom:14px} .hs-modal-title{flex:1;font-size:1.02rem;font-weight:800;letter-spacing:.01em;text-transform:uppercase; background:var(--hp-gradient); -webkit-background-clip:text;background-clip:text;color:transparent} .hs-back,.hs-x{display:flex;align-items:center;justify-content:center;flex:none;border:0; background:transparent;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:4px} .hs-back{gap:7px;font-size:.9rem;color:#60a5fa;font-weight:600} .hs-back span{display:flex;align-items:center;justify-content:center;width:26px;height:26px; border-radius:50%;background:rgba(52,211,153,.14);color:#34d399;font-size:.85rem} /* --- Method chooser ------------------------------------------------- */ .hs-method{display:flex;align-items:center;gap:12px;margin-bottom:10px} .hs-method-body{flex:1;min-width:0} /* These are spans so the whole tile can be one