:root{font-family:"Segoe UI",Arial,sans-serif;color:#f7f2e9;background:#0b1120}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -250px,#283751 0,transparent 42%),#0b1120}
.site-header,main{width:min(1500px,calc(100% - 42px));margin:auto}.site-header{padding:28px 0 30px}.back-link{font-size:.8rem;color:#b8dde1;text-decoration:none}.back-link:hover,.system-note a:hover{text-decoration:underline}.brand-lockup{display:flex;align-items:center;gap:38px;margin:16px 0 34px}.brand-lockup img{width:210px;height:190px;object-fit:contain}.eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.16em;color:#a6dbd4}.brand-lockup h1{font-size:clamp(2.8rem,5vw,5rem);line-height:1.02;letter-spacing:-.045em;margin:8px 0 14px}.brand-lockup p{max-width:700px;margin:0;color:#b8c5d2;line-height:1.6;font-size:1.03rem}
.deck-guide{padding:32px 0 6px}.deck-guide h2{font-family:Georgia,serif;font-size:clamp(1.9rem,3vw,2.8rem);margin:0 0 18px;color:#ffe7b6}.deck-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.deck-guide-grid article{padding:21px 22px;border:1px solid #b79559;border-radius:14px;background:linear-gradient(145deg,#18283a,#101a2b);box-shadow:inset 0 0 0 1px #d8b87822}.deck-guide-grid span{display:block;color:#9cddd7;font-size:.7rem;font-weight:900;letter-spacing:.15em}.deck-guide-grid strong{display:block;margin:10px 0;color:#fff0ce;font-family:Georgia,serif;font-size:clamp(1.2rem,1.7vw,1.7rem)}.deck-guide-grid p,.deck-guide-foot{color:#c3d0d9;line-height:1.5}.deck-guide-grid p{margin:0}.deck-guide-foot{margin:16px 0 0}.deck-guide-foot a{color:#a9e8e0;font-weight:800}
body:not([data-view="all"]) .deck-guide{display:none}
.creature-3d-hint{margin:0 0 24px;padding:10px 0 10px 16px;border-left:3px solid #a9e8e0;color:#ffe7b6;font-size:1rem;font-weight:700;line-height:1.6}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:26px;border-bottom:1px solid #455266}.toolbar button{border:1px solid #627787;background:#172536;color:#e6f3f0;border-radius:999px;padding:10px 15px;font:inherit;font-size:.87rem;font-weight:750;cursor:pointer}.toolbar button[aria-pressed="true"]{background:#a9e8e0;color:#102b31;border-color:#a9e8e0}.toolbar button span{opacity:.7;font-size:.76rem}.toolbar .print-button{margin-left:auto;border-color:#bd9e70;color:#ffe8b7;background:#2c2940}
.group{padding:42px 0 28px}.group-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.group-head h2{font-size:clamp(2rem,3vw,2.7rem);margin:6px 0 4px}.group-head p{margin:0;color:#b9c5d2;line-height:1.5}.group-count{font-size:.73rem;font-weight:900;letter-spacing:.13em;color:#e4c98f;white-space:nowrap}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:26px 10px;align-items:start;justify-items:center}.card-tile{display:flex;justify-content:center;align-items:flex-start;min-width:0}.card-tile.print-only{display:none}
@media screen{#tactic-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:26px 34px}}
@media screen and (max-width:830px){.group-count{max-width:100%;white-space:normal;overflow-wrap:anywhere}}
.approved-card-link{display:block;width:87mm;aspect-ratio:63/88;border-radius:3mm;overflow:hidden;box-shadow:0 16px 32px #0008;transition:transform .18s ease,box-shadow .18s ease}.approved-card-link:hover{transform:translateY(-4px);box-shadow:0 20px 40px #000a}.approved-card-link:focus-visible{outline:3px solid #a9e8e0;outline-offset:4px}.approved-card{display:block;width:100%;height:100%;object-fit:contain}
.boss-presentation-link{display:block;color:inherit;text-decoration:none;transition:transform .18s ease}.boss-presentation-link:hover{transform:translateY(-4px);text-decoration:none}.boss-presentation-link:focus-visible{outline:3px solid #d2a8ed;outline-offset:5px;border-radius:9px}
.card-presentation-link{display:block;color:inherit;text-decoration:none;transition:transform .18s ease}.card-presentation-link:hover{transform:translateY(-4px);text-decoration:none}.card-presentation-link:focus-visible{outline:3px solid #a9e8e0;outline-offset:5px;border-radius:9px}
.game-card{position:relative;isolation:isolate;overflow:hidden;width:63mm;height:88mm;flex:none;zoom:1.38;border-radius:2.7mm;box-shadow:0 16px 32px #0008;background:#f8eadb;color:#261c26;font-family:"Segoe UI",Arial,sans-serif}
.game-card::before,.game-card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}.game-card::after{z-index:0}.game-card>*{position:relative;z-index:1}
.tactic-card{border:1.1mm solid #e3d1ab;background:#1e2636;color:#fff8ea}.tactic-card::before{background:radial-gradient(circle at 50% 43%,var(--glow),transparent 42%),linear-gradient(150deg,var(--a),var(--b))}.tactic-card::after{background:radial-gradient(circle at 50% 43%,transparent 0 24%,#07101b1c 49%,#07101b68 100%)}.tactic-card[data-tone="tides"]{--a:#17314c;--b:#427892;--glow:#8dedff}.tactic-card[data-tone="forge"]{--a:#332137;--b:#a25d3c;--glow:#ffc56c}.tactic-card[data-tone="tempest"]{--a:#1e2a47;--b:#4b639c;--glow:#b8ceff}.tactic-card[data-tone="wilds"]{--a:#1b3540;--b:#678257;--glow:#cbefa3}.tactic-card[data-tone="dusk"]{--a:#251b46;--b:#594474;--glow:#c4a8ff}
.t-top{position:absolute;top:3mm;left:3mm;right:3mm;display:flex;justify-content:space-between;align-items:start;gap:1mm}.t-top small{font-size:6pt;font-weight:900;letter-spacing:.13em;color:#f9dbad}.t-title{font-family:Georgia,serif;font-size:15pt;line-height:1.02;margin-top:1mm;max-width:42mm}.t-cost{display:grid;place-items:center;width:10mm;height:10mm;flex:none;border:1px solid #ffdfaa;border-radius:50%;background:#182437cf;font-size:12pt;font-weight:900}.t-cost small{font-size:5pt;display:block;line-height:1}.t-symbol{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);display:grid;place-items:center;width:33mm;height:33mm;border:1.2mm solid #fff4d6ad;border-radius:7mm;rotate:-8deg;background:#ffffff13;box-shadow:0 0 0 2mm #ffffff1a,0 0 30px var(--glow);font-family:Georgia,serif;font-size:45pt;color:#fff3d5;text-shadow:0 0 22px var(--glow)}
.t-rules{position:absolute;left:3mm;right:3mm;bottom:3mm;padding:2.7mm 3mm 2mm;border-radius:2mm;background:#fbf3eaf2;color:#1e2632}.t-timing{font-size:6pt;font-weight:900;letter-spacing:.08em;color:#7c5965;text-transform:uppercase}.t-target{margin-top:1.2mm;font-size:7pt;font-weight:900;color:#66476a}.t-effect{font-size:9pt;line-height:1.16;min-height:13mm;margin:1.5mm 0 2mm;font-weight:650}.t-foot{display:flex;justify-content:space-between;border-top:1px solid #ad9b98;padding-top:1.2mm;color:#695a60;font-size:5.8pt;font-weight:900}
.boss-card{border:1.1mm solid #9288af;background:#1a1931;color:#fff}.boss-card::before{background:radial-gradient(circle at 50% 35%,#b67ad9 0,#53396c 22%,#16172b 60%)}.boss-card::after{background:linear-gradient(transparent 45%,#111527ec 90%)}.b-top{position:absolute;top:3mm;left:3mm;right:3mm;text-align:center;font-size:6pt;font-weight:900;letter-spacing:.14em;color:#e6d2ff}.b-eye{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);font-size:66pt;font-family:Georgia,serif;color:#d8a4f4;text-shadow:0 0 20px #efc7ff}.b-bottom{position:absolute;left:3mm;right:3mm;bottom:3mm;padding:3mm;border:1px solid #e5cbff94;border-radius:2mm;background:#1f2134ec}.b-bottom h3{font-family:Georgia,serif;font-size:13pt;margin:0 0 3mm;line-height:1.08}.b-bottom p{font-size:8pt;line-height:1.22;min-height:17mm;margin:0 0 3mm}.b-bottom footer{display:flex;justify-content:space-between;font-size:5.7pt;font-weight:900;letter-spacing:.08em;color:#ddc4ed;border-top:1px solid #a28ca6;padding-top:1.2mm}
.boss-status-card{border:1.1mm solid #d7a779;background:#211a30;color:#fff}.boss-status-card::before{background:radial-gradient(circle at 50% 35%,#d1958b 0,#5e3c66 30%,#181b2e 70%)}.boss-status-card::after{background:linear-gradient(transparent 40%,#17192ce8 86%)}.bs-top{position:absolute;top:3mm;left:3mm;right:3mm;text-align:center;color:#ffe4bf;font-size:6pt;font-weight:900;letter-spacing:.14em}.bs-sigil{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);font-size:78pt;color:#ffd4a7;text-shadow:0 0 15px #f2b1db,0 0 45px #db89d7}.bs-panel{position:absolute;left:3mm;right:3mm;bottom:3mm;padding:3mm;border:1px solid #f5d9b3ab;border-radius:2mm;background:#1e2136ee}.bs-panel h3{font-family:Georgia,serif;font-size:16pt;line-height:1.08;margin:0 0 2mm}.bs-stats{display:flex;justify-content:space-around;padding:1.7mm 0;border-block:1px solid #ccb2b6}.bs-stats span{display:flex;align-items:baseline;gap:1mm}.bs-stats small{font-size:6pt;font-weight:900}.bs-stats b{font-size:17pt}.bs-panel p{font-size:8pt;line-height:1.2;min-height:14mm;margin:2mm 0}.bs-panel footer{display:flex;justify-content:space-between;font-size:5.7pt;font-weight:900;letter-spacing:.08em;color:#e4cae1;border-top:1px solid #a28ca6;padding-top:1.2mm}
/* Illustrated support and mission fronts share the full-art creature card language. */
.illustrated-card{border:1.2mm solid #dec184;background:#251a30;color:#fff3d7;box-shadow:0 16px 32px #0009,0 0 14px #e6ba7844}
.illustrated-card::before{background-image:var(--art);background-size:cover;background-position:center;background-repeat:no-repeat}
.illustrated-card::after{background:linear-gradient(#1b132b87 0%,transparent 20%,transparent 54%,#23162d36 66%,#1c142dbb 100%)}
.illustrated-card[data-tone="tides"]{border-color:#a8d2d7}.illustrated-card[data-tone="forge"]{border-color:#dda96b}.illustrated-card[data-tone="tempest"]{border-color:#a7c7e5}.illustrated-card[data-tone="wilds"]{border-color:#b3c88e}.illustrated-card[data-tone="dusk"]{border-color:#c6a6d9}
.boss-card,.boss-status-card{border-color:#c8a6d4}
.expert-boss-card{border-color:#e4a87b;background:#271323}
.expert-boss-card::after{background:linear-gradient(155deg,#49233488 0%,transparent 30%,transparent 54%,#651b3a77 75%,#220e2ae8 100%)}
.expert-boss-card .s-rule-panel{border-color:#e9aa87;background:#351b38ed;box-shadow:0 2px 10px #260c22a6,inset 0 0 1mm #f2ab962f}
.expert-boss-card .s-kicker,.expert-boss-card .s-timing{color:#ffd6a4}
.illustrated-card .s-top{position:absolute;top:2.5mm;left:2.8mm;right:2.8mm;display:flex;justify-content:space-between;align-items:flex-start;gap:1mm}
.s-title-block{max-width:43mm;min-width:0}.s-kicker{display:block;color:#ffe5b3;font-size:5.4pt;font-weight:900;letter-spacing:.11em;text-shadow:0 .25mm .6mm #140e25}
.s-title-block h3{margin:.55mm 0 0;font-family:Georgia,serif;font-size:16pt;line-height:1.02;letter-spacing:-.035em;color:#fff4d5;-webkit-text-stroke:.14mm #2d1b32;paint-order:stroke fill;text-shadow:0 .4mm .7mm #170d24,0 0 1mm #0008}
.s-cost{flex:none;display:flex;align-items:center;gap:.75mm;padding:.75mm 1.6mm;border:.25mm solid #f0d6a6;border-radius:99mm;background:#442c4de6;box-shadow:0 1px 5px #180d2380;color:#fff0c8;font-size:8.3pt;font-weight:900;white-space:nowrap}
.s-cost img{display:block;width:3.6mm;height:3.6mm;object-fit:contain}.s-cost.boss-hp{font-size:8pt;padding:1.1mm 2mm}
.illustrated-card .s-rule-panel{position:absolute;left:2.8mm;right:2.8mm;bottom:8.2mm;min-height:19mm;padding:1.35mm 2.1mm 1.4mm;border:.3mm solid #dfbd85;border-radius:1.55mm;background:#30213ce8;backdrop-filter:blur(2px);box-shadow:0 2px 7px #140b207d,inset 0 0 1mm #e5afcf2b;color:#fff3df}
.s-timing{display:block;color:#f6d9a8;font-size:5.35pt;font-weight:900;letter-spacing:.07em;line-height:1.15}
.s-target{margin-top:.8mm;color:#eac7d7;font-size:6.25pt;font-weight:800;line-height:1.15}
.s-effect{margin:1.05mm 0 0;font-size:8.45pt;font-weight:750;line-height:1.17;letter-spacing:-.015em}
.boss-card .s-effect,.boss-status-card .s-effect{font-size:8pt;line-height:1.15}.boss-card .s-rule-panel,.boss-status-card .s-rule-panel{border-color:#dcc1e5;background:#271d3de9}
.illustrated-card .s-footer{position:absolute;left:2.5mm;right:2.5mm;bottom:.55mm;height:6.2mm;display:grid;grid-template-columns:minmax(0,1fr) 18.4mm minmax(0,1fr);gap:.4mm;align-items:end;color:#ffe5ad;font-size:4.8pt;font-weight:900;letter-spacing:.02em;text-shadow:0 1px 3px #1a1028}
.s-footer>span:first-child,.s-footer>span:last-child{padding-bottom:1mm;white-space:nowrap}.s-footer>span:last-child{text-align:right}
.s-wordmark{position:relative;display:block;width:18.4mm;height:5.35mm;overflow:hidden;align-self:center;clip-path:polygon(0 0,22% 0,22% 16%,78% 16%,78% 0,100% 0,100% 100%,0 100%)}
.s-wordmark img{position:absolute;left:0;top:-13mm;display:block;width:18.4mm;height:auto;max-width:none;filter:brightness(1.4) saturate(1.1) drop-shadow(0 0 .4mm #ffe4a7)}
/* Shared design QR codes identify tactics and mission cards without owning a copy. */
.qr-enabled .s-rule-panel{right:23mm;min-height:22mm;display:flex;flex-direction:column;justify-content:center}
.qr-enabled .s-effect{font-size:7.8pt;line-height:1.14}
.qr-enabled .s-timing{font-size:5.05pt}.qr-enabled .s-target{font-size:5.9pt}
.boss-card.qr-enabled .s-effect{font-size:7.45pt;line-height:1.12}
.boss-status-card.qr-enabled .s-rule-panel{min-height:30mm}
.boss-status-card.qr-enabled .s-effect{font-size:6.8pt;line-height:1.1}
.shared-qr{position:absolute!important;right:2.8mm;bottom:8.2mm;z-index:3!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4mm;width:19mm;height:22mm;padding:.75mm;border:.3mm solid #f0ce92;border-radius:1.55mm;background:#3a2638;box-shadow:0 2px 7px #140b20b8,inset 0 0 1mm #f1d4a32b}
.shared-qr img{display:block;width:16mm;height:16mm;image-rendering:pixelated}.shared-qr span{display:block;color:#ffe8ad;font-size:5.4pt;font-weight:900;letter-spacing:.09em;line-height:1.1;white-space:nowrap}
.system-note{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:45px 0 70px;padding:26px 34px;border:1px solid #4b596e;border-radius:18px;background:#18243a}.system-note h2{font-size:1.6rem;margin:0 0 10px}.system-note p{max-width:770px;color:#bdc9d6;line-height:1.6;margin:0 0 15px}.system-note a{color:#aee6dc;text-decoration:none;font-weight:800}.back-preview{display:grid;place-items:center;flex:none;width:130px;height:182px;padding:10px;border:4px solid #e1c48c;border-radius:12px;background:radial-gradient(circle,#354455,#111a2a 73%);box-shadow:inset 0 0 0 2px #f5dea3a3}.back-preview img{width:104px;height:130px;object-fit:contain}.back-preview small{font-size:.5rem;font-weight:900;letter-spacing:.1em;color:#e9d3ab}
.back-preview{display:block;padding:0;border:0;border-radius:10px;overflow:hidden;background:none;box-shadow:0 9px 24px #0008}.back-preview img{display:block;width:100%;height:100%;object-fit:cover}
body[data-view="creatures"] .group:not([data-group="creatures"]),body[data-view="tactics"] .group:not([data-group="tactics"]),body[data-view="mission"] .group:not([data-group="mission"]){display:none}
@media(max-width:830px){.brand-lockup{gap:12px}.brand-lockup img{width:150px;height:140px}.toolbar .print-button{margin-left:0}.group-head{display:block}.group-count{display:inline-block;margin-top:9px}.system-note{flex-wrap:wrap}.deck-guide-grid{grid-template-columns:1fr}}
@media(max-width:550px){.site-header,main{width:min(100% - 24px,500px)}.brand-lockup{display:block}.brand-lockup img{width:130px;height:110px}.card-grid{grid-template-columns:1fr;gap:20px}.game-card{zoom:1.22}.approved-card-link{width:77mm;max-width:100%}.site-header{padding-top:18px}.toolbar{gap:7px}.toolbar button{padding:9px 11px}.system-note{padding:20px}}
@media print{@page{size:A4;margin:8mm}:root,html,body{background:#fff}body{min-height:100vh;color:#111}.site-header,.group-head,.system-note{display:none!important}main{width:100%;margin:0}.group{padding:0}.card-grid{display:grid;grid-template-columns:repeat(3,63mm);gap:2mm;justify-content:start}.card-tile{width:63mm;height:88mm;break-inside:avoid}.card-tile.print-only{display:flex}.game-card{zoom:1;width:63mm;height:88mm;border-radius:2mm;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.approved-card-link{width:63mm;height:88mm;border-radius:0;box-shadow:none;transform:none!important;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.approved-card{width:63mm;height:88mm}body[data-view="creatures"] .group:not([data-group="creatures"]),body[data-view="tactics"] .group:not([data-group="tactics"]),body[data-view="mission"] .group:not([data-group="mission"]){display:none!important}}
/* Print the same approved pixels shown on screen. This avoids print-preview blend and layer glitches. */
.approved-print-card{display:none}
body[data-view="expansion"] .group:not([data-group="creatures"]){display:none}
body[data-view="expansion"] #creature-grid .card-tile:not(.expansion-card){display:none}
body[data-view="holo"] .group:not([data-group="creatures"]){display:none}
body[data-view="holo"] #creature-grid .card-tile:not(.holographic-card){display:none}
@media print{
  .card-tile .game-card{display:none!important}
  .card-tile .boss-presentation-link{display:none!important}
  .card-tile .card-presentation-link{display:none!important}
  .card-tile .approved-print-card{display:block!important;width:63mm;height:88mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .deck-guide{display:none!important}
}
