/* Website, account pages and owner panel. Builds on the tokens in style.css. */
body.site{background:var(--ivory)}
.site main{max-width:none;padding:0}
.muted{color:var(--muted)} .small{font-size:.88rem}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;background:rgba(250,246,238,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.topbar-in{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:22px;padding:12px 20px}
.brand{font:400 1.9rem/1 var(--script);color:var(--ink);text-decoration:none;white-space:nowrap}
.topnav{display:flex;gap:22px;flex:1;justify-content:center}
.topnav a,.topcta .link{font:500 .74rem/1.3 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.topnav a:hover,.topcta .link:hover{color:var(--ink)}
.topcta{display:flex;gap:16px;align-items:center}
@media (max-width:860px){.topnav{display:none}.topbar-in{justify-content:space-between}}
@media (max-width:420px){.brand{font-size:1.55rem}.topcta{gap:10px}.topcta .btn{padding:8px 10px;font-size:.66rem}}

/* shared */
.kicker{text-align:center}
.m-h2{font:400 clamp(2.4rem,7vw,3.6rem)/1.05 var(--script);text-align:center;margin:0 0 30px;color:var(--ink)}
.m-h2.left{text-align:left}
.big-btn{padding:15px 26px;font-size:.82rem}
.link-btn{font:500 .78rem/1.3 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px}
.m-sec{max-width:1160px;margin:0 auto;padding:clamp(60px,9vw,110px) 22px}
.m-sec.alt{max-width:none;background:linear-gradient(180deg,#F4EDE0,#F8F3EA)}
.m-sec.alt > *{max-width:1116px;margin-left:auto;margin-right:auto}

/* hero */
.m-hero{position:relative;overflow:hidden;padding:clamp(70px,10vw,120px) 22px clamp(60px,8vw,100px);background:radial-gradient(ellipse 90% 70% at 50% 0%,#FFFDF7,var(--ivory) 70%)}
.m-lights{position:absolute;top:0;left:0;right:0;height:clamp(70px,10vw,140px);pointer-events:none;overflow:hidden}
.m-lights svg{width:100%;height:100%}
.m-corner{position:absolute;top:0;width:clamp(130px,20vw,280px);pointer-events:none;opacity:.95}
.m-corner.l{left:0}.m-corner.r{right:0;transform:scaleX(-1)}
.m-hero-in{position:relative;max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
@media (max-width:900px){.m-hero-in{grid-template-columns:1fr;text-align:center}}
.m-hero-copy .kicker{text-align:left}
@media (max-width:900px){.m-hero-copy .kicker{text-align:center}}
.m-h1{font:400 clamp(2.8rem,6.6vw,5rem)/1.02 var(--serif);margin:0 0 22px;letter-spacing:-.01em}
.m-h1 em{font:400 1.1em/1 var(--script);color:var(--gold-deep);display:block;margin-top:.12em}
.m-lead{font-size:1.25rem;color:var(--muted);max-width:34em;margin:0 0 28px}
@media (max-width:900px){.m-lead{margin-left:auto;margin-right:auto}}
.m-ctas{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
@media (max-width:900px){.m-ctas{justify-content:center}}
.m-trust{margin:22px 0 0;font:500 .7rem/1.6 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* hero mockups */
.m-hero-art{position:relative;height:540px;max-width:480px;margin:0 auto;width:100%}
@media (max-width:900px){.m-hero-art{height:500px}}
@media (max-width:480px){.m-hero-art{height:430px;transform:scale(.84);transform-origin:top center;margin-bottom:-60px}}
.mock-card{position:absolute;left:0;top:30px;width:250px;aspect-ratio:5/7;background:#FFFDF8;border:1px solid #E4D8C4;box-shadow:0 0 0 7px #FFFDF8 inset,0 0 0 8px #C6A264 inset,0 26px 50px rgba(60,45,30,.18);transform:rotate(-6deg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;text-align:center}
.mc-scan{margin:0;font:500 .62rem/1.4 var(--caps);letter-spacing:.18em;color:#6E5C48}
.mc-script{margin:0 0 10px;font:400 2.3rem/1 var(--script);color:#B08A4E}
.mc-qr{width:118px;height:118px;padding:8px;background:#fff;border:1px solid #C6A264}
.mc-qr img,.mc-qr canvas{width:100% !important;height:100% !important}
.mc-names{margin:12px 0 2px;font:400 1.9rem/1 var(--script);color:#2E251C}
.mc-names span{color:#B08A4E}
.mc-date{margin:4px 0 0;font:500 .56rem/1.4 var(--caps);letter-spacing:.12em;color:#3B2F25}
.mock-phone{position:absolute;right:0;top:0;width:250px;height:510px;border-radius:40px;background:#1F1A15;padding:11px;box-shadow:0 30px 60px rgba(40,30,20,.28);transform:rotate(4deg)}
.mp-screen{height:100%;border-radius:30px;background:radial-gradient(ellipse at 50% 0%,#FFFDF7,#FAF6EE 60%);overflow:hidden;text-align:center;padding:40px 16px 0}
.mp-kicker{margin:0 0 8px;font:500 .5rem/1.4 var(--caps);letter-spacing:.16em;color:var(--muted)}
.mp-names{margin:0 0 14px;font:400 2.6rem/.9 var(--script);color:var(--ink)}
.mp-names span{font-size:.55em;color:var(--gold)}
.mp-btn{display:block;background:var(--moss);color:#FBF8F1;font:600 .55rem/1 var(--caps);letter-spacing:.14em;padding:12px;border-radius:3px;margin-bottom:16px}
.mp-collage{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:62px;gap:9px}
.mp-collage i{background:#fff;padding:4px 4px 12px;box-shadow:0 4px 10px rgba(60,45,30,.14);display:block}
.mp-collage i::before{content:"";display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--c1),var(--c2))}
.mp-collage i:nth-child(1){--c1:#D9C8B0;--c2:#A3B39A;transform:rotate(-2deg);grid-row:span 2}
.mp-collage i:nth-child(2){--c1:#E9D6CF;--c2:#C6A264;transform:rotate(2deg)}
.mp-collage i:nth-child(3){--c1:#B7C3AE;--c2:#6F7D4A;transform:rotate(-1deg)}
.mp-collage i:nth-child(4){--c1:#F1E6D3;--c2:#B7A590;transform:rotate(1.5deg)}
.mp-collage i:nth-child(5){--c1:#A3B39A;--c2:#4D6340;transform:rotate(-1.5deg)}
.mp-collage i:nth-child(6){--c1:#E3D5BF;--c2:#C0995A;transform:rotate(2deg)}

/* how it works */
.steps3{list-style:none;padding:0;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1080px}
@media (max-width:800px){.steps3{grid-template-columns:1fr}}
.steps3 li{background:var(--surface);border:1px solid var(--line);padding:30px 26px;text-align:center;box-shadow:0 10px 30px rgba(92,70,40,.06)}
.steps3 .n{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--gold);font:500 1rem/1 var(--caps);color:var(--gold-deep)}
.steps3 h3,.feat-grid h3{font:500 .92rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;margin:16px 0 8px}
.steps3 p,.feat-grid p{margin:0;color:var(--muted)}
.m-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:900px;margin:44px auto 0;text-align:center}
@media (max-width:640px){.m-trio{grid-template-columns:1fr}}
.m-trio strong{display:block;font:400 2rem/1.1 var(--script);color:var(--gold-deep)}
.m-trio span{color:var(--muted)}

/* features */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.feat-grid{grid-template-columns:1fr}}
.feat-grid article{background:var(--surface);border:1px solid var(--line);padding:24px 22px;border-top:3px solid var(--sage)}
.feat-grid h3{margin-top:0}

/* booth highlight */
.m-booth{display:grid;grid-template-columns:auto 1fr;gap:60px;align-items:center;max-width:980px}
.m-booth p{color:var(--muted);font-size:1.15rem;max-width:34em}
.m-booth .kicker{text-align:left}
@media (max-width:760px){.m-booth{grid-template-columns:1fr;text-align:center}.m-booth .kicker,.m-booth .m-h2.left{text-align:center}.m-booth p{margin-left:auto;margin-right:auto}}
.m-booth-art canvas{width:200px;height:auto;display:block;margin:0 auto;transform:rotate(-3deg);box-shadow:0 2px 4px rgba(60,45,30,.1),0 26px 50px rgba(60,45,30,.22)}

/* privacy */
.priv{max-width:760px;margin:0 auto;display:grid;gap:14px;text-align:center;font-size:1.15rem;color:var(--muted)}
.priv p{margin:0}

/* pricing */
.price-card{max-width:440px;margin:0 auto;background:var(--surface);text-align:center;padding:38px 30px 30px;box-shadow:0 0 0 6px var(--surface),0 0 0 7px var(--gold),0 24px 60px rgba(92,70,40,.12)}
.pc-name{margin:0;font:500 .8rem/1.4 var(--caps);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pc-price{margin:6px 0 0;font:400 4.4rem/1 var(--script);color:var(--ink)}
.pc-sub{margin:4px 0 22px;font-style:italic;color:var(--muted)}
.price-card ul{list-style:none;padding:0;margin:0 0 26px;text-align:left;display:grid;gap:9px}
.price-card li{padding-left:30px;position:relative}
.price-card li::before{content:"";position:absolute;left:4px;top:.45em;width:14px;height:8px;border-left:2px solid var(--olive);border-bottom:2px solid var(--olive);transform:rotate(-45deg)}
.price-card .btn{display:block}
.pc-pay{margin:14px 0 0;font-size:.92rem;color:var(--muted)}

/* faq */
.faq{max-width:780px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:16px 36px 16px 0;font-size:1.2rem;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:12px;font:400 1.6rem/1 var(--serif);color:var(--gold-deep)}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 18px;color:var(--muted);font-size:1.08rem}

.m-final{position:relative;text-align:center;padding:clamp(100px,12vw,150px) 22px clamp(70px,9vw,110px);background:linear-gradient(180deg,#3D3428,#222820);color:#F6EBD6;overflow:hidden}
.m-final .m-h2{color:#F6EBD6;max-width:16em;margin-left:auto;margin-right:auto}
.m-final .btn.primary{background:#F6EBD6;color:#2E251C;border-color:#F6EBD6}

/* footer */
.foot{border-top:1px solid var(--line);background:#F4EDE0;padding:40px 22px calc(env(safe-area-inset-bottom,0px) + 36px)}
.foot-in{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:18px 40px;align-items:start}
.foot-in .brand{margin:0}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}
.foot nav a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--sand)}
.foot-in > p.small{grid-column:1/-1;margin:0}
@media (max-width:700px){.foot-in{grid-template-columns:1fr}}

/* sign in, sign up */
.auth{position:relative;min-height:calc(100vh - 140px);padding:clamp(80px,10vw,120px) 18px 70px}
.auth-decor{position:absolute;top:0;left:0;right:0;height:120px;pointer-events:none;overflow:hidden}
.auth-decor svg{width:100%;height:100%}
.auth-card{position:relative;max-width:520px;margin:0 auto;background:var(--surface);padding:34px 28px 28px;box-shadow:0 0 0 6px var(--surface),0 0 0 7px var(--sand),0 20px 50px rgba(92,70,40,.10)}
.auth-title{font:400 clamp(2.4rem,8vw,3rem)/1.05 var(--script);text-align:center;margin:0 0 8px}
.auth-sub{text-align:center;color:var(--muted);margin:0 0 22px}
.auth-form{margin-top:6px}
.auth-alt{text-align:center;margin:16px 0 0;color:var(--muted)}
.auth-alt a,.auth-card a{color:var(--gold-deep)}
.check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 20px;cursor:pointer}
.check input{margin-top:6px;accent-color:var(--moss)}
.notice-box{padding:12px 16px;border-radius:4px;margin:0 0 18px;background:var(--sage-soft);border-left:3px solid var(--olive)}
.notice-box.error{background:#F6E3DE;border-left-color:var(--danger)}
.waiting{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--moss);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* legal */
.legal{max-width:760px;margin:0 auto;padding:60px 22px 80px}
.legal h2{font:500 .9rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;margin:32px 0 8px}
.legal p{color:#4C3F33}

/* owner panel */
.owner-main{max-width:1160px;margin:0 auto;padding:36px 20px 80px !important}
.owner-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 26px}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stats div{background:var(--surface);border:1px solid var(--line);padding:16px}
.stats strong{display:block;font:400 2.2rem/1.1 var(--serif)}
.stats span{font:500 .66rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.owner-card{background:var(--surface);border:1px solid var(--line);padding:22px;margin-bottom:22px}
.owner-card h2{font:400 2.2rem/1 var(--script);margin:0 0 16px}
.table-wrap{overflow-x:auto}
.owner-card table{width:100%;border-collapse:collapse;font-size:1rem;min-width:760px}
.owner-card th{text-align:left;font:500 .66rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px;border-bottom:1px solid var(--line)}
.owner-card td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.owner-card .acts form{display:flex;gap:6px;flex-wrap:wrap}
.owner-card .acts .btn{padding:5px 9px;font-size:.6rem}
.pill{display:inline-block;font:500 .6rem/1.6 var(--caps);letter-spacing:.1em;text-transform:uppercase;padding:2px 9px;border-radius:999px;background:var(--cream)}
.pill.active,.pill.complete{background:var(--sage-soft);color:var(--moss)}
.pill.suspended{background:#F6E3DE;color:var(--danger)}
.del{margin-top:6px}.del summary{cursor:pointer;color:var(--danger);font-size:.88rem}
.del input{padding:6px 8px;border:1px solid var(--line);margin:4px 6px 0 0}
.temp-pw{background:var(--cream);padding:12px 16px;margin:-8px 0 18px}
.temp-pw code{font-size:1.2rem;margin-right:10px;user-select:all}
.inline-form{display:flex;gap:10px;flex-wrap:wrap}
.inline-form input{flex:1;min-width:220px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:var(--ivory)}
.who{font-size:.9rem;color:var(--muted);margin-right:6px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){.who{display:none}}
.site .kicker{max-width:none;margin-left:0 !important;margin-right:0 !important}
.topcta .link,.topcta .btn{white-space:nowrap}
@media (max-width:600px){.m-hero{padding-top:120px}.m-corner{width:110px}}
@media (max-width:440px){
  .topbar-in{gap:10px;padding:10px 14px}
  .brand{font-size:1.35rem}
  .topcta{gap:10px}
  .topcta .link{letter-spacing:.06em;font-size:.64rem}
  .topcta .btn{padding:8px 10px;font-size:.6rem;letter-spacing:.06em}
}
.field input[type=email]{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:4px;background:var(--ivory);font-size:1.05rem}

/* plan page */
.plan-page{max-width:820px;margin:0 auto;padding:60px 20px 80px !important}
.closed-box{background:#F6E3DE;border-left:3px solid var(--danger);padding:18px 20px;margin:0 0 24px}
.closed-box h2{font:500 .9rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}
.closed-box p{margin:0 0 8px}
.plan-now{display:grid;grid-template-columns:1fr 1fr;gap:26px;background:var(--surface);border:1px solid var(--line);padding:24px;margin-bottom:22px}
@media (max-width:640px){.plan-now{grid-template-columns:1fr}}
.plan-until{font-size:1.25rem;margin:6px 0}
.plan-buy{background:var(--surface);border:1px solid var(--line);padding:24px;margin-bottom:22px}
.plan-buy h2{font:400 2.2rem/1 var(--script);margin:0 0 6px}
.buy-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:14px}
.buy-opt{display:flex;flex-direction:column;gap:2px;align-items:center;padding:16px 12px;border:1px solid var(--sand);background:var(--ivory);border-radius:4px;cursor:pointer;font:inherit;color:var(--ink)}
.buy-opt:hover{border-color:var(--moss);box-shadow:0 0 0 2px var(--sage-soft)}
.buy-opt strong{font:500 .82rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase}
.buy-opt span{color:var(--muted)}
.buy-opt em{font-style:normal;font-weight:600;color:var(--moss);margin-top:4px}
.meters{display:grid;gap:14px;align-content:center}
.meter-top{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:5px}
.meter .bar,.ps-meters .bar{height:8px}
.bar.warn span{background:linear-gradient(90deg,var(--gold),var(--danger)) !important}

/* sign-up plan choice */
.plan-pick{display:grid;gap:10px}
.plan-opt{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"r n p" "r d d";gap:2px 12px;align-items:center;padding:12px 14px;border:1px solid var(--sand);border-radius:4px;background:var(--ivory);cursor:pointer}
.plan-opt input{grid-area:r;accent-color:var(--moss)}
.plan-opt:has(input:checked){border-color:var(--moss);box-shadow:0 0 0 2px var(--sage-soft);background:var(--surface)}
.po-name{grid-area:n;font:500 .8rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase}
.po-name em{font:italic 500 .85rem/1 var(--serif);text-transform:none;letter-spacing:0;color:var(--gold-deep);margin-left:6px}
.po-price{grid-area:p;font:400 1.8rem/1 var(--script)}
.po-detail{grid-area:d;color:var(--muted);font-size:.95rem}

/* owner plans editor */
.plans-edit input[type=text],.plans-edit input:not([type]){width:100%;min-width:70px;padding:7px 8px;border:1px solid var(--line);border-radius:3px;background:var(--ivory);font:inherit}
.owner-card select{padding:4px 6px;font:inherit;font-size:.85rem}
.pill.expired{background:#F6E9D8;color:var(--gold-deep)}
.pill.deleted{background:#EEE;color:#777}

/* pricing tiers */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch;max-width:1080px}
@media (max-width:900px){.tiers{grid-template-columns:1fr;max-width:460px}}
.tier{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);padding:34px 26px 26px;text-align:center}
.tier.popular{box-shadow:0 0 0 6px var(--surface),0 0 0 7px var(--gold),0 24px 60px rgba(92,70,40,.12);z-index:1}
.tier-flag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);margin:0;background:var(--moss);color:var(--moss-ink);font:500 .62rem/1 var(--caps);letter-spacing:.14em;text-transform:uppercase;padding:7px 12px;border-radius:999px;white-space:nowrap}
.tier ul{list-style:none;padding:0;margin:0 0 24px;text-align:left;display:grid;gap:9px;flex:1}
.tier li{padding-left:28px;position:relative}
.tier li::before{content:"";position:absolute;left:4px;top:.45em;width:14px;height:8px;border-left:2px solid var(--olive);border-bottom:2px solid var(--olive);transform:rotate(-45deg)}
.tier .btn{display:block}
.tiers-all{max-width:760px;text-align:center;margin-top:34px}
.tiers-all p{margin:0 0 8px}

.months-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.month-opt{display:flex;flex-direction:column;align-items:center;gap:0;padding:12px 6px;border:1px solid var(--sand);border-radius:4px;background:var(--ivory);cursor:pointer;text-align:center}
.month-opt input{position:absolute;opacity:0;pointer-events:none}
.month-opt:has(input:checked){border-color:var(--moss);box-shadow:0 0 0 2px var(--sage-soft);background:var(--surface)}
.month-opt:has(input:focus-visible){outline:2px solid var(--gold-deep);outline-offset:2px}
.mo-n{font:400 2rem/1 var(--script)}
.mo-l{font:500 .62rem/1.4 var(--caps);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mo-p{font-size:.85rem;color:var(--moss);margin-top:2px}
.buy-opt:disabled{opacity:.45;cursor:not-allowed}
