.booster-room{position:absolute;inset:0;overflow:clip;background:#b4aa97 var(--booster-desk-image) center/cover no-repeat;--reveal-color:#a4c4d2}.booster-room[data-rarity=SR],.booster-room[data-card-rarity=SR]{--reveal-color:#c7a6e6}.booster-room[data-rarity=UR],.booster-room[data-card-rarity=UR]{--reveal-color:#e6c274}.booster-set-id{font:600 11px var(--font-ui);letter-spacing:.22em;color:#c5ad7a}.pack-skip{font-size:11px;color:#afa891;padding:10px}.pack-heading{position:absolute;top:calc(var(--safe-top) + 68px);width:100%;text-align:center;z-index:5}.pack-eyebrow{display:block;font-size:10px;letter-spacing:.23em;color:#b6b396}.pack-title{font-size:27px;font-weight:600;letter-spacing:.13em;color:#fff5de;margin-top:5px;text-shadow:0 1px 2px #251c13,0 2px 8px #21180cd9}.pack-display{position:absolute;left:12px;right:12px;top:calc(var(--safe-top) + 148px);bottom:calc(var(--safe-bottom) + 190px);display:grid;place-items:center;perspective:1100px}.sealed-pack{container-type:inline-size;position:relative;width:min(64cqw,calc((var(--safe-height) - 370px)/1.5),270px);aspect-ratio:2/3;transform:rotate(-3deg);filter:drop-shadow(0 22px 20px #0009);perspective:1100px}.pack-wrapper{position:absolute;inset:0;touch-action:none;transform-style:preserve-3d;cursor:grab;--tear:0}.pack-body,.pack-lid{position:absolute;inset:0;background:var(--pack-image) center/100% 100%;border-radius:2px}.pack-body{clip-path:inset(4% 0 0)}.pack-lid{clip-path:inset(0 0 96%);transform-origin:0 4%;z-index:4}.pack-seam{position:absolute;top:3.8%;left:0;width:calc(var(--tear)*100%);height:2px;box-shadow:0 0 10px 2px #fff4bf;background:#ffffe1;z-index:5}.pack-code{position:absolute;top:8%;left:0;right:0;text-align:center;font:500 11px var(--font-ui);color:#e6cc97;letter-spacing:.25em}.pack-lettering{position:absolute;left:22%;right:22%;top:70%;bottom:6%;overflow:hidden;text-align:center;text-shadow:0 2px 4px #061218;pointer-events:none;color:#e7d09d}.pack-lettering span{display:block;font-size:2.6cqw;line-height:1.4;letter-spacing:.18em;margin-bottom:2.6cqw;white-space:nowrap}.pack-lettering strong{display:block;font-size:11cqw;font-weight:650;letter-spacing:.18em;line-height:1.22;word-break:keep-all}.pack-reflection{position:absolute;inset:0;background:linear-gradient(112deg,transparent 15%,#d7dfc911 25%,#fff9d944 30%,transparent 36%);background-size:240% 100%;pointer-events:none;mix-blend-mode:screen;animation:pack-sheen 5s ease-in-out infinite}.pack-aura{position:absolute;inset:-24%;border-radius:50%;background:radial-gradient(#9ebcbd28,transparent 65%);filter:blur(12px)}.tear-guide{position:absolute;top:105%;width:160%;left:-30%;text-align:center;color:#bac5bc;font-size:11px;pointer-events:none}.tear-guide i{display:block;position:relative;width:115px;height:23px;margin:0 auto 4px;border-top:1px solid #dcc89140}.tear-guide i:after{content:'☞';position:absolute;left:0;top:-15px;font-size:27px;color:#f2dda9;animation:tear-hand 2.8s ease-in-out infinite}.pack-dock{position:absolute;left:26px;right:26px;bottom:calc(var(--safe-bottom) + 25px);text-align:center;z-index:30}.pack-dock .primary-action{width:100%;margin-top:14px}.pack-note{font-size:10px;letter-spacing:.025em;text-shadow:0 1px 2px #fff9;margin-top:13px;min-height:16px}.pack-reveal-copy{min-height:24px}.pack-light-flash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#fffce9,#eae3fe90 30%,transparent 70%);z-index:26;opacity:0;pointer-events:none}.booster-room[data-phase=teasing] .pack-aura,.booster-room[data-phase=opening] .pack-aura{background:radial-gradient(var(--reveal-color),transparent 66%);animation:pack-anticipation .65s ease-in-out infinite}.booster-room[data-phase=teasing] .pack-seam{width:100%;box-shadow:0 0 14px 3px var(--reveal-color)}.booster-room[data-rarity=UR] .pack-aura{background:conic-gradient(from 30deg,#6ecdb32a,#c8a5f833,#f9cb832c,#789bdc33,#6ecdb32a)}
.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 62px)}.pack-unsealed .pack-title{font-size:15px;opacity:.7}.pack-unsealed .pack-eyebrow{display:none}.pack-unsealed .pack-display{top:calc(var(--safe-top) + 103px);bottom:calc(var(--safe-bottom) + 244px)}.pack-card{position:relative;width:min(71cqw,calc((100dvh - 345px)/1.5),290px);aspect-ratio:2/3;perspective:1200px;z-index:22;touch-action:none}.pack-card-rotor{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(180deg)}.pack-card-back,.pack-card-front{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.pack-card-front .game-card{width:100%;height:100%}.pack-card-back{transform:rotateY(180deg);border:0;background:none;box-shadow:none}.pack-card-back>.cosmetic-card-back{position:absolute;inset:0;width:100%;height:100%;margin:0;box-shadow:none}.reveal-halo{position:absolute;inset:-20%;background:radial-gradient(#b4d0d122,transparent 68%);pointer-events:none}.pack-card[data-rarity=SR] .reveal-halo{background:radial-gradient(#c3a0e744,transparent 68%)}.pack-card[data-rarity=UR] .reveal-halo{background:repeating-conic-gradient(from 15deg,#efd28b2c 0deg 9deg,transparent 12deg 25deg,#c9ade91c 28deg 34deg,transparent 38deg 50deg);mask-image:radial-gradient(#000 30%,transparent 70%);animation:halo-orbit 25s linear infinite}.pack-rarity-label{display:block;font:650 13px var(--font-ui);letter-spacing:.13em;color:#c6d8d8}.pack-rarity-label.SR,.reward-rarity.SR{color:#dec5ff}.pack-rarity-label.UR,.reward-rarity.UR{color:#f0cc78;text-shadow:0 0 12px #b9975480}.pack-card-name{font-size:20px;margin:7px 0 3px;color:#f2e9d3;font-weight:650;letter-spacing:-.035em}.pack-foil-label{font-size:11px;color:#b5c2bd}.pack-inspect{font-size:10px;color:#d2b981;border-bottom:1px solid #c9b07255;margin-top:9px;padding:0 4px 3px}.pack-summary .pack-heading{top:calc(var(--safe-top) + 70px)}.pack-summary .pack-display{top:calc(var(--safe-top) + 149px);bottom:calc(var(--safe-bottom) + 181px)}.pack-rewards{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:12px 8px;width:100%;max-width:420px}.pack-reward{width:29%;max-width:118px;min-width:0;padding:0;text-align:center}.pack-reward .game-card{width:100%}.reward-rarity{font:650 10px var(--font-ui);color:#bfd5d5;display:block;margin-top:4px}.pack-reward strong{font-size:9px;line-height:1.35;font-weight:500;display:block;color:#d4d5c9;word-break:keep-all;margin-top:3px}.reward-title{font-size:24px;letter-spacing:.12em;margin-top:7px}.booster-lobby-link{display:flex;align-items:center;gap:12px;width:100%;max-width:400px;min-height:46px;padding:7px 12px;margin-top:14px;border:1px solid #c8b17955;border-radius:8px;background:linear-gradient(100deg,#9a855f1c,#08212c88);text-align:left}.booster-lobby-link img{width:25px;height:35px;object-fit:cover;transform:rotate(-9deg);box-shadow:0 2px 6px #0009}.booster-lobby-link span{display:flex;flex-direction:column;flex:1}.booster-lobby-link small{font-size:9px;color:#b4c0b9;letter-spacing:.12em}.booster-lobby-link strong{font-size:13px;letter-spacing:.06em;color:#e9d2a0;font-weight:600}.hero-home:has(.booster-lobby-link) .hero-portrait{width:min(63cqw,calc((100dvh - 365px)/1.5),280px)!important}.hero-home:has(.booster-lobby-link) .home-deck-summary{display:none}@keyframes pack-sheen{0%,18%{background-position:110% 50%}80%,100%{background-position:-60% 50%}}@keyframes tear-hand{0%,15%{transform:translateX(0);opacity:.2}35%{opacity:1}75%{transform:translateX(90px);opacity:1}100%{transform:translateX(90px);opacity:0}}@keyframes pack-anticipation{50%{opacity:.5;transform:scale(.95)}}@keyframes ur-back{50%{opacity:.45;filter:hue-rotate(35deg)}}@keyframes halo-orbit{to{transform:rotate(360deg)}}
@media(max-height:720px){.pack-heading{top:calc(var(--safe-top) + 54px)}.pack-title{font-size:21px}.pack-display{top:calc(var(--safe-top) + 116px);bottom:calc(var(--safe-bottom) + 160px)}.sealed-pack{width:min(60cqw,calc((100dvh - 297px)/1.5),245px)}.pack-dock{bottom:calc(var(--safe-bottom) + 16px)}.pack-note{margin-top:9px}.pack-unsealed .pack-display{top:calc(var(--safe-top) + 93px);bottom:calc(var(--safe-bottom) + 208px)}.pack-card{width:min(67cqw,calc((100dvh - 298px)/1.5),280px)}.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 57px)}.pack-card-name{font-size:17px;margin-top:5px}.pack-inspect{margin-top:5px}.pack-dock .primary-action{margin-top:9px;min-height:45px}.pack-summary .pack-display{top:calc(var(--safe-top) + 115px);bottom:calc(var(--safe-bottom) + 177px)}.pack-reward{width:26%;max-width:98px}.pack-reward strong{font-size:8px}.booster-lobby-link{min-height:40px;margin-top:10px}.hero-home:has(.booster-lobby-link) .hero-portrait{width:min(59cqw,calc((100dvh - 320px)/1.5),245px)!important}}
/* The desk footer is ivory; its note must override shared dark-scene ink. */
.booster-room .pack-note{color:#382b1e}
.booster-room .reward-title{position:relative;isolation:isolate;width:fit-content;max-width:100%;margin:0 auto 10px;padding:6px 30px;color:#fff5de;line-height:1.25;text-shadow:0 1px 2px #251c13}
.booster-room .reward-title::before{content:'';position:absolute;inset:-4px -18px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,#18130fea 0%,#18130fcc 50%,#18130f70 67%,transparent 80%);filter:blur(2px);transform:rotate(-1.5deg)}
/* Pack controls stay in one thumb-reachable dock; all art remains non-selectable. */
.booster-room,.booster-room *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.booster-room img{-webkit-user-drag:none}.pack-wallet{position:absolute;left:18px;right:18px;top:calc(var(--safe-top) + 53px);display:flex;justify-content:center;gap:12px;z-index:6;color:#d2d7c7;font-size:10px;font-variant-numeric:tabular-nums}.pack-wallet span{white-space:nowrap}.pack-heading{top:calc(var(--safe-top) + 86px)}.pack-title{font-size:23px}.pack-display{top:calc(var(--safe-top) + 162px);bottom:calc(var(--safe-bottom) + 236px)}.sealed-pack{width:min(64cqw,calc((100dvh - 421px)/1.5),265px)}.tear-guide{top:3.8%;left:0;width:100%;transform:translateY(-12px);font-size:10px;color:#ecdfb6;text-shadow:0 1px 5px #000;z-index:8}.tear-guide i{width:80%;height:0;margin:0 auto;border-top:2px dashed #e3cea2a8;filter:drop-shadow(0 1px 3px #071820)}.tear-guide i:after{top:-20px;left:0;font-size:30px;animation:seal-hand 2.8s ease-in-out infinite}.tear-guide span{display:inline-block;transform:translateY(-29px);padding:4px 8px;border-radius:5px;background:#292721ed;border:1px solid #a49a7466}.pack-payment{display:flex;gap:7px;justify-content:center;margin:7px 0}.pack-payment-option{flex:1;min-height:34px;border:1px solid #8e9b8d55;border-radius:6px;color:#aabbb6;font-size:11px;padding:6px;background:#0e2028a8}.pack-payment-option[aria-pressed=true]{border-color:#d0b77a;background:#c0a36c24;color:#f0ddac}.pack-payment-option:disabled{opacity:.38}.pack-skip{display:block;width:100%;min-height:40px;padding:9px 12px;border:1px solid #ccb68a99;border-radius:7px;background:#a78f6026;color:#ecdbb6;font-size:12px;font-weight:600;margin-top:9px}.pack-skip:disabled{opacity:.4}.pack-dismantle{display:block;width:100%;min-height:36px;padding:8px;border:1px solid #b4a2c86b;border-radius:6px;font-size:11px;color:#d0badf;background:#8873a322;margin-top:9px}.pack-skip[hidden],.pack-payment[hidden],.pack-dismantle[hidden]{display:none}.pack-dock{bottom:calc(var(--safe-bottom) + 20px)}.pack-dock .primary-action{margin-top:8px}.pack-note{margin-top:9px}.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 78px)}.pack-unsealed .pack-display{top:calc(var(--safe-top) + 107px);bottom:calc(var(--safe-bottom) + 243px)}.pack-card{width:min(73cqw,calc((100dvh - 362px)/1.5),303px)}.pack-unsealed .pack-note{min-height:14px}.pack-inspect{margin-top:6px}.pack-summary .pack-heading{top:calc(var(--safe-top) + 85px)}.pack-summary .pack-display{top:calc(var(--safe-top) + 147px);bottom:calc(var(--safe-bottom) + 226px)}.pack-summary .reward-title{font-size:21px}.pack-summary .pack-reveal-copy{min-height:0}.pack-rewards{gap:9px 8px}.pack-reward{width:27%;max-width:110px}@keyframes seal-hand{0%,15%{left:0;opacity:.2}35%{opacity:1}75%{left:85%;opacity:1}100%{left:85%;opacity:0}}
@media(max-height:720px){.pack-wallet{top:calc(var(--safe-top) + 48px);font-size:9px;gap:10px}.pack-heading{top:calc(var(--safe-top) + 76px)}.pack-title{font-size:19px}.pack-display{top:calc(var(--safe-top) + 141px);bottom:calc(var(--safe-bottom) + 227px)}.sealed-pack{width:min(60cqw,calc((100dvh - 381px)/1.5),240px)}.pack-dock{left:22px;right:22px;bottom:calc(var(--safe-bottom) + 13px)}.pack-skip{min-height:36px;font-size:11px;margin-top:7px;padding:7px}.pack-payment-option{min-height:31px;font-size:10px}.pack-note{font-size:9px;min-height:14px;margin-top:7px}.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 74px)}.pack-unsealed .pack-display{top:calc(var(--safe-top) + 101px);bottom:calc(var(--safe-bottom) + 218px)}.pack-card{width:min(70cqw,calc((100dvh - 330px)/1.5),285px)}.pack-unsealed .pack-dock .primary-action{min-height:43px}.pack-rarity-label{font-size:12px}.pack-inspect{margin-top:4px}.pack-foil-label{font-size:10px}.pack-summary .pack-heading{top:calc(var(--safe-top) + 75px)}.pack-summary .pack-display{top:calc(var(--safe-top) + 128px);bottom:calc(var(--safe-bottom) + 206px)}.pack-reward{width:25%;max-width:89px}.pack-reward strong{font-size:8px}.pack-summary .reward-title{font-size:19px}.pack-summary .pack-eyebrow{font-size:9px}.pack-dismantle{min-height:31px;font-size:10px;margin-top:6px}.pack-rewards{gap:8px}}
@media(prefers-reduced-motion:reduce){.tear-guide i:after{animation:none;left:45%}.pack-reflection,.pack-aura,.reveal-halo,.pack-card-back:after{animation:none!important}}
/* The pack header contains only navigation and its two usable currencies. */
.booster-room>.game-topbar{justify-content:space-between;gap:12px}.booster-room>.game-topbar>.currency-chips{margin-left:auto}.booster-room .pack-heading{top:calc(var(--safe-top) + 66px)}.booster-room.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 62px)}
.pack-unsealed .pack-display{top:calc(var(--safe-top) + 93px);bottom:calc(var(--safe-bottom) + 174px)}.pack-card{width:min(73cqw,calc((100dvh - 280px)/1.5),303px)}.pack-unsealed .pack-reveal-copy{min-height:14px}.pack-unsealed .pack-note:empty{display:none}.pack-summary .pack-heading{top:calc(var(--safe-top) + 66px)}
@media(max-height:720px){.booster-room .pack-heading{top:calc(var(--safe-top) + 62px)}.booster-room.pack-unsealed .pack-heading{top:calc(var(--safe-top) + 60px)}.pack-unsealed .pack-display{top:calc(var(--safe-top) + 87px);bottom:calc(var(--safe-bottom) + 158px)}.pack-card{width:min(70cqw,calc((100dvh - 258px)/1.5),285px)}.pack-summary .pack-heading{top:calc(var(--safe-top) + 62px)}}

.tear-guide[hidden]{display:none}

/* A pack flip has two flat faces. Keep nested foil perspective out of the
   rotor to avoid competing front/back planes in mobile compositors.
   Keep optical foil gradients; the rotor owns the entire card's pose. */
.pack-card-front{transform:rotateY(0deg);transform-style:flat;isolation:isolate}
.pack-card-front>.game-card{filter:none!important}
.pack-card-front>.game-card>.card-surface{transform:none!important;transition:none!important}
/* Measured while covered, then detached; prepared faces retain decoded layers. */
.pack-preload-stage{position:absolute;inset:0;visibility:hidden;pointer-events:none;overflow:hidden}
.pack-preload-stage>.pack-card{position:absolute;left:0;top:0}

/* Progress floats above the fixed action dock; it never participates in layout. */
.pack-dock>.pack-progress{position:absolute;bottom:calc(100% + 17px);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:15px;width:max-content;height:16px;pointer-events:none}
.pack-dock>.pack-progress[hidden]{display:none}
.pack-progress-dot{position:relative;display:block;width:6px;height:6px;flex:none;border:1px solid #c9ba935e;border-radius:50%;background:#132b34;box-shadow:inset 0 1px 2px #0008;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.pack-progress-dot[data-state=complete]{background:#8c997f;border-color:#b3b496}
.pack-progress-dot[data-state=current]{background:#f2dc9e;border-color:#fff0c4;box-shadow:0 0 8px #f2d48b88}
.pack-progress-dot[data-state=current]::after{content:'';position:absolute;inset:-4px;border:1px solid #dfc58477;border-radius:50%}
/* Both reveal buttons keep their footprint during anticipation, flips and gaps. */
.booster-room:is([data-phase=teasing],[data-phase=opening],.pack-unsealed) .pack-reveal-copy{display:none}
.booster-room:is([data-phase=teasing],[data-phase=opening],.pack-unsealed) .pack-note{display:none}
.booster-room .pack-dock>.pack-skip.secondary-action{position:relative;min-height:44px;margin:0 0 10px;padding:9px 22px;border:1px solid #b7a0787a;border-image:none;border-radius:2px;background:#2c2a26;color:#e8d8b1;font-size:12px;font-weight:650;letter-spacing:.08em;box-shadow:0 3px 8px #010c1455;text-shadow:0 1px 2px #07161c}
.booster-room .pack-dock>.primary-action{margin-top:0;min-height:48px}
.booster-room .pack-dock>.pack-skip[hidden]{display:none}
@media(hover:hover){.booster-room .pack-dock>.pack-skip:hover:not(:disabled){filter:brightness(1.12)}}
@media(prefers-reduced-motion:reduce){.pack-progress-dot{transition:none}}

/* Alt Art replaces the fifth reward slot. Its mileage stays separate from the
   natural 0.1% roll, so a lucky pack never erases existing progress. */
.booster-room[data-rarity=AR],.booster-room[data-card-rarity=AR]{--reveal-color:#ffe78c}
.booster-room[data-rarity=AR] .pack-aura{background:conic-gradient(from 20deg,#ffdf754d,#d59cff55,#76f0e04d,#ff9fc544,#ffdf754d);animation:halo-orbit 4.8s linear infinite}
.pack-card[data-rarity=AR] .reveal-halo{inset:-33%;background:repeating-conic-gradient(from 5deg,#ffeaa55a 0deg 7deg,transparent 10deg 18deg,#d5acff48 21deg 29deg,transparent 33deg 42deg);mask-image:radial-gradient(#000 28%,transparent 72%);animation:halo-orbit 8s linear infinite;filter:drop-shadow(0 0 18px #ffe5968c)}
.reward-rarity.AR{color:#fff0a6;text-shadow:0 0 7px #e59aff,0 0 15px #82eadb;font-weight:800;letter-spacing:.13em}
.pack-reward[data-alt-art=true]{filter:drop-shadow(0 0 9px #e5b4ff80)}
.alt-art-pity{position:absolute;bottom:calc(100% + 40px);left:0;right:0;display:grid;grid-template-columns:auto minmax(70px,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid #d0b9784d;border-radius:8px;background:linear-gradient(105deg,#172c34e8,#3a3145dd,#172c34e8);box-shadow:0 4px 14px #020b11a8;color:#e9dfbf;transition:opacity .18s ease}
.alt-art-pity-copy{font-size:10px;white-space:nowrap}.alt-art-pity-track{height:7px;overflow:hidden;border:1px solid #9f9a7c55;border-radius:99px;background:#07151d;box-shadow:inset 0 1px 3px #000}.alt-art-pity-fill{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8d719f,#e2ba6b,#95d6c9);box-shadow:0 0 8px #e8cf8899;transition:width .35s ease}.alt-art-pity-claim{min-height:30px;padding:5px 8px;border:1px solid #d5bc7791;border-radius:6px;background:#8e754b2e;color:#f2dfaa;font-size:10px;font-weight:700;white-space:nowrap}.alt-art-pity-claim:disabled{opacity:.38}.alt-art-pity[data-completed=true] .alt-art-pity-fill{background:linear-gradient(90deg,#d4b96f,#f4e5aa)}
.pack-unsealed:not(.pack-summary) .alt-art-pity{opacity:0;pointer-events:none}
@media(max-width:350px){.alt-art-pity{gap:5px;padding-inline:7px}.alt-art-pity-copy,.alt-art-pity-claim{font-size:9px}.alt-art-pity-claim{padding-inline:6px}}

/* Card-relative light and a dark surround give the reveal room for contrast. */
.pack-cinematic-veil{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 42%,transparent 22%,#0003 68%,#0006);transition:opacity 180ms;z-index:0}
.booster-room:is([data-card-rarity=SR],[data-card-rarity=UR]):is([data-phase=card-tease],[data-phase=card-reveal])>.pack-cinematic-veil{opacity:1}
.booster-room[data-phase=card-ready]>.pack-cinematic-veil{opacity:.35;transition:opacity 450ms}
.pack-display{will-change:transform}
.pack-card .reveal-halo{inset:-32%;opacity:0;transition:opacity 160ms}
.booster-room[data-phase=card-ready] .reveal-halo{opacity:.5}
.booster-room[data-card-rarity=UR] .reveal-halo{background:radial-gradient(ellipse,#f7d18c36 12%,#c9a0ed20 40%,transparent 68%);animation:none;mask-image:none}
@media(prefers-reduced-motion:reduce){.pack-cinematic-veil{transition:none!important;opacity:0!important}.pack-card .reveal-halo{transition:none}}
/* Printed charcoal ink stays legible on the ivory pack painting. */
.pack-code,.pack-lettering{color:#343029}
.pack-lettering{text-shadow:none}
.tear-guide span{white-space:nowrap;max-width:none;font-size:clamp(9px,4cqw,10px)}

/* Anchor the lowest action itself. Footnotes never alter the dock's height. */
.booster-room{--pack-footer-space:25px;--pack-dock-inset:20px}
.booster-room .pack-dock{bottom:calc(var(--safe-bottom) + var(--pack-dock-inset) + var(--pack-footer-space))}
.booster-room .pack-dock>.pack-note{position:absolute;top:100%;left:0;right:0;margin:9px 0 0;min-height:16px;line-height:14px}
.booster-room.pack-unsealed .pack-display{bottom:calc(var(--safe-bottom) + 174px + var(--pack-footer-space))}
.booster-room .pack-card{max-width:calc((var(--safe-height) - 283px - var(--pack-footer-space))/1.5)}
@media(max-height:720px){
 .booster-room{--pack-footer-space:21px;--pack-dock-inset:13px}
 .booster-room .pack-dock>.pack-note{margin-top:7px;min-height:14px}
 .booster-room.pack-unsealed .pack-display{bottom:calc(var(--safe-bottom) + 158px + var(--pack-footer-space))}
 .booster-room .pack-card{max-width:calc((var(--safe-height) - 261px - var(--pack-footer-space))/1.5)}
}

/* Press feedback changes light, never the footer's visible geometry or focus scroll. */
.booster-room .pack-dock>button:is(.primary-action,.secondary-action){transform:none;transition:filter 120ms ease}
.booster-room.pack-summary .pack-display{overflow-y:auto;overscroll-behavior:contain;align-items:safe center;padding-block:4px}
