/* A tactile portrait card table: one object, one action, readable paper. */
.pack-backdrop{padding:calc(16px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px));background:radial-gradient(ellipse at 50% 35%,#413626cc,#0d0b09f5 78%);backdrop-filter:blur(9px)}
.pack-ceremony{height:100%;max-height:850px;max-width:440px;padding:14px 16px 12px;background:linear-gradient(#17140dc4,#17110ff5),url('assets/materials/war-table.webp') center/cover;border:1px solid #b4985730;border-radius:3px;box-shadow:0 30px 80px #000c,inset 0 0 65px #0002;overflow:visible}
.pack-ceremony .pack-content{overflow:visible}
.pack-ceremony .pack-heading{min-height:62px;padding:0 102px 8px 0;text-align:left;border-bottom:1px solid #ceb88124}
.pack-ceremony .pack-heading>p{font:11px/1.6 var(--serif);letter-spacing:2px;color:#a99a7d;margin:0 0 4px}
.pack-ceremony .pack-heading h2{font:24px/1.3 var(--kai);letter-spacing:2px;color:#ecd7ac}
.pack-ceremony .pack-count{right:0;top:19px;font:22px GameRoman,Georgia,serif;color:#c9ae79}
.pack-ceremony .pack-count>i{font:11px var(--serif);color:#9e8d71}
.pack-overview{position:absolute;right:45px;top:11px;min-width:44px;min-height:44px;font:12px var(--serif);color:#c1ad88;padding:0;touch-action:manipulation}
.pack-overview:hover{color:#f3dcb0}
.pack-ceremony .pack-stage{margin:10px 0 0;min-height:0;flex:1;isolation:isolate;container-type:size;overflow:visible}
.pack-ceremony .pack-tear{--pack-width:min(238px,70cqw,calc(100cqh * .61));--pack-height:calc(var(--pack-width) * 1.5);transform:translate(-50%,-50%) rotate(calc(-3deg + var(--tear-progress,0)*-2deg));filter:drop-shadow(6px 27px 16px #000b);transition:filter .2s}
.pack-ceremony .pack-tear:active:not(:disabled){filter:drop-shadow(8px 34px 18px #000c)}
.pack-ceremony .pack-cap{transform:translate(calc(var(--tear-drag-x,0px)*.48),calc(var(--tear-progress,0)*-11px)) rotate(calc(var(--tear-progress,0)*var(--tear-direction,1)*12deg));transition:transform .16s ease-out}
.pack-ceremony .pack-cap>span{font:11px/1.2 var(--serif);padding-top:12px;letter-spacing:3px}.pack-cap b{font:20px Georgia;vertical-align:middle}
.pack-ceremony .pack-shell:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 26%,#fff9dc25 43%,transparent 62%);mix-blend-mode:soft-light}
.pack-ceremony[data-pack-phase="tearing"] .pack-cap{animation:packet-strip .34s cubic-bezier(.2,.7,.2,1) both}
.pack-ceremony[data-pack-phase="dealing"] .pack-tear{opacity:0;transform:translate(-50%,15%) rotate(-16deg) scale(.7);transition:transform .28s,opacity .18s}
.pack-ceremony:is([data-pack-phase="ready"],[data-pack-phase="flipping"]) .pack-tear{display:none}
.pack-ceremony .pack-fan{padding:0;gap:10px;max-width:360px;grid-template-columns:repeat(var(--pack-count),minmax(0,110px));align-items:start}
.pack-ceremony .pack-card-slot{transform:translateY(var(--pack-card-offset)) rotate(var(--pack-card-angle));transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.pack-ceremony .pack-card-back{cursor:pointer;touch-action:manipulation;color:#cbb68d}
.pack-ceremony .pack-card-back>span:last-child{font:14px/1.5 var(--kai);letter-spacing:4px;margin-top:15px}
.pack-ceremony .pack-card-back:hover,.pack-ceremony .pack-card-back:active:not(:disabled){transform:translateY(-9px) rotate(-2deg);filter:brightness(1.15)}
.pack-ceremony .card-back{border:3px solid #d4c6a1;background:repeating-linear-gradient(45deg,#642a23 0 3px,#72372a 3px 6px);box-shadow:2px 12px 20px #000a,inset 0 0 0 1px #a27450}
.pack-ceremony .card-back:before{inset:6px;border:1px solid #dfbc865c;background:repeating-conic-gradient(from 45deg,#cd9c4c12 0% 25%,transparent 0% 50%) 0/12px 12px}
.pack-ceremony .card-back i{color:#d4ae6b;font:36px var(--kai);border:1px solid #c49a6544;padding:8px;transform:rotate(45deg);background:#49221ebf;text-shadow:0 2px #24100b}
.pack-ceremony[data-pack-phase="dealing"] .pack-card-slot{animation:packet-deal .3s cubic-bezier(.12,.85,.23,1.12) both;animation-delay:calc(var(--pack-deal-index)*55ms)}
.pack-spotlight{height:100%;width:100%;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:12px;position:relative;align-items:center;isolation:isolate;min-height:0}
.pack-ceremony .pack-featured-card{width:min(260px,73cqw,calc((100cqh - 122px)*.66667));aspect-ratio:2/3;max-width:none;max-height:none;min-height:0;padding:0;justify-self:center;align-self:center;position:relative;z-index:2;overflow:visible;touch-action:none;pointer-events:auto;transform:translate(var(--pack-drag-x,0px),var(--pack-drag-y,0px)) rotate(calc(-2deg + var(--pack-drag-rotation,0deg))) scale(var(--pack-drag-scale,1));transition:transform .26s cubic-bezier(.18,.95,.24,1.25);filter:none}
.pack-featured-card[style*="--pack-drag-active: 1"]{transition:none!important}
.pack-ceremony .pack-featured-card:disabled{opacity:1}
.pack-card-turn{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d}
.pack-card-turn>.pack-card-face{display:block;width:100%;height:100%;backface-visibility:hidden}
.pack-card-reverse{position:absolute;inset:0;display:block;transform:rotateY(180deg);backface-visibility:hidden}
.pack-card-reverse .card-back{width:100%;height:100%}
.pack-ceremony .pack-inspect-card{width:100%;height:100%;aspect-ratio:2/3;--nickname-size:19px;--name-size:11px;box-shadow:5px 25px 30px #000b}
.pack-ceremony .pack-just-revealed .pack-card-turn{animation:hero-card-turn var(--pack-reveal-duration,650ms) cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(-1*var(--pack-reveal-elapsed,0ms))}
.pack-ceremony .pack-just-revealed .pack-card-face{animation:none}
.pack-hero-title{display:flex;align-items:center;justify-content:center;gap:12px;min-height:50px;position:relative;z-index:3}
.pack-hero-title h3{font:30px/1.2 var(--kai);letter-spacing:3px;color:#eed9b1;margin:0}
.pack-hero-title h3 small{display:block;font:12px/1.6 var(--serif);letter-spacing:1px;color:#b8a580;margin-top:4px}
.pack-discovery-seal{font:13px/1.1 var(--kai);writing-mode:vertical-rl;letter-spacing:2px;padding:5px 4px;border:1px solid #8d5140;color:#bd8c78;transform:rotate(-7deg);background:#542d2329;box-shadow:inset 0 0 0 2px #9c61401c}
.is-new-hero .pack-discovery-seal{background:#873d2b;border-color:#cd8257;color:#f2c9a3}
.pack-poker-power{font:20px GameRoman,Georgia,serif;display:flex;flex-direction:column;gap:2px;border-left:1px solid #9d815341;padding-left:14px;color:#c9b18c;min-width:40px}
.pack-poker-power b{font:19px GameRoman,Georgia,serif;color:#e4be7b}
.pack-meaning{text-align:center;position:relative;width:100%;z-index:5;min-height:57px}
.pack-meaning>strong{display:block;font:13px/1.5 var(--serif);color:#dfbb80;letter-spacing:.4px}
.pack-card-details{position:relative;max-width:320px;margin:3px auto 0;text-align:left}
.pack-card-details summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;font:13px var(--serif);color:#a8977a;cursor:pointer;touch-action:manipulation}
.pack-card-details summary::-webkit-details-marker{display:none}
.pack-card-details summary>span{font:16px Georgia;color:#c3a776}
.pack-card-details[open] summary{color:#edc688}
.pack-card-details[open] summary>span{transform:rotate(45deg)}
.pack-detail-body{position:absolute;left:0;right:0;bottom:100%;padding:17px;background:#30251ff5;box-shadow:0 -10px 25px #0007;border:1px solid #a3834e75;max-height:240px;overflow:auto;text-align:left}
.pack-skill-brief{font:14px/1.7 var(--serif);color:#dfcca6;margin:0 0 13px}
.pack-stat-line{display:flex;gap:15px;justify-content:space-between;border-top:1px solid #a287552d;padding-top:10px;font:11px var(--serif);color:#a9997b}
.pack-stat-line span{display:flex;gap:4px;align-items:baseline}.pack-stat-line b{font:19px GameRoman,Georgia,serif;color:#dbbe8c}
.pack-pips{display:flex;gap:6px;justify-content:center;align-items:center;flex:none;min-height:46px;margin-top:4px}
.pack-pip-control{padding:0;min-width:44px;min-height:44px;display:grid;place-items:center;touch-action:manipulation}
.pack-pip{display:grid;place-items:center;width:20px;height:29px;border:1px solid #ab815948;background:#5b2d23;color:#b79967;font:11px GameRoman,Georgia;transform:rotate(-5deg);box-shadow:1px 3px 3px #0004;transition:transform .2s,border .2s}
.pack-pip i{font:11px var(--kai);font-style:normal}.pack-pip.is-known{background:#b39a68;color:#281d15;border-color:#d9bc83}.pack-pip.is-current{transform:translateY(-4px) rotate(0);outline:1px solid #e0b76c;outline-offset:3px}
.pack-ceremony .pack-status{font:12px/1.5 var(--serif);color:#a8997b;letter-spacing:1px;min-height:22px;margin:3px 0 7px}
.pack-reward-currency{font:13px/1.5 var(--serif);color:#d5b16e;display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 8px}
.pack-reward-currency>span{font-size:11px;margin-left:8px;color:#ad9974}
.pack-ceremony .pack-footer{min-height:65px;padding-top:9px;border-color:#c19b5147;gap:10px;align-items:center;flex:none}
.pack-ceremony .pack-register{min-width:90px;gap:7px;font:11px var(--serif);color:#aa9977;position:relative}
.pack-ceremony .pack-register>i{width:28px;height:39px;line-height:35px;border-color:#986d493f;background:linear-gradient(90deg,#302019,#64482c);box-shadow:3px 4px 4px #0006;color:#d6b879;font-size:22px;transform:rotate(-8deg)}
.pack-register strong{color:#ebc580}.pack-register small{font-size:10px;color:#8f8066}
.pack-collection-gain{position:absolute;left:35px;top:-14px;font:12px var(--serif);color:#e4bf81;animation:hero-stamp .5s ease-out both}
.pack-ceremony .pack-actions{flex:1;display:flex;flex-direction:row;gap:6px;align-items:center;justify-content:flex-end}
.pack-ceremony .pack-actions .primary{min-height:48px;min-width:0;flex:1;font:19px var(--kai);letter-spacing:1px;padding:9px 7px;box-shadow:0 3px 0 #6c4827,0 9px 16px #0005;border-color:#cfa15c;touch-action:manipulation}
.pack-ceremony .pack-actions .primary:active{transform:translateY(2px);box-shadow:0 1px 0 #6c4827}
.pack-ceremony .pack-actions .text-button{min-height:44px;min-width:44px;font:12px var(--serif);padding:4px;color:#bfa477;max-width:55px;line-height:1.5;touch-action:manipulation}
.pack-ceremony .pack-actions .pack-skip{max-width:none;font-size:14px}
.pack-ceremony .pack-card-label strong{font:16px var(--kai);color:#e5c993}.pack-ceremony .pack-card-label small{font:11px var(--serif);color:#9e8d6e}.pack-new-tag{display:inline-block;color:#d59b7e;border:1px solid #8c4a36;padding:2px 4px;font:10px var(--serif);margin-top:4px}
.pack-reveal-aura{position:absolute;inset:0 -10% 100px;z-index:-1;pointer-events:none;opacity:0}
.pack-ceremony[data-pack-tier="2"] .pack-reveal-aura{opacity:.4;background:radial-gradient(ellipse,#a4b7ad40,transparent 60%)}
.pack-ceremony[data-pack-tier="3"] .pack-reveal-aura{opacity:.8;background:radial-gradient(ellipse,#c89e4555,transparent 65%)}
.pack-ceremony[data-pack-tier="4"] .pack-reveal-aura{opacity:.85;background:conic-gradient(from 25deg,transparent,#7a9a8560,transparent,#9e799c55,transparent,#d6ae5955,transparent);filter:blur(22px);animation:hero-foil-ambient 12s linear infinite}
.pack-ceremony[data-pack-tier="1"] :is(.pack-reveal-aura,.pack-landing-ring){display:none}
.pack-landing-ring{position:absolute;width:70%;height:50%;left:15%;top:12%;z-index:-1;border:1px solid #d0b17655;border-radius:50%;opacity:0}
.pack-just-revealed .pack-landing-ring{animation:hero-landing .6s ease-out both;animation-delay:calc(var(--pack-impact-at,260ms) - var(--pack-reveal-elapsed))}
.pack-just-revealed :is(.pack-discovery-seal,.pack-hero-title){animation:hero-stamp .36s ease-out both;animation-delay:calc(var(--pack-impact-at,260ms) - var(--pack-reveal-elapsed))}
.pack-ceremony .pack-card-slot.is-revealed .poker-card.tier-1 .card-surface{display:none!important}
.pack-ceremony .poker-card.tier-4 .foil-highlights>i{background:linear-gradient(112deg,transparent 23%,#b8977e90 34%,#8fb7a9b0 43%,#b4a0b8a0 51%,#dbbd70aa 59%,transparent 70%);opacity:.3;mask-image:var(--card-art);mask-mode:luminance;mask-size:var(--card-mask-size,cover);mask-position:center;mask-repeat:no-repeat}
.pack-ceremony .pack-just-revealed .surface-sweep{animation:card-rim-sweep .55s ease-out both;animation-delay:calc(var(--pack-impact-at,260ms) - var(--pack-reveal-elapsed))}
.pack-ceremony .pack-register.is-receiving{animation:hero-album-land .52s ease-out both}
@keyframes packet-strip{from{transform:translate(0,0) rotate(0);opacity:1}to{transform:translate(calc(150px*var(--tear-direction,1)),-62px) rotate(calc(26deg*var(--tear-direction,1)));opacity:0}}
@keyframes packet-deal{from{opacity:0;transform:translateY(70px) rotate(0) scale(.82)}to{opacity:1;transform:translateY(var(--pack-card-offset)) rotate(var(--pack-card-angle))}}
@keyframes hero-card-turn{0%{transform:translateY(36px) rotateY(180deg) rotateZ(5deg) scale(.88)}25%{transform:translateY(-19px) rotateY(150deg) rotateZ(2deg) scale(1.02)}47%{transform:translateY(-8px) rotateY(-12deg) rotateZ(-1deg) scale(1.055)}73%{transform:translateY(3px) rotateY(3deg) scale(.992)}100%{transform:none}}
@keyframes hero-stamp{0%{opacity:0;transform:translateY(8px) scale(1.13)}100%{opacity:1;transform:none}}
@keyframes hero-landing{0%{opacity:0;transform:scale(.55)}15%{opacity:.7}100%{opacity:0;transform:scale(1.5)}}
@keyframes hero-foil-ambient{to{transform:rotate(360deg)}}
@keyframes hero-album-land{0%,70%,100%{transform:rotate(0)}82%{transform:translateY(3px) scale(1.08) rotate(-2deg)}}
@media(max-height:700px){.pack-backdrop{padding-top:10px;padding-bottom:10px}.pack-ceremony{padding:10px 12px}.pack-ceremony .pack-heading{min-height:50px}.pack-ceremony .pack-heading h2{font-size:22px}.pack-ceremony .pack-heading>p{font-size:10px;margin-bottom:1px}.pack-ceremony .pack-count{top:13px;font-size:20px}.pack-overview{top:2px}.pack-ceremony .pack-stage{margin-top:4px}.pack-spotlight{gap:7px}.pack-ceremony .pack-featured-card{width:min(220px,74cqw,calc((100cqh - 106px)*.66667))}.pack-hero-title{min-height:42px;gap:10px}.pack-hero-title h3{font-size:26px}.pack-hero-title h3 small{font-size:11px;margin-top:2px}.pack-meaning{min-height:52px}.pack-meaning>strong{font-size:12px}.pack-card-details summary{font-size:12px}.pack-pips{min-height:44px;margin-top:1px}.pack-ceremony .pack-status{font-size:11px;min-height:18px;margin:1px 0 5px}.pack-ceremony .pack-footer{min-height:58px;padding-top:6px}.pack-ceremony .pack-actions .primary{min-height:44px;font-size:17px}.pack-reward-currency{font-size:11px;margin-bottom:4px}.pack-reward-currency>span{font-size:10px}.pack-card-details .pack-skill-brief{font-size:13px}}
@media(max-width:360px){.pack-backdrop{padding-left:8px;padding-right:8px}.pack-ceremony{padding-left:11px;padding-right:11px}.pack-ceremony .pack-register{min-width:80px;font-size:10px}.pack-ceremony .pack-footer{gap:7px}.pack-ceremony .pack-actions .text-button{max-width:45px;font-size:11px}.pack-ceremony .pack-fan{gap:6px}.pack-hero-title h3{font-size:25px}.pack-ceremony .pack-inspect-card{--nickname-size:15px;--name-size:9px}.pack-meaning>strong{font-size:11px}.pack-poker-power{padding-left:9px;min-width:34px;font-size:18px}.pack-poker-power b{font-size:17px}}
.pack-ceremony[data-pack-phase="flipping"] .pack-card-details{pointer-events:none}
.tavern-v03 .tavern-sign{height:95px;margin-bottom:0;align-items:flex-start}.tavern-v03 .tavern-sign h2{font-size:24px;letter-spacing:3px;line-height:1.5}.tavern-v03 .tavern-sign>span{font-size:12px}
.tavern-v03 .tavern-bottom>p{text-align:center;color:#c4b08c;margin:8px 0 14px;font-size:12px}
.tavern-v03 .recruit-button{background:none;border:0;box-shadow:none;min-height:0;overflow:visible;width:100%;gap:20px;padding:0 0 18px;color:#ecd3a2;touch-action:manipulation}
.tavern-packet{display:block;width:204px;aspect-ratio:2/3;position:relative;margin:0 auto;background:url('assets/pack/hero-packet.webp') center/cover;transform:rotate(-5deg);border:1px solid #967246;box-shadow:6px 18px 30px #0008,2px 1px 0 #6f5131,-1px -1px 0 #d9bf8b;transition:transform .25s cubic-bezier(.2,.8,.2,1.2),box-shadow .25s}
.tavern-packet:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 23%,#fff2c924 48%,transparent 72%);pointer-events:none}
.tavern-packet>i{display:block;position:absolute;left:8px;right:8px;top:14%;border-top:1px dashed #86674390}
.tavern-v03 .recruit-button:hover .tavern-packet{transform:translateY(-6px) rotate(-3deg);box-shadow:8px 24px 30px #0009}
.tavern-v03 .recruit-button:active:not(:disabled) .tavern-packet{transform:translateY(-12px) rotate(-1deg) scale(1.03)}
.tavern-v03 .recruit-button:before,.tavern-v03 .recruit-button:after{display:none}
.tavern-v03 .recruit-button:disabled .tavern-packet{filter:saturate(.45);opacity:.65}
.tavern-recruit-caption{display:flex;flex-direction:column;gap:7px;text-align:center;font:26px var(--kai);letter-spacing:4px}.tavern-v03 .recruit-button small{font:12px var(--serif);letter-spacing:1px;color:#bca276}
.tavern-services{border-top:1px solid #b0905347;border-bottom:1px solid #b0905327;margin-top:6px;background:#1b151480}
.tavern-services>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:52px;font:17px var(--kai);padding:8px 12px;color:#d5b77e;cursor:pointer;touch-action:manipulation}
.tavern-services>summary::-webkit-details-marker{display:none}.tavern-services>summary>span{font:11px var(--serif);color:#a59372;margin-left:auto;padding-right:12px}.tavern-services>summary>b{font:22px Georgia;color:#ae8c59}.tavern-services[open]>summary>b{transform:rotate(45deg)}
.tavern-service-body{padding:0 12px 15px}.tavern-service-body .tavern-wishlist{margin-top:10px}
@media(max-height:700px){.tavern-v03 .tavern-sign{height:66px}.tavern-v03 .tavern-sign h2{font-size:20px}.tavern-packet{width:160px}.tavern-v03 .recruit-button{gap:14px}.tavern-recruit-caption{font-size:23px}.tavern-services>summary{min-height:48px}}
.reduced-motion .pack-ceremony *{animation:none!important;transition:none!important}.reduced-motion .pack-card-turn{transform:none!important}
@media(prefers-reduced-motion:reduce){.pack-ceremony *{animation:none!important;transition:none!important}.pack-card-turn{transform:none!important}}

@media(max-height:600px){
 .pack-spotlight{gap:5px}
 .pack-hero-title{min-height:42px;gap:8px}
 .pack-hero-title h3{font-size:23px;letter-spacing:2px}
 .pack-hero-title h3 small{display:inline-block;font-size:10px;letter-spacing:0;margin:0 0 0 7px;vertical-align:middle}
 .pack-meaning{display:flex;align-items:center;gap:8px;min-height:44px;text-align:left;padding:0 8px}
 .pack-meaning>strong{flex:1;font-size:11px;line-height:1.5}
 .pack-card-details{position:static;flex:none;width:54px;margin:0}
 .pack-card-details summary{font-size:0;gap:4px;justify-content:flex-end}
 .pack-card-details summary:before{content:"本领";font:11px var(--serif)}
 .pack-detail-body{left:8px;right:8px;bottom:100%}
}

.tavern-v03 .tavern-sign h2{writing-mode:horizontal-tb;max-width:100%;width:auto;text-align:right;line-height:1.5;letter-spacing:3px}
@media(max-height:600px){
 .tavern-v03{padding:12px 20px 14px}
 .tavern-v03 .tavern-sign{height:50px;margin:0 0 8px;padding:0}
 .tavern-v03 .tavern-sign>span{font-size:11px;writing-mode:horizontal-tb;padding:5px 7px;letter-spacing:2px;align-self:center}
 .tavern-v03 .tavern-sign h2{font-size:17px;line-height:1.4;letter-spacing:2px}
 .tavern-v03 .tavern-bottom>p{font-size:11px;line-height:1.3;margin-bottom:8px}
 .tavern-packet{width:128px}
 .tavern-v03 .recruit-button{gap:12px;padding-bottom:10px}
 .tavern-recruit-caption{font-size:22px;gap:5px}
 .tavern-v03 .recruit-button small{font-size:11px}
 .tavern-services>summary{min-height:44px;padding-top:6px;padding-bottom:6px}
}
