/* ShareCardLink · Card Wall */
html,body{margin:0;height:100%;background:#07080f;color:#fff;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow:hidden}
.cw-top{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:linear-gradient(#07080fdd,#07080f00);pointer-events:none}
.cw-top b{font-size:20px;letter-spacing:.02em}.cw-top span{font-size:12px;color:#9aa3b8;flex:1}
.cw-conn{pointer-events:auto;font-size:12px;color:#c4b5fd;text-decoration:none;padding:6px 12px;border-radius:20px;background:rgba(255,255,255,.08)}
.cw{position:fixed;top:0;left:0;right:0;bottom:var(--sclbb-h,0px);overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cw::-webkit-scrollbar{display:none}
.cw-s{position:relative;height:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 14px;box-sizing:border-box;overflow:hidden;
  background:radial-gradient(120% 70% at 20% 0%,color-mix(in srgb,var(--a,#2ea8ff) 35%,transparent),transparent 60%),radial-gradient(120% 70% at 100% 100%,color-mix(in srgb,var(--b,#7b5cff) 35%,transparent),transparent 60%),#07080f}
.cw-card{position:relative;width:100%;max-width:400px;padding:28px 22px 22px;box-sizing:border-box;border-radius:26px;text-align:center;user-select:none;-webkit-user-select:none;cursor:grab;
  background:rgba(18,20,34,.78);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 0 0 1px rgba(255,255,255,.1),0 30px 60px -20px rgba(0,0,0,.8);will-change:transform}
.cw-card:active{cursor:grabbing}
.cw-logo{width:112px;height:112px;margin:0 auto 14px;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--a),var(--b))}
.cw-logo img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff;display:block;pointer-events:none}
.cw-card h2{margin:0 0 4px;font-size:24px;line-height:1.2;word-break:break-word}
.cw-person{margin:0;color:#e5e7eb;font-weight:600}.cw-role{margin:2px 0 0;color:#a5b4fc;font-size:14px}
.cw-city{display:inline-block;margin:10px 0 0;padding:4px 12px;border-radius:20px;background:rgba(255,255,255,.08);font-size:13px;color:#d1d5db}
.cw-about{margin:14px 0 0;color:#cbd5e1;font-size:14px;line-height:1.5}
.cw-open{display:inline-block;margin-top:18px;padding:11px 20px;border-radius:14px;background:linear-gradient(120deg,var(--a,#2ea8ff),var(--b,#7b5cff));color:#fff;font-weight:800;text-decoration:none;box-shadow:0 12px 26px -12px var(--b,#7b5cff)}
.cw-stamp{position:absolute;top:22px;padding:6px 12px;border:3px solid;border-radius:10px;font:900 18px system-ui;font-style:normal;opacity:0;transition:opacity .15s;pointer-events:none}
.cw-stamp.no{right:18px;color:#f87171;transform:rotate(12deg)}.cw-stamp.yes{left:18px;color:#f472b6;transform:rotate(-12deg)}
.cw-s.l .cw-stamp.no,.cw-s.r .cw-stamp.yes{opacity:1}
.cw-acts{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:18px}
.cw-btn{width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;font-size:24px;display:grid;place-items:center;transition:transform .15s}
.cw-btn:active{transform:scale(.88)}
.cw-btn.skip{background:rgba(255,255,255,.1);color:#9ca3af;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.cw-btn.love{background:linear-gradient(135deg,#ff4fa3,#ff3d68);color:#fff;box-shadow:0 12px 24px -10px #ff4fa3}
.cw-btn.love.on{animation:cwpop .4s}
.cw-loves{min-width:70px;font-size:13px;color:#d1d5db}.cw-loves b{font-size:18px;color:#fff}
@keyframes cwpop{50%{transform:scale(1.25)}}
.cw-burst{position:absolute;left:50%;top:45%;font-size:90px;color:#ff4fa3;transform:translate(-50%,-50%);pointer-events:none;animation:cwb .9s ease-out forwards;text-shadow:0 10px 40px #ff4fa3}
.cw-burst i{position:absolute;left:50%;top:50%;font-size:22px;font-style:normal;animation:cwp .8s ease-out forwards}
@keyframes cwb{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-60%) scale(1)}}
@keyframes cwp{from{transform:rotate(var(--r)) translateY(0)}to{transform:rotate(var(--r)) translateY(-110px);opacity:0}}
.cw-empty{text-align:center;color:#cbd5e1}.cw-empty h2{color:#fff}.cw-big{font-size:56px;margin:0}
.cw-hint{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.72);display:grid;place-items:center}
.cw-hint div{background:#141826;border-radius:20px;padding:22px 26px;box-shadow:0 0 0 1px rgba(255,255,255,.1);text-align:center;font-size:16px}
.cw-hint[hidden]{display:none}.cw-hint p{margin:8px 0;text-align:left}.cw-hint b{display:inline-block;min-width:44px;text-align:center}.cw-hint button{margin-top:10px;padding:10px 26px;border:0;border-radius:12px;background:#7b5cff;color:#fff;font-weight:800;font-size:15px;cursor:pointer}
.cw-toast{position:fixed;left:50%;bottom:calc(var(--sclbb-h,0px) + 18px);transform:translate(-50%,20px);z-index:40;background:#1c2236;color:#fff;padding:10px 16px;border-radius:12px;box-shadow:0 0 0 1px rgba(255,255,255,.12);opacity:0;transition:.25s;pointer-events:none;font-size:14px;white-space:nowrap}
.cw-toast.on{opacity:1;transform:translate(-50%,0)}
@media(min-width:900px){.cw-card{max-width:440px}}
@media(prefers-reduced-motion:reduce){.cw-burst,.cw-burst i,.cw-btn.love.on{animation:none}}
.cw-snd{pointer-events:auto;border:0;background:rgba(255,255,255,.08);color:#fff;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer}.cw-snd.off{opacity:.6}
/* skip reaction with attitude */
.cw-sass{position:fixed;left:0;right:0;top:34%;z-index:35;display:flex;justify-content:center;pointer-events:none;opacity:0}
.cw-sass.on{animation:cwsass 1.7s ease forwards}
.cw-sass-in{display:flex;flex-direction:column;align-items:center;gap:6px}
.cw-sass .e{font-size:84px;line-height:1;filter:drop-shadow(0 10px 24px rgba(0,0,0,.6));animation:cwnakhra 1.1s ease-in-out}
.cw-sass p{margin:0;padding:9px 16px;border-radius:18px;background:rgba(20,22,38,.92);box-shadow:0 0 0 1px rgba(255,255,255,.14);font-weight:700;font-size:15px;color:#fff;max-width:280px;text-align:center}
@keyframes cwsass{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1.05)}20%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:translateY(-30px)}}
@keyframes cwnakhra{0%{transform:rotate(0)}15%{transform:rotate(-18deg) translateX(-8px)}30%{transform:rotate(14deg) translateX(6px)}45%{transform:rotate(-10deg) scaleX(-1)}60%{transform:rotate(8deg) scaleX(-1)}80%{transform:rotate(-4deg) scaleX(1)}100%{transform:rotate(0)}}
.cw-who{position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.65);display:grid;place-items:center}.cw-who[hidden]{display:none}
.cw-who>div{background:#141826;border-radius:22px;padding:20px 22px;text-align:center;box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.cw-who p{margin:0 0 14px;font-size:18px;font-weight:800}
.cw-who-b{display:flex;gap:14px}.cw-who-b button{width:110px;padding:14px 0;border:0;border-radius:16px;background:rgba(255,255,255,.08);color:#fff;font-size:42px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}
.cw-who-b span{font-size:14px;font-weight:700}.cw-who-b button:active{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.cw-sass .e{animation:none}}
/* reactions */
.cw-btn .ud{display:inline-block;transform:rotate(180deg);color:#f9a8d4;opacity:.8;font-size:30px;line-height:1;font-family:Arial,sans-serif}
.cw-btn .em{font-size:26px;line-height:1}
.cw-btn{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.cw-loves{display:flex;flex-direction:column;align-items:center;gap:3px}
.cw-chips{display:flex;gap:6px;font-size:12px}.cw-chips i{font-style:normal;padding:1px 6px;border-radius:10px;background:rgba(255,255,255,.08)}
.cw-pick{position:absolute;z-index:20;display:flex;gap:4px;padding:6px;border-radius:30px;background:rgba(20,22,38,.96);box-shadow:0 0 0 1px rgba(255,255,255,.14),0 16px 34px -10px rgba(0,0,0,.8);animation:cwpick .18s ease-out}
.cw-pick button{border:0;background:none;color:#fff;cursor:pointer;width:58px;padding:6px 0;border-radius:22px;font-size:28px;line-height:1;display:flex;flex-direction:column;align-items:center;gap:3px;transition:transform .12s}
.cw-pick button:hover,.cw-pick button:active{transform:scale(1.22) translateY(-4px);background:rgba(255,255,255,.06)}
.cw-pick small{font-size:10.5px;font-weight:700;color:#cbd5e1}
.cw-pick .ud{display:inline-block;transform:rotate(180deg);color:#f9a8d4;font-family:Arial,sans-serif}
@keyframes cwpick{from{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}
.cw-burst.neg{color:#fff;text-shadow:0 10px 30px rgba(0,0,0,.6)}
/* owner settings */
.cw-set-page{overflow:auto}.cw-set{max-width:560px;margin:0 auto;padding:22px 16px calc(var(--sclbb-h,0px) + 30px)}
.cw-set h1{margin:10px 0 4px}.cw-set-sub{color:#9aa3b8;margin:0 0 16px}.cw-set-back{color:#c4b5fd;text-decoration:none;font-size:14px}
.cw-set-card{background:#141826;border-radius:18px;padding:14px;margin-bottom:14px;box-shadow:0 0 0 1px rgba(255,255,255,.08)}.cw-set-card h2{margin:0 0 10px;font-size:17px}
.cw-set-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cw-set-opts button{border:0;border-radius:14px;background:rgba(255,255,255,.06);color:#fff;padding:10px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.cw-set-opts button.on{background:rgba(123,92,255,.25);box-shadow:inset 0 0 0 2px #7b5cff}
.cw-set-opts .neg,.cw-set-opts .pos{font-size:24px;line-height:1}.cw-set-opts .ud{display:inline-block;transform:rotate(180deg);color:#f9a8d4;font-family:Arial,sans-serif;font-style:normal}
.cw-set-opts small{font-size:11px;color:#cbd5e1}

/* sign-in sheet for visitors */
.cw-gate{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,0);transition:background .2s}
.cw-gate[hidden]{display:none}
.cw-gate.on{background:rgba(0,0,0,.6)}
.cw-gate-in{width:100%;max-width:460px;box-sizing:border-box;padding:22px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;background:#141826;color:#fff;text-align:center;transform:translateY(100%);transition:transform .25s cubic-bezier(.2,.9,.3,1);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.cw-gate.on .cw-gate-in{transform:none}
.cw-gate-e{font-size:44px;line-height:1;margin-bottom:8px;animation:cw-gate-beat 1.2s ease-in-out infinite}
.cw-gate-in h2{margin:0 0 6px;font-size:21px}
.cw-gate-in p{margin:0 0 16px;color:#9aa3b8;font-size:14px;line-height:1.45}
.cw-gate-b{display:block;padding:14px;margin-top:10px;border-radius:14px;text-decoration:none;font-weight:700;font-size:15px;color:#fff;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.cw-gate-b.pri{background:linear-gradient(120deg,#ff4fa3,#7b5cff);box-shadow:0 8px 24px rgba(255,79,163,.35)}
.cw-gate-x{margin-top:12px;padding:10px;border:0;background:none;color:#9aa3b8;font:600 14px system-ui,sans-serif;cursor:pointer}
@keyframes cw-gate-beat{0%,100%{transform:scale(1)}40%{transform:scale(1.15)}}
