:root{
  --bg:#100201;--bg2:#1d0503;--ink:#fff8ed;--muted:#d7c4b8;--red:#d7230f;--orange:#ff6a13;--yellow:#ffc63b;--card:rgba(20,7,5,.88);--card2:rgba(42,9,5,.92);--line:rgba(255,255,255,.12);--shadow:0 18px 45px rgba(0,0,0,.28);--radius:24px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Noto Sans Thai","Segoe UI",sans-serif;background:linear-gradient(180deg,#160402,#0c0201 72%);color:var(--ink);min-height:100vh;padding-bottom:88px}.bg-art{position:fixed;inset:0;z-index:-2;background:url('assets/tasty-background.jpeg') center top/cover no-repeat;filter:saturate(.9) contrast(1.02)}.bg-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,0,0,.62) 0%,rgba(8,2,1,.9) 30%,rgba(8,2,1,.97) 100%),radial-gradient(circle at 50% 8%,rgba(255,100,15,.08),transparent 40%)}button,input{font:inherit}.site-header{position:sticky;top:0;z-index:40;background:rgba(13,2,1,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.partner-strip{display:grid;grid-template-columns:1fr 1fr 1.4fr 1.35fr;gap:7px;padding:7px 12px;max-width:1180px;margin:auto}.logo-card{background:#fff;border-radius:10px;min-height:44px;padding:5px;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-card img{max-width:100%;max-height:38px;object-fit:contain}.logo-card.sponsor{padding:3px}.utility-row{max-width:1180px;margin:auto;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand-btn{background:none;border:0;color:var(--ink);text-align:left;padding:0;cursor:pointer}.brand-btn span{display:block;font-size:9px;letter-spacing:.18em;color:var(--yellow)}.brand-btn strong{font-size:17px}.account-btn{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;border-radius:999px;padding:9px 13px;font-weight:700;cursor:pointer}.user-dot{color:var(--orange);font-size:9px}.countdown-bar{max-width:1180px;margin:auto;padding:7px 14px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid rgba(255,255,255,.07)}.countdown-bar>div:first-child{display:flex;gap:8px;align-items:baseline}.countdown-bar span{font-size:11px;color:var(--muted)}.countdown-bar strong{font-size:12px;color:#fff}.countdown{display:flex;gap:7px}.countdown span{display:flex;align-items:baseline;gap:3px;color:#fff}.countdown b{font-variant-numeric:tabular-nums;color:var(--yellow);font-size:16px}.countdown small{font-size:9px;color:var(--muted)}.app-shell{max-width:1180px;margin:0 auto}.page{display:none;padding:18px 14px 34px}.page.active{display:block}.hero-panel{min-height:405px;border:1px solid rgba(255,255,255,.11);border-radius:32px;overflow:hidden;position:relative;display:flex;align-items:flex-end;padding:28px;margin-bottom:16px;background:linear-gradient(90deg,rgba(9,0,0,.82),rgba(9,0,0,.25)),url('assets/tasty-background.jpeg') center 21%/cover no-repeat;box-shadow:var(--shadow)}.hero-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(8,0,0,.72) 86%);pointer-events:none}.hero-copy{position:relative;z-index:2;max-width:620px}.eyebrow{font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--yellow);font-weight:900}.hero-copy h1,.page-title-card h1{font-size:clamp(34px,6vw,62px);line-height:1.03;margin:8px 0 10px;letter-spacing:-.03em}.hero-copy h1 em{font-style:normal;color:#ff7a1c}.hero-copy p{max-width:600px;color:#f4ddd1;line-height:1.65;margin:0 0 20px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.primary-btn,.ghost-btn,.secondary-btn{border:0;border-radius:14px;padding:12px 16px;font-weight:900;cursor:pointer}.primary-btn{background:linear-gradient(135deg,var(--orange),#ff3c12);color:#150300;box-shadow:0 10px 24px rgba(255,74,12,.22)}.ghost-btn{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.16)}.secondary-btn{background:rgba(255,255,255,.08);border:1px solid var(--line);color:#fff}.full{width:100%}.hero-badge{position:absolute;right:24px;bottom:24px;z-index:2;width:110px;height:110px;border-radius:50%;background:rgba(12,0,0,.74);border:1px solid rgba(255,198,59,.5);display:flex;align-items:center;justify-content:center;text-align:center;gap:6px;box-shadow:0 0 0 8px rgba(255,198,59,.05)}.hero-badge b{font-size:40px;color:var(--yellow)}.hero-badge span{font-size:11px;line-height:1.2}.content-card,.page-title-card,.map-card,.special-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.content-card{padding:20px;margin-bottom:16px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{margin:4px 0 0;font-size:24px}.search-box{height:48px;border-radius:15px;background:rgba(255,255,255,.07);border:1px solid var(--line);display:flex;align-items:center;padding:0 13px;gap:10px}.search-box span{font-size:23px;color:var(--muted)}.search-box input{border:0;background:transparent;color:#fff;outline:none;width:100%;font-size:15px}.search-box input::placeholder{color:#ad9991}.chips{display:flex;gap:8px;overflow:auto;padding:12px 0 14px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#ead8cf;padding:8px 12px;font-size:12px;font-weight:800}.chip.active{background:var(--yellow);color:#1e0601;border-color:var(--yellow)}.restaurant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.restaurant-card{background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.photo-shell{aspect-ratio:16/10;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,#652314,#2b0703 65%,#130301)}.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#e9cdbf}.photo-placeholder span{font-size:38px;filter:grayscale(1);opacity:.7}.photo-placeholder small{font-size:11px}.photo-count{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:5px 8px;font-size:10px}.restaurant-body{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1}.restaurant-body h3{font-size:18px;margin:0}.meta-row{display:flex;gap:8px;flex-wrap:wrap}.meta{font-size:11px;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:#ecd8ce}.menu-title{font-weight:900;font-size:15px;color:#fff}.restaurant-body p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.card-actions button{border:0;border-radius:12px;padding:10px 8px;font-size:12px;font-weight:900;cursor:pointer}.detail-btn{background:#fff;color:#1c0703}.claim-btn{background:rgba(255,103,19,.15);color:#ffb077;border:1px solid rgba(255,103,19,.28)!important}.data-note,.difference-note,.auth-note{margin-top:14px;color:#bca69c;font-size:11px;line-height:1.55;border-radius:13px;padding:11px 12px;background:rgba(255,255,255,.04)}.page-title-card{padding:26px;margin-bottom:16px;background:linear-gradient(135deg,rgba(82,13,6,.93),rgba(15,4,3,.92))}.page-title-card h1{font-size:38px;margin-bottom:10px}.page-title-card p{margin:0;max-width:720px;line-height:1.7;color:#e4cfc5}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.stat{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:18px;padding:15px}.stat small{display:block;color:#cbb4aa;font-size:11px}.stat strong{font-size:30px;display:inline-block;margin:6px 5px 0 0}.stat span{font-size:11px;color:#bba69d}.stat.accent{background:linear-gradient(135deg,rgba(255,106,19,.2),rgba(215,35,15,.11));border-color:rgba(255,106,19,.28)}.tiny-note{font-size:11px;color:#bda99f}.ghost-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.ghost-cell{aspect-ratio:1;border-radius:18px;border:1px dashed rgba(255,255,255,.18);background:rgba(255,255,255,.035);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;position:relative;overflow:hidden}.ghost-cell .ghost-face{font-size:34px;filter:grayscale(1);opacity:.27}.ghost-cell b{font-size:9px;color:#9f8980}.ghost-cell.locked:after{content:"🔒";position:absolute;right:7px;top:7px;font-size:10px;opacity:.7}.reward-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.reward-item{display:grid;grid-template-columns:72px 1fr;gap:12px;border-radius:18px;padding:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}.reward-item .score{height:72px;border-radius:17px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#ff6c18,#b71d0d);font-weight:950;font-size:22px}.reward-item .score small{font-size:9px}.reward-item h3{font-size:14px;margin:1px 0 5px}.reward-item p{font-size:11px;color:#d2bdb4;line-height:1.5;margin:0}.reward-item .qty{display:inline-block;margin-top:7px;color:var(--yellow);font-size:10px;font-weight:900}.reward-item.jackpot{grid-column:1/-1;background:linear-gradient(120deg,rgba(255,157,0,.15),rgba(255,49,16,.08));border-color:rgba(255,198,59,.32)}.special-card{padding:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,rgba(89,26,94,.8),rgba(23,5,18,.9))}.special-card h2{margin:5px 0 7px}.special-card p{margin:0;color:#ecdbea;line-height:1.6;font-size:12px}.special-icon{font-size:48px}.map-card{overflow:hidden}.map-card iframe{border:0;width:100%;height:62vh;min-height:500px;display:block}.map-actions{padding:12px}.link-btn{display:block;text-decoration:none;text-align:center}.login-gate{text-align:center;padding:28px 12px}.lock-icon{font-size:42px}.login-gate h3{font-size:21px;margin:8px 0}.login-gate p{color:var(--muted);max-width:510px;margin:0 auto 18px;line-height:1.6;font-size:13px}.empty-state{text-align:center;padding:24px;color:var(--muted)}.empty-state span{font-size:38px;display:block}.empty-state b{display:block;color:#fff;margin:8px 0}.empty-state p{font-size:12px;margin:0}.bottom-nav{position:fixed;z-index:50;left:50%;transform:translateX(-50%);bottom:0;width:min(760px,100%);display:grid;grid-template-columns:repeat(4,1fr);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:rgba(14,3,2,.95);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -12px 35px rgba(0,0,0,.28)}.bottom-nav button{border:0;background:none;color:#a9958d;padding:5px 2px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;cursor:pointer}.bottom-nav button span{font-size:20px}.bottom-nav button b{font-size:10px}.bottom-nav button.active{color:#ff8127}.modal{position:fixed;inset:0;z-index:100;display:none;align-items:flex-end;justify-content:center}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(5px)}.modal-sheet{position:relative;z-index:2;width:min(640px,100%);max-height:88vh;overflow:auto;background:#180604;border:1px solid var(--line);border-radius:26px 26px 0 0;padding:24px;box-shadow:0 -20px 55px rgba(0,0,0,.42)}.close-btn{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.07);color:#fff;font-size:23px;cursor:pointer}.auth-sheet h2{margin:6px 0 16px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:rgba(255,255,255,.05);border-radius:13px;padding:4px;margin-bottom:14px}.auth-tabs button{border:0;background:none;color:#bfa9a0;padding:9px;border-radius:10px;font-weight:800}.auth-tabs button.active{background:#fff;color:#1e0703}.auth-form{display:grid;gap:11px}.auth-form.hidden{display:none}.auth-form label{font-size:11px;color:#cbb5ac;display:grid;gap:5px}.auth-form input{height:46px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;padding:0 12px;outline:none}.text-btn{border:0;background:none;color:#ff9e63;padding:8px;cursor:pointer}.restaurant-sheet{padding-top:54px}.detail-hero{border-radius:19px;aspect-ratio:16/9;background:radial-gradient(circle at 50% 40%,#6c2211,#2c0703 70%);display:flex;align-items:center;justify-content:center;color:#d9bfb3;flex-direction:column;gap:6px}.detail-hero span{font-size:48px;opacity:.6;filter:grayscale(1)}.detail-content h2{font-size:26px;margin:16px 0 5px}.detail-menu{font-size:17px;color:var(--yellow);font-weight:900;margin:0 0 13px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.detail-box{padding:11px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}.detail-box small{display:block;color:#ac948a;font-size:9px;margin-bottom:4px}.detail-box b{font-size:12px}.story-box{padding:14px;border-radius:15px;background:rgba(255,255,255,.045);margin-bottom:12px}.story-box h3{font-size:13px;margin:0 0 6px}.story-box p{font-size:12px;color:#d0bbb2;line-height:1.6;margin:0}.detail-actions{display:grid;gap:8px}.black-btn{background:#020202;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:13px;font-weight:900;text-align:center;text-decoration:none;cursor:pointer}.orange-outline{background:rgba(255,106,19,.1);color:#ffb17c;border:1px solid rgba(255,106,19,.32);border-radius:14px;padding:13px;font-weight:900;cursor:pointer}.points-outline{background:rgba(255,198,59,.08);color:#ffd96b;border:1px solid rgba(255,198,59,.25);border-radius:14px;padding:13px;font-weight:900;cursor:pointer}.mission-modal{align-items:center}.mission-sheet{position:relative;z-index:2;width:min(430px,92vw);border-radius:32px;padding:30px;text-align:center;background:radial-gradient(circle at 50% 20%,#5e1407,#190402 64%);border:1px solid rgba(255,198,59,.35);box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:hidden}.confetti{color:var(--yellow);letter-spacing:12px;margin-bottom:8px;animation:float 2s ease-in-out infinite}.mission-ghost{font-size:100px;filter:drop-shadow(0 14px 25px rgba(255,92,12,.25));animation:bob 1.8s ease-in-out infinite}.mission-sheet h2{font-size:34px;margin:4px 0 5px}.mission-sheet>p{font-size:12px;color:#d4bbb1;line-height:1.6}.mission-character{display:grid;gap:2px;padding:12px;border-radius:15px;background:rgba(255,255,255,.06);margin:13px 0}.mission-character b{color:var(--yellow)}.mission-character span{font-size:11px;color:#c9afa5}.mission-count{display:block;margin:11px 0 15px}.mission-sheet>small{display:block;margin-top:10px;color:#a88f84}.toast{position:fixed;z-index:200;left:50%;bottom:92px;transform:translate(-50%,20px);opacity:0;background:#fff;color:#1d0602;padding:11px 14px;border-radius:999px;font-size:12px;font-weight:900;transition:.22s;pointer-events:none;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes bob{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes float{50%{transform:translateY(-4px)}}
@media(max-width:760px){body{padding-bottom:82px}.partner-strip{grid-template-columns:repeat(4,1fr);padding:6px 8px}.logo-card{min-height:36px;border-radius:8px}.logo-card img{max-height:30px}.utility-row{padding:7px 10px}.account-btn{font-size:11px;padding:8px 10px}.countdown-bar{padding:6px 10px 8px}.countdown-bar>div:first-child{display:grid;gap:0}.countdown{gap:5px}.countdown b{font-size:13px}.page{padding:12px 10px 25px}.hero-panel{min-height:440px;padding:20px;border-radius:24px;background-position:49% 18%}.hero-copy{max-width:90%}.hero-copy h1{font-size:38px}.hero-copy p{font-size:13px;line-height:1.55}.hero-badge{width:84px;height:84px;right:16px;top:16px;bottom:auto}.hero-badge b{font-size:30px}.hero-badge span{font-size:9px}.content-card{padding:14px;border-radius:20px}.section-heading{align-items:center}.section-heading h2{font-size:20px}.restaurant-grid{grid-template-columns:1fr}.page-title-card{padding:20px;border-radius:22px}.page-title-card h1{font-size:32px}.page-title-card p{font-size:12px}.stat-row{grid-template-columns:repeat(3,1fr);gap:7px}.stat{padding:11px;border-radius:15px}.stat small{font-size:9px;min-height:22px}.stat strong{font-size:23px}.ghost-grid{grid-template-columns:repeat(4,1fr);gap:7px}.ghost-cell{border-radius:14px}.ghost-cell .ghost-face{font-size:28px}.reward-list{grid-template-columns:1fr}.reward-item.jackpot{grid-column:auto}.special-card{padding:17px}.map-card iframe{height:58vh;min-height:420px}.modal-sheet{max-height:90vh}.detail-grid{grid-template-columns:1fr 1fr}.bottom-nav button span{font-size:18px}.bottom-nav button b{font-size:9px}}
@media(min-width:900px){.bottom-nav{bottom:16px;border-radius:20px;border-bottom:1px solid rgba(255,255,255,.12)}body{padding-bottom:105px}.hero-panel{min-height:480px}}

/* V3.1 refinements */
.bg-art{background-size:100% auto;background-position:center top;background-repeat:no-repeat;background-color:#150402}
.hero-panel{aspect-ratio:1054/1492;min-height:0;background-size:contain;background-position:center top;background-repeat:no-repeat;background-color:#150402}
.countdown-bar{padding-top:12px;padding-bottom:14px}
.countdown-bar>div:first-child span{font-size:14px}.countdown-bar>div:first-child strong{font-size:16px}
.countdown{gap:12px}.countdown span{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);border-radius:12px;padding:7px 9px;min-width:60px;justify-content:center}.countdown b{font-size:28px}.countdown small{font-size:10px}
.reward-progress-card{overflow:hidden}.current-score{color:var(--yellow);font-size:20px}.tier-track{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.tier-step{position:relative;text-align:center;padding:12px 6px;border-radius:15px;background:rgba(255,255,255,.05);border:1px solid var(--line)}.tier-step b{display:block;font-size:18px;color:var(--yellow)}.tier-step small{display:block;font-size:9px;color:#c9afa5;margin-top:4px;line-height:1.3}.tier-step.current{background:linear-gradient(135deg,rgba(255,106,19,.22),rgba(255,198,59,.09));border-color:rgba(255,198,59,.45)}.tier-hint{font-size:11px;color:#bda99f;margin:11px 0 0;line-height:1.5}
@media(max-width:760px){.hero-panel{aspect-ratio:1054/1492;min-height:0;background-size:contain;background-position:center top}.hero-copy{max-width:96%}.countdown-bar{display:grid;grid-template-columns:1fr;gap:7px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.countdown span{min-width:0;padding:7px 4px}.countdown b{font-size:24px}.countdown-bar>div:first-child{display:flex;justify-content:center;gap:7px}.tier-track{grid-template-columns:repeat(3,1fr)}}

/* V3.2 — compact artwork + prominent centered countdown */
.site-header .countdown-bar{display:none!important}
.hero-panel{height:300px!important;min-height:0!important;aspect-ratio:auto!important;padding:0!important;margin-bottom:14px!important;background-image:url('assets/tasty-background.jpeg')!important;background-size:cover!important;background-position:center 14%!important;background-repeat:no-repeat!important;border-radius:24px!important}
.hero-panel:after{background:linear-gradient(180deg,rgba(10,0,0,.02),rgba(10,0,0,.10))!important}
.hero-copy,.hero-badge{display:none!important}
.countdown-feature{margin:0 0 16px;padding:24px 18px 26px;text-align:center;border:1px solid rgba(255,198,59,.22);border-radius:24px;background:linear-gradient(145deg,rgba(35,7,4,.96),rgba(17,3,2,.96));box-shadow:var(--shadow)}
.countdown-heading{display:flex;justify-content:center;align-items:baseline;gap:10px;margin-bottom:17px}
.countdown-heading span{font-size:16px;color:#ead5cb;font-weight:800}.countdown-heading strong{font-size:18px;color:var(--yellow)}
.countdown-feature .countdown{display:grid;grid-template-columns:repeat(4,minmax(0,150px));justify-content:center;gap:12px}
.countdown-feature .countdown span{min-height:104px;padding:12px 8px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.055);border:1px solid rgba(255,198,59,.22)}
.countdown-feature .countdown b{font-size:52px;line-height:1;font-variant-numeric:tabular-nums;color:var(--yellow)}
.countdown-feature .countdown small{margin-top:8px;font-size:13px;color:#d9c1b6}
@media(max-width:760px){
 .hero-panel{height:180px!important;border-radius:18px!important;background-position:center 12%!important}
 .countdown-feature{padding:20px 10px 22px;border-radius:20px}
 .countdown-heading{display:grid;gap:3px;margin-bottom:14px}.countdown-heading span{font-size:15px}.countdown-heading strong{font-size:17px}
 .countdown-feature .countdown{grid-template-columns:repeat(4,1fr);gap:7px}
 .countdown-feature .countdown span{min-height:86px;padding:9px 3px;border-radius:14px}
 .countdown-feature .countdown b{font-size:36px}.countdown-feature .countdown small{font-size:10px;margin-top:6px}
}
@media(min-width:900px){.hero-panel{height:340px!important}}
/* V3.3 — new wide hero artwork + navigation CTA on restaurant cards */
.hero-panel{height:auto!important;aspect-ratio:1536/614!important;background-size:cover!important;background-position:center center!important;border-radius:20px!important}
.card-actions{grid-template-columns:1fr 1fr!important}
.navigate-btn{grid-column:1/-1;width:100%;border:0;border-radius:14px;padding:13px 14px;background:#050505;color:#fff;font-weight:900;cursor:pointer;border:1px solid rgba(255,255,255,.15);font-size:14px}
@media(max-width:760px){.hero-panel{height:auto!important;aspect-ratio:1536/614!important;background-size:cover!important;background-position:center center!important;border-radius:16px!important}.navigate-btn{padding:13px 10px}}

.restaurant-photo{width:100%;height:100%;object-fit:cover;display:block}
.image-fallback{position:absolute;inset:0}
.detail-image{width:100%;max-height:440px;object-fit:cover;display:block;background:#17100d}
button:disabled{opacity:.45;cursor:not-allowed}


/* V3.5 — galleries, counts, multi-branch navigation, full reward details */
.mission-period-bar{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 12px;background:linear-gradient(90deg,#330704,#72130b,#330704);border-top:1px solid rgba(255,198,59,.18);border-bottom:1px solid rgba(255,198,59,.22);font-size:12px;color:#f3d9ce}
.mission-period-bar strong{color:var(--yellow);font-size:13px}
.restaurant-counts{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
.restaurant-counts::-webkit-scrollbar{display:none}
.count-pill{flex:0 0 auto;min-width:88px;border:1px solid var(--line);background:rgba(255,255,255,.045);color:#f4dfd6;border-radius:15px;padding:9px 12px;display:grid;gap:1px;text-align:left;cursor:pointer}
.count-pill b{font-size:19px;color:var(--yellow)}.count-pill span{font-size:10px;color:#c9afa5}
.count-pill.active{border-color:rgba(255,198,59,.5);background:linear-gradient(135deg,rgba(255,106,19,.20),rgba(255,198,59,.08))}
.photo-shell{overflow:hidden}
.swipe-gallery{position:relative;width:100%;height:100%;background:#130503}
.gallery-track{display:flex;width:100%;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;border:0;padding:0;background:#130503;cursor:zoom-in}
.gallery-slide img{pointer-events:none}
.gallery-dots{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);display:flex;gap:5px;padding:5px 7px;border-radius:999px;background:rgba(0,0,0,.38);backdrop-filter:blur(5px)}
.gallery-dots i,.lightbox-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);transition:.2s}
.gallery-dots i.active,.lightbox-dots i.active{width:16px;border-radius:999px;background:#fff}
.detail-gallery{aspect-ratio:16/9;border-radius:18px;overflow:hidden}
.detail-box.full{grid-column:1/-1}
.branch-sheet h2{padding-right:38px}
.branch-options{display:grid;gap:10px;margin-top:15px}
.branch-option{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.055);color:#fff;border-radius:16px;padding:13px;cursor:pointer}
.branch-option>span{font-size:24px}.branch-option div{display:grid;gap:2px}.branch-option div small{color:#bda79d;font-size:10px}.branch-option>strong{color:var(--yellow);font-size:11px}
.image-lightbox{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.95);padding:24px}
.image-lightbox.open{display:flex}
.image-lightbox img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:12px}
.lightbox-close{position:absolute;right:18px;top:calc(18px + env(safe-area-inset-top));z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.55);color:#fff;font-size:30px}
.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:58px;border:0;border-radius:16px;background:rgba(0,0,0,.48);color:#fff;font-size:44px;line-height:1}
.lightbox-arrow.prev{left:14px}.lightbox-arrow.next{right:14px}
.lightbox-dots{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(0,0,0,.55)}
.reward-detail-card .reward-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.reward-item{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:17px;padding:14px}
.reward-item.jackpot{border-color:rgba(255,198,59,.48);background:linear-gradient(145deg,rgba(255,94,0,.16),rgba(255,198,59,.07))}
.reward-icon{font-size:29px}.reward-item span{font-size:9px;color:#c19e8d;text-transform:uppercase}.reward-item h3{font-size:15px;margin:2px 0}.reward-item b{color:var(--yellow);font-size:13px}.reward-item p{margin:5px 0 4px;color:#dac4ba;font-size:11px;line-height:1.5}.reward-item small{color:#ffab72;font-size:10px}
.points-separation-note{margin-top:12px;padding:13px;border-radius:15px;background:rgba(255,198,59,.08);border:1px solid rgba(255,198,59,.22)}.points-separation-note b{color:var(--yellow)}.points-separation-note p{margin:5px 0 0;font-size:11px;line-height:1.55;color:#d2bbb1}
.rule-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rule-steps>div{position:relative;padding:14px 11px;border-radius:15px;background:rgba(255,255,255,.045);border:1px solid var(--line);display:grid;gap:4px}.rule-steps span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ff6a13;color:#fff;font-weight:900}.rule-steps b{font-size:12px}.rule-steps small{font-size:10px;line-height:1.45;color:#bda89e}
.points-special{margin-top:14px}
.sponsor-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.sponsor-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;color:#fff;border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:15px;padding:13px;font-weight:800}.sponsor-links a span{font-size:10px;color:var(--yellow)}
@media(max-width:760px){
  .mission-period-bar{font-size:11px;gap:7px}.mission-period-bar strong{font-size:12px}
  .reward-detail-card .reward-list{grid-template-columns:1fr}
  .rule-steps{grid-template-columns:1fr 1fr}
  .sponsor-links{grid-template-columns:1fr}
  .lightbox-arrow{width:40px;height:50px;font-size:36px}
}

/* V3.6 — Reward Journey */
.reward-journey{margin-top:12px;padding:17px 16px 26px;border-radius:20px;background:radial-gradient(circle at 15% 0%,rgba(255,196,53,.16),transparent 38%),linear-gradient(145deg,#220805,#110403);border:1px solid rgba(255,196,53,.24);overflow:hidden}
.journey-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}
.journey-head>div:first-child{display:flex;align-items:baseline;gap:7px}.journey-head small{color:#c9ada0;font-size:10px}.journey-head strong{font-size:32px;color:var(--yellow);line-height:1}
.journey-next{font-size:11px;color:#e8d3c9;background:rgba(255,255,255,.06);border:1px solid var(--line);padding:8px 10px;border-radius:12px;text-align:right}.journey-next b,.journey-next strong{color:var(--yellow);font-size:inherit}
.journey-line-wrap{position:relative;height:108px;margin:0 35px}
.journey-line{position:absolute;left:0;right:0;top:24px;height:8px;border-radius:999px;background:#3b2721;border:1px solid rgba(255,255,255,.08);overflow:hidden}
.journey-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#ff5a13,#ffc63b);box-shadow:0 0 16px rgba(255,128,20,.5)}
.journey-stops{position:absolute;inset:0;display:block}
.journey-stop{position:absolute;top:0;transform:translateX(-50%);width:78px;text-align:center}
.stop-bubble{margin:auto;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#25100c;border:3px solid #594038;font-size:22px;box-shadow:0 5px 16px rgba(0,0,0,.35)}
.journey-stop.reached .stop-bubble{border-color:#ffc63b;background:#6f1b09;box-shadow:0 0 20px rgba(255,198,59,.35)}
.journey-stop b{display:block;color:#ffc63b;font-size:11px;margin-top:7px}.journey-stop small{display:block;color:#baa198;font-size:8px;line-height:1.2;margin-top:2px}
.inline-sponsor{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:9px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,198,59,.18);color:#f4ddd2;text-decoration:none;font-size:9px;font-weight:700}
.inline-sponsor strong{color:var(--yellow);white-space:nowrap}
.reward-item.tier-2{border-color:rgba(87,188,255,.24)}.reward-item.tier-3{border-color:rgba(183,132,255,.25)}.reward-item.tier-4{border-color:rgba(255,109,70,.28)}.reward-item.tier-5{border-color:rgba(93,220,159,.25)}
@media(max-width:760px){
 .journey-line-wrap{margin:0 25px;height:104px}.journey-stop{width:62px}.stop-bubble{width:42px;height:42px;font-size:19px}.journey-line{top:21px}
 .journey-stop small{font-size:7px}.journey-head{align-items:flex-start}.journey-next{max-width:58%}
}

.account-summary{display:grid;gap:9px;margin:14px 0 18px}.account-summary>div{padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.045)}.account-summary small{display:block;color:#ac948a;font-size:10px;margin-bottom:4px}.account-summary strong{font-size:14px;word-break:break-word}.auth-form button:disabled{opacity:.55;cursor:wait}
.mission-ghost-image{width:150px;height:150px;object-fit:contain;margin:2px auto 8px;filter:drop-shadow(0 14px 25px rgba(255,92,12,.25));animation:bob 1.8s ease-in-out infinite}.ghost-cell.unlocked{border-style:solid;border-color:rgba(255,198,59,.35);background:linear-gradient(145deg,rgba(255,106,19,.12),rgba(255,255,255,.04))}.ghost-cell.unlocked img{width:72%;height:72%;object-fit:contain}.ghost-cell.unlocked b{color:#ffe2a1;max-width:92%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.evidence-form{display:grid;gap:12px}.evidence-form.hidden,.hidden{display:none!important}.evidence-form label{display:grid;gap:6px;font-size:12px;color:#d5beb4;font-weight:800}.evidence-form label small{font-weight:500;color:#a99187}.evidence-form input,.evidence-form select{width:100%;min-height:48px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;padding:10px 12px;outline:none}.evidence-form select option{color:#111;background:#fff}.evidence-form input[type=file]{padding:11px}.form-help{margin:0;color:#bba39a;font-size:11px;line-height:1.55}.evidence-preview{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#090201}.evidence-preview img{display:block;width:100%;max-height:360px;object-fit:contain}.evidence-list{display:grid;gap:9px}.evidence-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.045)}.evidence-item b{display:block;font-size:13px}.evidence-item small{display:block;color:#aa9389;font-size:10px;margin-top:4px}.evidence-item p{margin:5px 0 0;color:#d1bbb1;font-size:10px}.evidence-status{white-space:nowrap;border-radius:999px;padding:7px 9px;font-size:10px;font-weight:900}.evidence-status.pending{background:rgba(255,198,59,.12);color:#ffd765;border:1px solid rgba(255,198,59,.25)}.evidence-status.approved{background:rgba(75,205,120,.12);color:#8be0a8;border:1px solid rgba(75,205,120,.25)}.evidence-status.rejected{background:rgba(255,80,70,.12);color:#ff9a91;border:1px solid rgba(255,80,70,.25)}
.admin-evidence-list{display:grid;gap:14px}.admin-evidence-card{border:1px solid rgba(255,190,100,.22);background:rgba(24,5,3,.72);border-radius:18px;padding:16px;display:grid;gap:12px}.admin-evidence-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.admin-evidence-head small,.admin-meta{opacity:.72}.admin-proof{width:100%;max-height:420px;object-fit:contain;background:#090202;border-radius:14px}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.approve-btn,.reject-btn{border:0;border-radius:14px;padding:13px;font-weight:800}.approve-btn{background:#e9b341;color:#1a0802}.reject-btn{background:#3a1714;color:#fff}.admin-note-input{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.06);color:#fff;padding:12px}.admin-post-link{color:#ffd36c;overflow-wrap:anywhere}.admin-badge{font-size:12px;border:1px solid rgba(255,211,108,.4);padding:5px 8px;border-radius:999px}.full{width:100%}@media(max-width:600px){.admin-actions{grid-template-columns:1fr}}

.restaurant-photo.image-failed,#lightboxImage.image-failed{background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.015));min-height:220px;object-fit:contain}

#nearMeBtn.active{border-color:rgba(255,196,64,.65);background:rgba(255,153,31,.18);color:#ffd36b}.near-distance{border-color:rgba(255,190,50,.3)!important;color:#ffd36b!important}

/* V3.11.3 Safari image resilience */
.restaurant-photo.image-failed{
  min-height:260px;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,190,56,.10),transparent 32%),
    rgba(20,5,3,.72);
  color:transparent;
}

/* ===== V3.12 image loading states ===== */
.restaurant-photo,#lightboxImage{opacity:0;transition:opacity .25s ease}
.restaurant-photo.img-ready,#lightboxImage.img-ready{opacity:1}
.restaurant-photo.image-failed,#lightboxImage.image-failed{opacity:1}
.gallery-slide.img-loading{position:relative}
.gallery-slide.img-loading::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,255,255,.03) 20%,rgba(255,255,255,.10) 45%,rgba(255,255,255,.03) 70%);
  background-size:220% 100%;animation:photoShimmer 1.1s linear infinite}
@keyframes photoShimmer{0%{background-position:130% 0}100%{background-position:-30% 0}}
@media (prefers-reduced-motion:reduce){.gallery-slide.img-loading::after{animation:none}}
/* keep a failed card photo inside the 16:10 shell instead of stretching it */
.gallery-slide .restaurant-photo.image-failed{min-height:0;height:100%;width:100%}
.gallery-slide:has(.image-failed)::before{
  content:"🍽️";position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;font-size:34px;opacity:.35;filter:grayscale(1)}

/* V3.13 requested UI refinements */
.mission-period-bar{font-size:clamp(16px,2.8vw,22px)!important;padding:15px 14px!important;gap:12px!important}
.mission-period-bar strong{font-size:1.12em!important}
#page-passport .stat-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}


/* ===== V3.14 performance + reliability ===== */
.map-actions{padding:12px;border-top:1px solid var(--line);background:rgba(255,255,255,.025)}
#expandMapBtn{min-height:46px}
.resubmit-note{color:#ffd36b!important;font-weight:800}
.restaurant-skeleton-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;grid-column:1/-1}
.restaurant-skeleton{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.045)}
.sk-photo{aspect-ratio:16/10;background:linear-gradient(100deg,rgba(255,255,255,.035) 20%,rgba(255,255,255,.10) 45%,rgba(255,255,255,.035) 70%);background-size:220% 100%;animation:photoShimmer 1.1s linear infinite}
.sk-body{padding:14px;display:grid;gap:9px}.sk-body i{display:block;height:12px;border-radius:999px;background:rgba(255,255,255,.08)}.sk-body i:nth-child(1){width:72%;height:18px}.sk-body i:nth-child(2){width:48%}.sk-body i:nth-child(3){width:86%}
@media(max-width:760px){.restaurant-skeleton-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sk-photo{animation:none}}

/* ===== V3.15 final polish: responsive food photos + zoom cue + RUN special ===== */
.restaurant-photo.is-portrait{
  object-fit:contain!important;
  object-position:center center!important;
  background:linear-gradient(135deg,#160503,#080201);
}
.photo-zoom-hint{
  position:absolute;
  z-index:6;
  top:10px;
  right:10px;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:5px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(0,0,0,.58);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:10px;
  font-weight:850;
  letter-spacing:.01em;
  line-height:1;
  box-shadow:0 5px 18px rgba(0,0,0,.22);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
}
.gallery-dots{z-index:7}
.reward-brand-logo{
  display:block;
  width:min(230px,100%);
  max-height:72px;
  object-fit:contain;
  object-position:left center;
  margin:9px 0 7px;
  padding:8px 10px;
  border-radius:12px;
  background:#fff;
}
.run-special-card{
  padding:0!important;
  overflow:hidden;
  border-color:rgba(255,117,23,.38)!important;
  background:linear-gradient(145deg,rgba(72,12,4,.96),rgba(13,3,2,.98))!important;
}
.run-special-image-wrap{aspect-ratio:16/9;overflow:hidden;background:#070707}
.run-special-image-wrap img{width:100%;height:100%;display:block;object-fit:cover}
.run-special-copy{padding:18px 20px 20px}
.run-special-copy h2{font-size:25px;margin:5px 0 8px}
.run-special-copy p{margin:0;color:#ead3c8;line-height:1.65;font-size:12px}
.run-special-copy p strong{color:#fff}
.run-special-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.run-special-meta span{padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);font-size:10px;color:#f6dfd4;font-weight:750}
.run-status{margin-top:12px;padding:11px 12px;border-radius:13px;text-align:center;background:rgba(255,198,59,.08);border:1px solid rgba(255,198,59,.22);color:#ffd76c;font-size:11px;font-weight:900}
.run-status.eligible{background:rgba(77,205,123,.10);border-color:rgba(77,205,123,.28);color:#9be7b5}
.run-status.closed{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.11);color:#cdb8ae}
@media(min-width:800px){
  .run-special-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);align-items:stretch}
  .run-special-image-wrap{aspect-ratio:auto;min-height:300px}
  .run-special-copy{display:flex;flex-direction:column;justify-content:center;padding:28px}
}


/* V3.16 — multi-restaurant evidence, sponsor bands, YEC contact */
.inline-sponsor{display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center!important;gap:8px!important;margin-top:12px!important;padding:11px 12px!important;border-radius:13px!important;color:#fff!important;font-size:10px!important;font-weight:850!important;box-shadow:0 8px 20px rgba(0,0,0,.22)!important}
.inline-sponsor span{font-size:8px!important;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.82)!important}.inline-sponsor b{font-size:12px;line-height:1.3}.inline-sponsor strong{font-size:9px;color:#fff!important;white-space:nowrap}
.inline-sponsor.sponsor-chomchan{background:linear-gradient(105deg,#e54212,#ff8a12 58%,#ffbb31)!important;border:1px solid rgba(255,214,102,.75)!important}
.inline-sponsor.sponsor-view{background:linear-gradient(105deg,#4b32b8,#7357e8 55%,#9b63ff)!important;border:1px solid rgba(205,190,255,.72)!important}
.evidence-picker-block{display:grid;gap:9px}.evidence-picker-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.evidence-picker-title>div{display:grid;gap:3px}.evidence-picker-title b{font-size:13px;color:#fff}.evidence-picker-title small{font-size:10px;color:#bca69d}.evidence-picker-title>span{white-space:nowrap;padding:7px 9px;border-radius:999px;background:rgba(255,198,59,.12);border:1px solid rgba(255,198,59,.28);color:#ffd96b;font-size:10px;font-weight:900}
.evidence-picker-search{height:46px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.06);display:flex;align-items:center;gap:8px;padding:0 11px}.evidence-picker-search span{font-size:20px;color:#c6afa6}.evidence-picker-search input{height:auto!important;min-height:0!important;border:0!important;background:transparent!important;padding:0!important}
.evidence-restaurant-list{max-height:320px;overflow:auto;display:grid;gap:7px;padding:3px 2px;scrollbar-width:thin}.evidence-restaurant-option{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.045);cursor:pointer;transition:.16s}.evidence-restaurant-option:hover{background:rgba(255,255,255,.075)}.evidence-restaurant-option input{position:absolute;opacity:0;pointer-events:none}.evidence-check{width:23px;height:23px;border-radius:7px;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;color:transparent;background:rgba(0,0,0,.18);font-size:12px;font-weight:900}.evidence-restaurant-option:has(input:checked){border-color:rgba(255,198,59,.55);background:rgba(255,136,28,.11)}.evidence-restaurant-option:has(input:checked) .evidence-check{color:#160402;background:var(--yellow);border-color:var(--yellow)}.evidence-restaurant-name{display:grid;gap:2px}.evidence-restaurant-name b{font-size:12px;color:#fff}.evidence-restaurant-name small{font-size:9px;color:#aa948b}.evidence-restaurant-option em{font-style:normal;font-size:9px;color:#91d9a8;background:rgba(70,195,115,.12);border:1px solid rgba(70,195,115,.22);padding:5px 7px;border-radius:999px}.evidence-restaurant-option.used{opacity:.55;cursor:not-allowed}.evidence-restaurant-option.search-hidden{display:none}.evidence-selection-summary{padding:10px 11px;border-radius:12px;background:rgba(255,198,59,.07);border:1px solid rgba(255,198,59,.17);font-size:10px;color:#cdb7ad}.evidence-selection-summary b,.evidence-selection-summary strong{color:var(--yellow)}
.form-help strong{color:#ffcf55}.admin-multi-note{padding:9px 10px;border-radius:11px;background:rgba(255,198,59,.07);border:1px solid rgba(255,198,59,.15);font-size:9px;line-height:1.45;color:#d9c3b9}
.yec-contact-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;background:linear-gradient(135deg,rgba(21,74,153,.28),rgba(10,22,52,.76))!important;border-color:rgba(73,142,255,.34)!important}.yec-contact-card h2{margin:4px 0 6px}.yec-contact-card p{margin:0;color:#c9d6ee;font-size:11px;line-height:1.55}.yec-contact-btn{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;background:linear-gradient(135deg,#1877f2,#0d55bd);border:1px solid rgba(255,255,255,.24);padding:13px 15px;border-radius:14px;font-weight:900;white-space:nowrap}.yec-contact-btn strong{font-size:9px;color:#dbeaff}
@media(max-width:760px){.inline-sponsor{grid-template-columns:1fr auto!important}.inline-sponsor span{grid-column:1/-1}.evidence-restaurant-list{max-height:300px}.yec-contact-card{grid-template-columns:1fr}.yec-contact-btn{justify-content:space-between}}


/* V3.17 — one evidence image per selected restaurant */
.evidence-per-store-block{display:grid;gap:9px;margin-top:2px}
.evidence-per-store-head{display:grid;gap:4px;padding:11px 12px;border-radius:13px;background:rgba(255,198,59,.07);border:1px solid rgba(255,198,59,.18)}
.evidence-per-store-head b{font-size:13px;color:#fff}.evidence-per-store-head small{font-size:10px;line-height:1.55;color:#c4aca2}
.evidence-photo-fields{display:grid;gap:10px}.evidence-photo-empty{padding:16px;border:1px dashed rgba(255,255,255,.17);border-radius:14px;text-align:center;color:#a99187;font-size:11px}
.evidence-photo-card{border:1px solid var(--line);border-radius:16px;padding:12px;background:rgba(255,255,255,.04);display:grid;gap:10px}.evidence-photo-card.has-file{border-color:rgba(75,205,120,.34);background:rgba(75,205,120,.055)}
.evidence-photo-title{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.evidence-photo-title>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#ff6a13;color:#fff;font-weight:900;font-size:11px}.evidence-photo-title>div{display:grid;gap:2px;min-width:0}.evidence-photo-title b{font-size:12px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-photo-title small{font-size:9px;color:#aa948b}.evidence-photo-title em{font-style:normal;font-size:9px;padding:5px 7px;border-radius:999px;color:#ffca8d;background:rgba(255,106,19,.1);border:1px solid rgba(255,106,19,.2)}.evidence-photo-card.has-file .evidence-photo-title em{color:#90e2ac;background:rgba(75,205,120,.11);border-color:rgba(75,205,120,.23)}
.evidence-file-btn{display:flex!important;min-height:44px;border-radius:12px!important;border:1px solid rgba(255,255,255,.16)!important;background:rgba(255,255,255,.065)!important;align-items:center;justify-content:center;cursor:pointer;color:#fff!important;font-weight:900!important}.evidence-file-btn input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.evidence-file-btn span{font-size:11px}
.evidence-store-preview{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:10px;padding:8px;border-radius:12px;background:#090201}.evidence-store-preview img{width:72px;height:72px;object-fit:cover;border-radius:9px;background:#160604}.evidence-store-preview small{font-size:9px;color:#bda79d;overflow-wrap:anywhere}

/* ===== V3.19 content polish: partner order, mystery ghosts, sponsor artwork, light WOW feedback ===== */
.partner-strip{
  grid-template-columns:.85fr 1.35fr .78fr 1.3fr 1.12fr!important;
  align-items:stretch;
}
.partner-strip .logo-card{
  min-width:0;
  background:#fff;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 5px 14px rgba(0,0,0,.16);
}
.partner-strip .logo-card img{width:100%;height:42px;max-height:42px;object-fit:contain}
.partner-strip .logo-order-1{background:#050505}
.partner-strip .logo-order-1 img{height:44px;max-height:44px}
.partner-strip .logo-order-4 img{object-fit:contain}

/* Locked passport characters: show only an intentionally blurred black silhouette. */
.ghost-cell.locked{background:radial-gradient(circle at 50% 42%,rgba(255,198,59,.11),rgba(255,255,255,.025) 65%)}
.ghost-cell.locked:after{content:"🔒";right:7px;top:7px;font-size:10px;opacity:.62}
.ghost-mystery{position:relative;width:78%;height:70%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ghost-mystery img{
  width:84%;height:84%;object-fit:contain;
  filter:brightness(0) grayscale(1) blur(5px);
  opacity:.58;
  transform:scale(.92);
  user-select:none;pointer-events:none;
}
.ghost-mystery span{
  position:absolute;inset:0;display:grid;place-items:center;
  color:rgba(255,255,255,.72);font-size:24px;font-weight:950;
  text-shadow:0 2px 9px rgba(0,0,0,.9);
}
.ghost-cell.locked b{letter-spacing:.16em;color:#937f77}

/* Sponsor artwork replaces text-only sponsor bands. */
.inline-sponsor-image{
  position:relative;display:block;margin-top:11px;padding:0!important;
  border-radius:14px;overflow:hidden;text-decoration:none;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.055);
  box-shadow:0 8px 22px rgba(0,0,0,.24);
}
.inline-sponsor-image img{display:block;width:100%;height:auto;max-height:145px;object-fit:contain;background:#fff}
.inline-sponsor-image span{
  position:absolute;right:8px;bottom:8px;padding:5px 8px;border-radius:999px;
  background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.22);
  color:#fff;font-size:9px;font-weight:900;backdrop-filter:blur(8px)
}

/* Gentle, fast interaction feedback. No video and no continuous heavy animation. */
button,.black-btn,.orange-outline,.points-outline,.yec-contact-btn,.inline-sponsor-image{
  -webkit-tap-highlight-color:transparent;
  transition:transform .16s ease,box-shadow .18s ease,filter .18s ease,border-color .18s ease;
}
.primary-btn,.secondary-btn,.claim-btn,.account-btn,.black-btn,.orange-outline,.points-outline,.yec-contact-btn{
  position:relative;overflow:hidden;isolation:isolate;
}
.primary-btn:after,.secondary-btn:after,.claim-btn:after,.account-btn:after,.black-btn:after,.orange-outline:after,.points-outline:after,.yec-contact-btn:after{
  content:"";position:absolute;z-index:-1;top:-40%;bottom:-40%;width:34%;left:-52%;
  transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transition:left .42s ease;pointer-events:none;
}
@media(hover:hover){
  .primary-btn:hover,.secondary-btn:hover,.claim-btn:hover,.account-btn:hover,.black-btn:hover,.orange-outline:hover,.points-outline:hover,.yec-contact-btn:hover,.inline-sponsor-image:hover{
    transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 12px 25px rgba(0,0,0,.28),0 0 18px rgba(255,116,32,.12)
  }
  .primary-btn:hover:after,.secondary-btn:hover:after,.claim-btn:hover:after,.account-btn:hover:after,.black-btn:hover:after,.orange-outline:hover:after,.points-outline:hover:after,.yec-contact-btn:hover:after{left:125%}
}
.tap-wow{animation:tapWow .30s ease!important}
.bottom-nav button.active span{filter:drop-shadow(0 0 7px rgba(255,126,39,.52));animation:navGlow 1.9s ease-in-out infinite}
@keyframes tapWow{0%{transform:scale(1)}36%{transform:scale(.965) rotate(-.25deg)}72%{transform:scale(1.018) rotate(.18deg)}100%{transform:scale(1)}}
@keyframes navGlow{50%{transform:translateY(-1px) scale(1.06)}}

@media(max-width:760px){
  .partner-strip{
    display:grid!important;grid-auto-flow:column!important;grid-template-columns:none!important;
    grid-auto-columns:minmax(104px,28vw)!important;overflow-x:auto!important;overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;padding:6px 8px!important;scrollbar-width:none;
  }
  .partner-strip::-webkit-scrollbar{display:none}
  .partner-strip .logo-card{scroll-snap-align:start;min-height:42px!important}
  .partner-strip .logo-card img{height:34px!important;max-height:34px!important}
  .partner-strip .logo-order-1 img{height:36px!important;max-height:36px!important}
  .inline-sponsor-image img{max-height:125px}
  .ghost-mystery img{filter:brightness(0) grayscale(1) blur(4px)}
}
@media(prefers-reduced-motion:reduce){
  button,.black-btn,.orange-outline,.points-outline,.yec-contact-btn,.inline-sponsor-image{transition:none!important;animation:none!important}
  .bottom-nav button.active span{animation:none!important}
  .tap-wow{animation:none!important}
}


/* ===== V3.20 visual motion + logo zoom + countdown polish ===== */
/* Zoom only partner logos 1–2. Cards 3–5 keep the approved proportions. */
.partner-strip .logo-order-1,.partner-strip .logo-order-2{padding:2px!important}
.partner-strip .logo-order-1 img{transform:scale(1.10);transform-origin:center;will-change:transform}
.partner-strip .logo-order-2 img{transform:scale(1.08);transform-origin:center;will-change:transform}

/* Countdown: clearer hierarchy, soft glow and lightweight digit motion. */
.countdown-feature{
  position:relative;overflow:hidden;isolation:isolate;
  border-color:rgba(255,198,59,.32)!important;
  background:
    radial-gradient(circle at 50% -30%,rgba(255,132,25,.18),transparent 48%),
    linear-gradient(145deg,rgba(43,8,4,.98),rgba(15,3,2,.98))!important;
  box-shadow:0 18px 48px rgba(0,0,0,.32),0 0 0 1px rgba(255,106,19,.04) inset!important;
}
.countdown-feature:before{
  content:"";position:absolute;z-index:-1;inset:-45% -15% auto;height:130%;
  background:conic-gradient(from 180deg at 50% 50%,transparent 0 35%,rgba(255,198,59,.12) 44%,rgba(255,94,24,.18) 52%,transparent 62% 100%);
  filter:blur(18px);animation:countAura 8s linear infinite;pointer-events:none;
}
.countdown-feature:after{
  content:"✦";position:absolute;right:18px;top:14px;color:#ffd163;font-size:14px;
  text-shadow:0 0 12px rgba(255,198,59,.7);animation:twinkle 2.4s ease-in-out infinite;
}
.countdown-heading{display:grid;gap:5px;margin-bottom:18px}
.countdown-heading span{font-size:15px!important;color:#f3ddd2!important;font-weight:800}
.countdown-heading strong{font-size:24px!important;color:#ffd25b!important;letter-spacing:.01em}
.countdown-feature .countdown span{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035))!important;
  border-color:rgba(255,198,59,.28)!important;
  box-shadow:0 12px 24px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.05);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.countdown-feature .countdown span:before{
  content:"";position:absolute;left:18%;right:18%;top:0;height:2px;border-radius:999px;
  background:linear-gradient(90deg,transparent,#ffca48,transparent);opacity:.9;
}
.countdown-feature .countdown b{
  text-shadow:0 0 18px rgba(255,183,41,.15);
  transform-origin:center;
}
.digit-tick{animation:digitTick .34s cubic-bezier(.22,.8,.25,1)}

/* Bottom navigation: active tab becomes a small glowing 'game dock' without heavy media. */
.bottom-nav{overflow:visible!important}
.bottom-nav button{position:relative;overflow:visible;min-height:52px;border-radius:14px;transition:color .18s ease,transform .18s ease,background .18s ease}
.bottom-nav button:before{
  content:"";position:absolute;left:50%;top:45%;width:46px;height:32px;transform:translate(-50%,-50%) scale(.72);
  border-radius:50%;background:radial-gradient(circle,rgba(255,111,24,.22),rgba(255,111,24,0) 70%);
  opacity:0;transition:opacity .2s ease,transform .2s ease;pointer-events:none;
}
.bottom-nav button:after{
  content:"";position:absolute;left:50%;bottom:1px;width:18px;height:3px;border-radius:999px;
  transform:translateX(-50%) scaleX(.25);background:linear-gradient(90deg,#ff6a13,#ffd35d);opacity:0;
  box-shadow:0 0 10px rgba(255,115,31,.65);transition:.2s ease;
}
.bottom-nav button.active{background:linear-gradient(180deg,rgba(255,104,20,.08),rgba(255,104,20,0));transform:translateY(-1px)}
.bottom-nav button.active:before{opacity:1;transform:translate(-50%,-50%) scale(1);animation:navHalo 2.2s ease-in-out infinite}
.bottom-nav button.active:after{opacity:1;transform:translateX(-50%) scaleX(1)}
.bottom-nav button.active span{animation:navFloat 2.1s ease-in-out infinite!important;filter:drop-shadow(0 0 8px rgba(255,126,39,.58))!important}
.bottom-nav button.tap-wow span{animation:navPop .28s ease!important}

/* Tiny playful touches on key controls. */
.user-dot{display:inline-block;animation:userDotPulse 2.5s ease-in-out infinite}
#nearMeBtn{box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
#nearMeBtn.active{border-color:rgba(255,198,59,.5);box-shadow:0 0 0 5px rgba(255,198,59,.055),0 0 18px rgba(255,145,31,.12);animation:radarBreath 2.4s ease-in-out infinite}
.chip.active{box-shadow:0 0 0 4px rgba(255,198,59,.055),0 8px 18px rgba(255,136,22,.10)}
.tap-wow:after{left:125%!important}

@keyframes digitTick{0%{opacity:.42;transform:translateY(-5px) scale(.96)}65%{opacity:1;transform:translateY(1px) scale(1.045)}100%{transform:none}}
@keyframes countAura{to{transform:rotate(360deg)}}
@keyframes twinkle{0%,100%{opacity:.42;transform:scale(.88) rotate(-8deg)}50%{opacity:1;transform:scale(1.12) rotate(8deg)}}
@keyframes navHalo{50%{opacity:.68;transform:translate(-50%,-50%) scale(1.12)}}
@keyframes navFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) scale(1.05)}}
@keyframes navPop{0%{transform:scale(1)}45%{transform:scale(.82) rotate(-4deg)}80%{transform:scale(1.14) rotate(3deg)}100%{transform:scale(1)}}
@keyframes userDotPulse{50%{opacity:.55;filter:drop-shadow(0 0 5px #ff7b2b)}}
@keyframes radarBreath{50%{box-shadow:0 0 0 8px rgba(255,198,59,.035),0 0 22px rgba(255,145,31,.15)}}

@media(max-width:760px){
  .partner-strip{display:flex!important;grid-template-columns:none!important;grid-auto-flow:initial!important;gap:7px!important}
  .partner-strip .logo-order-1{flex:0 0 82px!important}
  .partner-strip .logo-order-2{flex:0 0 150px!important}
  .partner-strip .logo-order-3,.partner-strip .logo-order-4,.partner-strip .logo-order-5{flex:0 0 104px!important}
  .partner-strip .logo-order-1 img{height:38px!important;max-height:38px!important;transform:scale(1.10)}
  .partner-strip .logo-order-2 img{height:38px!important;max-height:38px!important;transform:scale(1.06)}
  .countdown-heading strong{font-size:22px!important}
  .countdown-feature:after{right:12px;top:11px}
  .bottom-nav button{min-height:48px}
}
@media(prefers-reduced-motion:reduce){
  .countdown-feature:before,.countdown-feature:after,.digit-tick,.bottom-nav button.active:before,.bottom-nav button.active span,.user-dot,#nearMeBtn.active{animation:none!important}
}


/* ===== V3.21 point reveal + portrait blur ===== */
.point-reveal-card{
  overflow:hidden;
  border-color:rgba(255,157,48,.32)!important;
  background:
    radial-gradient(circle at 80% 0%,rgba(255,122,22,.11),transparent 34%),
    linear-gradient(145deg,rgba(40,8,4,.98),rgba(14,3,2,.98))!important;
}
.point-reveal-heading{align-items:flex-start}
.point-reveal-heading p{margin:5px 0 0;max-width:560px;color:#cdb8ae;font-size:11px;line-height:1.6}
.point-reveal-count{
  flex:0 0 auto;display:flex;align-items:baseline;gap:3px;padding:9px 12px;border-radius:16px;
  background:linear-gradient(135deg,rgba(255,127,28,.22),rgba(255,201,68,.08));
  border:1px solid rgba(255,190,74,.28);box-shadow:0 8px 24px rgba(255,92,8,.08)
}
.point-reveal-count strong{font-size:24px;line-height:1;color:#ffc84a}
.point-reveal-count span{font-size:10px;color:#d2b7aa;font-weight:900}
.point-reveal-stage{
  position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:20px;background:#140403;
  border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px rgba(0,0,0,.25),0 18px 38px rgba(0,0,0,.24)
}
.point-shadow-base,.point-color-layer{
  position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover
}
.point-shadow-base{z-index:1}
.point-color-layers{position:absolute;inset:0;z-index:2;pointer-events:none}
.point-color-layer{
  opacity:0;transform:scale(.985);filter:saturate(.9) brightness(.92);
  transition:opacity .55s ease,transform .65s cubic-bezier(.2,.8,.2,1),filter .65s ease;
  will-change:opacity,transform,filter
}
.point-color-layer.unlocked{opacity:1;transform:scale(1);filter:saturate(1.03) brightness(1)}
.point-color-layer.newly-unlocked{animation:pointRevealPop 1.15s cubic-bezier(.17,.84,.34,1)}
.point-reveal-stage.reveal-burst{box-shadow:0 0 0 1px rgba(255,196,67,.24),0 0 38px rgba(255,115,18,.22),0 18px 38px rgba(0,0,0,.24)}
.point-reveal-sparkles{
  position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);
  opacity:0;color:#ffe078;font-size:clamp(22px,6vw,46px);letter-spacing:clamp(8px,3vw,22px);
  text-shadow:0 0 12px #ff9c28,0 0 28px rgba(255,92,13,.7);pointer-events:none
}
.point-reveal-stage.reveal-burst .point-reveal-sparkles{animation:pointSpark 1.15s ease-out}
.point-reveal-footer{display:grid;gap:8px;margin-top:12px}
.point-reveal-progress{height:8px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.point-reveal-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff691b,#ffc43d);box-shadow:0 0 14px rgba(255,155,36,.55);transition:width .55s ease}
.point-reveal-footer p{margin:0;text-align:center;color:#cbb4aa;font-size:11px;line-height:1.5}
.point-reveal-footer p strong{color:#ffd05b}
@keyframes pointRevealPop{
  0%{opacity:0;transform:scale(.92);filter:saturate(.3) brightness(2)}
  42%{opacity:1;transform:scale(1.025);filter:saturate(1.35) brightness(1.2) drop-shadow(0 0 18px rgba(255,196,55,.8))}
  100%{opacity:1;transform:scale(1);filter:saturate(1.03) brightness(1)}
}
@keyframes pointSpark{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(-8deg)}
  35%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.35) rotate(9deg)}
}

/* Portrait photos: keep the full food photo, fill side gaps with a blurred copy. */
.gallery-slide.portrait-slide{position:relative;isolation:isolate;overflow:hidden;background:#130503}
.gallery-slide.portrait-slide::before{
  content:"";position:absolute;z-index:0;inset:-26px;
  background-image:var(--portrait-bg);background-size:cover;background-position:center;
  filter:blur(22px) brightness(.48) saturate(.95);transform:scale(1.08);opacity:.88;pointer-events:none
}
.gallery-slide.portrait-slide::after{
  content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(10,2,1,.16),rgba(10,2,1,.02) 30%,rgba(10,2,1,.02) 70%,rgba(10,2,1,.16));pointer-events:none
}
.gallery-slide.portrait-slide .restaurant-photo{
  position:relative;z-index:1;object-fit:contain!important;object-position:center!important;background:transparent!important
}
/* Keep loading shimmer above the blur when the image is not ready yet. */
.gallery-slide.portrait-slide.img-loading::after{z-index:3}

@media(max-width:540px){
  .point-reveal-heading{gap:10px}
  .point-reveal-count{padding:8px 10px}
  .point-reveal-count strong{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .point-color-layer,.point-reveal-progress i{transition:none}
  .point-color-layer.newly-unlocked,.point-reveal-stage.reveal-burst .point-reveal-sparkles{animation:none}
}


.point-reveal-admin-preview{
  margin-top:4px;padding:10px;border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,1.4fr) auto auto;
  align-items:center;gap:9px;background:rgba(255,255,255,.045);border:1px dashed rgba(255,199,77,.25)
}
.point-reveal-admin-preview.hidden{display:none!important}
.point-reveal-admin-preview b{display:block;font-size:10px;color:#ffd56d}
.point-reveal-admin-preview small{display:block;font-size:8px;color:#a9958d;margin-top:2px}
.point-reveal-admin-preview input[type="range"]{width:100%;accent-color:#ff7b1c}
.point-reveal-admin-preview output{min-width:24px;text-align:center;color:#fff;font-weight:950}
.point-reveal-admin-preview .secondary-btn{padding:8px 10px;min-height:34px;font-size:9px}
@media(max-width:620px){
  .point-reveal-admin-preview{grid-template-columns:1fr auto}
  .point-reveal-admin-preview>div{grid-column:1/-1}
  .point-reveal-admin-preview input[type="range"]{grid-column:1/2}
  .point-reveal-admin-preview .secondary-btn{grid-column:1/-1}
}

/* ===== V3.22 final layout: six logos, compact scroll header, 3-D countdown ===== */
:root{--partner-strip-height:156px}
.site-header{top:calc(-1 * var(--partner-strip-height));transition:none!important}
.partner-strip{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-auto-flow:row!important;gap:10px!important;width:100%;max-width:1220px;margin:auto;padding:10px 14px!important;overflow:visible!important;scroll-snap-type:none!important}
.partner-strip .logo-card{width:100%!important;min-width:0!important;min-height:76px!important;max-height:none!important;flex:initial!important;padding:7px!important;overflow:hidden;border-radius:12px;background:#fff}
.partner-strip .logo-card img{display:block;width:100%!important;height:62px!important;max-height:62px!important;object-fit:contain!important;object-position:center;transform:none!important;will-change:auto}
.partner-strip .logo-order-1{background:#070706}
.partner-strip .logo-order-1 img{height:66px!important;max-height:66px!important}
.partner-strip .logo-order-2{padding:5px!important}
.partner-strip .logo-order-3{padding:8px!important}
.utility-row{max-width:1220px;margin:auto}
.bottom-nav{align-items:stretch}
.bottom-nav button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.bottom-nav button b{white-space:normal;line-height:1.3;font-size:11px;min-height:29px;display:block}
.bottom-nav button span{line-height:1.1}
#page-passport>.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}
#page-passport .section-heading{flex-wrap:wrap;gap:10px}
#page-passport .tiny-note{max-width:100%;white-space:normal;line-height:1.65}
.passport-point-reveal{margin-top:34px;padding:10px!important;border:1px solid rgba(255,203,88,.45);background:linear-gradient(135deg,#251008,#100604);box-shadow:0 6px 24px rgba(0,0,0,.3)}
.passport-point-reveal .point-reveal-stage{margin:0;border-radius:18px}
.rules-copy{line-height:1.8;color:#decac0}
.rules-copy h3{margin:0 0 12px;font-size:20px;color:#ffd577}
.rules-copy p{margin:10px 0}
.rules-copy strong{color:#fff1d5}
.countdown-feature{position:relative;isolation:isolate;perspective:1000px;overflow:hidden;padding:40px 26px 36px;background:radial-gradient(ellipse at 50% 0,rgba(161,49,4,.45),transparent 70%),linear-gradient(155deg,#280a03,#0d0302 75%);border:1px solid #684119;border-radius:25px;box-shadow:inset 0 1px rgba(255,208,128,.22),0 10px 24px rgba(0,0,0,.3)}
.countdown-feature:after{content:'✦';font-size:16px;top:12px;right:14px;opacity:.55;animation:none}
.countdown-feature .countdown{position:relative;z-index:2;gap:16px;grid-template-columns:repeat(4,minmax(0,150px))}
.countdown-feature .countdown>span{position:relative;overflow:hidden;min-height:122px;padding:16px 8px 13px;border:1px solid #a97539;border-bottom-color:#4f2815;border-radius:16px;background:linear-gradient(155deg,#533020 0,#2c130b 35%,#170703 100%);transform:rotateX(7deg);box-shadow:inset 0 2px 1px rgba(255,220,153,.28),inset 0 -4px 6px rgba(0,0,0,.36),0 7px 0 #4b210d,0 9px 1px #160804,0 15px 18px rgba(0,0,0,.65)}
.countdown-feature .countdown>span:before{height:1px;top:2px;left:12%;right:12%;background:linear-gradient(90deg,transparent,#ffdc91,transparent);opacity:.65}
.countdown-feature .countdown b{position:relative;color:#ffce55;font-size:56px;text-shadow:0 1px 0 #c5822d,0 2px 0 #9a5217,0 3px 0 #713512,0 5px 5px #140300,0 0 22px rgba(255,149,22,.22)}
.countdown-feature .countdown small{color:#eedac6;font-size:13px;margin-top:12px}
.countdown-ghosts{position:absolute;inset:0;pointer-events:none;z-index:3}
.countdown-ghosts span{position:absolute;display:block;opacity:0;line-height:1;font-size:28px;filter:drop-shadow(0 4px 3px rgba(0,0,0,.3));animation:countGhostPeek 18s ease-in-out infinite;will-change:auto}
.countdown-ghosts .g-left{left:8%;top:10px;animation-delay:1s}
.countdown-ghosts .g-right{right:8%;top:10px;animation-delay:7s}
.countdown-ghosts .g-pop{left:47%;top:7px;animation-delay:13s;font-size:24px}
@keyframes countGhostPeek{0%,4%,30%,100%{opacity:0;transform:translateY(24px) scale(.8) rotate(-8deg)}8%,24%{opacity:.97;transform:translateY(0) scale(1) rotate(-6deg)}16%{transform:translateY(-3px) rotate(8deg)}}
.document-hidden .countdown-ghosts span,.document-hidden .bottom-nav button:before,.document-hidden .bottom-nav button span{animation-play-state:paused!important}
.gallery-slide.portrait-slide::after{z-index:0}
.navigate-btn,.black-btn{white-space:normal}
@media(max-width:900px){
 .partner-strip{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:8px 12px!important}
 .partner-strip .logo-card{min-height:65px!important;padding:6px!important;border-radius:10px}
 .partner-strip .logo-card img{height:53px!important;max-height:53px!important;transform:none!important}
 .partner-strip .logo-order-1 img{height:53px!important;max-height:53px!important}
}
@media(max-width:540px){
 .partner-strip{gap:7px!important;padding:8px 10px!important}
 .partner-strip .logo-card{min-height:61px!important;padding:5px!important}
 .partner-strip .logo-card img,.partner-strip .logo-order-1 img{height:49px!important;max-height:49px!important}
 .countdown-feature{padding:34px 12px 29px;border-radius:22px}
 .countdown-feature .countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .countdown-feature .countdown>span{min-height:91px;border-radius:12px;padding:12px 3px 9px;box-shadow:inset 0 2px 1px rgba(255,220,153,.24),inset 0 -3px 6px rgba(0,0,0,.36),0 5px 0 #4b210d,0 7px 1px #160804,0 12px 12px rgba(0,0,0,.6)}
 .countdown-feature .countdown b{font-size:clamp(29px,8.6vw,39px)}
 .countdown-feature .countdown small{font-size:11px;margin-top:10px}
 .countdown-ghosts span{font-size:23px;top:7px}
 .countdown-ghosts .g-pop{font-size:21px}
 .bottom-nav{padding-top:7px;padding-bottom:max(5px,env(safe-area-inset-bottom))}
 .bottom-nav button{padding:6px 2px;min-height:59px;gap:4px}
 .bottom-nav button b{font-size:10px;min-height:26px}
 .bottom-nav button.active:after{bottom:1px}
 .rules-copy{font-size:14px;line-height:1.8}
 .rules-copy h3{font-size:18px}
 .passport-point-reveal{margin-top:25px;padding:7px!important}
}
@media(prefers-reduced-motion:reduce){
 .countdown-ghosts span{display:none!important;animation:none!important}
 .countdown-feature .countdown>span{transform:none}
 .countdown-feature:before,.digit-tick,.bottom-nav button.active:before,.bottom-nav button.active span{animation:none!important}
}

/* V3.23: readable progressive-image status, no new motion. */
.lightbox-status{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);max-width:85vw;padding:9px 14px;border:1px solid rgba(255,255,255,.28);border-radius:20px;background:rgba(0,0,0,.78);color:#fff;font-size:13px;z-index:4}
.lightbox-status[hidden]{display:none}.lightbox-status:disabled{opacity:1;cursor:default}.lightbox-status:not(:disabled){cursor:pointer}
#lightboxImage:not([src]){visibility:hidden}
/* V3.25 unified hunting, optional photos and one-time reward eligibility */
.hunt-card{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid #e9e2d5;align-items:flex-start}.hunt-sticker{width:70px;height:85px;object-fit:contain}.hunt-card h3,.hunter-card h3{margin:0 0 8px}.hunt-card p{margin:6px 0;color:#514c44}.hunt-card button{margin-top:6px}.hunter-card{padding:20px;margin-top:16px;border:1px solid #eadfc9;border-radius:18px;background:#fffdf8}.hunter-card h3 span{float:right;color:#765517}.hunter-card details{margin-top:12px}.hunter-card details p{padding:10px 0;border-top:1px dashed #ddd}.user-id{overflow-wrap:anywhere;color:#6c655d}.hunter-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.hunter-filters label{display:flex;flex-direction:column;gap:6px;font-size:14px}.hunter-filters input,.hunter-filters select{width:100%;padding:12px;border:1px solid #cfc6b5;border-radius:10px;background:white;color:#25221d;min-width:0;font:inherit}.hunter-filters+p{font-size:13px;color:#635b50}#rewardEntryStatus{padding:12px 0;overflow-wrap:anywhere}#claimPhotoForm{display:grid;gap:16px}#claimPhotoError{color:#a52a24}#claimPhotoFile{display:block;width:100%;margin-top:12px}#missionPhotoBtn{margin:10px 0}.mission-sheet{max-height:90dvh;overflow-y:auto}#claimPhotoModal .modal-sheet{max-height:90dvh;overflow-y:auto}#legacyEvidence button{margin:6px}#passportHistoryBtn{margin-top:18px}#hunterReport p,#adminEvidenceList a{overflow-wrap:anywhere}.hunter-card summary{cursor:pointer}#rewardEntryCard .evidence-form label{display:grid;gap:8px}
@media(max-width:600px){.hunter-filters{grid-template-columns:1fr 1fr}.hunter-filters label:first-child{grid-column:1/-1}.hunt-card{gap:10px}.hunt-sticker{width:48px;height:64px}.hunt-card button{font-size:13px;padding:10px}.hunter-card h3 span{float:none;display:block;margin-top:6px}}
.hunt-card{border-color:var(--line)}.hunt-card p{color:var(--muted)}.hunter-card{background:var(--card2);border-color:var(--line);color:var(--ink)}.hunter-card h3 span{color:var(--yellow)}.hunter-card details p{border-color:var(--line)}.user-id,.hunter-filters+p{color:var(--muted)}#rewardEntryStatus a,.hunter-card a{color:var(--yellow)}#claimPhotoError{color:#ffb5a8}#claimHistory{scroll-margin-top:200px}
/* V3.27: tap an earned sticker to revisit its restaurant, date and menu photo. */
.passport-tap-note{font-size:13px;line-height:1.7;color:#f6d6ad;margin:0 0 16px}
button.ghost-cell{padding:6px 3px;color:inherit;font:inherit;cursor:pointer;width:100%;min-width:0;transition:border-color .15s,background .15s}
button.ghost-cell:hover{border-color:#ffca62;background:rgba(255,153,41,.16)}
button.ghost-cell:focus-visible{outline:3px solid #ffca62;outline-offset:3px}
button.ghost-cell.unlocked img{width:63%;height:63%}
.ghost-tap-hint{font-size:9px;line-height:1;color:#f0b980}
.ghost-photo-badge{position:absolute;top:5px;left:5px;font-size:12px;line-height:1;padding:4px;background:#301609;border:1px solid #a97645;border-radius:8px}
.passport-detail-sheet{max-width:520px;padding:26px 24px calc(24px + env(safe-area-inset-bottom));max-height:92dvh}
.passport-detail-sheet>h2{font-size:24px;margin:6px 38px 12px 0}
.passport-ghost-hero{display:flex;align-items:center;gap:18px;padding:12px;border-radius:20px;background:radial-gradient(ellipse at 25% 50%,rgba(255,161,43,.17),transparent 75%)}
.passport-ghost-hero>img{width:140px;height:145px;object-fit:contain;flex:none;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35))}
.passport-ghost-hero h3{font-size:24px;line-height:1.4;margin:0 0 10px;overflow-wrap:anywhere;color:#ffe2a1}
.passport-earned{display:inline-block;font-size:13px;padding:5px 10px;border-radius:20px;color:#ffe2a1;background:rgba(255,198,59,.12);border:1px solid rgba(255,198,59,.24)}
.passport-claim-info{display:grid;gap:13px;padding:18px;margin:14px 0 22px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:16px}
.passport-claim-info dt{font-size:12px;color:#cdb5a8;margin:0 0 4px}.passport-claim-info dd{font-size:15px;line-height:1.6;font-weight:700;color:#fff0df;margin:0;overflow-wrap:anywhere}
.passport-claim-info [hidden],.passport-detail-sheet [hidden],.claim-photo-back[hidden]{display:none!important}
.passport-photo-section h3{font-size:18px;margin:0 0 8px}.passport-photo-section>p{font-size:13px;line-height:1.7;color:#d6beb2}
#passportPhotoPreview{display:block;width:100%;max-height:240px;object-fit:contain;background:#100302;border-radius:14px;margin:12px 0}
.passport-photo-links{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.passport-photo-links a{text-decoration:none;text-align:center;font-size:13px}
.passport-photo-help{margin-bottom:0!important;color:#cbb7ac!important;font-size:12px!important}
.claim-photo-back{margin:0 28px 10px -8px;font-size:13px}
@media(max-width:420px){.passport-detail-sheet{padding:23px 18px calc(20px + env(safe-area-inset-bottom))}.passport-ghost-hero{gap:12px;padding:8px}.passport-ghost-hero>img{width:115px;height:125px}.passport-ghost-hero h3{font-size:22px}.ghost-cell.unlocked b{font-size:9px}.ghost-tap-hint{font-size:8px}}

.app-update-notice{position:fixed;z-index:10000;left:12px;right:12px;bottom:88px;padding:12px 16px;background:#fff2d7;color:#20170f;border:1px solid #ed984b;border-radius:14px;box-shadow:0 6px 22px #0005;text-align:center;font-weight:700}.app-update-notice[hidden]{display:none}.app-update-notice button{margin-left:10px;padding:8px 12px;border:0;border-radius:9px;background:#232016;color:#fff;cursor:pointer}#adminLegacyList .secondary-btn{margin:8px 0}#passportClaimPoints{max-width:230px}
