.kiosk-frame.kiosk-has-open-home .kiosk-main { padding: clamp(18px,2.8vw,32px) clamp(24px,4vw,44px) 18px; place-items:center; }
.compact-idle.kiosk-open-home { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.62fr); grid-template-areas:"hero stampcard" "rewards rewards"; column-gap:clamp(28px,5vw,66px); row-gap:clamp(18px,2.6vh,28px); align-items:center; }
.kiosk-open-home>.kiosk-open-hero { grid-area:hero; min-height:0; padding:8px 0 4px; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.kiosk-open-home>.kiosk-open-hero h1 { max-width:650px; font-size:clamp(50px,6.1vw,72px); line-height:.94; }
.kiosk-open-home>.kiosk-open-hero h1 span { display:block; }
.kiosk-open-home>.kiosk-open-hero .lead { max-width:600px; font-size:clamp(17px,1.8vw,20px); line-height:1.48; }
.kiosk-open-home>.kiosk-open-hero .actions { margin-top:clamp(24px,3vw,34px); }
.kiosk-open-home .kiosk-primary-action { background:#263167; border-color:#263167; box-shadow:0 12px 28px rgba(38,49,103,.17); }
.kiosk-open-home .kiosk-primary-action:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(38,49,103,.22); }
.kiosk-stampcard-visual { grid-area:stampcard; position:relative; min-width:0; display:grid; place-items:center; perspective:1100px; padding:0 8px; touch-action:pan-y; isolation:isolate; }
.kiosk-stampcard-visual:before { content:""; position:absolute; z-index:-1; width:min(36vw,390px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(38,49,103,.11) 0%,rgba(38,49,103,.035) 50%,transparent 72%); }
.kiosk-stampcard-object { --tilt-x:0deg; --tilt-y:0deg; position:relative; width:min(100%,286px); transform-style:preserve-3d; transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(1.2deg); transition:transform 320ms cubic-bezier(.22,.61,.36,1); animation:kioskStampcardFloat 5.8s ease-in-out infinite; }
.kiosk-stampcard-object img { display:block; width:100%; height:auto; }
.kiosk-stampcard-spots,.public-home-stampcard-spots { position:absolute; inset:0; pointer-events:none; }
.kiosk-stampcard-spots i,.public-home-stampcard-spots i { position:absolute; width:21%; aspect-ratio:1; border-radius:50%; transform:translate(-50%,-50%); }
.kiosk-stampcard-spots i:nth-child(1),.public-home-stampcard-spots i:nth-child(1) { left:22.75%; top:45.7%; }
.kiosk-stampcard-spots i:nth-child(2),.public-home-stampcard-spots i:nth-child(2) { left:50%; top:45.7%; }
.kiosk-stampcard-spots i:nth-child(3),.public-home-stampcard-spots i:nth-child(3) { left:77.25%; top:45.7%; }
.kiosk-stampcard-spots i:nth-child(4),.public-home-stampcard-spots i:nth-child(4) { left:22.75%; top:62.45%; }
.kiosk-stampcard-spots i:nth-child(5),.public-home-stampcard-spots i:nth-child(5) { left:50%; top:62.45%; }
.kiosk-stampcard-spots i:nth-child(6),.public-home-stampcard-spots i:nth-child(6) { left:77.25%; top:62.45%; }
.kiosk-stampcard-spots i:nth-child(7),.public-home-stampcard-spots i:nth-child(7) { left:22.75%; top:79.2%; }
.kiosk-stampcard-spots i:nth-child(8),.public-home-stampcard-spots i:nth-child(8) { left:50%; top:79.2%; }
.kiosk-stampcard-spots i:nth-child(9),.public-home-stampcard-spots i:nth-child(9) { left:77.25%; top:79.2%; }
.kiosk-stampcard-spots i.is-stamping { animation:kioskStampPress 720ms cubic-bezier(.2,.8,.2,1) both; }
.kiosk-stampcard-visual.is-pressed .kiosk-stampcard-object { transform:rotateX(1.5deg) rotateY(-1deg) rotate(.4deg) scale(.974); transition-duration:120ms; }
.kiosk-open-home>.kiosk-reward-runway { grid-area:rewards; display:grid; grid-template-columns:minmax(260px,.52fr) minmax(0,1.48fr); gap:clamp(24px,4vw,52px); align-items:end; padding-top:clamp(16px,2.2vh,24px); border-top:1px solid var(--line); }
.kiosk-open-home .promo-card { min-height:0; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink); box-shadow:none; display:block; }
.kiosk-earning-kicker,.public-earning-kicker { color:var(--ink); font-size:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.kiosk-earning-value,.public-earning-value { display:flex; align-items:baseline; gap:9px; margin-top:9px; white-space:nowrap; }
.kiosk-earning-value strong,.public-earning-value strong { font-family:var(--serif); font-size:clamp(58px,6.2vw,76px); line-height:.76; letter-spacing:-.075em; color:#263167; }
.kiosk-earning-value span,.public-earning-value span { font-family:var(--serif); font-size:clamp(24px,2.45vw,31px); font-weight:700; line-height:1; letter-spacing:-.035em; }
.kiosk-earning-caption,.public-earning-caption { margin-top:9px; color:var(--muted); font-size:14px; font-weight:800; line-height:1.35; }
.kiosk-open-home .kiosk-rewards-open { min-width:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.kiosk-reward-intro { margin-top:4px; font-size:13px; line-height:1.35; }
.kiosk-open-home #kiosk-rewards-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.kiosk-open-home #kiosk-rewards-list>*:nth-child(n+4) { display:none; }
.kiosk-reward-preview { --reward-preview-color:#c9ebff; position:relative; isolation:isolate; overflow:hidden; min-height:86px; margin:0; padding:15px 16px; border:1px solid rgba(5,5,5,.10); border-radius:19px; background:#fff; box-shadow:none; transition:transform .24s ease,border-color .24s ease; }
.kiosk-reward-preview:before { content:""; position:absolute; z-index:-1; inset:0 auto 0 0; width:14%; background:var(--reward-preview-color); transition:width 1.25s cubic-bezier(.22,.61,.36,1); }
.kiosk-reward-preview.is-previewing:before,.kiosk-reward-preview:hover:before { width:100%; }
.kiosk-reward-preview.is-previewing,.kiosk-reward-preview:hover { transform:translateY(-2px); border-color:rgba(5,5,5,.16); }

.public-home.public-home-open { max-width:1260px; padding-top:clamp(28px,4.8vw,64px); }
.public-home-open .public-hero-open { display:grid; grid-template-columns:minmax(0,1fr) minmax(200px,248px) minmax(350px,408px); gap:clamp(24px,3.3vw,44px); align-items:center; }
.public-home-open .public-hero-copy-open { min-width:0; align-self:center; }
.public-home-open .public-hero-copy-open h1 { max-width:660px; font-size:clamp(54px,6.8vw,92px); line-height:.9; letter-spacing:-.055em; }
.public-home-open .public-hero-copy-open h1 span { display:block; }
.public-home-open .public-hero-copy-open .lead { max-width:570px; margin-top:22px; font-size:clamp(17px,1.65vw,21px); line-height:1.5; }
.public-home-stampcard { min-width:0; display:grid; justify-items:center; align-content:center; gap:12px; perspective:1000px; }
.public-home-stampcard-object { position:relative; width:min(100%,238px); transform:rotate(1.4deg); animation:publicStampcardFloat 6.2s ease-in-out infinite; filter:drop-shadow(0 20px 28px rgba(24,31,72,.16)); }
.public-home-stampcard-object img { display:block; width:100%; height:auto; }
.public-home-stampcard-spots i:nth-child(1) { animation:publicStampPulse 7.8s 1.1s ease-in-out infinite; }
.public-home-stampcard-spots i:nth-child(5) { animation:publicStampPulse 7.8s 3.7s ease-in-out infinite; }
.public-home-stampcard-spots i:nth-child(9) { animation:publicStampPulse 7.8s 6.3s ease-in-out infinite; }
.public-home-stampcard p { max-width:220px; text-align:center; color:var(--muted); font-size:12px; font-weight:750; line-height:1.35; }
.public-home-open .public-entry-open { position:sticky; top:96px; padding:clamp(18px,2.2vw,26px); border:1px solid rgba(5,5,5,.10); border-radius:28px; background:rgba(255,255,255,.96); box-shadow:0 24px 64px rgba(5,5,5,.07); backdrop-filter:blur(16px); }
.public-home-open .public-entry-open .public-register-card { position:static; }
.public-home-details { display:grid; grid-template-columns:minmax(220px,.52fr) minmax(250px,.72fr) minmax(0,1.35fr); gap:clamp(24px,4vw,52px); align-items:start; margin-top:clamp(42px,6vw,72px); padding-top:clamp(24px,3.2vw,38px); border-top:1px solid var(--line); }
.public-home-details .earning-explainer { margin:0; max-width:none; border:0; padding:0; }
.public-earning-note { margin-top:18px; max-width:260px; color:var(--ink); font-size:14px; line-height:1.45; }
.public-home-details .home-reward-preview-open { margin:0; min-width:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.public-home-details .home-reward-preview-open .reward-progress-card { min-height:100px; margin-top:12px; border-radius:20px; }
.public-home-details .home-reward-preview-open .preview-caption { margin-top:10px; color:var(--muted); font-size:13px; }
.public-home-details .public-steps-open { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; border-top:1px solid var(--line); }
.public-home-details .public-steps-open>div { min-height:98px; padding:18px 18px 18px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; display:grid; grid-template-columns:34px 1fr; align-items:center; gap:12px; }
.public-home-details .public-steps-open>div:nth-child(odd) { padding-right:24px; }
.public-home-details .public-steps-open>div:nth-child(even) { padding-left:24px; border-left:1px solid var(--line); }
.public-home-details .public-steps-open b { background:#263167; }

@keyframes kioskStampcardFloat { 0%,100%{translate:0 0} 50%{translate:0 -7px} }
@keyframes kioskStampPress { 0%,100%{transform:scale(1);opacity:1} 24%{transform:scale(.82);opacity:.84} 58%{transform:scale(1.055);opacity:1} }
@keyframes publicStampcardFloat { 0%,100%{transform:translateY(0) rotate(1.4deg)} 50%{transform:translateY(-8px) rotate(.6deg)} }
@keyframes publicStampPulse { 0%,88%,100%{transform:scale(1);opacity:1} 91%{transform:scale(.82);opacity:.82} 95%{transform:scale(1.06);opacity:1} }

@media (max-width:1100px) {
  .public-home-open .public-hero-open { grid-template-columns:minmax(0,1fr) minmax(330px,400px); grid-template-areas:"copy entry" "stamp entry"; align-items:start; }
  .public-home-open .public-hero-copy-open { grid-area:copy; }
  .public-home-stampcard { grid-area:stamp; justify-items:start; margin-top:22px; }
  .public-home-stampcard-object { width:min(48vw,230px); }
  .public-home-stampcard p { text-align:left; }
  .public-home-open .public-entry-open { grid-area:entry; }
  .public-home-details { grid-template-columns:minmax(220px,.55fr) minmax(0,1fr); }
  .public-home-details .public-steps-open { grid-column:1/-1; }
}
@media (max-width:900px) {
  .compact-idle.kiosk-open-home { grid-template-columns:minmax(0,1fr) minmax(230px,.56fr); column-gap:24px; }
  .kiosk-stampcard-object { width:min(100%,260px); }
  .kiosk-open-home>.kiosk-reward-runway { grid-template-columns:250px minmax(0,1fr); gap:22px; }
}
@media (max-width:760px) {
  .public-home-open .public-hero-open { grid-template-columns:1fr; grid-template-areas:"copy" "stamp" "entry"; }
  .public-home-open .public-entry-open { position:static; }
  .public-home-stampcard { justify-items:center; margin:10px 0 8px; }
  .public-home-stampcard p { text-align:center; }
  .public-home-details { grid-template-columns:1fr; }
  .public-home-details .public-steps-open { grid-column:auto; }
}
@media (max-width:720px) {
  .compact-idle.kiosk-open-home { grid-template-columns:1fr; grid-template-areas:"hero" "stampcard" "rewards"; }
  .kiosk-stampcard-object { width:min(62vw,280px); }
  .kiosk-open-home>.kiosk-reward-runway { grid-template-columns:1fr; align-items:start; }
  .kiosk-open-home #kiosk-rewards-list { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .public-home-open .public-hero-copy-open h1 { font-size:clamp(48px,15vw,72px); }
  .public-home-details .public-steps-open { grid-template-columns:1fr; }
  .public-home-details .public-steps-open>div:nth-child(odd),.public-home-details .public-steps-open>div:nth-child(even) { padding:16px 0; border-left:0; }
}
@media (prefers-reduced-motion:reduce) {
  .kiosk-stampcard-object,.kiosk-stampcard-spots i,.kiosk-reward-preview,.kiosk-reward-preview:before,.public-home-stampcard-object,.public-home-stampcard-spots i { animation:none!important; transition:none!important; }
}
