/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 */
:root{--g-bg:#101e29;--g-card:#172836;--g-blue:#79b5f5;--g-purple:#bf9aff;--g-gold:#ffd37d;--g-silver:#a9bdce;--g-jade:var(--sakura-jade);--g-text:var(--sakura-text);--g-muted:var(--sakura-muted);--g-line:var(--sakura-edge);--g-dark:var(--ink);--g-pink:var(--sakura-pink);--g-shadow:var(--sakura-shadow)}
.shop-sections{display:flex;gap:24px;border-bottom:1px solid var(--g-line);margin-bottom:28px}.shop-sections button{background:none;border:0;border-bottom:2px solid transparent;color:var(--g-muted);padding:14px 0;font:inherit;font-weight:650;cursor:pointer;white-space:nowrap}.shop-sections button.selected{color:var(--g-pink);border-color:var(--g-pink)}.shop-sections span{font-size:8px;letter-spacing:1px;margin-left:9px;color:var(--g-jade)}
#gacha-panel{color:var(--g-text);padding-bottom:25px;min-width:0}.gacha-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 25px}.gacha-kicker{color:var(--g-jade);font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 9px}.gacha-heading h2{font-size:34px;letter-spacing:-1px;margin:0 0 8px;font-style:normal;overflow-wrap:anywhere}.gacha-heading p:not(.gacha-kicker){font-size:12px;color:var(--g-muted);margin:0}.gacha-wallet{padding:14px 20px;border:1px solid var(--g-line);border-radius:10px;min-width:175px;background:var(--g-bg)}.gacha-wallet>span{display:block;color:var(--g-muted);font-size:10px;margin-bottom:7px}.gacha-wallet small{color:var(--g-jade);font-size:8px;margin-left:7px}.gacha-wallet strong{font-size:24px;color:var(--g-gold);font-variant-numeric:tabular-nums}
.gacha-machine{border:1px solid var(--g-line);border-radius:14px;background:var(--g-bg);overflow:clip;box-shadow:0 12px 40px var(--g-shadow)}.gacha-machine-top{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;gap:10px;font-size:11px;color:var(--g-muted)}.gacha-machine-top button,.gacha-text-button{border:0;background:none;color:var(--g-muted);font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}.gacha-window{height:206px;position:relative;overflow:hidden;padding-top:14px;background:var(--g-dark)}.gacha-window:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 50px 0 36px -32px var(--g-dark),inset -50px 0 36px -32px var(--g-dark)}.gacha-track{display:flex;gap:8px;width:max-content;will-change:transform}.gacha-item{--rarity:var(--g-silver);flex:0 0 142px;width:142px;height:178px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:var(--g-card);border:1px solid var(--g-line);border-bottom:3px solid var(--rarity);border-radius:5px;overflow:hidden}.gacha-item.rare{--rarity:var(--g-blue)}.gacha-item.epic{--rarity:var(--g-purple)}.gacha-item.legendary{--rarity:var(--g-gold)}.gacha-item img{width:85px;height:85px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 6px 8px var(--g-shadow));transition:transform .2s}.gacha-item strong{font-size:10px;text-align:center;color:var(--g-text);padding:0 4px}.gacha-item .gacha-quantity{position:absolute;right:10px;top:9px;font-size:11px;color:var(--rarity);font-weight:700}.gacha-item small{font-size:9px;color:var(--rarity)}.gacha-center{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--g-gold);z-index:3;pointer-events:none}.gacha-center:before{content:'';position:absolute;left:-6px;top:0;border-top:11px solid var(--g-gold);border-left:7px solid transparent;border-right:7px solid transparent}.gacha-center:after{content:'';position:absolute;left:-6px;bottom:0;border-bottom:11px solid var(--g-gold);border-left:7px solid transparent;border-right:7px solid transparent}.gacha-item.is-winner{outline:2px solid var(--g-gold);outline-offset:-2px}.gacha-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px}.gacha-controls p{font-size:10px;line-height:1.9;color:var(--g-muted);margin:0;max-width:140px}.gacha-controls p strong{display:block;color:var(--g-text);font-weight:500}.gacha-spin{display:flex;align-items:center;justify-content:center;gap:28px;padding:16px 23px;min-height:52px;border:1px solid var(--g-jade);border-radius:7px;background:var(--g-jade);color:var(--g-dark);font:inherit;font-size:13px;font-weight:750;cursor:pointer;white-space:nowrap;transition:filter .18s,transform .18s}.gacha-spin b{padding-left:24px;border-left:1px solid var(--g-shadow);font-size:12px}.gacha-spin b span{margin-left:12px}.gacha-spin:hover{filter:brightness(1.08);transform:translateY(-1px)}.gacha-spin:active{transform:translateY(1px)}.gacha-spin:disabled{opacity:.5;cursor:wait;transform:none}.gacha-spin:focus-visible,.shop-sections button:focus-visible,#gacha-panel button:focus-visible{outline:2px solid var(--g-gold);outline-offset:4px}.gacha-pool-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:30px 0 15px}.gacha-pool-heading h3{font-size:15px;margin:0}.gacha-pool-heading>span{color:var(--g-muted);font-size:10px}.gacha-pool{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.gacha-pool .gacha-item{width:100%;height:155px}.gacha-pool .gacha-item img{width:70px;height:70px}.gacha-pool .gacha-art{transition:transform .2s}.gacha-pool .gacha-item:hover .gacha-art,.gacha-pool .gacha-item:focus-visible .gacha-art{transform:translateY(-4px)}.gacha-demo-note{font-size:10px;line-height:1.7;color:var(--g-muted);margin:20px 0 0}.gacha-result{text-align:center;width:min(430px,calc(100vw - 24px));background:var(--g-bg)}.gacha-result>img{width:118px;height:118px;object-fit:contain;image-rendering:pixelated;margin:18px auto}.gacha-result h2{font-size:25px;margin:0 0 9px}.gacha-result>p:not(.gacha-kicker){color:var(--g-muted);font-size:12px}.gacha-close{position:absolute;right:14px;top:10px;border:0;background:none;color:var(--g-muted);font-size:26px;cursor:pointer}.gacha-code{display:grid;gap:12px;padding:20px;background:var(--g-dark);border:1px solid var(--g-line);border-radius:8px;margin:22px 0 12px}.gacha-code small{color:var(--g-muted);font-size:11px}.gacha-code samp{font-size:16px;color:var(--g-gold);overflow-wrap:anywhere}.gacha-code button{background:none;border:0;color:var(--g-jade);cursor:pointer}.gacha-result>.gacha-spin{width:100%;margin-top:20px}.gacha-history{width:min(600px,calc(100vw - 24px));background:var(--g-bg)}
@media(max-width:600px){.gacha-heading{align-items:flex-start;flex-direction:column;gap:15px}.gacha-heading h2{font-size:28px}.gacha-wallet{width:100%;display:flex;align-items:center;justify-content:space-between;min-width:0;padding:12px 15px}.gacha-wallet>span{margin:0}.gacha-wallet strong{font-size:20px}.shop-sections{gap:22px}.shop-sections button{font-size:12px}.shop-sections span{font-size:7px;margin-left:5px}.gacha-controls{flex-wrap:wrap;padding:16px;gap:15px}.gacha-controls>.gacha-spin{order:-1;width:100%;gap:15px}.gacha-controls p{max-width:none}.gacha-controls p strong{display:inline}.gacha-controls .gacha-text-button{margin-left:auto}.gacha-pool{grid-template-columns:repeat(2,minmax(0,1fr))}.gacha-pool-heading{align-items:flex-start;flex-direction:column;gap:7px}.gacha-machine-top{padding:15px 12px;font-size:10px}.gacha-machine-top button{font-size:10px}.gacha-pool .gacha-item{height:145px}}
@media(prefers-reduced-motion:reduce){.gacha-spin,.gacha-item img{transition:none}}
.gacha-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:22px;padding-bottom:12px;border-bottom:1px solid var(--g-line)}.gacha-admin-toolbar>span{font-size:10px;color:var(--g-muted)}.gacha-admin-toolbar button{color:var(--g-jade);border:1px solid var(--g-line);border-radius:7px;padding:10px 13px}.gacha-admin{width:min(800px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--g-bg);color:var(--g-text);padding:28px}.gacha-admin h2{font-size:25px;margin:0}.gacha-admin>.gacha-demo-note{margin:10px 0 24px}.ga-settings,.ga-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gacha-admin .admin-field{display:grid;gap:8px;font-size:11px;min-width:0;color:var(--g-muted)}.gacha-admin input:not([type=checkbox]),.gacha-admin select,.gacha-admin textarea{width:100%;min-width:0;box-sizing:border-box;background:var(--g-dark);border:1px solid var(--g-line);border-radius:6px;color:var(--g-text);padding:11px;font:inherit;font-size:12px}.gacha-admin input[type=file]{font-size:10px}.gacha-admin input:focus,.gacha-admin select:focus,.gacha-admin textarea:focus{outline:1px solid var(--g-jade)}.ga-toggle{display:flex;align-items:center;gap:10px;font-size:12px;margin:18px 0 26px}.ga-toggle input{accent-color:var(--g-jade)}.ga-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.ga-section-heading h3{font-size:16px;margin:0}.ga-section-heading button,.ga-reward-head button{white-space:nowrap;font-size:11px;min-height:36px;padding:8px 12px}.ga-section-heading+.gacha-demo-note{margin:9px 0 18px}.ga-reward{border:1px solid var(--g-line);border-radius:10px;background:var(--g-card);margin-bottom:10px}.ga-reward-head{display:flex;align-items:center;gap:12px;padding:12px}.ga-reward-head img{width:44px;height:44px;object-fit:contain;image-rendering:pixelated}.ga-reward-head>div{flex:1;min-width:0}.ga-reward-head strong{display:block;font-size:12px;overflow-wrap:anywhere}.ga-reward-head small{display:block;font-size:10px;color:var(--g-muted);margin-top:5px}.ga-remove{border:0;background:none;color:var(--ui-danger);cursor:pointer}.ga-reward-fields{padding:4px 16px 18px}.ga-codes{border-top:1px solid var(--g-line);margin-top:18px;padding-top:14px}.ga-codes summary{cursor:pointer;font-size:12px;color:var(--g-jade)}.ga-codes .admin-field{margin-top:14px}.ga-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--g-bg);border-top:1px solid var(--g-line);padding:18px 0 0;margin-top:20px}.ga-footer strong{font-size:12px;color:var(--g-jade)}#ga-message{font-size:11px;line-height:1.7;color:var(--g-muted);margin:7px 0 0}.ga-footer .ga-error,#ga-message.ga-error{color:var(--ui-danger)}.ga-footer .gacha-spin{flex-shrink:0;font-size:12px}.ga-footer .gacha-text-button{color:var(--g-gold)}
@media(max-width:600px){.gacha-admin{padding:23px 15px}.ga-reward-head{gap:7px;padding:10px}.ga-reward-head img{width:34px;height:34px}.ga-reward-head button{font-size:10px;padding:8px}.ga-reward-head strong{font-size:11px}.ga-reward-fields{padding:5px 11px 15px}.ga-fields-grid,.ga-settings{grid-template-columns:minmax(0,1fr)}.ga-section-heading{flex-direction:column;align-items:flex-start}.ga-footer{align-items:stretch;flex-direction:column;gap:12px}.gacha-admin-toolbar{flex-wrap:wrap}.gacha-admin-toolbar>span{font-size:9px}.gacha-admin .gacha-spin{width:100%}}
:root{--enchant-text:#d0a6f5;--enchant-light:#efbbff;--enchant-shadow:#9253d45c;--enchant-sheen:linear-gradient(115deg,transparent 20%,#a165df66 36%,#f3ceffbb 43%,#9c68ed80 49%,transparent 64%)}
.gacha-art{position:relative;display:block;width:85px;height:85px;flex-shrink:0}.gacha-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.gacha-art.is-enchanted img{filter:drop-shadow(0 0 8px var(--enchant-shadow))}.enchant-glint{position:absolute;inset:0;pointer-events:none;background-image:var(--enchant-sheen),linear-gradient(#b178df38,#b178df38);background-size:300% 300%;background-position:50% 50%;mask-image:var(--item-mask);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:var(--item-mask);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mix-blend-mode:normal;opacity:.95}.gacha-pool .enchant-glint,.gacha-large-art .enchant-glint{animation:enchanted-sweep 4s linear infinite}@keyframes enchanted-sweep{from{background-position:100% 100%}to{background-position:0% 0%}}.gacha-item .enchant-caption{font-size:10px;color:var(--enchant-text);line-height:1.3;text-align:center;padding:0 5px}.gacha-item.has-enchants{gap:5px}.gacha-pool .gacha-item{cursor:pointer;font:inherit;height:175px;padding:10px 4px}.gacha-pool .gacha-art{width:70px;height:70px}.gacha-pool .gacha-art img{width:100%;height:100%}.gacha-pool .gacha-item:focus-visible{outline:2px solid var(--g-jade);outline-offset:3px}.gacha-large-art{display:flex;justify-content:center;margin:24px auto}.gacha-large-art .gacha-art{width:140px;height:140px}.enchant-lines{color:var(--enchant-text);font-size:14px;line-height:1.65}.enchant-lines p{margin:3px 0}.gacha-enchant-sample{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--g-line);background:var(--g-bg);padding:16px 18px;border-radius:10px;margin-top:15px}.gacha-enchant-sample strong{font-size:12px;color:var(--enchant-text)}.gacha-enchant-sample p{font-size:11px;color:var(--g-muted);margin:7px 0 0}.gacha-enchant-sample button{font-size:11px;white-space:nowrap;flex-shrink:0}.ga-enchants-field{margin-top:16px}@media(max-width:600px){.gacha-enchant-sample{align-items:flex-start;flex-direction:column}.gacha-enchant-sample button{width:100%}.gacha-pool .gacha-item{height:165px}}@media(prefers-reduced-motion:reduce){.gacha-pool .enchant-glint,.gacha-large-art .enchant-glint{animation:none}}
/* Hallmark · component: reward metadata · theme: existing Sakura
   Rarity is a bordered badge; enchantments remain on a separate line. */
.gacha-item{height:204px;padding:12px 6px 10px;gap:7px}.gacha-window{height:234px}.gacha-pool .gacha-item{height:204px;padding:12px 6px 10px}.gacha-item.has-enchants{gap:7px}.enchant-caption{min-height:14px}.enchant-empty{visibility:hidden}.gacha-rarity-row{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:auto;white-space:nowrap}.gacha-rarity{--badge:var(--g-silver);display:inline-flex;align-items:center;border:1px solid var(--badge);color:var(--badge);padding:4px 7px;border-radius:5px;font-size:9px;font-weight:650;line-height:1.2;background:var(--g-bg)}.gacha-rarity.rare{--badge:var(--g-blue)}.gacha-rarity.epic{--badge:var(--g-purple)}.gacha-rarity.legendary{--badge:var(--g-gold)}.gacha-rate{font-size:10px;color:var(--g-muted);font-variant-numeric:tabular-nums}.gacha-result .gacha-rarity-row{margin:13px 0}.gacha-result .gacha-rarity{font-size:11px;padding:5px 10px}.gacha-result .gacha-rate{font-size:12px}.gacha-result .enchant-lines{border-top:1px solid var(--g-line);padding-top:12px;margin-top:12px}.gacha-result .enchant-lines:empty{display:none}.gacha-pool .gacha-item:hover{border-color:var(--rarity)}.gacha-pool .gacha-item:active{transform:translateY(1px)}.gacha-item strong{line-height:1.3;min-height:13px}.gacha-spin:disabled{cursor:not-allowed}
@media(max-width:600px){.gacha-pool .gacha-item{height:190px}.gacha-pool .gacha-rarity{font-size:8px;padding:4px 5px}.gacha-pool .gacha-rate{font-size:9px}.gacha-rarity-row{gap:5px}}

/* Same palette and layout, with two spin amounts and a responsive result group. */
.gacha-controls{flex-wrap:wrap;gap:12px}.gacha-controls>.gacha-spin{flex:1;min-width:210px;gap:14px;padding:16px}.gacha-controls>.gacha-spin b{padding-left:14px}.gacha-controls>p{flex-basis:100%;max-width:none}.gacha-controls .gacha-text-button{margin-left:auto}
.gacha-result.is-batch{width:min(900px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.gacha-win-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:22px 0}.gacha-win-grid[hidden],.gacha-large-art[hidden]{display:none}.gacha-win-grid .gacha-item{width:100%;height:auto;min-height:225px;padding:14px 6px;box-sizing:border-box}.gacha-win-grid .gacha-rarity-row{margin:0}.gacha-win-grid .gacha-rarity{font-size:9px}.gacha-win-grid .gacha-delivery{margin-top:4px;color:var(--g-jade);font-size:10px}.gacha-window.is-awaiting .gacha-center{background:var(--g-jade)}.ga-reward-head .ga-real-rate{color:var(--g-jade);font-variant-numeric:tabular-nums}
@media(max-width:760px){.gacha-win-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gacha-win-grid .gacha-item:last-child{grid-column:1/-1;width:calc(50% - 5px);justify-self:center}.gacha-result.is-batch{padding:28px 16px}.gacha-controls>.gacha-spin{min-width:0;flex-basis:100%}.gacha-result h2{font-size:22px}}

@media(max-width:600px){.gacha-win-grid .gacha-item{min-height:178px}.gacha-win-grid .gacha-art{width:64px;height:64px}.gacha-win-grid .gacha-art img{width:100%;height:100%}.gacha-win-grid{gap:8px}.gacha-result.is-batch h2{margin-top:12px}}

/* Independent chests retain the existing Sakura palette. */
.gacha-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.gacha-types button{border:1px solid var(--g-line);background:var(--g-card);color:var(--g-text);border-radius:10px;padding:16px;text-align:left;font:inherit;cursor:pointer;min-width:0}.gacha-types button strong,.gacha-types button span{display:block}.gacha-types button strong{font-size:16px}.gacha-types button span{font-size:12px;color:var(--g-muted);margin-top:6px}.gacha-types button.selected{border-color:var(--g-jade);box-shadow:inset 0 0 0 1px var(--g-jade)}.gacha-types button:disabled{cursor:default;opacity:.7}.ga-kind-field{margin:18px 0}.gacha-pool>.gacha-demo-note{grid-column:1/-1}@media(max-width:420px){.gacha-types{gap:8px}.gacha-types button{padding:12px}.gacha-types button strong{font-size:13px}}

