/* Game library: cinematic covers and comparable CPS terms. */
.library-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:360px;padding:calc(var(--header-height) + 65px) 0 80px;overflow:hidden;background:#10293e;color:#fff}
.library-hero>.panorama-art{object-position:center 43%}
.library-hero .panorama-veil{background:linear-gradient(180deg,#04142699,transparent 45%),linear-gradient(90deg,#04182bc9 0%,#071b2c66 47%,#071b2c08 80%)}
.library-hero h1{font-size:clamp(34px,4.5vw,64px);font-weight:900;line-height:1.25;letter-spacing:-.035em;text-shadow:0 3px 15px #00132933}
.library-hero p{font-size:clamp(14px,1.65vw,21px);font-weight:600;line-height:1.8;margin-top:14px;text-shadow:0 1px 10px #00132955}
.catalog-games{position:relative;padding-bottom:38px}
.catalog-toolbar{position:relative;z-index:2;display:flex;align-items:center;gap:16px;padding:20px;margin-top:-34px;background:#fff;border:1px solid #e5eaf1;border-radius:14px;box-shadow:0 5px 20px #0d29440d}
.search-field{position:relative;display:flex;align-items:center;flex:1;min-width:220px}
.search-field>.icon{position:absolute;left:16px;width:21px;height:21px;color:#697b95;pointer-events:none}
.search-field input{width:100%;min-width:0;height:48px;padding:11px 15px 11px 47px;border:1px solid #dce3ed;border-radius:16px;background:#fcfdff;color:var(--ink);font:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}
.search-field input::placeholder{color:#8390a4}
.search-field input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px #ff5b0812}
.type-filters{display:flex;align-items:center;gap:8px}
.type-filter{min-height:46px;min-width:66px;padding:10px 18px;border:1px solid #e0e6ef;border-radius:15px;background:#fff;font-size:14px;font-weight:600;white-space:nowrap;transition:background .18s,border-color .18s,color .18s}
.type-filter:hover{border-color:#ffab80;color:var(--accent-dark)}
.type-filter[aria-pressed=true]{border-color:var(--accent);color:#fff;background:var(--accent)}
.catalog-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 17px}
.catalog-list-heading h2{font-size:21px;font-weight:800;line-height:1.5}
.result-count{font-size:12px;color:var(--muted);font-weight:400;margin-left:12px;white-space:nowrap}
.catalog-refinements{display:flex;align-items:center;gap:14px}
.catalog-refinements label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.catalog-refinements select{max-width:160px;min-width:105px;padding:8px 26px 8px 10px;border:1px solid #e1e6ee;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:12px}
.catalog-game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.catalog-game-card{position:relative;isolation:isolate;min-width:0;aspect-ratio:.78;overflow:hidden;border-radius:10px;background:#14293e;color:#fff;box-shadow:0 3px 8px #0b203308;transition:transform .25s,box-shadow .25s}
.catalog-game-card:after{content:"";position:absolute;z-index:1;inset:28% 0 82px;background:linear-gradient(transparent 12%,#07182b87 56%,#061628f5 100%);pointer-events:none}
.catalog-cover{position:absolute;z-index:0;inset:0;width:100%;height:calc(100% - 82px);object-fit:cover;object-position:center top;transition:transform .5s}
.catalog-game-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #0b203322}
.catalog-game-card:hover .catalog-cover{transform:scale(1.035)}
.catalog-cover.is-icon-cover{object-fit:contain;object-position:center;padding:48px;background:radial-gradient(ellipse at 50% 35%,#46617a,#102238)}
.catalog-card-content{display:contents}
.catalog-game-card h2{position:absolute;z-index:2;left:24px;right:24px;bottom:126px;font-size:clamp(23px,2.35vw,33px);font-weight:900;line-height:1.32;letter-spacing:-.025em;text-shadow:0 2px 10px #00132966;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catalog-card-content>.catalog-game-meta{position:absolute;z-index:2;left:24px;right:24px;bottom:100px;font-size:13px;line-height:1.8;color:#e8eff7}
.catalog-game-foot{display:contents}.catalog-game-foot:before{content:"";position:absolute;z-index:2;inset:auto 0 0;height:82px;background:#fff;pointer-events:none}
.catalog-game-card .catalog-rate{position:absolute;z-index:3;bottom:16px;left:24px;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:2px;font-size:25px;line-height:1.25;font-weight:800;color:#e95205}
.catalog-rate small{font-size:10px;line-height:1.5;font-weight:600;letter-spacing:.02em;color:#586b81}
.catalog-card-action{position:absolute;z-index:3;right:24px;bottom:22px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:9px 19px;border:0;border-radius:22px;background:var(--accent);color:#fff;font:inherit;font-size:12px;font-weight:700;white-space:nowrap;transition:background .18s,transform .18s}
.catalog-card-action:hover{background:#e84a00;transform:translateX(2px)}
.catalog-games .data-status{font-size:10px;line-height:1.8;color:#7b879a;margin-top:19px}
.catalog-games .data-status[data-live=true]{color:#517565}
.catalog-note{font-size:11px;line-height:1.85;color:#748197;margin-top:7px}
.catalog-note a{color:#52627b;text-decoration:underline;text-underline-offset:3px}
.empty-state{padding:70px 20px;border:1px dashed #dce3ed;border-radius:12px;background:#f8fafc;text-align:center}
.empty-state strong{display:block;font-size:22px;line-height:1.5;margin-bottom:10px}
.empty-state p{font-size:13px;line-height:1.8;color:var(--muted)}
.empty-state button{margin-top:20px;border:0;background:none;color:var(--accent-dark);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.library-guide{position:relative;isolation:isolate;overflow:hidden;min-height:300px;padding:42px 0 46px;background:#071b33;color:#fff}
.library-guide:before{content:"";position:absolute;z-index:-2;inset:0;background:url('img/training/training-hero-v1.webp') center top/cover;filter:saturate(.8)}
.library-guide:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#05182dcc,#061c33e8 40%,#071b33b3)}
.library-guide h2{text-align:center;font-size:clamp(25px,2.6vw,37px);line-height:1.5;font-weight:900}
.library-guide h2:after{content:"";display:block;width:40px;height:3px;background:var(--accent);margin:12px auto 0}
.library-guide ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px;list-style:none;padding:0;margin:40px 0 0}
.library-guide li{position:relative;display:flex;align-items:center;gap:20px}
.library-guide li:not(:last-child):after{content:"→";position:absolute;right:-37px;color:var(--accent);font:32px/1 Arial,sans-serif}
.guide-icon{display:grid;place-items:center;width:76px;height:76px;flex:0 0 auto;border:3px solid var(--accent);border-radius:50%;color:var(--accent)}
.guide-icon .icon{width:37px;height:37px}
.library-guide h3{font-size:21px;line-height:1.5;font-weight:800}
.library-guide p{font-size:12px;line-height:1.8;color:#dbe4f0;margin-top:4px}
.library-footer{position:relative;padding-top:35px;background:#fff}
.library-footer:before{content:"";position:absolute;left:0;right:0;top:0;height:130px;background:linear-gradient(#ffffffc9,#fff),url('img/home/hero-xianxia-v1.webp') center 65%/cover;pointer-events:none;opacity:.5}
.library-footer>.wrap{position:relative}
.button-secondary{border-color:#d8dde5;background:#fff;color:var(--ink)}
.button-secondary:hover{background:#f1f3f6}
.catalog-dialog{width:calc(100% - 32px);max-width:720px;max-height:calc(100dvh - 40px);border:0;border-radius:16px;padding:0;background:#fff;color:var(--ink);box-shadow:0 25px 90px #06182b55;overflow:auto}
.catalog-dialog::backdrop{background:#06182bb3;backdrop-filter:blur(5px)}
.catalog-dialog-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 26px;background:#fff;border-bottom:1px solid #edf0f4}
.page-kicker{font-size:11px;color:var(--accent-dark);font-weight:600;margin-bottom:4px}
.catalog-dialog-head h2{font-size:24px;font-weight:800;line-height:1.4}
.dialog-close{width:36px;height:36px;flex:0 0 auto;border:1px solid #e0e6ee;border-radius:50%;background:#fff;color:#5f6c7f;font-size:26px;line-height:1}
#game-dialog-cover{width:100%;height:190px;object-fit:cover;object-position:center 11%;background:#152b40}
.catalog-dialog-body{padding:24px 26px}
#game-dialog-icon{float:left;width:58px;height:58px;object-fit:cover;border-radius:12px;margin:0 14px 10px 0;background:#f1f4f8}
.catalog-dialog-info{min-height:58px;font-size:13px;color:#53627a;line-height:1.85;white-space:pre-line}
.catalog-detail-list{clear:both;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 0}
.catalog-detail-list>div{min-width:0;padding:13px;background:#f5f7fa;border-radius:8px}
.catalog-detail-list dt{font-size:11px;color:var(--muted);line-height:1.6}
.catalog-detail-list dd{font-size:13px;line-height:1.7;font-weight:700;margin:5px 0 0;overflow-wrap:anywhere}
.catalog-detail-list .detail-rate{background:#fff4ec}
.catalog-detail-list .detail-rate dd{font-size:21px;color:var(--accent-dark)}
.catalog-dialog-actions{position:sticky;bottom:0;z-index:2;display:flex;gap:12px;padding:18px 26px 22px;border-top:1px solid #edf0f4;background:#fff}
.catalog-dialog-actions .button{min-height:44px;font-size:13px;padding:10px 22px}
@media(max-width:1200px){.library-hero{min-height:330px;padding-top:calc(var(--header-height) + 58px)}.catalog-toolbar{gap:12px;padding:17px}.type-filters{gap:7px}.type-filter{min-width:58px;padding-inline:15px;font-size:13px}.catalog-game-grid{gap:18px}.catalog-card-content h2,.catalog-card-content>.catalog-game-meta,.catalog-game-foot{left:20px;right:20px}.library-guide ol{gap:45px}.library-guide li{gap:16px}.library-guide h3{font-size:19px}.guide-icon{width:66px;height:66px}.library-guide li:not(:last-child):after{right:-30px}}
@media(max-width:1000px){.catalog-toolbar{flex-wrap:wrap}.search-field{flex-basis:100%}.type-filters{width:100%;justify-content:space-between}.type-filter{flex:1}.catalog-game-card h2{font-size:25px}.catalog-game-card{aspect-ratio:.75}.catalog-game-meta{font-size:12px}.library-guide ol{gap:35px}.library-guide h3{font-size:17px}.library-guide p{font-size:11px}.guide-icon{width:58px;height:58px;border-width:2px}.guide-icon .icon{width:30px;height:30px}.library-guide li{gap:12px}.library-guide li:not(:last-child):after{right:-25px;font-size:26px}}
@media(max-width:900px){.library-hero{min-height:320px}.catalog-game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-game-card{aspect-ratio:.86}.catalog-game-card h2{font-size:29px}.catalog-refinements{gap:10px}.catalog-list-heading{gap:12px}.catalog-list-heading h2{font-size:19px}.result-count{margin-left:8px}.catalog-refinements label>span{display:none}.library-guide ol{gap:28px}.library-guide li{flex-direction:column;text-align:center;gap:13px}.library-guide li:not(:last-child):after{right:-24px;top:24px}.library-guide h3{font-size:18px}}
@media(max-width:600px){.library-hero{min-height:310px;padding:calc(var(--header-height) + 48px) 0 70px;align-items:flex-start}.library-hero>.panorama-art{object-position:63% center}.library-hero .panorama-veil{background:linear-gradient(180deg,#041426a6,transparent 70%),linear-gradient(90deg,#04182bcc,#071b2c33)}.library-hero h1{max-width:340px;font-size:36px;line-height:1.3;letter-spacing:-.04em;text-wrap:balance}.library-hero p{font-size:13px;margin-top:13px}.catalog-toolbar{margin-top:-28px;padding:13px;gap:12px;border-radius:12px}.search-field{min-width:0}.search-field input{height:44px;border-radius:12px;font-size:13px;padding-left:40px}.search-field>.icon{left:13px;width:18px;height:18px}.type-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.type-filter{min-height:37px;min-width:0;padding:8px 10px;border-radius:10px;font-size:12px}.catalog-list-heading{flex-wrap:wrap;align-items:center;margin:22px 0 14px;gap:12px}.catalog-list-heading h2{font-size:20px}.result-count{font-size:11px}.catalog-refinements{width:100%;justify-content:space-between}.catalog-refinements label{gap:6px}.catalog-refinements label>span{display:inline}.catalog-refinements select{font-size:11px;max-width:134px;min-width:90px}.catalog-game-grid{grid-template-columns:1fr;gap:16px}.catalog-game-card{aspect-ratio:.8;max-height:550px}.catalog-game-card h2{font-size:30px}.catalog-card-content h2,.catalog-card-content>.catalog-game-meta,.catalog-game-foot{left:20px;right:20px}.catalog-card-content h2{bottom:126px}.catalog-card-content>.catalog-game-meta{bottom:100px}.catalog-card-action{right:20px;bottom:20px}.catalog-game-card .catalog-rate{left:20px;font-size:24px}.catalog-game-meta{font-size:13px}.catalog-card-action{min-height:38px;font-size:12px;padding-inline:18px}.catalog-games{padding-bottom:28px}.catalog-note{font-size:10px}.catalog-games .data-status{font-size:9px;margin-top:16px}.empty-state{padding:48px 15px}.empty-state strong{font-size:20px}.empty-state p{font-size:12px}.library-guide{padding:32px 0 35px}.library-guide h2{font-size:25px;max-width:300px;margin:auto}.library-guide ol{grid-template-columns:1fr;gap:25px;margin:29px 0 0}.library-guide li{flex-direction:row;text-align:left;gap:18px;padding-left:10px}.library-guide li:not(:last-child):after{content:none}.guide-icon{width:58px;height:58px}.library-guide h3{font-size:19px}.library-guide p{font-size:12px}.library-footer{padding-top:26px}.catalog-dialog-head{padding:16px 18px}.catalog-dialog-head h2{font-size:21px}.catalog-dialog-body{padding:20px 18px}#game-dialog-cover{height:155px}.catalog-detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-detail-list>div{padding:11px}.catalog-detail-list dd{font-size:12px}.catalog-detail-list .detail-rate dd{font-size:18px}.catalog-dialog-actions{flex-direction:column;padding:14px 18px 18px;gap:8px}}
@media(max-width:360px){.library-hero h1{font-size:32px}.catalog-refinements label>span{display:none}.catalog-card-content h2{font-size:28px}.catalog-game-card{aspect-ratio:.8}}

@media(max-width:1100px) and (min-width:901px){.catalog-game-card .catalog-rate{font-size:21px;left:16px}.catalog-card-action{right:16px;padding-inline:12px;font-size:11px}.catalog-rate small{font-size:9px}}
@media(max-width:360px){.catalog-game-foot:before{height:118px}.catalog-cover{height:calc(100% - 118px)}.catalog-game-card:after{bottom:118px}.catalog-game-card .catalog-rate{bottom:65px}.catalog-card-action{left:20px;right:20px;bottom:16px}.catalog-card-content h2{bottom:162px}.catalog-card-content>.catalog-game-meta{bottom:136px}}

@media(min-width:1600px){
  .games-page main:not(.game-detail-page) .library-hero{min-height:clamp(420px,22.5vw,576px);padding:calc(var(--header-height) + clamp(76px,4.166667vw,112px)) 0 clamp(88px,4.583333vw,120px)}
  .games-page main:not(.game-detail-page) .library-hero h1{font-size:clamp(56px,3.333333vw,88px)}
  .games-page main:not(.game-detail-page) .library-hero p{font-size:clamp(21px,1.25vw,30px);margin-top:clamp(16px,1.041667vw,24px)}
  .games-page main .catalog-games{padding-bottom:clamp(48px,2.5vw,64px)}
  .games-page main .catalog-toolbar{gap:clamp(20px,1.25vw,32px);padding:clamp(24px,1.666667vw,40px);margin-top:clamp(-42px,-2.083333vw,-34px);border-radius:clamp(14px,0.833333vw,20px)}
  .games-page main .search-field>.icon{left:clamp(18px,1.041667vw,26px);width:clamp(21px,1.25vw,32px);height:clamp(21px,1.25vw,32px)}
  .games-page main .search-field input{height:clamp(52px,3.333333vw,80px);padding:clamp(12px,0.833333vw,20px) clamp(17px,0.9375vw,24px) clamp(12px,0.833333vw,20px) clamp(52px,2.916667vw,70px);font-size:var(--portal-font,clamp(16px,.833333vw,22px))}
  .games-page main .type-filters{gap:clamp(10px,0.625vw,16px)}
  .games-page main .type-filter{min-height:clamp(50px,2.916667vw,70px);min-width:clamp(72px,4.166667vw,106px);padding:clamp(11px,0.729167vw,18px) clamp(20px,1.041667vw,26px);border-radius:clamp(15px,0.833333vw,20px);font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .catalog-list-heading{gap:clamp(24px,1.25vw,32px);margin:clamp(30px,1.5625vw,40px) 0 clamp(20px,1.041667vw,27px)}
  .games-page main .catalog-list-heading h2{font-size:clamp(23px,1.25vw,32px)}
  .games-page main .catalog-refinements{gap:clamp(16px,0.833333vw,21px)}
  .games-page main .catalog-refinements label{gap:clamp(9px,0.520833vw,13px);font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .catalog-refinements select{max-width:clamp(170px,8.333333vw,213px);min-width:clamp(115px,5.46875vw,140px);padding:clamp(9px,0.520833vw,13px) clamp(28px,1.354167vw,35px) clamp(9px,0.520833vw,13px) clamp(11px,0.625vw,16px);font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .catalog-game-grid{gap:clamp(24px,1.458333vw,38px)}
  .games-page main .catalog-games .data-status,.games-page main .catalog-note{font-size:var(--portal-small)}
  .games-page main .catalog-game-card{--catalog-foot-height:clamp(90px,5vw,128px);border-radius:clamp(10px,0.625vw,16px)}
  .games-page main .catalog-game-card:after{inset:28% 0 var(--catalog-foot-height)}
  .games-page main .catalog-cover{height:calc(100% - var(--catalog-foot-height))}
  .games-page main .catalog-cover.is-icon-cover{padding:clamp(52px,3.125vw,80px)}
  .games-page main .catalog-card-content h2{left:clamp(26px,1.25vw,32px);right:clamp(26px,1.25vw,32px);bottom:calc(var(--catalog-foot-height) + clamp(40px,2.083333vw,54px));font-size:clamp(30px,1.875vw,48px)}
  .games-page main .catalog-card-content>.catalog-game-meta{left:clamp(26px,1.25vw,32px);right:clamp(26px,1.25vw,32px);bottom:calc(var(--catalog-foot-height) + clamp(13px,0.78125vw,20px));font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .catalog-game-foot:before{height:var(--catalog-foot-height)}
  .games-page main .catalog-game-card .catalog-rate{bottom:clamp(18px,1.041667vw,27px);left:clamp(26px,1.25vw,32px);font-size:clamp(28px,1.5625vw,40px)}
  .games-page main .catalog-rate small{font-size:clamp(11px,0.625vw,16px)}
  .games-page main .catalog-card-action{right:clamp(26px,1.25vw,32px);bottom:clamp(24px,1.25vw,32px);gap:clamp(10px,0.520833vw,13px);min-height:clamp(43px,2.291667vw,59px);padding:clamp(10px,0.625vw,16px) clamp(21px,1.041667vw,27px);font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .empty-state{min-height:clamp(250px,15.625vw,400px);padding:clamp(80px,5vw,128px) clamp(24px,2vw,51px)}
  .games-page main .empty-state strong{font-size:clamp(24px,1.458333vw,37px)}
  .games-page main .empty-state p{font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
  .games-page main .library-guide{min-height:clamp(340px,18.75vw,480px);padding:clamp(48px,2.604167vw,67px) 0 clamp(52px,2.916667vw,75px)}
  .games-page main .library-guide h2{font-size:clamp(29px,1.875vw,48px)}
  .games-page main .library-guide ol{gap:clamp(68px,3.75vw,96px);margin-top:clamp(45px,2.083333vw,53px)}
  .games-page main .library-guide li{gap:clamp(22px,1.25vw,32px)}
  .games-page main .guide-icon{width:clamp(82px,4.166667vw,107px);height:clamp(82px,4.166667vw,107px)}
  .games-page main .guide-icon .icon{width:clamp(39px,2.083333vw,53px);height:clamp(39px,2.083333vw,53px)}
  .games-page main .library-guide h3{font-size:clamp(23px,1.25vw,32px)}
  .games-page main .library-guide p{font-size:var(--portal-small,clamp(13px,.677083vw,18px))}
}
@media(min-width:1920px){.games-page main .catalog-game-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:2560px){.games-page main .catalog-game-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
