/* Interactive phone showcase + bento tiles (home page) */
.showcase{position:relative;padding:72px var(--pad) 40px;max-width:var(--max);margin:0 auto;text-align:center;overflow:hidden}
.sc-head{display:flex;flex-direction:column;gap:14px;align-items:center;max-width:720px;margin:0 auto 28px}
.sc-head h2{font-size:clamp(34px,5vw,64px);letter-spacing:-.04em;font-weight:600}
.sc-head p{color:var(--ink-2);font-size:18px}
.sc-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);margin-bottom:12px;flex-wrap:wrap;justify-content:center}
.sc-tabs button{border:0;cursor:pointer;font:inherit;font-size:15px;padding:9px 20px;border-radius:999px;background:transparent;color:var(--ink-2);transition:background .2s,color .2s}
.sc-tabs button:hover{color:#fff}
.sc-tabs button[aria-selected=true]{background:#fff;color:#000}

.sc-stage{max-width:980px;margin-inline:auto;position:relative;height:min(760px,92vw + 120px);display:grid;place-items:center;perspective:1400px;margin-top:8px}
.sc-stage::before{content:"";position:absolute;inset:8% 10%;background:radial-gradient(closest-side,rgba(157,140,255,.22),transparent 70%);filter:blur(30px);pointer-events:none}

/* phone */
.phone-3d{position:relative;z-index:2;width:min(300px,64vw);transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out}
.phone-body{position:relative;border-radius:46px;padding:10px;background:linear-gradient(145deg,#2c2c2e,#0c0c0d);box-shadow:0 0 0 1.5px #3a3a3c inset,0 40px 90px -20px rgba(0,0,0,.9),0 0 60px -10px rgba(157,140,255,.25)}
.phone-island{position:absolute;z-index:6;left:50%;top:18px;width:84px;height:24px;margin-left:-42px;border-radius:999px;background:#000;pointer-events:none}
.phone-screen{position:relative;border-radius:37px;overflow:hidden;aspect-ratio:430/860;background:#0b0b0c;text-align:left}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;padding:56px 14px 16px;gap:12px;opacity:0;transform:scale(.98) translateY(8px);pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.screen[hidden]{display:flex}
.screen.is-active{opacity:1;transform:none;pointer-events:auto}
.screen[data-screen=menu]{padding:0}
.menu-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .4s}
.menu-shot.is-active{opacity:1}
.theme-dots{position:absolute;z-index:3;left:50%;bottom:64px;transform:translateX(-50%);display:flex;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(0,0,0,.55);backdrop-filter:blur(10px)}
.theme-dots button{width:20px;height:20px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.35);padding:0;transition:transform .15s}
.theme-dots button:hover{transform:scale(1.2)}
.theme-dots button[aria-pressed=true]{border-color:#fff;transform:scale(1.15)}

.app-top{display:flex;justify-content:space-between;align-items:center;color:#fff}
.app-top b{font-size:17px;letter-spacing:-.02em}
.app-pill{font-size:12px;padding:5px 10px;border-radius:999px;background:#1f1f22;color:#d4d4d8}
.points-card{background:linear-gradient(145deg,#ff8a3d,#e5484d);border-radius:22px;padding:18px;color:#fff;display:flex;flex-direction:column;gap:8px}
.points-card small{opacity:.85}
.points-num{display:flex;align-items:baseline;gap:8px}
.points-num strong{font-size:56px;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.points-num span{opacity:.85}
.bar{height:8px;border-radius:99px;background:rgba(0,0,0,.25);overflow:hidden}
.bar i{display:block;height:100%;border-radius:inherit;background:#fff;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.points-card p{font-size:13px}
.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.stamps i{aspect-ratio:1;border-radius:50%;background:#1b1b1e;border:1px dashed #3a3a3e;transition:background .3s,transform .3s}
.stamps i.on{background:#ff8a3d;border:0;transform:scale(1.04)}
.app-btn{margin-top:auto;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:15px;height:48px;border-radius:999px;background:#fff;color:#000;position:relative;overflow:hidden}
.app-btn.is-scanning::after{content:"";position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#e5484d,transparent);animation:scan 0.9s ease-in-out infinite}
@keyframes scan{0%{top:0}100%{top:100%}}

.camp-list,.rw-list{display:flex;flex-direction:column;gap:10px}
.camp,.rw{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:14px;border-radius:18px;background:#17171a;color:#fff}
.camp b,.rw b{display:block;font-size:15px}
.camp small,.rw small{color:#9a9aa3}
.camp button,.rw button{border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:600;padding:8px 14px;border-radius:999px;background:#fff;color:#000}
.camp-qr{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:6px}
.camp-qr[hidden],.rw-qr[hidden]{display:none}
.camp-qr img,.rw-qr img{background:#fff;padding:8px;border-radius:12px}
.rw.is-picked{outline:2px solid #fff}
.rw.is-locked{opacity:.45}
.rw.is-locked button{pointer-events:none;background:#2a2a2d;color:#888}
.rw-qr{display:flex;flex-direction:column;align-items:center;gap:6px;color:#9a9aa3;font-size:12px;margin-top:auto}

/* floating stickers + notes */
.sc-sticker{position:absolute;z-index:3;width:clamp(64px,9vw,104px);aspect-ratio:1;border:0;cursor:pointer;display:grid;place-items:center;border-radius:28%;background:var(--tile);box-shadow:0 18px 40px -12px rgba(0,0,0,.8);transform:translate(var(--tx,0),var(--ty,0)) rotate(var(--rot,0deg));transition:transform .25s ease-out;animation:bob 6s ease-in-out infinite;padding:clamp(10px,1.4vw,18px)}
.sc-sticker:nth-of-type(2){animation-delay:-1.5s}.sc-sticker:nth-of-type(3){animation-delay:-3s}.sc-sticker:nth-of-type(4){animation-delay:-4.5s}
.sc-sticker svg{width:100%;height:100%}
.sc-sticker:hover,.sc-sticker:focus-visible{--rot:-8deg;scale:1.1}
@keyframes bob{50%{translate:0 -10px}}
.sc-note{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:16px;background:rgba(28,28,30,.85);backdrop-filter:blur(12px);border:1px solid #2e2e32;font-size:13px;color:#fff;white-space:nowrap;transform:translate(var(--tx,0),var(--ty,0));transition:transform .25s ease-out;box-shadow:0 14px 34px -14px #000}
.sc-note i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(76,214,138,.2)}
.sc-bubble{position:absolute;z-index:5;left:50%;bottom:0;transform:translateX(-50%);width:min(340px,86vw);padding:16px 18px;border-radius:20px;background:#fff;color:#000;text-align:left;box-shadow:0 24px 60px -12px #000;animation:pop .25s ease-out}
.sc-bubble[hidden]{display:none}
.sc-bubble b{font-size:17px}.sc-bubble em{font-style:normal;font-size:12px;color:#666;margin-left:8px}
.sc-bubble p{margin-top:6px;font-size:14px;color:#333}
@keyframes pop{from{opacity:0;transform:translateX(-50%) translateY(10px)}}
.sc-hint{color:var(--muted);font-size:14px;margin-top:12px}

/* bento */
.bento-sub{color:var(--ink-2);font-size:15px;margin:0}
.bento2{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--surface);padding:22px;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;isolation:isolate;cursor:default;transition:transform .25s}
.tile[role=button]{cursor:pointer}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.12),transparent 60%);opacity:0;transition:opacity .25s}
.tile:hover::before{opacity:1}
.tile:hover{transform:translateY(-3px)}
.tile h3{font-size:20px;font-weight:500}
.tile p{color:var(--ink-2);font-size:14.5px}
.tile-art{flex:1;display:grid;place-items:center;min-height:140px}
.qr-box{position:relative;background:#fff;padding:10px;border-radius:16px;overflow:hidden}
.qr-box img{display:block}
.scan-line{position:absolute;left:0;right:0;height:3px;background:#e5484d;box-shadow:0 0 14px #e5484d;animation:scan 2.2s ease-in-out infinite alternate}
.scan-ok{position:absolute;right:calc(50% - 90px);top:12px;padding:5px 10px;border-radius:999px;background:var(--ok);color:#00170b;font-size:13px;font-weight:700;opacity:0;transform:translateY(8px);animation:ok 2.2s ease-in-out infinite}
@keyframes ok{0%,70%{opacity:0;transform:translateY(8px)}85%,100%{opacity:1;transform:none}}
.star-row{display:flex;gap:6px;font-size:34px;color:#333;font-style:normal}
.star-row i{font-style:normal;transition:color .25s,transform .25s}
.star-row i.on{color:#ffc13d;transform:scale(1.15)}
.star-count{position:absolute;top:18px;right:20px;font-size:14px;color:var(--ink-2)}
.lang-card{display:flex;align-items:center;gap:12px;padding:16px 22px;border-radius:18px;background:#111;border:1px solid var(--line-2);font-size:24px;font-weight:600}
.lang-card em{font-style:normal;font-size:12px;padding:4px 8px;border-radius:999px;background:#fff;color:#000}
.lang-card.flip{animation:flip .4s}
@keyframes flip{50%{transform:rotateX(90deg)}}
.switch{width:76px;height:42px;border-radius:999px;border:0;background:#2c2c2e;position:relative;cursor:pointer;transition:background .25s}
.switch i{position:absolute;left:4px;top:4px;width:34px;height:34px;border-radius:50%;background:#fff;transition:transform .25s}
.switch[aria-checked=true]{background:#fff}
.switch[aria-checked=true] i{transform:translateX(34px);background:#000}
.tile-theme .tile-art{display:flex;flex-direction:column;gap:18px;justify-content:center;align-items:center}
.swatch-demo{display:flex;gap:8px;padding:10px;border-radius:16px;background:#0b0b0c;transition:background .3s}
.swatch-demo span{width:46px;height:30px;border-radius:8px;background:#222;transition:background .3s}
.tile-theme.is-light .swatch-demo{background:#f4f3ef}
.tile-theme.is-light .swatch-demo span{background:#d9d6cf}
.tile-theme.is-light .swatch-demo span:first-child{background:#4f7a58}
.cam{position:relative;width:110px;height:110px;border-radius:50%;border:2px solid #3a3a3e;display:grid;place-items:center}
.cam i{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8f8f9a,#26262a 60%);box-shadow:0 0 0 8px #151517}
.cam::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--ok);opacity:0;animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{transform:scale(.85);opacity:.9}100%{transform:scale(1.25);opacity:0}}
.mini-family{display:flex;gap:10px}
.mini-family span{width:56px;height:56px;border-radius:18px;background:var(--tile);display:grid;place-items:center;padding:8px;transition:transform .25s}
.mini-family span svg{width:100%;height:100%}
.tile-family:hover .mini-family span{animation:wiggle .6s ease-in-out}
.tile-family:hover .mini-family span:nth-child(2){animation-delay:.08s}.tile-family:hover .mini-family span:nth-child(3){animation-delay:.16s}.tile-family:hover .mini-family span:nth-child(4){animation-delay:.24s}
@keyframes wiggle{25%{transform:translateY(-8px) rotate(-6deg)}75%{transform:translateY(-3px) rotate(5deg)}}

@media (max-width:900px){.bento2{grid-template-columns:1fr 1fr}.sc-note{display:none}}
@media (max-width:560px){.bento2{grid-template-columns:1fr}.sc-stage{height:640px}.sc-sticker{width:58px}}
@media (prefers-reduced-motion:reduce){.sc-sticker,.scan-line,.scan-ok,.cam::after{animation:none!important}.scan-ok{opacity:1}}

/* Browser-window dashboard mockup (home page) */
.dash{position:relative;padding:56px var(--pad) 0;max-width:var(--max);margin:0 auto;overflow:hidden;isolation:isolate}
.dash-glow{position:absolute;left:50%;top:60px;width:min(1100px,130vw);aspect-ratio:2/1;transform:translateX(-50%);z-index:-1;pointer-events:none}
.dash-glow i{position:absolute;left:50%;top:0;border-radius:50%;border:1px solid rgba(140,90,255,.28);transform:translateX(-50%);background:radial-gradient(closest-side,rgba(120,70,255,.22),transparent 72%)}
.dash-glow i:nth-child(1){width:100%;aspect-ratio:1}
.dash-glow i:nth-child(2){width:78%;aspect-ratio:1;top:6%;border-color:rgba(140,90,255,.22)}
.dash-glow i:nth-child(3){width:56%;aspect-ratio:1;top:12%;border-color:rgba(140,90,255,.18)}
.dash-head{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;margin-bottom:34px}
.dash-head .dash-sub{font-size:clamp(16px,1.7vw,21px);line-height:1.5;color:var(--ink-2);letter-spacing:-.01em;max-width:40ch}
.dash-head h1{font-size:clamp(34px,5vw,64px);letter-spacing:-.045em;font-weight:600;max-width:24ch}
.win{max-width:none;margin:0;border:1px solid #2a2a2f;border-bottom:0;border-radius:22px 22px 0 0;background:#0c0c0e;height:clamp(420px,52vw,860px);overflow:hidden;box-shadow:0 -10px 80px -20px rgba(120,70,255,.35),0 40px 120px -30px #000;text-align:left;color:#f2f2f4;font-size:13px}
.win-bar{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;padding:14px 20px;border-bottom:1px solid #1d1d21}
.win-dots{display:flex;gap:8px}.win-dots i{width:12px;height:12px;border-radius:50%;background:#ff5f57}.win-dots i:nth-child(2){background:#febc2e}.win-dots i:nth-child(3){background:#28c840}
.win-url{justify-self:center;display:inline-flex;align-items:center;gap:8px;padding:7px 28px;border-radius:999px;background:#161619;border:1px solid #232327;color:#9a9aa3;font-size:12px}
.win-gear{justify-self:end;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#161619;color:#9a9aa3}
.win-body{display:grid;grid-template-columns:250px 1fr;height:100%}
.dd-side{display:flex;flex-direction:column;gap:14px;padding:16px 12px;border-right:1px solid #1d1d21;min-width:0}
.dd-logo{padding:4px 8px}.dd-logo .logo-mark{height:26px;color:#fff}
.dd-side nav{display:flex;flex-direction:column;gap:2px}
.dd-nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:#c9c9cf;font-size:13px;transition:background .15s,color .15s}
.dd-nav svg{width:16px;height:16px;flex:none;color:#9a9aa3}
.dd-nav:hover{background:#17171a;color:#fff}
.dd-nav.is-on{background:#2a2038;color:#fff}.dd-nav.is-on svg{color:#c4a5ff}
.dd-user{margin-top:auto;display:flex;gap:10px;align-items:center;padding:8px}
.dd-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#2a2038;color:#cfc0ff;font-size:11px;font-weight:600}
.dd-user b{display:block;font-size:12.5px}.dd-user small{color:#8a8a93;font-size:11px}
.dd-main{display:flex;flex-direction:column;gap:12px;padding:16px;min-width:0;overflow:hidden}
.dd-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border:1px solid #1f1f23;border-radius:14px;background:#111114}
.dd-top small{display:block;font-size:10px;letter-spacing:.08em;color:#8a8a93}
.dd-top b{display:block;font-size:17px;letter-spacing:-.02em}
.dd-top span{color:#a1a1aa}
.dd-top-r{display:flex;gap:8px;align-items:center;flex:none}
.dd-lang{display:inline-flex;padding:3px;border-radius:999px;background:#1a1a1e}.dd-lang i{font-style:normal;padding:4px 10px;border-radius:999px;font-size:11px;color:#a1a1aa}.dd-lang i.on{background:#fff;color:#000}
.dd-menu{padding:7px 14px;border-radius:9px;background:#18181b;border:1px solid #26262b;color:#fff!important}
.dd-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.dd-stat,.dd-card{border:1px solid #1f1f23;border-radius:14px;background:#111114;padding:12px 14px}
.dd-stat small{display:block;color:#a1a1aa;font-size:11.5px}
.dd-stat b{display:block;font-size:24px;letter-spacing:-.03em;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.dd-stat span{font-size:11px;color:#8a8a93}
.t-up{color:#4cd68a!important}.t-ok{color:#4cd68a!important}.t-info{color:#9d8cff!important}.t-warn{color:#f5a524!important}
.dd-row{display:grid;grid-template-columns:2fr 1fr;gap:10px}
.dd-row-2{grid-template-columns:1fr 1fr}
.dd-sum small{font-size:10px;letter-spacing:.08em;color:#8a8a93;display:block;margin-bottom:6px}
.dd-sum b{display:block;font-size:22px;letter-spacing:-.03em;margin-bottom:6px}
.dd-sum span{color:#a1a1aa}
.dd-score{display:flex;align-items:center;gap:14px}
.dd-score b{display:block;font-size:14px;margin-bottom:4px}.dd-score span:not(.ring){color:#a1a1aa;font-size:12px}
.ring{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#3b6cff calc(var(--p)*1%),#26262b 0)}
.ring b{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#111114;font-size:13px;margin:0}
.dd-chart>b{display:block;font-size:14px}.dd-chart>span{color:#8a8a93;font-size:12px}
.chart-wrap{position:relative;height:150px;margin-top:12px;cursor:crosshair}
.chart-wrap svg{width:100%;height:100%;display:block;overflow:visible}
.chart-dot{position:absolute;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#3b6cff;border:2px solid #fff;pointer-events:none}
.chart-tip{position:absolute;pointer-events:none;transform:translate(-50%,-125%);padding:7px 12px;border-radius:9px;background:#1a1a1e;border:1px solid #2c2c31;white-space:nowrap;box-shadow:0 10px 30px -10px #000}
.chart-tip small{display:block;color:#a1a1aa;font-size:11px}
.chart-tip b{display:flex;align-items:center;gap:7px;font-size:12px}
.chart-tip b i{width:8px;height:8px;border-radius:50%;background:#3b6cff}
.chart-days{display:flex;justify-content:space-between;color:#8a8a93;font-size:11px;margin-top:6px}
.bars{display:flex;flex-direction:column;gap:9px;margin-top:12px}
.bars li{display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;color:#c9c9cf;font-size:12px}
.bars i{display:block;height:7px;border-radius:99px;background:linear-gradient(90deg,#3b6cff,#8a5cff);width:var(--w);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.bars-alt i{background:linear-gradient(90deg,#4cd68a,#2fb7a5)}
.bars em{font-style:normal;color:#8a8a93;text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:980px){.dd-stats{grid-template-columns:repeat(3,1fr)}.win-body{grid-template-columns:70px 1fr}.dd-nav{font-size:0;justify-content:center;gap:0}.dd-nav svg{width:18px;height:18px}.dd-user span:last-child,.dd-logo{display:none}.dd-user{justify-content:center}}
@media (max-width:640px){.win-bar{grid-template-columns:60px 1fr 0}.win-gear{display:none}.win-url{padding:6px 14px}.win-body{grid-template-columns:1fr}.dd-side{display:none}.dd-stats{grid-template-columns:1fr 1fr}.dd-row,.dd-row-2{grid-template-columns:1fr}.win{height:540px}}
