/* Public opening notice, using the storefront's own palette, type and logo. */
html[data-shop-locked],html[data-shop-locked] body{overflow:hidden}
html:not([data-shop-locked]) .shop-gate{display:none}
.shop-gate[hidden],.shop-gate [hidden]{display:none!important}
.shop-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;overflow:auto;overscroll-behavior:contain;padding:70px 16px 28px;background:rgba(255,249,233,.50);backdrop-filter:blur(18px) saturate(.8);-webkit-backdrop-filter:blur(18px) saturate(.8)}
.gate-topbar{position:absolute;top:14px;left:6.2%;right:6.2%;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--plum);font-size:12px}
.gate-topbar a,.gate-topbar button{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;gap:8px}
.gate-topbar a:hover{text-decoration:underline;text-underline-offset:4px}
.shop-sign-stage{width:min(100%,440px);perspective:1400px}
.shop-sign{position:relative;min-height:640px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.7,.25,1);transform:rotate(-1deg)}
.shop-sign.is-flipped{transform:rotate(1deg) rotateY(180deg)}
.sign-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;isolation:isolate}
.sign-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none}
.sign-front{padding:170px 44px 76px;text-align:center}
.sign-back{transform:rotateY(180deg);padding:162px 48px 82px;text-align:center}
.sign-logo{width:102px;height:66px;object-fit:contain;margin:0 auto 18px;mix-blend-mode:multiply}
.shop-gate h2{font-family:var(--serif);font-size:40px;line-height:1.05;letter-spacing:-.035em;color:var(--plum);margin:0}
.sign-intro{font-size:14px;line-height:1.6;color:var(--muted);margin:16px auto 20px;max-width:28ch}
.sign-form{text-align:left}
.sign-form label{display:block;font-size:11px;font-weight:600;margin-bottom:6px}
.sign-form input{width:100%;min-height:46px;border:1px solid #43234340;border-radius:8px;background:#fffdf7;color:var(--plum);font:14px var(--sans);padding:11px 13px;box-shadow:none}
.sign-form input:focus-visible{outline:2px solid var(--plum);outline-offset:2px}
.sign-form .button,.waitlist-ready .button{width:100%;min-height:46px;margin-top:10px;font-size:13px;gap:10px}
.sign-note{font-size:10px;line-height:1.55;color:var(--muted);margin:12px 0 0}
.waitlist-ready>p{font-size:14px;line-height:1.6;margin-top:20px}
.waitlist-ready .waitlist-edit{font-size:11px;min-height:36px;text-decoration:underline;text-underline-offset:3px}
.sign-paw{position:absolute;left:32px;bottom:10px;width:44px;height:44px;display:grid;place-items:center;padding:10px;color:var(--plum);opacity:.58;border-radius:50%;transition:color .18s,opacity .18s,transform .18s}
.sign-paw svg{width:24px;height:26px;fill:currentColor}
.sign-paw:hover{color:var(--coral);opacity:1;transform:rotate(-10deg)}
.sign-back h2{font-size:36px;letter-spacing:-.025em}
.sign-back .sign-intro{margin-bottom:24px}
.sign-back .sign-form input{text-align:center;letter-spacing:.35em;font-size:21px}
.sign-back .sign-error{font-size:12px;line-height:1.5;min-height:18px;color:#8c3043;margin-top:10px}
.sign-back .sign-turn{margin-top:14px;min-height:44px;padding:6px;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.shop-preview-lock{position:fixed;bottom:18px;right:18px;z-index:80;min-height:44px;padding:10px 16px;background:var(--cream);border:1px solid var(--line);border-radius:30px;box-shadow:0 4px 20px #43234318;font:12px var(--sans);color:var(--plum)}
html[data-shop-locked] .shop-preview-lock{display:none}
html[lang=zh] .shop-gate h2{font-family:var(--sans);font-size:36px;line-height:1.2;letter-spacing:-.025em}
@media(max-width:480px){
 .shop-gate{padding-top:62px;padding-bottom:18px;place-items:start center}
 .gate-topbar{left:24px;right:24px;top:8px}
 .shop-sign{min-height:640px}
 .sign-front{padding:164px 34px 72px}
 .shop-gate h2{font-size:34px}
 .sign-logo{width:90px;height:58px;margin-bottom:16px}
 .sign-intro{font-size:13px;margin:14px auto 18px}
 .sign-back{padding:150px 36px 70px}
 .sign-back h2{font-size:32px}
 html[lang=zh] .shop-gate h2{font-size:31px}
}
@media(max-width:360px){.sign-front{padding-inline:28px}.shop-gate h2{font-size:29px}.sign-note{font-size:9.5px}html[lang=zh] .shop-gate h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.shop-sign,.sign-paw{transition:none;transform:none}.shop-sign.is-flipped{transform:rotateY(180deg)}}
@supports not (backdrop-filter:blur(1px)){.shop-gate{background:rgba(255,249,233,.93)}}
