:root{--passport-navy:#102b4b;--passport-navy-2:#071c33;--passport-gold:#c69a45;--passport-gold-light:#f1d58e;--passport-paper:#f6f0e5;--passport-ink:#26211c;--passport-muted:#6c6258;--passport-red:#a83224}
.passport-page{background:var(--passport-paper);color:var(--passport-ink)}
.passport-header .nav-wrap{min-height:auto;padding:15px 0}.passport-back{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font-weight:900;text-decoration:none;white-space:nowrap}
.passport-hero{padding:30px 0 58px;background:radial-gradient(circle at 82% 12%,rgba(198,154,69,.18),transparent 31%),linear-gradient(145deg,#fffaf0,#eee1c9)}
.development-banner{display:flex;gap:11px;flex-wrap:wrap;padding:10px 14px;margin-bottom:18px;border-radius:12px;background:var(--passport-navy-2);color:#fff;font-size:.82rem}.development-banner strong{color:var(--passport-gold-light)}
.passport-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:28px}.passport-toolbar>strong{font-size:.75rem;letter-spacing:.12em}.passport-lang-tabs{display:flex;gap:8px;flex-wrap:wrap}.passport-lang-btn{width:50px;height:42px;border:1px solid #d6c3ad;border-radius:999px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.passport-lang-btn img{width:28px;height:18px;object-fit:cover}.passport-lang-btn.active{outline:3px solid rgba(198,154,69,.28);border-color:var(--passport-gold)}
.passport-hero-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(390px,1.14fr);gap:42px;align-items:center}.hero-copy h1{font-size:clamp(36px,5vw,64px);max-width:820px;line-height:1.03}.hero-copy .lead{max-width:720px;font-size:1.12rem;line-height:1.7;color:#5f554c}.launch-chip{display:inline-flex;flex-direction:column;margin-top:13px;padding:11px 15px;border-left:4px solid var(--passport-gold);background:rgba(255,255,255,.7);border-radius:0 12px 12px 0}.launch-chip span{font-size:.68rem;font-weight:900;letter-spacing:.14em;color:var(--passport-muted)}.launch-chip strong{margin-top:2px;color:var(--passport-navy)}
.vip-card-hero-stack{display:grid;gap:18px;width:70%;max-width:490px;justify-self:end}
.vip-card-face{width:100%;aspect-ratio:1.56/1;border-radius:18px;background-image:url('/images/passport/jcdkr-lifetime-vip-card.png');background-repeat:no-repeat;background-size:200% auto;filter:drop-shadow(0 25px 30px rgba(16,43,75,.23))}
.vip-card-face-front{background-position:left center}.vip-card-face-back{background-position:right center}
.passport-dashboard{padding:34px 0 82px;background:radial-gradient(circle at 82% 3%,rgba(198,154,69,.13),transparent 26%),var(--passport-paper)}.passport-entry-banner{margin-bottom:18px}.account-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);gap:34px;padding:30px;border:1px solid rgba(90,68,45,.15);border-radius:24px;background:#fff;box-shadow:0 18px 44px rgba(60,45,30,.08)}.account-copy{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.account-passport-thumb{display:block;width:250px;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(16,43,75,.2))}.auth-form-title{margin:0 0 4px;font-size:clamp(20px,1.9vw,28px);line-height:1.15;white-space:nowrap;color:var(--passport-navy)}.account-copy p:last-child{color:var(--passport-muted)}
.account-form{display:grid;gap:12px}.account-form>label:first-child{font-size:.82rem;font-weight:900;letter-spacing:.05em}.account-form>input{width:100%;padding:15px 16px;border:1px solid #cbbfae;border-radius:13px;font:inherit;font-size:1.1rem;background:#fff}.account-form>input:focus{outline:3px solid rgba(198,154,69,.22);border-color:var(--passport-gold)}.consent-row{display:grid;grid-template-columns:22px 1fr;gap:9px;align-items:start;font-size:.83rem;line-height:1.5;color:#514a44}.consent-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--passport-navy)}.optional-consent{color:#766d65}.passport-primary{border:0;border-radius:13px;padding:14px 17px;background:linear-gradient(135deg,var(--passport-navy),var(--passport-navy-2));color:#fff;font-weight:950;letter-spacing:.04em;cursor:pointer}.passport-primary:disabled{opacity:.55;cursor:wait}.passport-link-button{border:0;background:transparent;color:var(--passport-navy);font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:8px}.form-message{grid-column:1/-1;min-height:1.3em;margin:0;color:#24623b;font-weight:800}.form-message.error{color:#a4271d}
.member-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.member-heading h2{margin:0}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.status-grid article{background:#fff;border:1px solid rgba(93,72,54,.13);border-radius:18px;padding:20px;box-shadow:0 10px 25px rgba(50,40,30,.05)}.status-grid article>span{font-size:.69rem;letter-spacing:.11em;font-weight:900;color:#75685d}.status-grid strong{display:block;font-size:1.48rem;margin:5px 0;color:var(--passport-navy)}.status-grid small{color:var(--passport-muted)}
.visit-progress{height:13px;border-radius:999px;background:#ddd3c6;overflow:hidden;margin:18px 0 24px}.visit-progress>div{height:100%;width:0;background:linear-gradient(90deg,var(--passport-navy),var(--passport-gold));transition:width .25s}
.milestone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.milestone-grid article{display:grid;grid-template-columns:52px 82px minmax(0,1fr);gap:11px;align-items:center;padding:13px;border:1px solid #d8cdbd;border-radius:18px;background:rgba(255,255,255,.65);filter:grayscale(.75);opacity:.7}.milestone-grid article>span{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#d8d0c5;font-weight:950}.milestone-gift-image{display:block;width:82px;height:72px;padding:4px;border:1px solid #e0d7cb;border-radius:12px;background:#fff;object-fit:contain}.milestone-grid strong,.milestone-grid small{display:block}.milestone-grid small{margin-top:3px;color:var(--passport-muted)}.milestone-grid article.reached{filter:none;opacity:1;background:#fff7df;border-color:var(--passport-gold)}.milestone-grid article.reached>span{background:var(--passport-navy);color:var(--passport-gold-light)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px}.section-head h2{margin-bottom:0}.section-head>p{max-width:440px;color:var(--passport-muted)}.experience-head{margin-top:48px}.experience-head>p{padding:11px 15px;border-radius:13px;background:#fff}.experience-head>p strong{color:var(--passport-navy)}
.stamp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.stamp-card{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;background:#fff;border:1px solid rgba(93,72,54,.14);border-radius:20px;padding:17px;min-height:136px;box-shadow:0 10px 24px rgba(50,40,30,.05)}.stamp-mark{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;border:3px dashed #b5aa9f;color:#968c83;font-weight:950;font-size:1.24rem;transform:rotate(-5deg);background:#faf8f4}.stamp-card.completed .stamp-mark{border:5px double var(--passport-red);color:var(--passport-red);background:#fff2e9}.stamp-state{display:inline-block;margin-bottom:4px;font-size:.66rem;letter-spacing:.1em;font-weight:900;color:#8a8077}.stamp-card.completed .stamp-state{color:var(--passport-red)}.stamp-card h3{margin:0 0 6px;font-size:1.24rem}.stamp-card p{margin:0;color:var(--passport-muted);line-height:1.5;font-size:.92rem}
.earned-section{margin-top:48px}.reward-list{display:grid;gap:10px}.reward-item{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 18px;border:1px solid #ded4c6;border-radius:15px;background:#fff}.reward-item strong,.reward-item small{display:block}.reward-item small{margin-top:3px;color:var(--passport-muted)}.reward-state{padding:7px 10px;border-radius:999px;background:#fff0c9;color:#704f0d;font-size:.73rem;font-weight:950}.reward-state.redeemed{background:#e9e6e1;color:#645e57}.empty-state{padding:18px;border:1px dashed #cbbfae;border-radius:15px;color:var(--passport-muted);text-align:center}
.vip-card-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.4fr);gap:24px;align-items:center;margin-top:42px;padding:22px;border-radius:24px;background:linear-gradient(145deg,var(--passport-navy),#061526);color:#fff;border:2px solid #526b82;opacity:.48;box-shadow:0 18px 38px rgba(4,19,34,.2)}.vip-card-panel.active{opacity:1;border-color:var(--passport-gold)}.vip-card-earned-image{display:block;width:100%;border-radius:15px}.vip-card-panel p{margin:0;text-align:left}.vip-card-panel p strong,.vip-card-panel p span{display:block}.vip-card-panel p strong{font-size:2.15rem;color:var(--passport-gold-light)}.vip-card-panel p span{margin-top:7px;color:#dce4ea;line-height:1.5}
.journey-explainer{margin-top:58px;padding-top:45px;border-top:1px solid #d7cbb9}.journey-rounds{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.journey-rounds article{min-height:145px;padding:19px;border-radius:18px;background:#fff;border:1px solid #ddd1c0;display:flex;flex-direction:column}.journey-rounds article>span{color:var(--passport-gold);font-weight:950}.journey-rounds strong{margin-top:auto;font-size:1.35rem;color:var(--passport-navy)}.journey-rounds small{margin-top:5px;color:var(--passport-muted);line-height:1.4}.journey-rounds .final-card{background:var(--passport-navy);border-color:var(--passport-gold)}.journey-rounds .final-card strong,.journey-rounds .final-card small{color:#fff}.journey-rounds .final-card strong{color:var(--passport-gold-light)}.rules-note{margin-top:17px;padding:14px 17px;border-left:4px solid var(--passport-gold);background:#fff8e7;color:#5b5148}

/* Single-entry customer flow: verify first, then register only first-time guests. */
.passport-registration-form .eyebrow{margin:0;color:#805b18}.registration-lead{margin:2px 0 4px;padding:11px 13px;border-radius:12px;background:#eef7f1;color:#275a3b;font-weight:850}.registration-lead strong{color:var(--passport-navy)}
.registration-profile-fields{margin:4px 0 0;padding:16px;border:1px solid #d8cdbd;border-radius:14px}.registration-profile-fields legend{padding:0 7px;color:var(--passport-navy);font-weight:950}.registration-profile-fields>p{margin:0 0 12px;color:#6f655b}.registration-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.registration-profile-grid label{display:grid;gap:6px;font-weight:850}.registration-profile-grid select,.registration-profile-grid input{width:100%;padding:12px 13px;border:1px solid #c9bdac;border-radius:11px;background:#fff;font:inherit}.outside-us-row{display:flex;align-items:center;gap:9px;margin-top:13px;font-weight:800}.outside-us-row input{width:18px;height:18px}.registration-profile-fields small{display:block;margin-top:9px;color:#776d62;line-height:1.45}.registration-profile-grid .profile-field-note{margin-top:0;font-size:.75rem;font-weight:600}@media(max-width:600px){.registration-profile-grid{grid-template-columns:1fr}}
.signup-complete-panel{overflow:hidden;border:2px solid var(--passport-gold);border-radius:28px;background:#fff;box-shadow:0 22px 58px rgba(56,40,22,.13)}
.signup-complete-hero{display:grid;grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);gap:34px;align-items:center;padding:30px;background:radial-gradient(circle at 18% 30%,rgba(255,255,255,.13),transparent 28%),linear-gradient(145deg,var(--passport-navy-2),var(--passport-navy));color:#fff}.signup-complete-hero img{display:block;width:min(100%,330px);margin:auto;border-radius:18px;box-shadow:0 20px 42px rgba(0,0,0,.35)}.signup-complete-hero .eyebrow{margin:0 0 7px;color:var(--passport-gold-light)}.signup-complete-hero h1{margin:0;color:#fff;font-size:clamp(38px,6vw,66px);line-height:1}.signup-complete-hero p:last-child{max-width:680px;margin:14px 0 0;color:#e2eaf0;font-size:1.05rem;line-height:1.65}
.new-member-guide{padding:32px}.new-member-guide-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.new-member-guide-steps article{min-height:175px;padding:18px;border:1px solid #e1d5c5;border-radius:18px;background:#fffaf1}.new-member-guide-steps span{display:grid;width:36px;height:36px;place-items:center;margin-bottom:13px;border-radius:50%;background:var(--passport-navy);color:var(--passport-gold-light);font-size:.78rem;font-weight:950}.new-member-guide-steps strong{display:block;color:var(--passport-navy);font-size:.83rem;letter-spacing:.045em}.new-member-guide-steps p{margin:8px 0 0;color:var(--passport-muted);font-size:.9rem;line-height:1.55}
.new-member-guide-levels{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin:23px 0}.new-member-guide-levels span{padding:9px 12px;border:1px solid #d6bd8d;border-radius:999px;background:#fff7df;color:#6d451f;font-size:.73rem;font-weight:950;letter-spacing:.035em}.new-member-guide-levels b{color:#ad7443}
.new-member-guide-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.new-member-guide-rules article{padding:18px;border:1px solid #ddd1c0;border-radius:18px;background:#fff}.new-member-guide-rules strong{display:block;color:#7a321f;font-size:.78rem;letter-spacing:.055em}.new-member-guide-rules p{margin:8px 0 0;color:#5f554c;font-size:.9rem;line-height:1.58}
.signup-complete-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:0 32px 32px}.signup-complete-actions .passport-primary{min-height:58px;font-size:1rem}.signup-complete-actions .passport-link-button{min-width:130px}
[hidden]{display:none!important}
@media(max-width:980px){.status-grid{grid-template-columns:repeat(2,1fr)}.journey-rounds{grid-template-columns:repeat(2,1fr)}.new-member-guide-steps{grid-template-columns:repeat(2,1fr)}.new-member-guide-rules{grid-template-columns:1fr}}
@media(max-width:768px){.passport-header .brand-subtitle{font-size:.58rem}.passport-hero-grid,.account-card{grid-template-columns:1fr}.vip-card-hero-stack{justify-self:center;width:70%;max-width:490px}.account-copy{grid-template-columns:203px minmax(0,1fr);gap:16px}.account-passport-thumb{width:203px}.auth-form-title{white-space:normal}.status-grid,.milestone-grid,.stamp-grid,.vip-card-panel{grid-template-columns:1fr}.section-head,.member-heading{align-items:flex-start;flex-direction:column}.vip-card-panel p{text-align:left}.account-card{padding:22px}.journey-rounds{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.signup-complete-hero{grid-template-columns:1fr;text-align:center}.signup-complete-hero img{width:min(72%,290px)}.signup-complete-hero p:last-child{margin-left:auto;margin-right:auto}.new-member-guide{padding:24px 20px}.signup-complete-actions{grid-template-columns:1fr;padding:0 20px 24px}}
@media(max-width:480px){.passport-back{font-size:.72rem;padding:8px 10px}.passport-lang-tabs{width:100%}.account-copy{grid-template-columns:1fr}.account-passport-thumb{justify-self:center}.status-grid,.journey-rounds,.new-member-guide-steps{grid-template-columns:1fr}.stamp-card{grid-template-columns:76px 1fr;gap:12px;padding:14px}.stamp-mark{width:70px;height:70px;font-size:1rem}.vip-card-panel div strong{font-size:1.65rem}.signup-complete-hero{padding:24px 18px}.signup-complete-hero img{width:min(86%,260px)}.new-member-guide-levels{align-items:stretch;flex-direction:column}.new-member-guide-levels b{transform:rotate(90deg)}}

/* P006 Final: real-photo experience stamps with unmistakable completion seal. */
.stamp-mark{position:relative;overflow:hidden;border-style:dashed;filter:grayscale(.9);opacity:.58}
.stamp-mark img{width:100%;height:100%;object-fit:cover}
.stamp-mark span{position:absolute;left:5px;right:5px;bottom:6px;padding:3px 2px;border-radius:999px;background:rgba(7,28,51,.86);color:#fff;text-align:center;font-size:.64rem;font-weight:950;line-height:1.1}
.stamp-card.completed .stamp-mark{filter:none;opacity:1;box-shadow:0 0 0 4px rgba(164,39,29,.12)}
.stamp-card.completed .stamp-mark::after{content:"✓";position:absolute;right:4px;top:4px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--passport-red);color:#fff;font-size:1rem;font-weight:950;box-shadow:0 2px 6px rgba(0,0,0,.24)}

/* P010: permanent passport-style seals for completed VIP journeys. */
.journey-rounds .journey-round-card{position:relative;min-height:190px;overflow:hidden;transition:border-color .2s,box-shadow .2s,background .2s}
.journey-rounds .journey-round-card.round-completed{border:2px solid var(--passport-gold);background:linear-gradient(145deg,#fffdf7,#fff4d3);box-shadow:0 12px 26px rgba(127,91,21,.17)}
.journey-rounds .journey-round-card.round-completed>span,.journey-rounds .journey-round-card.round-completed>strong{color:#7d1720}
.vip-completion-seal{position:absolute;right:12px;bottom:10px;width:92px;height:92px;border:4px double #a4271d;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transform:rotate(-9deg);background:rgba(255,250,235,.92);color:#a4271d;text-align:center;box-shadow:inset 0 0 0 3px rgba(164,39,29,.12),0 3px 10px rgba(75,23,16,.14);z-index:2}
.vip-completion-seal::before,.vip-completion-seal::after{content:"★";position:absolute;top:39px;font-size:.58rem}.vip-completion-seal::before{left:7px}.vip-completion-seal::after{right:7px}
.vip-completion-seal b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#a4271d;color:#fff;font-size:1rem;line-height:1}
.vip-completion-seal em{font-size:.65rem;font-style:normal;font-weight:950;letter-spacing:.07em}.vip-completion-seal time{max-width:76px;font-size:.55rem;font-weight:850;line-height:1.15}
.journey-rounds .final-card{position:relative;overflow:hidden}.journey-rounds .final-card.unlocked{border:2px solid var(--passport-gold-light);box-shadow:0 0 0 4px rgba(200,164,87,.18),0 15px 30px rgba(4,19,34,.24)}
.vip-card-unlocked-badge{margin-top:12px;padding:8px 9px;border:1px solid var(--passport-gold);border-radius:999px;background:rgba(200,164,87,.13);color:var(--passport-gold-light);font-size:.66rem;font-weight:950;letter-spacing:.05em;text-align:center}
@media(max-width:480px){.journey-rounds .journey-round-card{min-height:176px}.vip-completion-seal{width:86px;height:86px}}

/* P012: gift photos, congratulations, and permanent redemption marks. */
.reward-list{gap:14px}.reward-item.gift-reward{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;min-height:158px;padding:18px 140px 18px 18px;overflow:hidden;border-width:2px;align-items:center}
.reward-item.gift-reward.is-ready{border-color:var(--passport-gold);background:linear-gradient(135deg,#fffdf7,#fff4d4);box-shadow:0 12px 28px rgba(117,83,20,.13)}
.reward-item.gift-reward.is-redeemed{border-color:#c9bfb1;background:#f4f0e9}
.reward-gift-image{display:block;width:150px;height:120px;padding:7px;border:1px solid #ddd3c6;border-radius:15px;background:#fff;object-fit:contain;box-shadow:0 6px 14px rgba(44,35,26,.08)}
.reward-copy{min-width:0}.reward-tier{display:block;margin-bottom:5px;color:#8b641f;font-size:.69rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase}
.reward-copy h3{margin:0;color:var(--passport-navy);font-size:1.24rem}.reward-copy p{margin:8px 0 0;max-width:680px;color:#544b43;font-weight:750;line-height:1.5}
.gift-reward.is-redeemed .reward-copy,.gift-reward.is-redeemed .reward-gift-image{opacity:.72}.gift-reward .reward-state{position:absolute;right:18px;top:50%;transform:translateY(-50%);padding:10px 13px;background:var(--passport-navy);color:var(--passport-gold-light);letter-spacing:.05em;box-shadow:0 5px 12px rgba(7,28,51,.15)}
.reward-redemption-seal{position:absolute;right:18px;top:50%;width:96px;height:96px;border:4px double var(--passport-red);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transform:translateY(-50%) rotate(-8deg);background:rgba(255,249,239,.9);color:var(--passport-red);text-align:center;box-shadow:inset 0 0 0 3px rgba(168,50,36,.1)}
.reward-redemption-seal b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--passport-red);color:#fff;font-size:1rem}.reward-redemption-seal strong{font-size:.64rem;letter-spacing:.08em}.reward-redemption-seal time{max-width:78px;font-size:.55rem;font-weight:850;line-height:1.15}
@media(max-width:600px){.reward-item.gift-reward{grid-template-columns:96px minmax(0,1fr);gap:13px;min-height:220px;padding:15px 15px 108px}.reward-gift-image{width:96px;height:96px;padding:5px}.gift-reward .reward-state{left:15px;right:auto;top:auto;bottom:20px;transform:none}.reward-redemption-seal{right:15px;top:auto;bottom:9px;transform:rotate(-8deg)}}
@media(max-width:430px){.milestone-grid article{grid-template-columns:48px 72px minmax(0,1fr);padding:10px;gap:9px}.milestone-grid article>span{width:48px;height:48px}.milestone-gift-image{width:72px;height:66px}.reward-item.gift-reward{grid-template-columns:82px minmax(0,1fr)}.reward-gift-image{width:82px;height:88px}}

/* P013: server-backed achievement messages remain open until the customer closes them. */
body.achievement-open{overflow:hidden}.achievement-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(3,15,28,.78);backdrop-filter:blur(5px)}
.achievement-dialog{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:32px;border:3px solid var(--passport-gold);border-radius:26px;background:linear-gradient(145deg,#fffdf7,#fff1c9);color:var(--passport-ink);text-align:center;box-shadow:0 28px 90px rgba(0,0,0,.45)}
.achievement-confetti{margin-bottom:7px;color:var(--passport-gold);font-size:1.45rem;letter-spacing:.28em}.achievement-dialog .eyebrow{margin-bottom:12px;color:#805b18}.achievement-image{display:block;width:min(300px,78%);height:210px;margin:0 auto 18px;padding:10px;border:1px solid #dccba8;border-radius:18px;background:#fff;object-fit:contain;box-shadow:0 12px 28px rgba(75,49,15,.13)}
.achievement-dialog h2{margin:0;color:var(--passport-navy);font-size:clamp(28px,5vw,42px);line-height:1.08}.achievement-dialog>p:not(.eyebrow):not(.achievement-error){max-width:450px;margin:14px auto 0;line-height:1.6}.achievement-persistence{font-size:.8rem;color:#756b5e}.achievement-error{min-height:1.3em;margin:10px 0 0;color:#a4271d;font-weight:850}.achievement-close{width:100%;margin-top:9px;font-size:1rem}.achievement-close:disabled{opacity:.55}
@media(max-width:520px){.achievement-dialog{padding:24px 18px}.achievement-image{height:165px}.achievement-dialog h2{font-size:30px}}

/* P014: the third VIP permanently closes the journey while Lifetime activity continues. */
.lifetime-completion-panel{display:grid;grid-template-columns:82px minmax(0,1fr);gap:20px;align-items:center;margin:0 0 22px;padding:22px;border:2px solid var(--passport-gold);border-radius:22px;background:linear-gradient(135deg,var(--passport-navy-2),var(--passport-navy));color:#fff;box-shadow:0 16px 34px rgba(7,28,51,.2)}
.lifetime-completion-seal{width:72px;height:72px;border:3px double var(--passport-gold-light);border-radius:50%;display:grid;place-items:center;color:var(--passport-gold-light);font-size:2rem;box-shadow:inset 0 0 0 4px rgba(198,154,69,.14)}
.lifetime-completion-panel .eyebrow{margin:0 0 5px;color:var(--passport-gold-light)}.lifetime-completion-panel h3{margin:0;color:#fff;font-size:1.18rem;line-height:1.4}.lifetime-completion-panel p:last-child{margin:9px 0 0;color:#dce5ee;font-size:.9rem}.lifetime-completion-panel p strong{color:var(--passport-gold-light)}
.journey-completed .status-grid article:first-child,.journey-completed .status-grid article:nth-child(2){border-color:var(--passport-gold);background:#fff8df}.journey-completed .visit-progress>div{width:100%!important}.journey-completed .milestone-grid article{filter:none;opacity:1}
@media(max-width:560px){.lifetime-completion-panel{grid-template-columns:1fr;text-align:center}.lifetime-completion-seal{margin:auto}.lifetime-completion-panel h3{font-size:1.04rem}}

/* P014 extension: privacy-safe Hall of Fame and non-resetting Lifetime milestones. */
.hall-of-fame-panel{display:grid;grid-template-columns:92px minmax(0,1fr);gap:20px;align-items:center;margin:0 0 18px;padding:20px;border:2px solid #2d2116;border-radius:22px;background:linear-gradient(145deg,#17120e,#352617);color:#fff;box-shadow:0 14px 30px rgba(35,24,13,.18)}
.hall-of-fame-mark{width:82px;height:82px;border:3px double var(--passport-gold);border-radius:50%;display:grid;place-items:center;color:var(--passport-gold-light);font-size:1.25rem;font-weight:950;letter-spacing:.08em}.hall-of-fame-panel .eyebrow{margin:0 0 5px;color:var(--passport-gold-light)}.hall-of-fame-panel h3{margin:0;color:#fff}.hall-of-fame-panel h3 strong{color:var(--passport-gold-light)}.hall-of-fame-panel p{margin:7px 0 2px}.hall-of-fame-panel small{color:#d7cdbf}
.lifetime-milestones{display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);gap:22px;align-items:center;margin:0 0 24px;padding:20px;border:1px solid #d4c09a;border-radius:20px;background:#fff9e8}.lifetime-milestones .eyebrow{margin:0 0 5px}.lifetime-milestones h3{margin:0;color:var(--passport-navy)}.lifetime-milestone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lifetime-milestone-grid article{padding:15px 10px;border:1px solid #d8cdbd;border-radius:14px;background:#eee8df;text-align:center;color:#71675c}.lifetime-milestone-grid strong,.lifetime-milestone-grid span{display:block}.lifetime-milestone-grid strong{font-size:1.65rem}.lifetime-milestone-grid span{margin-top:3px;font-size:.62rem;font-weight:950;letter-spacing:.08em}.lifetime-milestone-grid article.reached{border-color:var(--passport-gold);background:var(--passport-navy);color:var(--passport-gold-light);box-shadow:0 8px 18px rgba(16,43,75,.18)}
@media(max-width:720px){.lifetime-milestones{grid-template-columns:1fr}.hall-of-fame-panel{grid-template-columns:76px minmax(0,1fr)}.hall-of-fame-mark{width:68px;height:68px}}@media(max-width:480px){.hall-of-fame-panel{grid-template-columns:1fr;text-align:center}.hall-of-fame-mark{margin:auto}.lifetime-milestone-grid{grid-template-columns:1fr}}

/* P015: authenticated, expiring customer QR for every Visit, stamp, and gift action. */
.customer-qr-card{display:grid;grid-template-columns:minmax(0,1fr) 228px minmax(170px,.55fr);gap:24px;align-items:center;margin:0 0 24px;padding:22px;border:2px solid var(--passport-gold);border-radius:22px;background:linear-gradient(135deg,#fffdf7,#fff1c9);box-shadow:0 14px 30px rgba(83,59,16,.12)}
.customer-qr-copy .eyebrow{margin:0 0 5px;color:#805b18}.customer-qr-copy h3{margin:0;color:var(--passport-navy);font-size:1.35rem}.customer-qr-copy p{margin:9px 0 5px;line-height:1.55}.customer-qr-copy small{color:#71675c;font-weight:750}
.customer-qr-visual{display:grid;place-items:center;width:228px;min-height:228px;padding:10px;border:1px solid #d7c49d;border-radius:18px;background:#fff;color:#746a5f;text-align:center;box-shadow:0 8px 20px rgba(46,35,20,.09)}.customer-qr-visual svg{display:block;width:206px;height:206px}.customer-qr-visual.is-expired{opacity:.45;filter:grayscale(1)}
.customer-qr-controls{display:grid;gap:10px;align-content:center;text-align:center}.customer-qr-controls strong{color:var(--passport-navy);font-size:1rem}.customer-qr-controls small{min-height:1.3em;color:#a4271d;font-weight:800}.customer-qr-controls .passport-link-button{width:100%;border-color:var(--passport-navy);background:var(--passport-navy);color:#fff}.customer-qr-controls .passport-link-button:disabled{opacity:.55;cursor:wait}
@media(max-width:880px){.customer-qr-card{grid-template-columns:minmax(0,1fr) 228px}.customer-qr-controls{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center}.customer-qr-controls small{grid-column:1/-1}}
@media(max-width:620px){.customer-qr-card{grid-template-columns:1fr;text-align:center}.customer-qr-visual{justify-self:center}.customer-qr-controls{grid-template-columns:1fr}.customer-qr-controls small{grid-column:auto}}

.passport-display-name{display:grid;gap:8px;font-weight:900;color:var(--passport-navy);font-size:1.05rem}.passport-display-name input{width:100%;padding:15px;border:1px solid #c9bdac;border-radius:11px;font:inherit}.optional-customer-profile{margin:18px 0;padding:18px;border:1px solid #d8cdbd;border-radius:14px;background:#fff}.optional-customer-profile summary{cursor:pointer;font-weight:900;color:var(--passport-navy)}.optional-customer-profile p{color:#6f655b}.optional-customer-profile form{margin-top:16px}.optional-customer-profile .passport-primary{margin-top:16px}
