/* Sending and receiving remain in the same full-screen 3D surface. */
body[data-stage='send'],body[data-stage='receive']{overflow:hidden;overscroll-behavior:none;}
.gift-scene{position:fixed;inset:0;isolation:isolate;width:100%;height:100%;min-height:0;margin:0;padding:0;overflow:hidden;background:#d3d5c9;}
.gift-scene #work-canvas.game-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:auto;border-radius:0;touch-action:none;}
.gift-hud{position:absolute;z-index:6;top:var(--gift-hud-top,calc(env(safe-area-inset-top) + 76px));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none;}
.gift-hud-title{min-width:0;padding:11px 14px;border:1px solid #d8c0a5cc;border-radius:15px;background:#fff9efe8;box-shadow:0 3px 16px #50331e12;}
.gift-hud-title>span{display:block;margin-bottom:4px;color:#79553c;font-size:12px;font-weight:650;}
.gift-hud-title h1{max-width:min(48vw,470px);margin:0;color:#4f3427;font-size:clamp(16px,2.5vw,22px);font-weight:800;line-height:1.35;letter-spacing:-.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gift-panel-toggle,.gift-panel-close{pointer-events:auto;flex-shrink:0;min-width:64px;min-height:48px;padding:11px 14px;border:1px solid #c7a586;border-radius:13px;background:#fff9eff2;color:#5d3d29;font:inherit;font-size:13px;font-weight:750;box-shadow:0 3px 12px #50331e0d;}
.gift-panel-toggle[aria-expanded='true']{background:#704830;border-color:#704830;color:#fff9ef;}
.gift-panel-toggle:active,.gift-panel-close:active{background:#ecd7bf;}
.gift-panel{position:absolute;z-index:12;top:var(--gift-panel-top,calc(env(safe-area-inset-top) + 144px));right:max(16px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 130px);display:flex;flex-direction:column;width:min(370px,calc(100% - 32px));min-height:0;padding:0;border:1px solid #d1b393;border-radius:20px;background:#fff9eff7;box-shadow:0 8px 34px #432b2029;overflow:hidden;}
.gift-panel[hidden]{display:none!important;}
.gift-panel-heading{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px;padding:10px 12px 10px 18px;border-bottom:1px solid #dfcab3;}
.gift-panel-heading h2{margin:0;color:#5c3c29;font-size:17px;font-weight:800;letter-spacing:-.035em;}
.gift-panel-close{min-width:56px;min-height:46px;padding:9px 11px;box-shadow:none;background:#f6eadb;}
.gift-panel-content{min-height:0;padding:18px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y;}
.gift-panel-content .panel-title{margin:0 0 10px;font-size:21px;line-height:1.4;}
.gift-panel-content .panel-copy{font-size:14px;line-height:1.65;color:#74523b;}
.gift-panel-content .primary,.gift-panel-content .secondary,.gift-panel-content .text-button{min-height:48px;}
.gift-panel-content .secondary{width:100%;margin:8px 0 0;}
.gift-panel-content .expiry-copy{font-size:13px;color:#79563d;line-height:1.55;}
.gift-panel-content .hint,.gift-letter-waiting{color:#76563e;font-size:13px;line-height:1.6;}
.gift-panel-content .share-badge{font-size:11px;line-height:1.5;}
.gift-panel-content .sealed-note{font-size:12px;color:#78563d;}
.gift-panel-content .letter{padding:16px;margin:12px 0 16px;color:#5e402d;font-size:15px;line-height:1.8;}
.gift-panel-content #back-workshop{margin-top:18px;text-align:center;}
.gift-scene-actions{position:absolute;z-index:8;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 14px);display:grid;gap:9px;max-width:630px;margin:0 auto;pointer-events:none;}
.gift-action-status{justify-self:center;max-width:100%;max-height:4.6em;margin:0;padding:8px 13px;border:1px solid #d7bea3;border-radius:13px;background:#fff9efe8;color:#66442e;font-size:13px;line-height:1.5;text-align:center;overflow:auto;pointer-events:auto;overscroll-behavior:contain;}
.gift-action-buttons{display:flex;align-items:stretch;gap:8px;padding:9px;border:1px solid #d7bea3;border-radius:18px;background:#fff9efe8;box-shadow:0 4px 20px #50331e17;pointer-events:auto;}
.gift-action-buttons .primary,.gift-action-buttons .secondary{display:flex;align-items:center;justify-content:center;gap:6px;flex:1 1 0;width:auto;min-width:0;min-height:48px;margin:0;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.4;word-break:keep-all;}
.gift-action-buttons .primary{background:#704830;color:#fff9ef;}
.gift-action-buttons .secondary{background:#fffaf2;color:#704830;border-color:#c6a17f;}
.gift-action-buttons button:disabled{opacity:.52;}
.gift-error-panel{position:absolute;z-index:12;top:50%;left:50%;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:0;padding:24px;transform:translate(-50%,-50%);border:1px solid #d4b392;border-radius:20px;background:#fff9eff7;box-shadow:0 8px 36px #432b2029;overflow:auto;overscroll-behavior:contain;}
.gift-error-panel h1{margin:0 0 14px;font-size:24px;line-height:1.35;letter-spacing:-.045em;}
.gift-error-panel p{font-size:14px;line-height:1.6;color:#72503c;}
.gift-error-panel .primary{width:100%;min-height:48px;margin-top:10px;}
@media(max-width:600px){
  .gift-hud{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:8px;}
  .gift-hud-title{padding:10px 12px;}
  .gift-hud-title>span{font-size:11px;}
  .gift-hud-title h1{max-width:50vw;font-size:16px;}
  .gift-panel-toggle{min-height:48px;padding:10px 12px;font-size:12px;}
  .gift-panel{top:calc(env(safe-area-inset-top) + 143px);right:max(12px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 145px);width:calc(100% - max(24px,env(safe-area-inset-left) + env(safe-area-inset-right)));border-radius:17px;}
  .gift-panel-heading{padding:8px 10px 8px 15px;min-height:63px;}
  .gift-panel-content{padding:15px;}
  .gift-scene-actions{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 12px);gap:7px;}
  .gift-action-buttons{gap:6px;padding:7px;}
  .gift-action-buttons .primary,.gift-action-buttons .secondary{font-size:12px;padding:9px 7px;}
  .gift-action-status{font-size:12px;max-height:4.6em;padding:7px 10px;}
}
@media(max-height:500px) and (min-width:601px){
  .gift-hud{top:calc(env(safe-area-inset-top) + 56px);}
  .gift-panel{top:calc(env(safe-area-inset-top) + 56px);bottom:calc(env(safe-area-inset-bottom) + 90px);}
  .gift-panel-heading{min-height:56px;padding-top:5px;padding-bottom:5px;}
  .gift-scene-actions{max-width:570px;gap:5px;bottom:calc(env(safe-area-inset-bottom) + 9px);}
  .gift-action-status{font-size:12px;padding:5px 10px;}
  .gift-action-buttons{padding:6px;}
}
@media(prefers-reduced-motion:reduce){.gift-scene button{transition:none;}}
