/* Groupies (/groupies), the swipe deck (/swipe), and the "swipe it in" row on a tab. Colors stick to the tokens so dark mode works. */
.gyhero{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--onbanana);padding-right:110px;min-height:150px}
.gyhero .big{font-size:30px;line-height:1.05}
.gyhero .big em{font-style:normal;background:var(--card);color:var(--ink);border-radius:7px;padding:0 6px;display:inline-block;margin-top:3px}
.gyhero img{position:absolute;right:-6px;bottom:-14px;width:110px;transform:rotate(8deg)}
.gyhero .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.gyhero .btn,.gyhero button{align-self:flex-start;margin-top:6px}
.gyrow .gk{font-size:14px;margin-left:2px}
.gyrow .av.md,.gyrow .av{width:40px;height:40px;border-radius:12px;font-size:14px}
.gyadd{width:100%;border:1px dashed var(--line2);background:none;color:var(--ink);border-radius:16px;padding:13px;font-weight:700;justify-content:flex-start;gap:10px}
.gyadd span{width:26px;height:26px;border-radius:8px;background:var(--banana);color:var(--onbanana);display:grid;place-items:center;font-size:18px;line-height:1}
.gyform{display:flex;flex-direction:column;gap:8px}
.gyform h2{font-size:19px;margin:0 0 2px}
.gyform input{width:100%}
.gykinds{display:flex;gap:6px}
.gykinds button{flex:1;padding:9px 6px;font-size:14px}
.gyform .actions,.gymade .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.gymade{border-color:var(--mint)}
.gymade h2{font-size:19px;margin:0}
.av.gycard{width:36px;height:36px;border-radius:10px;background:var(--soft);font-size:18px;display:grid;place-items:center;flex-shrink:0}
.gyunlink{padding:6px 11px;font-size:13px}
.gyprov{display:flex;align-items:center;gap:12px;text-align:left;justify-content:flex-start;padding:13px 14px;width:100%;border-radius:16px}
.gyprov .n{display:flex;flex-direction:column;gap:2px;flex:1}
.gyprov .n span{font-weight:400;font-size:13px;color:var(--muted)}
.gyprov.off{border:1px dashed var(--line2);opacity:.65}
.gyhome .ttl{align-items:center}
.gyarr,.swipein>span:last-child{font-size:22px;color:var(--muted);line-height:1}
.swipein{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px dashed var(--line2);border-radius:14px;color:var(--ink);text-decoration:none;font-size:13.5px;margin:2px 0 4px;background:var(--card)}
.swipein>span:nth-child(2){flex:1;color:var(--muted)}
.swipein b{color:var(--ink)}

/* the deck */
.fhd .swct{font:600 13px/1 var(--mono);color:var(--muted);background:var(--soft);border-radius:8px;padding:7px 9px}
.fhd .wm+.swct{margin-left:auto}
.swto{display:flex;gap:6px;overflow-x:auto;align-items:center;padding:2px 0 4px;scrollbar-width:none}
.swto::-webkit-scrollbar{display:none}
.swto .lbl{white-space:nowrap;font-size:12px;margin-right:2px}
.swto button{white-space:nowrap;padding:7px 11px;font-size:14px;border-radius:10px;gap:5px}
.swto button[aria-checked="true"]{background:var(--ink);border-color:var(--ink);color:var(--onink)}
.swdeck{position:relative;height:360px;margin:6px 4px 0;touch-action:pan-y}
.swc{position:absolute;inset:0;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px 18px;display:flex;flex-direction:column;
  transform:translateY(calc(var(--i) * 10px)) scale(calc(1 - var(--i) * .04));box-shadow:0 10px 30px rgba(43,27,16,.08);user-select:none;-webkit-user-select:none;overflow:hidden}
.swc.top{cursor:grab;touch-action:none;--sh:0;--mi:0}
.swc.top:active{cursor:grabbing}
.swc:not(.top) > *{opacity:.35}
.swtop{display:flex;justify-content:space-between;font:500 12.5px/1 var(--mono);color:var(--muted)}
.swmid{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px}
.swcat{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--soft);padding:5px 8px;border-radius:6px}
.swname{font:700 28px/1.1 var(--sans);letter-spacing:-.025em;overflow-wrap:anywhere}
.swamt{font:700 46px/1 var(--mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.swsplit{margin:4px 0 0;font-size:13.5px;color:var(--mintink)}
.swhint{margin:0;text-align:center;font-size:13.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:11px}
.swhint.sh{color:var(--mintink)}.swhint.mi{color:var(--pinkink)}
.swstamp{position:absolute;top:64px;font:800 26px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;border:3px solid;border-radius:10px;padding:5px 10px;pointer-events:none;z-index:2}
.swstamp.sh{left:18px;color:var(--mint);transform:rotate(-12deg);opacity:var(--sh,0)}
.swstamp.mi{right:18px;color:var(--pink);transform:rotate(12deg);opacity:var(--mi,0)}
.swc:not(.top) .swstamp{display:none}
.swsp{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px;min-height:38px}
.swseg{display:inline-flex;background:var(--soft);border-radius:11px;padding:3px;gap:2px}
.swseg button{border:0;background:none;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:600;color:var(--muted);min-width:42px;justify-content:center}
.swseg button[aria-checked="true"]{background:var(--ink);color:var(--onink)}
.swspin{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.swspin .box{display:inline-flex;align-items:center;gap:2px;border:1.5px solid var(--line);background:var(--card);border-radius:10px;padding:0 9px;height:36px;color:var(--ink)}
.swspin .box:focus-within{border-color:var(--mint)}
.swspin i{font:600 15px/1 var(--mono);font-style:normal;color:var(--muted)}
.swspin input{border:0;outline:0;background:none;width:64px;font:600 16px/1 var(--mono);color:var(--ink);padding:0;text-align:right;min-height:0;box-shadow:none}
.swbtns{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:18px}
.swbtns button{border-radius:999px;font-size:16px;padding:14px 20px;gap:8px;min-width:118px}
.swbtns .swno{border:2px solid var(--pink);color:var(--pinkink)}
.swbtns .swyes{border:2px solid var(--mint);color:var(--mintink)}
.swbtns .swundo{min-width:0;width:48px;height:48px;padding:0;font-size:20px}
.swbtns button:disabled{opacity:.4}
.swkeys{text-align:center;font-size:12px;color:var(--muted);margin:2px 0 0}
.swempty{text-align:center;padding:26px 10px;display:flex;flex-direction:column;align-items:center;gap:8px}
.swempty img{width:96px}
.swempty h2{margin:0;font-size:26px}
.swlist{padding:4px 6px;gap:0}
.swlist button{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:0;background:none;padding:10px 8px;text-align:left;justify-content:flex-start}
.swlist button+button{border-top:1px solid var(--line)}
.swlist .n{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.swlist .n span{font-weight:400;font-size:12.5px;color:var(--muted)}
.swlist .tag{font:600 13px/1 var(--mono);padding:5px 7px;border-radius:7px}
.swlist .tag.sh{background:var(--mintsoft);color:var(--mintink)}
.swlist .tag.mi{background:var(--soft);color:var(--muted)}
@media (prefers-reduced-motion:reduce){.swc{transition:none!important}}
.gyperson{display:flex;gap:6px;align-items:center}
.gyperson input{flex:1}
.gyperson .x{width:40px;height:40px;padding:0;flex-shrink:0}
.gymore{align-self:flex-start;padding:4px 0;border:0;background:none;color:var(--pinkink);font-size:14px}
.gyrow .fstack .av{width:30px;height:30px;font-size:11px}

/* Work in progress stamp (until real banks are on) */
.wipstamp{align-self:center;margin:4px auto 2px;transform:rotate(-3deg);border:4px solid var(--cherry);color:var(--cherry);border-radius:14px;padding:10px 18px 9px;text-align:center;
  background:repeating-linear-gradient(-45deg,transparent 0 10px,rgba(217,45,69,.06) 10px 20px);max-width:340px;box-shadow:inset 0 0 0 2px var(--bg),inset 0 0 0 4px var(--cherry)}
.wipstamp b{display:block;font:800 30px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase}
.wipstamp span{display:block;font-size:12.5px;font-weight:600;margin-top:5px;opacity:.85}
.wiptag{font-style:normal;font:800 10px/1 var(--sans);letter-spacing:.08em;color:var(--cherry);border:1.5px solid var(--cherry);border-radius:5px;padding:2px 4px;vertical-align:3px;margin-left:4px}

/* How it works */
.gyhow{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.gyhow h2{margin:0;font-size:18px}
.gyhow ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.gyhow li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.35;color:var(--muted)}
.gyhow li b{color:var(--ink)}
.gyhow li>span{width:24px;height:24px;border-radius:8px;background:var(--banana);color:var(--onbanana);font:800 13px/24px var(--sans);text-align:center;flex-shrink:0}
.gyhow button{align-self:flex-start;padding:8px 14px}
@keyframes swhint{0%,100%{transform:none}20%{transform:translateX(46px) rotate(4deg)}45%{transform:none}65%{transform:translateX(-46px) rotate(-4deg)}85%{transform:none}}
@keyframes swhintsh{0%,100%,45%{opacity:0}20%{opacity:.9}}
@keyframes swhintmi{0%,100%,45%,85%{opacity:0}65%{opacity:.9}}
.swc.top.hint{animation:swhint 2.6s ease-in-out .6s 2}
.swc.top.hint .swstamp.sh{animation:swhintsh 2.6s ease-in-out .6s 2}
.swc.top.hint .swstamp.mi{animation:swhintmi 2.6s ease-in-out .6s 2}
@media (prefers-reduced-motion:reduce){.swc.top.hint,.swc.top.hint .swstamp{animation:none}}
.wipstamp.small{padding:6px 14px 6px;margin:0 auto}
.wipstamp.small b{font-size:20px}
.wipstamp.small span{font-size:11.5px;margin-top:3px}
.gyhow.short{flex-direction:row;align-items:center;padding:10px 12px;gap:10px}
.gyhow.short p{margin:0;font-size:13.5px;color:var(--muted);flex:1}
.gyhow.short b{color:var(--ink)}
.gyhow.short button{align-self:center;flex-shrink:0}
/* Pinned to the middle of the screen, solid and light, like a rubber stamp (Erik, Oct 5 2026). Taps go straight through it. */
.wipstamp.top{position:fixed;z-index:60;top:50%;left:50%;width:min(calc(100vw - 48px),340px);margin:0;transform:translate(-50%,-50%) rotate(-8deg);pointer-events:none;color:#C8243C;border-color:#C8243C;
  background:repeating-linear-gradient(-45deg,transparent 0 10px,rgba(217,45,69,.06) 10px 20px),#FFF3F1;box-shadow:inset 0 0 0 2px #FFF3F1,inset 0 0 0 4px #C8243C,0 10px 30px rgba(43,27,16,.22)}
.gycards{display:flex;flex-direction:column;gap:8px}
.gyreconnect{width:100%;margin-top:12px}
.gyfine{margin:2px 2px 0;font-size:13px}
