@font-face{font-family:GameOutfit;src:url('./logo-outfit.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:GameFraunces;src:url('./logo-fraunces.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:GameDisplay;src:url('./logo-display.woff') format('woff');font-weight:800;font-display:swap}
@font-face{font-family:GameScript;src:url('./logo-damas.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:GameManga;src:url('./logo-duel.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:GameNunito;src:url('./logo-nunito.woff') format('woff');font-weight:900;font-display:swap}
@font-face{font-family:GameAnton;src:url('./logo-anton.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:GameHand;src:url('./logo-caveat.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:GameDM;src:url('./logo-dm-sans-500.woff') format('woff');font-weight:500;font-display:swap}
@font-face{font-family:GameFredoka;src:url('./logo-fredoka.ttf') format('truetype');font-weight:700;font-display:swap}
.portal-card{background:var(--card);border-color:color-mix(in srgb,var(--play-bg),transparent 82%)}
.portal-card-art{container-type:inline-size;height:156px;padding:36px 16px 20px;background:var(--game-bg);display:flex;align-items:center;justify-content:center;isolation:isolate}
.portal-card-art:before,.portal-card-art:after{display:none}
.portal-card-art .portal-art-logo{display:block;position:static;transform:none;object-fit:contain;width:100%;height:82px;max-width:230px;filter:none;box-shadow:none;border-radius:0}
.portal-art-mode{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);padding:1px 8px;border:1px solid #ffffff55;border-radius:20px;background:#0002;color:#fffdf1;font:500 10px/1.25 GameDM,Arial,sans-serif;letter-spacing:.05em}
.portal-card-copy{color:#252b2c}.portal-card-description{color:#52605c}
.portal-play{background:var(--play-bg);color:var(--play-ink)}
.portal-play:hover{background:var(--play-bg);filter:brightness(.94)}
.portal-favorite{background:#fff5efef;color:#263433}.portal-favorite[aria-pressed=true]{background:#263433;color:#ffe7a0}
.portal-wordmark{max-width:100%;line-height:.95;text-align:center;font-family:GameDisplay,Arial,sans-serif;font-size:35px;font-weight:800;letter-spacing:-1.5px}
.portal-wordmark span,.portal-wordmark strong{display:block}.portal-wordmark i,.portal-wordmark em{font-style:normal}
/* Original wordmark layouts, typefaces and colours from the games. */
.logo-danslabible{display:inline-flex;align-items:center;gap:7px;font:600 min(29px,13cqw)/1.12 GameFraunces,Georgia,serif;color:#edf1fb;letter-spacing:-.039em;white-space:nowrap}
.logo-danslabible strong{display:inline-flex;align-items:center;gap:4px;font:500 .785714em/1.12 GameDM,Arial,sans-serif;letter-spacing:normal;color:#a2dfb6;background:#233d30;padding:3px 7px 4px;border-radius:8px}
.logo-danslabible svg{width:.72em;height:.72em;flex:none}
.logo-quelverset{display:inline-flex;align-items:baseline;gap:.16em;font:400 min(36px,17cqw)/1 GameAnton,Impact,sans-serif;color:#202a35;letter-spacing:-.015em;white-space:nowrap}
.logo-quelverset strong{font-weight:400;color:#e67528}.logo-quelverset strong span{display:inline}
.logo-alacroisee{display:inline-flex;align-items:baseline;gap:6px;color:#233e37;font-size:min(32px,15cqw);letter-spacing:-.046em;white-space:nowrap}
.logo-alacroisee>span{font:700 .73em/1 GameHand,cursive;letter-spacing:-.6px;transform:rotate(-8deg) translateY(-2px)}
.logo-alacroisee strong{font-weight:800;transform:rotate(-1.5deg)}
.logo-alacroisee i{display:inline-block;background:#f9ce35;border:1.5px solid #233e37;border-radius:5px;line-height:.94;padding:0 3px 3px;margin:0 2px;transform:rotate(7deg);box-shadow:2px 2px 0 #233e37;letter-spacing:-1px}
.logo-jannonce{font-family:GameOutfit,Arial,sans-serif;color:#f8f8f3;font-size:min(34px,14cqw);letter-spacing:-.065em;line-height:1.1;white-space:nowrap}.logo-jannonce>span{display:inline-block;color:#ddfa6a;margin-left:.06em}
.logo-jannoncelp{font:400 min(32px,14cqw)/1.04 Georgia,serif;color:#fffdf5;letter-spacing:-.035em;white-space:nowrap}.logo-jannoncelp span{color:#eac575;font-size:1em;font-style:italic;margin-top:5px}
.logo-babel{font:400 min(40px,23cqw) Georgia,serif;letter-spacing:.1em;color:#f5e5cd}
.logo-casabianco{font:400 min(30px,17cqw)/.95 Georgia,serif;color:#f7ecd6;letter-spacing:1px}.logo-casabianco>span{margin-top:3px}.logo-casabianco em{color:#ef6555}
.logo-troveu{display:flex;justify-content:center;align-items:center;gap:3px;letter-spacing:0;font:700 min(30px,12cqw)/1 GameFredoka,'Trebuchet MS',sans-serif;color:#2b203d}
.logo-troveu span{display:inline-flex;justify-content:center;align-items:center;flex:none;width:1.13em;height:1.3em;border:2px solid #2b203d;border-radius:.19em;box-shadow:0 .09em 0 #2b203d;background:#c7ef77;transform:rotate(-9deg)}
.logo-troveu span:nth-child(2){background:#ffa9d0;transform:rotate(5deg)}.logo-troveu span:nth-child(3){background:#ffe34d;transform:rotate(-4deg);z-index:2}.logo-troveu span:nth-child(4){background:#9db4ff;transform:rotate(8deg)}.logo-troveu span:nth-child(5){background:#75e0d5;transform:rotate(-6deg)}.logo-troveu span:nth-child(6){background:#ffad78;transform:rotate(7deg)}
.logo-damas{font:400 min(52px,30cqw)/1.2 GameScript,cursive;letter-spacing:0;color:#f5e8c9}
.logo-noplp{font-family:GameNunito,Arial,sans-serif;font-size:min(36px,17cqw);font-weight:900;color:#162653;letter-spacing:-.07em;line-height:.96;transform:rotate(-3deg);filter:drop-shadow(0 3px #cad9f180)}
.logo-noplp>span{font-size:.61em;margin-bottom:4px;white-space:nowrap}.logo-noplp strong{font-weight:900;white-space:nowrap}.logo-noplp em{display:inline-block;background:#ffdf54;color:#194bd7;border-radius:5px;padding:0 4px 2px;text-shadow:1px 1px #fff}.logo-noplp i{display:inline-block;color:#dc3679;margin-left:3px;transform:rotate(10deg)}
.logo-tekkit{font-size:min(58px,27cqw);font-weight:800;line-height:1.05;color:#1c293a;letter-spacing:-.065em;transform:rotate(-4deg);white-space:nowrap}.logo-tekkit span{display:inline;color:#a44a22;padding-left:2px}
.logo-dudududuel{font:400 min(28px,12cqw)/1 GameManga,Impact,sans-serif;letter-spacing:0;transform:rotate(-4deg);white-space:nowrap}
.logo-dudududuel>span{color:#191725;letter-spacing:.045em;margin-bottom:4px}.logo-dudududuel strong{font-size:2.15em;font-weight:400;line-height:.95;color:#ffe257;-webkit-text-stroke:.045em #252640;paint-order:stroke fill;text-shadow:.064em .064em #2ccee9,.096em .096em #252640}.logo-dudududuel i{color:#2ccee9;text-shadow:.064em .064em #ffe257,.096em .096em #252640}
/* Favorites open directly from equal, slightly landscape tiles. */
.page-app .portal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.page-app .portal-card{aspect-ratio:1.15}
.portal-card-link{width:100%;height:100%;flex:1;flex-direction:column;gap:10px;padding:24px 12px;text-decoration:none}
.portal-card-link:focus-visible{outline:3px solid #4f86c6;outline-offset:-5px;border-radius:inherit}
.portal-card-link:hover{filter:brightness(1.04)}
.page-app .portal-favorite{z-index:2}
.page-app .portal-card-link .portal-art-logo{height:auto;width:100%;max-width:240px;max-height:130px;min-height:0;flex:0 1 auto}
.page-app .portal-art-mode{bottom:8px;font-size:11px}
.page-app .logo-danslabible{flex-direction:column;font-size:min(42px,22cqw);gap:7px}
.page-app .logo-danslabible strong{font-size:.785714em}
.page-app .logo-quelverset{flex-direction:column;align-items:center;font-size:min(54px,26cqw);gap:5px}
.page-app .logo-alacroisee{flex-direction:column;align-items:center;font-size:min(46px,22cqw);gap:10px}
.page-app .logo-alacroisee>span{transform:rotate(-8deg);font-size:.8em}
.page-app .logo-jannonce{font-size:min(42px,18cqw)}
.page-app .logo-jannoncelp{font-size:min(38px,17cqw)}
.page-app .logo-noplp{font-size:min(42px,20cqw)}
.page-app .logo-dudududuel{font-size:min(34px,14cqw)}
/* Solo and party keep the logo, the explanation and the Play button. */
.page-solo .portal-card-copy,.page-friends .portal-card-copy{padding:16px 20px 13px}
.page-solo .portal-card-description,.page-friends .portal-card-description{margin:0}
@media(max-width:1000px){.page-app .portal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.portal-card-art{height:140px;padding:34px 10px 17px}.portal-card-art .portal-art-logo{height:75px}.page-app .portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-app .portal-card-link{height:100%;padding:24px 12px}}

/* Solo uses the same two-line wordmarks as favourites. */
.page-solo .portal-card-art{height:180px;padding:18px 12px;align-items:center;justify-content:center}
.page-solo .logo-danslabible{flex-direction:column;font-size:min(42px,22cqw);gap:7px}
.page-solo .logo-danslabible strong{font-size:.785714em}
.page-solo .logo-quelverset{flex-direction:column;align-items:center;font-size:min(54px,26cqw);gap:5px}
.page-solo .logo-alacroisee{flex-direction:column;align-items:center;font-size:min(46px,22cqw);gap:10px}
.page-solo .logo-alacroisee>span{transform:rotate(-8deg);font-size:.8em}
