html,body{margin:0;height:100%;background:#FAF1E2;overflow:hidden;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.vp{position:fixed;inset:0;overflow:hidden;background:#FAF1E2;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.stage{position:absolute;left:50%;top:50%;width:1080px;height:1440px;margin:-720px 0 0 -540px;transform-origin:50% 50%}
.group,.page,.layer,.wipe-in{position:absolute;left:0;top:0;width:1080px;height:1440px}
.stage,.stage *{pointer-events:none}
.page.live a,.page.live button,.page.live .cal{pointer-events:auto}
.wipe{position:absolute;left:-1500px;top:0;width:4080px;height:4400px}.wipe-in{left:1500px}
.bleed{position:absolute;left:0;top:0;width:1080px;height:1440px;transform:scale(var(--k,1));transform-origin:540px 720px}
.full{position:absolute;left:0;top:0;width:1080px;height:1440px;display:block}
img.full{object-fit:cover;will-change:transform}
.el{position:absolute;will-change:transform,opacity}
.el>img{width:100%;height:100%;display:block;object-fit:cover}
.txt svg,.cal svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.flash{position:absolute;inset:-2000px;background:#fff;opacity:0;pointer-events:none}
.btn{display:flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box;cursor:pointer;padding:0;margin:0;-webkit-appearance:none;appearance:none}
.hit{position:absolute;inset:0}
.cal{cursor:pointer}
.fade-bottom img{-webkit-mask-image:linear-gradient(to bottom,#000 35%,transparent 55%);mask-image:linear-gradient(to bottom,#000 35%,transparent 55%)}
.wash{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 62%,rgba(248,240,230,.9) 86%,#F8F0E6 100%)}
/* guest UI */
.ui{position:fixed;z-index:50;font:500 14px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#3d342c}
.mute{top:max(12px,env(safe-area-inset-top));right:12px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.72);box-shadow:0 1px 6px rgba(0,0,0,.15);display:none;align-items:center;justify-content:center;font-size:18px;cursor:pointer;backdrop-filter:blur(6px)}
.mute.on{display:flex}
.bar{left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;display:flex;gap:6px;padding:6px;border-radius:999px;background:rgba(255,255,255,.86);box-shadow:0 4px 18px rgba(60,40,20,.18);transition:opacity .4s,transform .4s;backdrop-filter:blur(8px);max-width:calc(100vw - 24px);overflow-x:auto}
.bar.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.bar button{border:0;background:transparent;padding:8px 11px;border-radius:999px;font:inherit;color:inherit;white-space:nowrap;cursor:pointer}
.bar button:hover{background:#f3e8d6}
.sheet{inset:0;display:none;align-items:flex-end;justify-content:center;background:rgba(40,30,20,.38)}
.sheet.on{display:flex}
.card{background:#fffaf2;width:min(460px,100%);max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:20px 18px max(20px,env(safe-area-inset-bottom));box-sizing:border-box;box-shadow:0 -6px 30px rgba(0,0,0,.18)}
@media (min-width:600px){.sheet{align-items:center}.card{border-radius:18px}}
.card h3{margin:0 0 4px;font:700 20px/1.2 Lora,Georgia,serif;color:#5E4F42}
.card p{margin:4px 0 12px;color:#7a6b5d}
.card label{display:block;margin:10px 0 4px;font-weight:600;font-size:13px}
.card input,.card select,.card textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d9cbb6;border-radius:10px;background:#fff;font:inherit;font-size:16px}
.card .row{display:flex;gap:8px}.card .row>*{flex:1}
.card .go{width:100%;margin-top:14px;padding:12px;border:0;border-radius:12px;background:#DA0A0E;color:#fff;font:600 16px system-ui,sans-serif;cursor:pointer}
.card .go:disabled{opacity:.6}
.card .lnk{display:block;padding:12px 14px;margin:8px 0;border:1px solid #e5d8c4;border-radius:12px;color:#3d342c;text-decoration:none;background:#fff}
.card .x{float:right;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#8a7e72}
.seg{display:flex;gap:8px}.seg label{flex:1;margin:0;padding:10px;border:1px solid #d9cbb6;border-radius:10px;text-align:center;font-weight:500;cursor:pointer;background:#fff}
.seg input{display:none}.seg input:checked+span{color:#DA0A0E;font-weight:700}
.ok{padding:24px 0;text-align:center;font-size:16px}
.hint{left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));text-align:center;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4);opacity:0;transition:opacity .6s;pointer-events:none;font-size:13px;letter-spacing:.5px}
.hint.on{opacity:.85}
