/* Pass 2 is limited to home, collection, and a live TCG table. */
body[data-view=home] .port-foreground{position:absolute;z-index:4;pointer-events:none;left:-7%;width:114%;height:310px;bottom:calc(136px + env(safe-area-inset-bottom,0px));background:url('/assets/premium-pass-two/harbor-foreground-v1.png') center bottom/100% auto no-repeat;filter:drop-shadow(0 7px 4px #17334266)}
body[data-view=home] .port-companion{position:absolute;z-index:2;bottom:calc(224px + env(safe-area-inset-bottom,0px));left:4%;width:116px;height:170px;padding:0;border:0;background:none;box-shadow:none;filter:drop-shadow(0 4px 2px #173b4266)}
body[data-view=home] #port-companion-model{display:block;width:100%;height:100%;pointer-events:none}
body[data-view=home] .port-companion-name{position:absolute;bottom:0;left:0;right:0;padding:3px;border-radius:4px;background:#062d43c9;border:1px solid #c8b27c;color:#f8e7bf;font:12px 'Carto Condensed'}
body[data-view=home] .port-companion:focus-visible{outline:2px solid #b4f0ff;outline-offset:3px}
body[data-view=home] .port-sky-birds{position:absolute;pointer-events:none;top:18%;left:29%;width:130px;opacity:.8;animation:port-gulls 18s ease-in-out infinite alternate}
body[data-view=home] .port-sky-birds svg{width:100%;fill:none;stroke:#164761;stroke-width:1.6;stroke-linecap:round}
body[data-view=home] #app .port-destination{z-index:6;border-radius:10px;padding-left:10px;box-shadow:inset 0 0 0 3px #be965c38,inset 0 1px #fff7,0 5px 12px #123148b3}
body[data-view=home] .port-destination>svg{border:1px solid #e3c689;border-radius:50%;padding:5px;width:42px;height:42px;background:radial-gradient(#1b7890,#06364d);box-shadow:inset 0 0 0 3px #092a40}
body[data-view=home] #app .home-tools{z-index:7}
/* Album tooling uses actual rarity data, without changing artwork or prices. */
body[data-view=collection] .album-rarity-filters{display:flex;flex-wrap:wrap;gap:5px;padding:8px 6px;border-top:1px solid #c3b78355}
body[data-view=collection] .album-rarity-filters button{min-height:32px;padding:5px 9px;border:1px solid #a7a887;border-radius:5px;background:linear-gradient(#174762,#082239);color:#e5e8d9;font:13px 'Carto Condensed'}
body[data-view=collection] .album-rarity-filters button[aria-pressed=true]{background:linear-gradient(#ffe8ad,#bd9654);color:#263143;box-shadow:inset 0 1px #fff8}
body[data-view=collection] #app .catalog-grid .card-tile{padding:4px 3px 5px;background:linear-gradient(145deg,#31536722,#052137cc),url('/assets/premium-pass-one/naval-leather-v1.png') center/260px;border-radius:7px;box-shadow:inset 0 0 0 1px #e1c78b33,0 4px 7px #0006}
body[data-view=collection] #app .catalog-grid .card-tile::before{content:'';position:absolute;inset:1px;pointer-events:none;z-index:3;border:1px solid #e6cc8e70;border-radius:5px;clip-path:polygon(0 0,16% 0,16% 2%,2% 2%,2% 15%,0 15%,0 0,100% 0,100% 15%,98% 15%,98% 2%,84% 2%,84% 0,100% 0,100% 100%,84% 100%,84% 98%,98% 98%,98% 85%,100% 85%,100% 100%,0 100%,0 85%,2% 85%,2% 98%,16% 98%,16% 100%,0 100%)}
body[data-view=collection] .album-card-line{display:flex;align-items:center;justify-content:space-between;gap:1px;min-height:16px;line-height:1}
body[data-view=collection] .album-card-code{font:10px 'Carto Condensed';color:#d3e6e8;white-space:nowrap}
body[data-view=collection] .album-rarity{font:600 10px 'Carto Condensed';color:#ffe3a2;border:1px solid #bca778;border-radius:3px;padding:1px 2px;background:linear-gradient(#35536a,#0b263c);white-space:nowrap;box-shadow:inset 0 1px #fff2}
body[data-view=collection] #app .catalog-grid .card-tile[data-card-hit='8'] .album-rarity{background:linear-gradient(#f9e7a5,#a47135);color:#183346;border-color:#ffe5a6}
body[data-view=collection] #app .catalog-grid .card-tile[data-card-hit='6'] .album-rarity{border-color:#c9b2e8;color:#ead7ff}
body[data-view=collection] #app .catalog-grid .card-label{font-size:12px!important;margin-top:4px}
body[data-view=collection] #app .catalog-grid .card-price{margin-top:2px;padding-top:2px;border-top:1px solid #c1c0a433;letter-spacing:.02em}
/* Layers remain behind live cards. Selected and played cards receive honest feedback. */
dialog.voyage-dialog.battle-dialog .battle-tabletop{isolation:isolate;position:relative}
dialog.voyage-dialog.battle-dialog .battle-tabletop::before{content:'';position:absolute;z-index:-1;inset:31% 8% 19%;border:1px solid #d2c19e55;border-radius:50%;box-shadow:0 0 0 9px #318a9b0d,inset 0 0 35px #96ddf81c,0 0 35px #81d0ee22;transform:perspective(650px) rotateX(45deg);pointer-events:none;background:repeating-conic-gradient(from 0deg,#e5d7a620 0deg 1deg,transparent 1deg 45deg)}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-zone{position:relative;z-index:1}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-field{perspective:700px;padding-top:6px;padding-bottom:10px}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-field .battle-card{box-shadow:0 5px 0 #102d3cb3,0 8px 8px #00152288,inset 0 1px #fff6;border-bottom-width:2px}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-field .battle-card.leader-card{border-color:#ffe6a0;box-shadow:0 5px 0 #5d512eaa,0 8px 10px #00152288,0 0 0 1px #c2b77e66}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-card.selected{outline:2px solid #b5f4ff;box-shadow:0 0 0 4px #22d8f133,0 0 18px #47cfe888!important}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-hand .battle-card{transform-origin:center bottom;transition:transform .14s,box-shadow .14s}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-hand .battle-card:not(:disabled):is(:hover,:focus-visible){transform:translateY(-7px);box-shadow:0 6px 15px #00243ec9,0 0 0 2px #a9e9f1;z-index:4}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-resource-bar::after{content:'';position:absolute;pointer-events:none;inset:3px;border:1px solid #dcc48c55;border-radius:6px}
dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback=attack][data-feedback-player="0"] .opponent-zone{animation:duel-impact .45s ease-out}
dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback=play][data-feedback-player="0"] .player-zone .battle-field{animation:duel-summon .4s ease-out}
@keyframes duel-impact{0%{filter:brightness(1.5)}100%{filter:brightness(1)}}
@keyframes duel-summon{0%{filter:drop-shadow(0 0 9px #8feaff)}100%{filter:none}}
@keyframes port-gulls{from{transform:translateX(-20px) translateY(0)}to{transform:translateX(38px) translateY(-8px)}}
@media(max-height:710px){body[data-view=home] .port-foreground{height:245px;bottom:calc(133px + env(safe-area-inset-bottom,0px))}body[data-view=home] .port-companion{height:132px;width:92px;bottom:calc(218px + env(safe-area-inset-bottom,0px));left:3%}}
@media(prefers-reduced-motion:reduce){body[data-view=home] .port-sky-birds,dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback] .battle-zone,dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback] .battle-field{animation:none!important}dialog.voyage-dialog.battle-dialog .battle-hand .battle-card{transition:none!important}}
body.reduced .port-sky-birds,body.reduced dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback] .battle-zone,body.reduced dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback] .battle-field{animation:none!important}
body.reduced dialog.voyage-dialog.battle-dialog .battle-hand .battle-card{transition:none!important}
/* Canvas drawing-buffer dimensions must not enlarge the companion on Retina. */
body[data-view=home] #port-companion-model canvas{display:block!important;width:100%!important;height:100%!important}
body[data-view=home] .port-companion{bottom:calc(245px + env(safe-area-inset-bottom,0px));width:108px;height:158px;left:6%}
@media(max-height:710px){body[data-view=home] .port-companion{height:126px;width:86px;bottom:calc(226px + env(safe-area-inset-bottom,0px));left:5%}}

/* Center the real field even when fewer than five characters are in play. */
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-field{display:flex;justify-content:center;align-items:flex-end;gap:7px}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-field .battle-card{flex:0 1 calc((100% - 35px)/6);min-width:0;max-width:62px;width:calc((100% - 35px)/6)}
dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback=attack][data-feedback-player="1"] .player-zone{animation:duel-impact .45s ease-out}
dialog.voyage-dialog.battle-dialog .battle-tabletop[data-feedback=play][data-feedback-player="1"] .opponent-zone .battle-field{animation:duel-summon .4s ease-out}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-zone .battle-field{justify-content:center;padding-left:8px;padding-right:8px}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-zone .battle-field .battle-card{flex:0 1 calc((100% - 35px)/6);max-width:62px}
body[data-view=home] .port-companion-name{top:-8px;bottom:auto;left:-7px;right:-7px;white-space:nowrap;font-size:11px}
dialog.voyage-dialog.battle-dialog .battle-tabletop .battle-hand{justify-content:safe center;padding-top:9px;padding-bottom:8px}
