*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:radial-gradient(120% 90% at 50% 40%,var(--c-pageBg),var(--c-pageBg2));color:var(--c-hint);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}.app{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;display:grid;place-items:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}.stage{position:relative;overflow:hidden;background:var(--c-innerBg);border-radius:18px;box-shadow:0 30px 80px #00000073,0 0 0 1px #ffffff0f;contain:layout paint}.stage.full{border-radius:0;box-shadow:none}.design{position:absolute;left:0;top:0;transform-origin:0 0}.inner{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(90% 60% at 50% 18%,rgba(255,220,160,.08),transparent 70%),var(--c-innerBg)}.inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.22;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");pointer-events:none}.scene-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.greeting{position:absolute;left:50%;transform:translate(-50%);width:760px;padding:26px 0 30px;text-align:center;color:var(--c-innerText);opacity:0;z-index:2;pointer-events:none;background:radial-gradient(closest-side,rgba(10,16,24,.62),rgba(10,16,24,.35) 60%,transparent)}.greeting h1{margin:0;font:italic 400 96px/1.05 Georgia,Times New Roman,serif;letter-spacing:1px;color:var(--c-innerTextAccent);text-shadow:0 3px 18px rgba(0,0,0,.55)}.greeting p{margin:18px 0 0;font-size:40px;letter-spacing:6px;text-shadow:0 2px 12px rgba(0,0,0,.6)}.snow{position:absolute;left:0;top:0;pointer-events:none;z-index:3}.cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.surface{position:absolute;left:0;top:0;width:var(--W);height:var(--H);overflow:hidden;background:#3a2a2a;backface-visibility:hidden}.surface img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,rgba(0,0,0,.25),transparent 22%,transparent 60%,rgba(0,0,0,.75))}.cover-frame{position:absolute;top:26px;right:26px;bottom:26px;left:26px;border:2px solid rgba(255,247,234,.55);border-radius:10px;box-shadow:inset 0 0 0 8px #fff7ea14}.cover-text{position:absolute;left:9%;right:9%;bottom:7%;text-align:left;color:var(--c-coverText);text-shadow:0 2px 16px rgba(0,0,0,.5)}.cover-text[data-align=left]{right:56%;white-space:nowrap}.cover-text[data-align=right]{left:56%;white-space:nowrap}.cover-text[data-align=center]{text-align:center}.cover-text[data-align=right]{text-align:right}.cover-title{font:italic 400 84px/1 Georgia,Times New Roman,serif}.cover-sub{margin-top:14px;font-size:28px;letter-spacing:5px;text-transform:uppercase;opacity:.9}.cover-flap{position:absolute;left:0;top:0;width:var(--W);height:var(--H);transform-origin:0 0;will-change:transform,clip-path}.cover-flap .surface{position:absolute}.paper-back{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--c-coverBack);opacity:.82}.fold-shadow,.fold-shade,.wrap-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}.cover-base{will-change:clip-path}.gift-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;border:0;margin:0;padding:0;background:transparent;cursor:pointer;border-radius:0}.gift-hit:disabled{pointer-events:none;cursor:default}.gift-hit:focus-visible{outline:6px solid var(--c-tagPaper);outline-offset:-18px}.hint{position:absolute;left:0;right:0;z-index:7;text-align:center;font-size:14px;letter-spacing:3px;color:var(--c-hint);width:max-content;margin:0 auto;padding:7px 16px 7px 19px;border-radius:999px;background:#140e1080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);text-shadow:0 1px 8px rgba(0,0,0,.7);pointer-events:none;animation:hintPulse 2.4s ease-in-out infinite}.stage:not([data-state=ready]) .hint{animation:none}.stage[data-state=loading] .hint,.stage[data-state=error] .hint{visibility:hidden}@keyframes hintPulse{0%,to{opacity:.65}50%{opacity:1}}.controls{position:absolute;right:12px;bottom:12px;z-index:8;display:flex;gap:10px}.stage.full .controls{right:calc(12px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom))}.ctl{min-width:44px;height:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.25);border-radius:22px;background:#0f141c6b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font:500 14px/1 inherit;font-family:inherit;letter-spacing:1px;cursor:pointer}.ctl svg{width:20px;height:20px}.ctl-mute{padding:0;width:44px}.ctl:focus-visible{outline:2px solid #fff;outline-offset:2px}.ctl[hidden]{display:none}.status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9;display:flex;flex-direction:column;align-items:center;gap:14px;width:80%;text-align:center;font-size:15px;line-height:1.6;pointer-events:none}.status .ctl{pointer-events:auto}.stage[data-state=loading] .design,.stage[data-state=error] .design{opacity:0}.design{transition:opacity .4s ease}@media(prefers-reduced-motion:reduce){.hint{animation:none}.design{transition:none}}
