/* Champagne stationery, rose satin ribbons. No extra title or play-area chrome. */
body[data-game='gifts'] {--accent:#98465f;--mini-bg:#f7e6e9;--ink:#59434a;--paper:#fffaf5;background:#f3e8e5}
body[data-game='gifts'] .mini-shell {gap:4px;background:linear-gradient(#fffaf2,#f7efe5)}
body[data-game='gifts'] .companion::before {background:#f0dde1;box-shadow:inset 0 0 0 3px #fff9}
body[data-game='gifts'] .speech {border-color:#decdb7;background:#fffcf6;border-radius:4px 16px 16px;box-shadow:0 2px 0 #c7aa7b16}
body[data-game='gifts'] .cast-name {color:#7b685e}
body[data-game='gifts'] .companion[data-reaction='good'] .speech {background:#fff1e5;border-color:#b99460}
body[data-game='gifts'] .mini-hud > span:first-child {color:#8a3f59;background:#f4e8e7}
body[data-game='gifts'] .mini-hud .clock {border-color:#deceb9;background:#fffcf6;color:#68574d}
body[data-game='gifts'] .stage {border-radius:17px;background:#faf3e7;box-shadow:0 0 0 1px #c1a78566,0 4px 10px #765c3d0b}
body[data-game='gifts'] .overlay {background:linear-gradient(155deg,#fffcf7f5,#f7eddfed 60%,#f6e5e8ed);backdrop-filter:blur(3px)}
body[data-game='gifts'] .panel-icon {background:linear-gradient(145deg,#fff9ed,#ecddc9);border-color:#fffaf4;box-shadow:0 5px 0 #c7aa7b19;position:relative}
body[data-game='gifts'] .panel-icon::after {content:'';position:absolute;right:-5px;top:3px;width:10px;height:10px;background:#bd9361;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
body[data-game='gifts'] .panel-detail {color:#746052}
body[data-game='gifts'] .cast-options button {background:#efe3d7;border-color:#fffcf6}
body[data-game='gifts'] .cast-options button[aria-pressed='true'] {background:#f6e1e7;border-color:#a85470;box-shadow:0 4px 0 #a8547024}
body[data-game='gifts'] .cast-options button[aria-pressed='true']::after {background:#98465f}
body[data-game='gifts'] .go {background:linear-gradient(145deg,#bd798e,#98465f);box-shadow:0 4px 0 #77364d,0 8px 15px #98465f1a;border-color:#ffffff66}
body[data-game='gifts'] .go:active {box-shadow:0 1px 0 #77364d}
body[data-game='gifts'] .controls {gap:12px;padding:2px 0 3px}
body[data-game='gifts'] .controls button {max-width:142px;min-height:48px;background:#fffcf6;border-color:#d9c5ac;border-bottom-color:#c2a886;color:#98465f;font-size:27px;border-radius:14px}
body[data-game='gifts'] .controls button:active {background:#f5dce4}
body[data-game='gifts'] .overlay[data-presentation='result'] {background:linear-gradient(115deg,#fffaf0,#f7e6e9);border-color:#c5b08d;box-shadow:0 3px 0 #c7aa7b16}
body[data-game='gifts'] .overlay[data-presentation='result'] .panel-detail {color:#98465f}
body[data-game='gifts'] .overlay[data-presentation='result'] .go {box-shadow:0 3px 0 #77364d}
@media (max-width:350px) {body[data-game='gifts'] .mini-shell {padding-left:6px;padding-right:6px}body[data-game='gifts'] .controls {gap:8px}}
@media (max-height:620px) {body[data-game='gifts'] .companion {min-height:54px}body[data-game='gifts'] .companion > img {width:54px;height:54px}body[data-game='gifts'] .companion::before {width:43px;height:43px}body[data-game='gifts'] .controls button {min-height:44px}}
@media (prefers-reduced-motion:reduce) {body[data-game='gifts'] .overlay {backdrop-filter:none}}

/* Large touch targets; the rail on the board reflects the basket position. */
body[data-game='gifts'] #pause {width:44px;min-height:44px;color:#98465f}
body[data-game='gifts'] .controls button {box-shadow:inset 0 1px 0 #fff,0 2px 4px #7d536510;font-weight:650}
body[data-game='gifts'] .controls button:active:not(:disabled) {border-color:#a85470;box-shadow:inset 0 1px 4px #98465f24}
body[data-game='gifts'] .controls button:focus-visible {outline-color:#98465f;outline-offset:2px}
body[data-game='gifts'] .mini-hud {font-variant-numeric:tabular-nums}

/* Short event accents, with no repeating ambient animation. */
body[data-game='gifts'] .companion[data-reaction='miss'] .speech {border-color:#b57582;background:#fff0f0}
body[data-game='gifts'] .overlay:not([data-presentation='result'])::before {content:'';position:absolute;top:9px;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,#c0a070,transparent);pointer-events:none}
body[data-game='gifts'] .panel-icon {border-radius:24px;box-shadow:inset 0 0 0 4px #fff9,0 4px 12px #aa798b19}
body[data-game='gifts'] .overlay h2 {color:#68444f;letter-spacing:.01em}
body[data-game='gifts'] .overlay[data-presentation='result'] {border-top:2px solid #bc9363}
body[data-game='gifts'] .overlay[data-presentation='result'] h2 {color:#8a3f59;font-variant-numeric:tabular-nums}

/* Final small-screen and contrast polish; no additional header space. */
body[data-game='gifts'] .cast-toggle {background:#f7e6e9;border-color:#d5b6bf;color:#98465f}
body[data-game='gifts'] .overlay[data-presentation='result'] .panel-detail {font-size:12px;color:#803b51}
body[data-game='gifts'] .save-note {color:#76515e}
@media (max-height:740px) {
    body[data-game='gifts'] .panel-icon {border-radius:17px}
    body[data-game='gifts'] .cast-options {gap:6px}
}
@media (prefers-reduced-motion:reduce) {
    body[data-game='gifts'] .cast-options button[aria-pressed='true'] {transform:none}
    body[data-game='gifts'] .go:active,body[data-game='gifts'] .controls button:active {transform:none}
}

/* One brief result shower, entirely inside the existing board. */
body[data-game='gifts'] .stage[data-gift-result]:not([data-gift-result=''])::before {
    content:'';position:absolute;inset:7% 0 auto;height:88px;z-index:1;pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='88' viewBox='0 0 120 88'%3E%3Cpath fill='%23b86881' d='M20 27C4 16 11 6 20 14C29 6 36 16 20 27Z'/%3E%3Cpath fill='%23b99460' d='m70 48-11-7v14l11-7 11-7v14Zm-2 1-4 12 6-4 6 4-4-12Z'/%3E%3Cpath fill='%23bf954e' d='m104 15 2 6 6 2-6 2-2 6-2-6-6-2 6-2Z'/%3E%3C/svg%3E");
    background-repeat:repeat-x;background-size:180px 88px;
    animation:gift-result-shower 1.4s ease-out both;
}
body[data-game='gifts'] .stage[data-gift-result='medium']::before {background-size:120px 88px}
body[data-game='gifts'] .stage[data-gift-result='high']::before {background-size:90px 88px}
@keyframes gift-result-shower {0% {opacity:0;transform:translateY(-20px)} 20% {opacity:.85} 100% {opacity:0;transform:translateY(90px)}}
@media (prefers-reduced-motion:reduce) {body[data-game='gifts'] .stage[data-gift-result]::before {display:none}}

/* Share one compact band; the canvas remains entirely clear for falling gifts. */
body[data-game='gifts'] .companion {display:grid;grid-template-columns:48px minmax(0,1fr) auto 44px;grid-template-rows:auto auto;gap:2px 6px;min-height:52px;padding:2px 0}
body[data-game='gifts'] .companion > img {grid-column:1;grid-row:1 / 3;width:48px;height:48px}
body[data-game='gifts'] .companion::before {left:4px;top:6px;width:40px;height:40px}
body[data-game='gifts'] .companion > .companion-copy {display:contents}
body[data-game='gifts'] .cast-name {grid-column:2;grid-row:1;margin:0;letter-spacing:0;align-self:center;overflow-wrap:anywhere}
body[data-game='gifts'] .speech {grid-column:2 / 4;grid-row:2;min-height:0;padding:2px 6px;font-size:12px;line-height:1.4}
body[data-game='gifts'] .mini-hud {grid-column:3;grid-row:1;gap:6px;min-height:24px;padding:0;font-size:12px;white-space:nowrap}
body[data-game='gifts'] .mini-hud > span:first-child {gap:3px;padding:0 5px;border-radius:7px}
body[data-game='gifts'] .mini-hud strong {font-size:18px}
body[data-game='gifts'] .mini-hud .clock {min-width:0;margin:0;padding:1px 4px;border-radius:6px;font-size:12px}
body[data-game='gifts'] .companion > #pause {grid-column:4;grid-row:1 / 3;width:44px;min-height:44px;align-self:center}
/* Reserve the pause slot even before play, so starting never reflows the message. */
body[data-game='gifts'] #playfield,body[data-game='gifts'] #targets {top:0;height:100%}
body[data-game='gifts'] .gift-guide {width:200px;height:90px;max-width:100%;border:0;border-radius:0;background:none;box-shadow:none;transform:none;margin:0 0 6px}
body[data-game='gifts'] .gift-guide::after {display:none}
body[data-game='gifts'] .gift-guide svg {display:block;width:100%;height:100%}
@media (max-height:740px) {body[data-game='gifts'] .gift-guide {width:160px;height:72px;margin-bottom:3px}}
@media (max-height:620px) {body[data-game='gifts'] .gift-guide {display:flex;width:130px;height:58px}}
