/* Efekty PR #1 w interfejsie Studio 4. */
.sound-btn{
  flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;padding:0;
  border:1px solid rgba(240,222,190,.28);background:rgba(0,0,0,.2);color:#f6efe4;
}
.sound-btn svg{width:17px;height:17px}
.sound-btn .wave{opacity:0}
.sound-btn[aria-pressed="true"] .wave{opacity:1}
.sound-btn[aria-pressed="true"] .mute{opacity:0}
.v-title{font-family:var(--serif);font-weight:500;font-size:clamp(32px,9vw,42px);line-height:1;letter-spacing:-.02em;margin:16px 0 8px;text-wrap:balance;overflow-wrap:anywhere}
.device .v-title{font-size:32px}
.v-sub{margin:0 0 18px;color:rgba(247,241,232,.78);font-size:15px;line-height:1.45}
.v-hint{margin:14px 0 0;text-align:center;font-size:13px;color:rgba(247,241,232,.78);min-height:1.4em}
.v-btn,.mini{
  border:0;border-radius:999px;padding:11px 20px;min-height:44px;
  background:linear-gradient(180deg,#f1ddb0,#cfab68);color:#24180c;font-weight:600;font-size:14px;
}
.mini{background:rgba(0,0,0,.18);color:#f6efe4;border:1px solid rgba(240,222,190,.35);font-weight:500}
.fallback-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.gift-copy{padding:10px 8px 6px;text-align:center}
.gift-kicker{letter-spacing:.18em;text-transform:uppercase;font-size:10px;margin:0 0 8px;opacity:.7;font-weight:600}
.gift-title{font-family:var(--serif);font-size:30px;line-height:1.02;font-weight:500;margin:0 0 10px;overflow-wrap:anywhere;text-wrap:balance}
.gift-text{margin:0;font-size:15.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.gift-sign{margin:14px 0 0;font-family:var(--serif);font-style:italic;font-size:18px}
.gift-sign:empty{display:none}
.gift-cta{display:inline-flex;align-items:center;min-height:44px;margin-top:14px;padding:10px 18px;border-radius:999px;background:var(--accent);color:#fffaf6;text-decoration:none;font-size:14px;font-weight:560}
.t-night .gift-cta{color:#14182a}

.foil-frame,.env,.flip,.coupon,.globe-wrap,.bauble-wrap,.cake-scene,.gift-scene,.lock,.lottery{border-radius:22px;background:var(--paper);color:var(--ink);position:relative;box-shadow:0 18px 36px rgba(0,0,0,.22)}
.foil-frame{min-height:250px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.foil-frame .gift-copy{width:100%}
.scratch-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;border-radius:inherit}
.scratch-canvas.is-cleared{opacity:0;pointer-events:none;transition:opacity .5s ease}

/* Koperta: list wysuwa się, koperta znika w dół. Nic nie zasłania tytułu. */
.env{background:transparent;box-shadow:none;perspective:900px;cursor:pointer;outline-offset:6px}
.env-world{position:relative;height:214px;margin-top:22px;transform-style:preserve-3d}
.env-letter{
  position:absolute;left:11%;right:11%;top:56px;height:96px;overflow:hidden;background:var(--paper);color:var(--ink);
  border-radius:10px;padding:14px 12px;z-index:1;box-shadow:0 8px 16px rgba(0,0,0,.14);
}
.env-pocket{
  position:absolute;left:4%;right:4%;bottom:0;height:132px;z-index:3;
  background:linear-gradient(#f4d8cb,#e3b1aa);clip-path:polygon(0 36%,50% 86%,100% 36%,100% 100%,0 100%);
  transition:transform .5s var(--ease) .25s,opacity .4s ease .3s;
}
.env-back{position:absolute;left:4%;right:4%;bottom:0;height:132px;z-index:0;border-radius:6px;background:#d9a49e;transition:opacity .4s ease .3s}
.env-flap{position:absolute;left:4%;right:4%;top:82px;height:110px;z-index:4;transform-origin:top center;transition:transform .55s var(--ease),opacity .25s ease .3s;transform-style:preserve-3d}
.flap-front,.flap-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;clip-path:polygon(0 0,100% 0,50% 100%)}
.flap-front{background:linear-gradient(#f6dfd2,#e6b5b2)}
.flap-back{background:#efcbbd;transform:rotateX(180deg)}
.wax{
  position:absolute;left:50%;top:150px;margin-left:-29px;z-index:6;width:58px;height:58px;border-radius:50%;
  display:grid;place-items:center;color:#f8e7c8;font-family:var(--serif);letter-spacing:.04em;
  background:radial-gradient(circle at 50% 50%,var(--wax1),var(--wax2));
  box-shadow:0 8px 14px rgba(0,0,0,.28),inset 0 0 0 2px rgba(255,230,190,.32),inset 0 0 0 7px rgba(0,0,0,.08);
  transition:transform .4s var(--ease),opacity .3s ease;
}
.wax span{font-size:14px}
.env:not(.is-open):hover .wax{transform:scale(1.05)}
.env.is-open{cursor:default}
.env.is-open .wax{opacity:0;transform:scale(.4) rotate(18deg)}
.env.is-open .env-flap{transform:rotateX(100deg);opacity:0}
.env.is-open .env-pocket{transform:translateY(40px);opacity:0}
.env.is-open .env-back{opacity:0}
.env.is-open .env-world{height:auto;margin-top:0}
.env.is-open .env-letter{position:relative;left:auto;right:auto;top:auto;height:auto;margin:0;border-radius:22px;padding:16px 14px;z-index:5;animation:letterUp .7s var(--ease) .15s both;box-shadow:0 18px 36px rgba(0,0,0,.22)}
.env.is-open .env-pocket,.env.is-open .env-back,.env.is-open .env-flap{pointer-events:none}
.env.is-done .env-pocket,.env.is-done .env-back,.env.is-done .env-flap,.env.is-done .wax{display:none}
.wax.crack::after,.wax.crack::before{content:"";position:absolute;background:rgba(40,8,12,.55);height:2px;width:70%;left:15%;top:48%;transform:rotate(18deg)}
.wax.crack::before{transform:rotate(-28deg);top:40%}

.flip{height:290px;perspective:1100px;background:transparent;box-shadow:none;cursor:pointer;outline-offset:6px}
.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s var(--ease)}
.flip.is-flipped .flip-inner{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:22px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;box-shadow:0 18px 36px rgba(0,0,0,.22)}
.face-front{background:linear-gradient(150deg,#f4e1bd,#e6b6c6 58%,#f3ebdd);color:#5e2c40}
.face-front::after{content:"";position:absolute;inset:12px;border-radius:14px;border:1px solid rgba(94,44,64,.18);pointer-events:none}
.face-back{background:var(--paper);color:var(--ink);transform:rotateY(180deg);overflow:auto;align-items:safe center}
.face-kicker{letter-spacing:.2em;font-size:11px;text-transform:uppercase;font-weight:600}
.face h3{font-family:var(--serif);font-size:36px;font-weight:500;margin:8px 0}

.coupon{min-height:240px;overflow:hidden;perspective:800px;display:flex;align-items:center;justify-content:center;padding:6px 10px 6px 20px}
.coupon .gift-copy{width:100%}
.coupon-foil{
  position:absolute;inset:0;z-index:2;border:0;border-radius:inherit;color:#43290f;
  background:repeating-linear-gradient(115deg,transparent 0 10px,rgba(255,255,255,.22) 11px 13px),linear-gradient(128deg,#8a6840,#f3e3b9 40%,#9a7340 62%,#f4e6c2);
  transform-origin:left center;transition:transform .7s var(--ease),opacity .6s ease .1s;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
}
.coupon-foil::after{content:"";position:absolute;inset:12px;border:1.5px dashed rgba(67,41,15,.35);border-radius:14px;pointer-events:none}
.coupon.is-open .coupon-foil{transform:rotateY(-100deg);opacity:0;pointer-events:none}
.coupon-foil strong{font-family:var(--serif);font-size:34px;font-weight:500}
.coupon-foil span{font-size:13px;font-weight:500;letter-spacing:.06em}
.perfs{position:absolute;left:0;top:0;bottom:0;width:14px;background:radial-gradient(circle at 0 11px,transparent 6px,rgba(0,0,0,.08) 7px) 0 0/14px 22px}

.globe-wrap,.bauble-wrap{background:transparent;box-shadow:none;text-align:center;padding-bottom:4px}
.globe{width:min(100%,320px);margin:6px auto 0;position:relative}
.globe-glass{
  width:200px;height:200px;margin:0 auto;border-radius:50%;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 62%,rgba(190,230,255,.24),rgba(16,40,62,.78));
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.26),inset -14px -18px 30px rgba(0,0,0,.25),0 18px 30px rgba(0,0,0,.28);
}
.globe-glass::after{content:"";position:absolute;left:24%;top:14%;width:26%;height:14%;border-radius:50%;background:rgba(255,255,255,.22);transform:rotate(-30deg)}
.globe-base{width:110px;height:26px;margin:-10px auto 0;position:relative;border-radius:4px 4px 16px 16px;background:linear-gradient(#ecd3a0,#8d6234)}
.flake{position:absolute;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.88);top:-8px}
.flake:nth-child(odd){width:3px;height:3px}
.globe .flake{top:auto;bottom:24px;opacity:.75}
.globe.is-shaking .flake,.globe.is-open .flake{bottom:auto;top:-8px;opacity:1;animation:snow 2.4s linear infinite}
.flakes{position:absolute;inset:0;pointer-events:none}
.tree{position:absolute;bottom:26px;left:50%;width:0;height:0;transform:translateX(-50%);border-left:30px solid transparent;border-right:30px solid transparent;border-bottom:52px solid #1d5a49}
.tree::after{content:"";position:absolute;left:-6px;top:52px;width:12px;height:10px;background:#6b4423}
.globe-msg,.bauble-msg{max-height:0;overflow:hidden;opacity:0;margin:0;padding:0;background:var(--paper);color:var(--ink);border-radius:18px;text-align:center;transition:opacity .5s ease .1s}
.globe.is-open .globe-msg,.bauble.is-open .bauble-msg{max-height:none;opacity:1;margin-top:16px;padding:6px 10px 12px;box-shadow:0 18px 36px rgba(0,0,0,.22);animation:letterUp .6s var(--ease) both}
.is-revealed .shake-dots,.is-revealed .fallback-row .shake-btn,.is-revealed .motion-btn{display:none}
.shake-dots{display:flex;gap:7px;justify-content:center;margin-top:12px}
.shake-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.22);transition:background .2s,transform .2s}
.shake-dots i.on{background:var(--gold);transform:scale(1.15)}
.lottery .shake-dots i{background:rgba(0,0,0,.15)}
.lottery .shake-dots i.on{background:#b8945a}

.bauble{width:min(100%,320px);margin:6px auto 0;position:relative}
.bauble-hook{width:2px;height:16px;margin:0 auto;background:rgba(240,222,190,.6)}
.bauble-cap{width:30px;height:14px;margin:0 auto -2px;position:relative;z-index:1;background:linear-gradient(90deg,#a67c42,#f0dcab 45%,#a67c42);border-radius:4px 4px 2px 2px}
.bauble-ball{
  width:190px;height:190px;margin:0 auto;border-radius:50%;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 46%,var(--wax1),var(--wax2) 78%);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.16),inset -16px -20px 34px rgba(0,0,0,.28),0 18px 30px rgba(0,0,0,.3);
}
.bauble-ball::after{content:"";position:absolute;left:22%;top:16%;width:24%;height:13%;border-radius:50%;background:rgba(255,255,255,.26);transform:rotate(-32deg)}
.bauble-band{position:absolute;left:0;right:0;top:46%;height:16px;background:repeating-linear-gradient(90deg,rgba(255,236,196,.55) 0 4px,transparent 4px 10px);opacity:.6}
.glitter{position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.75) 0 1px,transparent 1.6px) 0 0/16px 16px;opacity:.28}
.bauble.is-shaking .bauble-ball{animation:sway .5s var(--ease)}
.bauble.is-shaking .glitter{animation:glitter .5s linear}

.lottery{padding:18px 14px 16px;text-align:center;background:linear-gradient(180deg,#fffaf3,#f1e2c8);color:#3b2a16}
.lottery-window{
  min-height:84px;border-radius:14px;overflow:hidden;display:grid;place-items:center;padding:8px 12px;
  background:#16110c;color:#f3e3b9;font-family:var(--serif);font-size:34px;line-height:1.05;overflow-wrap:anywhere;
  box-shadow:inset 0 0 0 1px rgba(227,199,143,.4),inset 0 10px 20px rgba(0,0,0,.4);font-variant-numeric:tabular-nums;
}
.lottery.is-shaking .lottery-value{animation:tumble .15s linear infinite}
.lottery-result{max-height:0;overflow:hidden;opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s var(--ease)}
.lottery-result .gift-title{display:none}
.lottery.is-open .lottery-result{max-height:none;opacity:1;transform:none;margin-top:6px}
.lottery .fallback-row{margin-top:12px}
.lottery .mini{color:#3b2a16;border-color:rgba(59,42,22,.25)}

.cake-scene{background:transparent;box-shadow:none;text-align:center;padding:8px 0 4px}
.candle-row{display:flex;justify-content:center;gap:6px;height:96px;align-items:flex-end;touch-action:none;margin-bottom:-2px}
.candle{border:0;background:transparent;padding:0;width:34px;height:96px;position:relative;display:flex;align-items:flex-end;justify-content:center}
.stick{display:block;width:12px;height:50px;border-radius:3px;background:repeating-linear-gradient(160deg,#fffaf3 0 6px,#efd9c0 6px 9px)}
.flame{
  position:absolute;left:50%;bottom:48px;width:14px;height:24px;margin-left:-7px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%;
  background:radial-gradient(ellipse at 50% 75%,#fff7d6 0 25%,#ffc066 55%,rgba(255,140,50,0) 72%);
  transform-origin:50% 90%;animation:flicker .4s ease-in-out infinite alternate;
}
.candle.out .flame{transform:scale(0);opacity:0;animation:none;transition:transform .25s ease,opacity .25s ease}
.candle.out .smoke{position:absolute;left:50%;bottom:52px;width:5px;height:18px;margin-left:-2.5px;border-radius:6px;background:rgba(255,255,255,.4);animation:smoke 1.1s ease-out forwards}
.cake{width:min(100%,250px);margin:0 auto}
.icing{height:28px;border-radius:40px 40px 8px 8px;background:linear-gradient(#fff,#f1e0e8);position:relative}
.icing::before{content:"";position:absolute;left:0;right:0;bottom:-10px;height:14px;background:radial-gradient(circle at 12px 0,#f1e0e8 9px,transparent 10px) 0 0/24px 14px}
.sponge{height:64px;border-radius:0 0 18px 18px;background:linear-gradient(#d39762,#ad6c3e)}
.wish{max-height:0;overflow:hidden;margin-top:0;background:var(--paper);color:var(--ink);border-radius:20px;padding:0 10px;opacity:0;transition:opacity .5s ease}
.cake-scene.is-open .wish{max-height:none;margin-top:16px;padding:6px 10px 12px;opacity:1;animation:letterUp .6s var(--ease) both;box-shadow:0 18px 36px rgba(0,0,0,.22)}
.cake-scene.is-open .mic-note,.cake-scene.is-open .meter,.cake-scene.is-open .fallback-row{display:none}
.mic-note{font-size:13px;color:rgba(247,241,232,.78);margin:14px auto 8px;max-width:30ch;line-height:1.45}
.meter{height:4px;border-radius:4px;background:rgba(255,255,255,.14);overflow:hidden;margin:8px auto;width:min(100%,200px)}
.meter span{display:block;height:100%;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .08s linear}

.gift-scene{min-height:200px;background:transparent;box-shadow:none;perspective:900px;display:flex;flex-direction:column;align-items:center;padding:30px 0 4px}
.gift-3d{width:220px;position:relative}
.gift-lid{
  display:block;width:220px;height:50px;border:0;padding:0;margin:0 auto;border-radius:8px 8px 4px 4px;position:relative;z-index:3;
  background:linear-gradient(#c45560,#8d3038);box-shadow:0 6px 10px rgba(0,0,0,.2);
  transform-origin:center bottom;transition:transform .7s var(--ease),opacity .35s ease .35s;color:transparent;
}
.gift-lid::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:26px;transform:translateX(-50%);background:linear-gradient(90deg,#c6a15e,#f3e3b9 50%,#c6a15e)}
.bow{position:absolute;left:50%;top:-20px;width:60px;height:30px;transform:translateX(-50%);pointer-events:none}
.bow::before,.bow::after{content:"";position:absolute;top:6px;width:26px;height:20px;border:3.5px solid #f0dcab;border-radius:50%}
.bow::before{left:0;transform:rotate(-20deg)}.bow::after{right:0;transform:rotate(20deg)}
.gift-scene:not(.is-open) .gift-lid:hover{transform:translateY(-4px)}
.gift-scene.is-shaking .gift-3d{animation:rattle .4s linear}
.gift-scene.is-open .gift-lid{transform:translate3d(18px,-26px,0) rotate(12deg);opacity:0;pointer-events:none}
.gift-box{width:200px;height:120px;margin:-4px auto 0;border-radius:4px 4px 12px 12px;position:relative;overflow:hidden;background:linear-gradient(#a84450,#7c2430);transition:height .5s var(--ease) .3s,opacity .4s ease .3s}
.gift-box::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:22px;transform:translateX(-50%);background:linear-gradient(90deg,#c6a15e,#f3e3b9 50%,#c6a15e)}
.gift-box::after{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:linear-gradient(rgba(0,0,0,.35),transparent)}
.gift-scene.is-open .gift-box{height:44px}
.gift-card{
  position:relative;width:min(100%,300px);max-height:0;overflow:hidden;margin-top:0;background:var(--paper);color:var(--ink);border-radius:20px;
  opacity:0;pointer-events:none;
}
.gift-scene.is-open .gift-card{max-height:none;margin-top:-30px;z-index:4;opacity:1;pointer-events:auto;padding:4px 6px 8px;box-shadow:0 18px 36px rgba(0,0,0,.28);animation:cardRise .7s var(--ease) .2s both}
.gift-scene.is-open .gift-3d{height:auto}

.lock{padding:24px 16px 20px;text-align:center;background:var(--paper)}
.lock-plate{
  width:76px;height:76px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(#dcbd7c,#8a6234);box-shadow:inset 0 0 0 2px rgba(255,240,210,.4),0 8px 16px rgba(0,0,0,.2);
  color:#2a1c10;font-family:var(--serif);font-size:28px;
}
.lock-form p{font-size:14px;margin-bottom:12px}
.lock input{
  width:min(100%,250px);text-align:center;border-radius:14px;border:1px solid rgba(90,60,30,.28);
  padding:12px;background:#fff;color:#2a1c10;font-size:16px;min-height:48px;outline:none;
}
.t-night .lock input{background:#0f1426;color:#f1f2fa;border-color:rgba(201,210,255,.3)}
.lock input:focus{border-color:var(--accent)}
.lock-error{color:var(--err);min-height:1.4em;font-size:14px;font-weight:560;margin:8px 0}
.lock.is-wrong input{animation:nope .38s ease}
.lock.is-open{padding:6px 10px 12px}
.lock-secret:not([hidden]){animation:letterUp .6s var(--ease) both}

.fleck{position:fixed;top:-12px;z-index:80;pointer-events:none;border-radius:2px;will-change:transform}
.confetti{width:7px;height:11px;animation:fall var(--dur,2.8s) cubic-bezier(.3,.6,.5,1) forwards}
.fleck{width:6px;height:6px;border-radius:50%;background:#e8d29c;animation:spark .7s ease-out forwards}

@keyframes spark{to{transform:translate3d(var(--dx),var(--dy),0) scale(.2);opacity:0}}
@keyframes snow{to{transform:translate3d(10px,215px,0)}}
@keyframes glitter{to{background-position:16px 16px}}
@keyframes sway{30%{transform:rotate(-7deg)}65%{transform:rotate(5deg)}}
@keyframes tumble{50%{transform:translateY(-6px)}}
@keyframes flicker{to{transform:scale(.88,.94) rotate(4deg)}}
@keyframes smoke{to{transform:translateY(-30px) scaleX(1.6);opacity:0}}
@keyframes rattle{20%{transform:rotate(-3deg) translateX(-3px)}50%{transform:rotate(3deg) translateX(3px)}80%{transform:rotate(-2deg)}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes letterUp{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@keyframes cardRise{from{opacity:0;transform:translateY(40px) scale(.94)}to{opacity:1;transform:none}}
@keyframes nope{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
@keyframes spin360{to{transform:rotate(360deg)}}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* poprawki po przeglądzie */
.env:not(.is-open) .env-letter .gift-copy{visibility:hidden}
.env:not(.is-open) .env-letter{background:linear-gradient(var(--paper),var(--paper)) padding-box;background-image:repeating-linear-gradient(transparent 0 13px,rgba(0,0,0,.06) 13px 14px);background-color:var(--paper)}
.gift-scene.is-open .gift-box{height:0;opacity:0}
.gift-scene.is-open .gift-card{margin-top:-46px}
.is-revealed #reveal-now{display:none}


.premium-stage{width:100%;--paper:var(--glass);--serif:'Playfair Display',Georgia,serif;--gold:#d6ac63;--err:#9b2c3a;--ease:cubic-bezier(.22,.8,.24,1);color:var(--ink)}
.premium-stage .v-hint,.premium-stage .mic-note{color:var(--ink);opacity:.8}
.premium-stage .mini{color:var(--ink);border-color:currentColor;background:transparent}
.premium-stage .gift-copy{padding:0;width:100%}
.premium-stage .secret-content{min-width:0}
.premium-stage .secret-content .s-message{box-sizing:border-box}
.premium-stage .foil-frame{min-height:220px}
.premium-stage .face-back{padding:8px}
.premium-stage .flip:has(.s-photo),.premium-stage .flip:has(audio){min-height:440px}
.premium-stage .gift-card{width:100%;max-width:355px}
.premium-stage .lock input{box-sizing:border-box}
.premium-stage .sound-btn{color:var(--ink)}
.sticker{flex-shrink:0;justify-content:flex-start}
.sticker.style-night{--glass:#263154}
.sticker.with-bg .secret-content .s-sign{color:var(--ink);text-shadow:none}
.device-screen{overflow-y:auto;display:block}
.recipient-card .premium-stage{max-width:355px}
.premium-controls[hidden]{display:none}
.premium-controls{margin-top:15px;padding:12px;border:1px solid #e5dfed;border-radius:10px}
.premium-controls label{display:block;margin-top:8px}
.premium-controls select,.premium-controls input{max-width:100%;width:100%}
.premium-stage [inert] .s-audio{pointer-events:none}
.s-hint:empty{display:none}
.sticker>.s-inner[hidden]{display:none}
.premium-stage .scratch-canvas{z-index:3}
.env-letter img{width:72px;height:72px;object-fit:cover;border-radius:10px;display:block;margin:0 auto 8px}
.melody-btn,.fortune-result,.contact-note{font-size:14px}
.melody-btn{margin-top:10px;min-height:44px;border-radius:999px;border:1px solid currentColor;background:transparent;color:inherit;padding:0 14px}
.fortune,.prize-draw{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(100%,280px)}
.fortune-pointer{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:14px solid #17151c}
.fortune-wheel{width:180px;height:180px;border-radius:50%;border:8px solid #fff;box-shadow:0 10px 24px rgba(23,21,28,.18);transition:transform 1.1s cubic-bezier(.2,.7,.2,1);color:#f4f0e8;font-weight:700}
.fortune-wheel span{display:grid;place-items:center;width:42px;height:42px;margin:auto;border-radius:50%;background:#17151c}
.fortune-result{min-height:1.4em;margin:0;font-weight:650}
.fortune-copy{max-width:100%;max-height:0;overflow:hidden;opacity:0}
.fortune.is-open + .fortune-copy,.prize-draw.is-open + .fortune-copy{max-height:280px;overflow:auto;opacity:1}
.contact-local{width:100%;text-align:left;background:#fff;color:#17151c;border-radius:14px;padding:12px}
.contact-local label{display:block;font-size:13px;margin-top:8px}
.contact-local input{width:100%;min-height:44px;margin-top:4px;border:1px solid #d9d1c5;border-radius:10px;padding:0 10px}
.contact-local .v-btn{margin-top:10px}
@media(prefers-reduced-motion:reduce){.premium-stage *,.premium-stage *::before,.premium-stage *::after{animation:none!important;transition:none!important}.fortune-wheel{transition:none}}
