/*! Mwah — a long-distance video date — © 2026 Hasib (OVERSHOOT). All rights reserved. Licensed, not sold: see LICENSE.md. */:root{--pink:#ff5c8a;--pink-soft:#ffd7e6;--plum:#7a4a6b;--cream:#fff6fb;--mint:#8fe3c0;--lav:#c9b8ff;--font:"Fredoka", system-ui, -apple-system, sans-serif;--spring:cubic-bezier(.34,1.56,.64,1);--ease:cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{min-height:100svh;font-family:var(--font);color:var(--plum);-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none;background:linear-gradient(170deg,#ffe3f2,#f1e6ff 48%,#e2f4ff)}.stage{position:fixed;inset:0;width:100%;height:100svh}.scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:manipulation;cursor:pointer}.ui{position:absolute;inset:0;pointer-events:none}.brand{position:absolute;top:calc(3.4% + env(safe-area-inset-top));left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.5em;padding:.42em .95em;font-size:clamp(.72rem,.62rem+.5vw,.9rem);font-weight:600;letter-spacing:.04em;color:var(--plum);background:#ffffffb3;border-radius:999px;box-shadow:0 6px 18px #d278aa38;backdrop-filter:blur(6px)}.brand__dot{width:.55em;height:.55em;border-radius:50%;background:#4ad991;box-shadow:0 0 #4ad99199;animation:live 1.8s ease-out infinite}@keyframes live{0%{box-shadow:0 0 #4ad9918c}70%,to{box-shadow:0 0 0 7px #4ad99100}}.kiss{position:absolute;left:50%;bottom:calc(6.5% + env(safe-area-inset-bottom));transform:translate(-50%);display:inline-flex;align-items:center;gap:.6em;padding:.9em 1.6em .95em;font-family:var(--font);font-size:clamp(1rem,.85rem+.8vw,1.3rem);font-weight:600;color:#fff;background:linear-gradient(180deg,#ff7ba6,#ff4f83);border:none;border-radius:999px;box-shadow:0 10px #e23a6e,0 18px 30px #ff4f8366;cursor:pointer;pointer-events:auto;transition:transform .12s var(--ease),box-shadow .12s var(--ease);-webkit-tap-highlight-color:transparent}.kiss:hover{transform:translate(-50%) translateY(-2px)}.kiss:active{transform:translate(-50%) translateY(6px);box-shadow:0 4px #e23a6e,0 8px 16px #ff4f8366}.kiss:focus-visible{outline:3px solid #fff;outline-offset:3px}.kiss__heart{display:inline-grid;place-items:center;animation:beat 1.3s ease-in-out infinite}@keyframes beat{0%,to{transform:scale(1)}15%{transform:scale(1.22)}30%{transform:scale(.96)}45%{transform:scale(1.1)}}.kiss.is-hidden{opacity:0;transform:translate(-50%) translateY(24px);pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease)}.hint{position:absolute;left:50%;bottom:calc(6.5% + env(safe-area-inset-bottom));transform:translate(-50%,-3.6em);font-size:clamp(.8rem,.7rem+.5vw,1rem);font-weight:500;color:var(--pink);white-space:nowrap;animation:floaty 2.4s ease-in-out infinite}@keyframes floaty{0%,to{transform:translate(-50%,-3.6em)}50%{transform:translate(-50%,-4.2em)}}.hint.is-hidden{opacity:0;transition:opacity .3s;animation:none}.banner{position:absolute;left:0;right:0;top:16%;display:flex;flex-direction:column;align-items:center;gap:.15em;text-align:center;padding:0 6vw;opacity:0;transform:translateY(-14px) scale(.8);transition:opacity .5s var(--ease),transform .6s var(--spring)}.banner__big{font-size:clamp(2.8rem,1.5rem+9vw,6.5rem);font-weight:700;line-height:.9;letter-spacing:-.01em;color:var(--pink);text-shadow:0 4px 0 #fff,0 10px 26px rgba(255,92,138,.35)}.banner__sub{font-size:clamp(.85rem,.72rem+.6vw,1.15rem);font-weight:500;color:var(--plum);background:#ffffffb3;padding:.35em 1em;border-radius:999px;box-shadow:0 6px 16px #d278aa33}.banner.is-in{opacity:1;transform:none}.replay{position:absolute;left:50%;bottom:calc(6.5% + env(safe-area-inset-bottom));transform:translate(-50%,10px);display:inline-flex;align-items:center;gap:.5em;padding:.7em 1.3em;font-family:var(--font);font-size:.9rem;font-weight:600;color:var(--pink);background:#ffffffd9;border:2px solid var(--pink-soft);border-radius:999px;box-shadow:0 8px 20px #d278aa33;cursor:pointer;pointer-events:auto;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),transform .5s var(--spring),background .2s}.replay.is-shown{opacity:1;visibility:visible;transform:translate(-50%)}.replay:hover{background:#fff}.replay:focus-visible{outline:3px solid var(--pink);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.brand__dot,.kiss__heart,.hint{animation:none}.banner,.replay,.kiss{transition:none}}
