.player-page { background:#0b0b0d; overflow-x:clip; }
.player-header { background:rgba(10,10,12,.82); backdrop-filter:blur(18px); border-bottom:1px solid var(--line); }
[hidden] { display:none!important; }

.ps-hero { min-height:100svh; position:relative; overflow:hidden; display:flex; align-items:center; padding:110px 5vw 130px; background:radial-gradient(circle at 72% 45%,rgba(var(--accent-rgb),.15),transparent 28%),linear-gradient(115deg,#0b0b0d 40%,#151519); }
.ps-hero-grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size:8.33vw 8.33vw; mask-image:linear-gradient(to right,black,transparent 78%); }
.ps-level-ghost { position:absolute; right:-4vw; top:50%; transform:translateY(-48%); color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.09); font:600 41vw/.8 var(--display); letter-spacing:-.12em; }
.ps-hero-copy { position:relative; z-index:2; width:74%; }
.ps-hero .player-id { display:flex; align-items:center; gap:14px; margin-top:40px; font-size:9px; color:#777; letter-spacing:.15em; }
.ps-hero h1 { font-size:clamp(78px,13vw,205px); line-height:.83; }
.ps-hero h1.is-long { font-size:clamp(48px,8vw,120px); }
.ps-portrait { width:56px; height:56px; flex:0 0 56px; border-radius:50%; display:grid; place-items:center; overflow:hidden; color:white; background:#1c1c21; border:1px solid rgba(255,255,255,.14); font:600 12px var(--display); background-size:cover; background-position:center; }
.ps-level { color:#777; font:500 17px var(--display); margin-top:25px; }
.ps-level strong { color:var(--accent); font-size:54px; margin-left:12px; }
.ps-xp { max-width:670px; margin-top:46px; }
.ps-xp > div:first-child { display:flex; justify-content:space-between; color:#777; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.ps-xp strong { color:#aaa; }
.ps-xp strong b { color:white; }
.ps-xp .progress { height:5px; }
.ps-quick-stats { position:absolute; right:4vw; bottom:55px; z-index:2; display:grid; grid-template-columns:repeat(3,1fr); min-width:46%; border-top:1px solid var(--line); }
.ps-quick-stats div { display:flex; flex-direction:column; padding:18px 24px; border-right:1px solid var(--line); }
.ps-quick-stats span { color:#666; text-transform:uppercase; font-size:7px; letter-spacing:.12em; }
.ps-quick-stats strong { font:600 14px var(--display); margin-top:8px; }
.ps-quick-stats b { color:var(--accent); }

.ps-session { background:#111114; }
.session-result { min-height:520px; border:1px solid var(--line); display:grid; grid-template-columns:.9fr 1fr 1.15fr; align-items:center; background:radial-gradient(circle at 18% 50%,rgba(var(--accent-rgb),.15),transparent 25%),#0d0d0f; overflow:hidden; }
.session-signal { width:330px; height:330px; justify-self:center; border:1px solid rgba(255,255,255,.11); border-radius:50%; display:grid; place-items:center; position:relative; }
.session-signal span { position:absolute; width:74%; height:74%; border-radius:50%; border:1px solid rgba(255,255,255,.08); }
.session-signal span:nth-child(2) { width:47%; height:47%; border-color:rgba(var(--accent-rgb),.5); }
.session-signal strong { color:var(--accent); font:600 65px var(--display); }
.session-result-copy { border-left:1px solid var(--line); padding-left:3vw; }
.session-result-copy h3 { font-size:clamp(45px,5vw,78px); line-height:.92; }
.session-result-copy h3.accent { color:var(--accent); margin-top:12px; }
.session-result-copy h3 small { font-size:12px; }
.session-level-up { padding:3vw; border-left:1px solid var(--line); display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center; }
.session-level-up > div:not(.level-progress) { display:flex; flex-direction:column; }
.session-level-up span { color:#666; text-transform:uppercase; font-size:7px; letter-spacing:.12em; }
.session-level-up strong { font:600 17px var(--display); margin-top:7px; }
.session-level-up > i { color:var(--accent); font-style:normal; }
.session-level-up .level-progress { grid-column:1/4; margin-top:36px; }

.ps-points { background:#0e0e10; padding-top:100px; padding-bottom:100px; }
.points-layout { display:grid; grid-template-columns:1.1fr .9fr; min-height:650px; border:1px solid var(--line); }
.points-balance { position:relative; overflow:hidden; padding:4vw; display:flex; flex-direction:column; justify-content:center; background:var(--accent); }
.points-balance .eyebrow { color:rgba(255,255,255,.65); }
.points-balance h2 { font-size:clamp(68px,9vw,145px); line-height:.82; }
.points-ghost { position:absolute; right:-5vw; top:-3vw; font:600 25vw var(--display); color:rgba(255,255,255,.08); }
.points-value { margin-top:50px; display:flex; align-items:flex-end; gap:14px; }
.points-value strong { font:600 44px var(--display); }
.points-value span { font-size:8px; letter-spacing:.12em; margin-bottom:7px; }
.points-earn { padding:4vw; display:flex; flex-direction:column; justify-content:center; background:#141416; }
.points-earn > p { max-width:420px; line-height:1.75; font-size:13px; color:#d0d0d4; }
.points-earn ul { padding:0; margin:60px 0 0; list-style:none; display:grid; grid-template-columns:1fr 1fr; }
.points-earn li { border-top:1px solid rgba(255,255,255,.12); padding:19px 0; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.points-earn li:nth-child(odd) { margin-right:24px; }
.points-earn li span { opacity:.55; margin-right:15px; }

.ps-rewards { background:#e1e0dc; color:#111; }
.ps-rewards .eyebrow,.ps-rewards .section-intro { color:#666; }
.reward-balance { display:flex; flex-direction:column; text-align:right; }
.reward-balance span { color:#777; font-size:8px; text-transform:uppercase; letter-spacing:.12em; }
.reward-balance strong { color:var(--accent); font:600 25px var(--display); margin-top:8px; }
.carousel-head { min-height:56px; display:flex; align-items:center; justify-content:flex-end; gap:28px; color:#777; font-size:9px; letter-spacing:.12em; }
.carousel-head > span b { color:var(--accent); }
.carousel-head > div { display:flex; }
.carousel-head button { width:45px; height:36px; border:1px solid currentColor; color:inherit; background:transparent; cursor:pointer; }
.carousel-head button + button { border-left:0; }
.carousel-head button:hover { color:white; background:var(--accent); border-color:var(--accent); }
.horizontal-rail { scrollbar-width:thin; scrollbar-color:rgba(229,34,40,.28) transparent; cursor:grab; scroll-snap-type:x proximity; }
.horizontal-rail::-webkit-scrollbar { height:3px; }
.horizontal-rail::-webkit-scrollbar-thumb { background:rgba(var(--accent-rgb),.35); }
.horizontal-rail.dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
.reward-store { display:flex; overflow-x:auto; border-top:1px solid #aaa; border-bottom:1px solid #aaa; }
.reward-store article { min-width:315px; width:25%; min-height:450px; padding:28px; border-right:1px solid #aaa; display:flex; flex-direction:column; scroll-snap-align:start; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.reward-store article:hover { background:#17171a; color:white; }
.reward-store article:hover > span { color:#888; }
.reward-store article:hover p { color:#aaa; }
.reward-store article:hover .reward-mark { border-color:#fff; color:#fff; }
.reward-store article:hover > strong { color:var(--accent); }
.reward-store article:hover button { border-color:#fff; color:#fff; background:transparent; }
.reward-store article:last-child { border-right:0; }
.reward-store article > span { color:#777; font-size:7px; letter-spacing:.12em; }
.reward-mark { width:105px; height:105px; display:grid; place-items:center; margin:35px 0; border:1px solid #999; font:600 20px var(--display); transform:rotate(-4deg); transition:border-color .2s,color .2s; }
.reward-store h3 { font-size:19px; letter-spacing:-.03em; }
.reward-store p { color:#666; font-size:10px; line-height:1.6; }
.reward-store article > strong { color:var(--accent); font:600 17px var(--display); margin-top:auto; }
.reward-store button { margin-top:18px; padding:14px; border:1px solid #111; background:transparent; color:#111; text-transform:uppercase; font-size:8px; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.reward-store article button:hover:not(:disabled) { background:var(--accent); border-color:var(--accent); color:white; }
.reward-store button:disabled { opacity:.35; cursor:not-allowed; }

.ps-achievements { background:#0c0c0e; }
.ps-achievements .achievement-counter { color:white; background:transparent; border:0; cursor:pointer; }
.ps-achievements .achievement-counter span { transition:color .2s; }
.ps-achievements .achievement-counter:hover span { color:var(--accent); }
.ps-achievements .achievement { cursor:pointer; transition:background .25s,transform .25s; }
.ps-achievements .achievement:hover { background:#151518; transform:translateY(-3px); }

.battle-pass { min-height:100vh; background:#0e0e10; overflow:hidden; }
.battle-cover,.battle-shade { position:absolute; inset:0; }
.battle-cover { background:center/cover no-repeat; filter:grayscale(.7) brightness(.42) contrast(1.15); }
.battle-shade { background:linear-gradient(to bottom,#0e0e10 0%,rgba(14,14,16,.3) 25%,#0e0e10 67%); }
.battle-head,.battle-content { position:relative; z-index:2; }
.battle-head { min-height:52vh; display:flex; justify-content:space-between; align-items:flex-end; }
.battle-season-number { color:#aaa; font:500 11px var(--display); letter-spacing:.14em; }
.battle-season-number b { color:var(--accent); }
.battle-head h2 { font-size:clamp(70px,10vw,155px); line-height:.8; margin-top:12px; }
.battle-status { display:flex; flex-direction:column; text-align:right; gap:13px; padding-bottom:8px; }
.battle-status span { color:var(--accent); font:600 12px var(--display); }
.battle-status strong { font:500 10px var(--display); }
.battle-status strong b { font-size:30px; color:white; }
.battle-content { margin-top:70px; }
.battle-track-wrap { overflow:hidden; }
.battle-carousel-head { justify-content:flex-start; }
.battle-carousel-head .eyebrow { margin:0 auto 0 0; }
.pass-jumps { display:flex; gap:7px; margin:2px 0 10px; }
.pass-jumps button { padding:10px 14px; border:1px solid var(--line); color:#777; background:rgba(14,14,16,.65); text-transform:uppercase; letter-spacing:.1em; font-size:7px; cursor:pointer; }
.pass-jumps button:hover { color:white; border-color:var(--accent); }
.battle-track { display:flex; overflow-x:auto; margin-top:20px; padding:20px 0 28px; }
.pass-level { width:190px; min-height:235px; padding:20px; border:1px solid rgba(255,255,255,.18); border-right:0; display:flex; flex-direction:column; background:rgba(14,14,16,.7); backdrop-filter:blur(8px); position:relative; }
.pass-level { min-width:190px; scroll-snap-align:start; cursor:pointer; transition:background .2s,transform .2s; }
.pass-level:hover { background:rgba(var(--accent-rgb),.1); transform:translateY(-3px); }
.pass-level:last-child { border-right:1px solid rgba(255,255,255,.18); }
.pass-level.claimed { opacity:.42; }
.pass-level.locked { opacity:.58; }
.pass-level.active { border-color:var(--accent); background:rgba(var(--accent-rgb),.12); }
.pass-level.active::before { content:"ТЕКУЩИЙ"; position:absolute; top:-20px; left:-1px; color:white; background:var(--accent); padding:6px 10px; font-size:6px; letter-spacing:.14em; }
.pass-level > span { color:#666; font-size:7px; text-transform:uppercase; letter-spacing:.12em; }
.pass-level > b { color:var(--accent); font:600 32px var(--display); margin-top:8px; }
.pass-level .pass-reward { margin:auto 0; font:600 15px var(--display); }
.pass-level small { color:#666; font-size:7px; }
.battle-quests { margin-top:70px; }
.battle-quests-head { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); }
.battle-quests-head > span { color:#666; font-size:7px; text-transform:uppercase; }
.battle-quest { min-height:105px; display:grid; grid-template-columns:1fr 100px 90px; gap:30px; align-items:center; border-bottom:1px solid var(--line); }
.battle-quest > div:first-child { display:flex; flex-direction:column; }
.battle-quest strong { font:500 12px var(--display); }
.battle-quest small { color:#666; margin-top:7px; font-size:8px; }
.battle-quest > b { color:#777; font-size:8px; }
.battle-quest.completed > b { color:var(--accent); }
.quest-bar { height:3px; background:#303035; }
.quest-bar i { display:block; height:100%; background:var(--accent); }

.ps-leaderboard { padding-top:120px; padding-bottom:120px; }
.leader-list.updating { opacity:.25; transform:translateY(8px); }
.leader-list { transition:opacity .2s,transform .2s; }

.detail-modal { position:fixed; inset:0; z-index:500; visibility:hidden; opacity:0; overflow:hidden; transition:.25s; }
.detail-modal.open { visibility:visible; opacity:1; }
.detail-backdrop { position:absolute; inset:0; width:100%; height:100%; background:rgba(0,0,0,.76); backdrop-filter:blur(8px); cursor:pointer; }
.detail-panel { position:absolute; right:0; top:0; bottom:0; width:min(610px,92vw); max-width:100vw; background:#111114; border-left:1px solid var(--line); transform:translateX(100%); transition:transform .45s cubic-bezier(.16,1,.3,1); overflow-x:hidden; overflow-y:auto; }
.detail-modal.open .detail-panel { transform:none; }
.detail-close { position:sticky; top:20px; z-index:3; margin:20px 20px 0 auto; display:grid; place-items:center; width:42px; height:42px; color:white; background:#222226; cursor:pointer; font-size:22px; }
.detail-close:hover { background:var(--accent); }
.detail-content { padding:30px 40px 60px; min-width:0; max-width:100%; container-type:inline-size; }
.detail-kicker { color:var(--accent); text-transform:uppercase; letter-spacing:.15em; font-size:8px; margin-bottom:20px; }
.detail-content h2 { max-width:100%; font-size:clamp(34px,6vw,68px); font-size:clamp(34px,13cqi,68px); line-height:.88; overflow-wrap:anywhere; }
.detail-mark { width:125px; height:125px; display:grid; place-items:center; border:1px solid var(--accent); background:rgba(var(--accent-rgb),.1); font:600 25px var(--display); margin:40px 0; transform:rotate(-4deg); }
.detail-data { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-top:1px solid var(--line); margin-top:35px; min-width:0; }
.detail-data div { padding:19px 0; display:flex; flex-direction:column; border-bottom:1px solid var(--line); }
.detail-data div:nth-child(even) { padding-left:20px; border-left:1px solid var(--line); }
.detail-data span { color:#666; text-transform:uppercase; letter-spacing:.12em; font-size:7px; }
.detail-data strong { font:500 11px var(--display); margin-top:7px; }
.detail-copy { color:#999; font-size:11px; line-height:1.7; margin:28px 0; }
.detail-progress { height:4px; margin:25px 0; background:#303035; }
.detail-progress i { display:block; height:100%; background:var(--accent); }
.detail-action { width:100%; }
.detail-action:disabled { opacity:.45; }

.achievement-catalog { position:fixed; inset:0; z-index:450; padding:55px 5vw 80px; color:white; background:#0c0c0e; overflow-x:hidden; overflow-y:auto; visibility:hidden; opacity:0; transform:translateY(20px); transition:opacity .3s,transform .45s cubic-bezier(.16,1,.3,1),visibility .3s; }
.achievement-catalog.open { visibility:visible; opacity:1; transform:none; }
.catalog-head { display:flex; justify-content:space-between; align-items:flex-start; }
.catalog-head h2 { max-width:calc(100% - 70px); font-size:clamp(55px,9vw,135px); line-height:.85; overflow-wrap:anywhere; }
.catalog-close { position:sticky; top:0; width:52px; height:52px; background:#202024; color:white; font-size:25px; cursor:pointer; z-index:2; }
.catalog-close:hover { background:var(--accent); }
.catalog-progress { display:grid; grid-template-columns:190px 1fr 55px; gap:25px; align-items:center; margin:55px 0 35px; }
.catalog-progress > div:first-child { display:flex; flex-direction:column; }
.catalog-progress strong { font:600 24px var(--display); }
.catalog-progress strong b { color:var(--accent); }
.catalog-progress span { color:#666; text-transform:uppercase; letter-spacing:.12em; font-size:7px; margin-top:5px; }
.catalog-progress-line { height:4px; background:#2d2d32; }
.catalog-progress-line i { display:block; height:100%; background:var(--accent); }
.catalog-progress > b { color:var(--accent); font:600 14px var(--display); text-align:right; }
.catalog-filters { display:flex; gap:6px; margin-bottom:28px; }
.catalog-filters button { padding:12px 18px; border:1px solid #44444a; color:#777; background:transparent; text-transform:uppercase; letter-spacing:.1em; font-size:8px; cursor:pointer; }
.catalog-filters button:hover:not(.active) { color:var(--accent); border-color:var(--accent); }
.catalog-filters button.active { color:white; background:var(--accent); border-color:var(--accent); }
.catalog-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.catalog-card { min-height:410px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.catalog-card.locked { opacity:.62; }
.catalog-card .catalog-meta { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px; }
.catalog-card .catalog-meta span,.catalog-card .catalog-meta b { color:#777; font-size:7px; letter-spacing:.08em; font-weight:500; }
.catalog-card .mini-progress { margin-top:14px; }
.catalog-empty { padding:80px 0; color:#666; text-align:center; }

@media (max-width:1050px) {
  .session-result { grid-template-columns:1fr 1fr; }
  .session-signal { display:none; }
  .session-result-copy { border-left:0; padding-left:4vw; }
  .reward-store article { min-width:300px; }
  .catalog-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:760px) {
  .ps-hero-copy { width:100%; }
  .ps-hero h1 { font-size:clamp(52px,14vw,72px); }
  .ps-hero h1.is-long { font-size:clamp(36px,11vw,52px); }
  .ps-quick-stats { left:20px; right:20px; bottom:45px; min-width:0; }
  .ps-quick-stats div { padding:15px 10px; }
  .ps-quick-stats strong { font-size:10px; }
  .session-result { grid-template-columns:1fr; padding:35px 24px; }
  .session-result-copy { padding:0 0 35px; }
  .session-level-up { border-left:0; border-top:1px solid var(--line); padding:35px 0 0; }
  .points-layout { grid-template-columns:1fr; }
  .points-balance { padding:50px 24px; border-right:0; border-bottom:1px solid rgba(255,255,255,.28); }
  .points-earn { padding:50px 24px; }
  .points-earn ul { grid-template-columns:1fr; margin-top:35px; }
  .points-earn li:nth-child(odd) { margin-right:0; }
  .reward-store article { min-width:78vw; border-bottom:0!important; }
  .battle-pass { padding-left:20px; padding-right:20px; }
  .battle-head { min-height:65vh; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:35px; }
  .battle-head h2 { font-size:clamp(48px,13vw,64px); overflow-wrap:normal; word-break:normal; }
  .battle-status { text-align:left; }
  .battle-track-wrap { margin-right:-20px; }
  .battle-track { min-width:0; }
  .pass-level { min-width:155px; }
  .battle-quest { grid-template-columns:1fr 65px; gap:15px; padding:18px 0; }
  .battle-quest .quest-bar { grid-column:1/3; grid-row:2; }
  .detail-panel { width:100%; top:5vh; }
  .detail-content { padding:20px 22px 50px; }
  .achievement-catalog { padding:35px 20px 60px; }
  .catalog-progress { grid-template-columns:1fr 55px; }
  .catalog-progress > div:first-child { grid-column:1/3; }
  .catalog-filters { overflow:auto; }
  .catalog-filters button { white-space:nowrap; }
  .catalog-grid { display:flex; overflow:auto; border-left:0; }
  .catalog-card { min-width:82vw; }
}

@media (max-width:760px) {
  .player-header { padding-top:env(safe-area-inset-top); }
  .ps-hero .reveal { opacity:1; transform:none; }
  .ps-hero { min-height:100svh; padding:calc(100px + env(safe-area-inset-top)) 18px calc(190px + env(safe-area-inset-bottom)); align-items:center; }
  .ps-hero h1 { font-size:clamp(52px,14vw,72px); line-height:.84; }
  .ps-hero h1.is-long { font-size:clamp(36px,11vw,52px); }
  .ps-level-ghost { right:-25vw; font-size:92vw; opacity:.8; }
  .ps-level { margin-top:20px; }
  .ps-level strong { font-size:48px; }
  .ps-xp { margin-top:35px; }
  .ps-xp > div:first-child { gap:10px; }
  .ps-xp .progress { height:5px; }
  .ps-quick-stats { left:18px; right:18px; bottom:calc(42px + env(safe-area-inset-bottom)); grid-template-columns:repeat(3,1fr); }
  .ps-quick-stats div { min-width:0; padding:15px 9px; }
  .ps-quick-stats span { font-size:6px; line-height:1.35; }
  .ps-quick-stats strong { font-size:9px; white-space:nowrap; }
  .ps-session { padding-top:82px; padding-bottom:82px; }
  .session-result { padding:32px 22px 38px; }
  .session-signal { display:grid; width:185px; height:185px; margin:0 auto 35px; }
  .session-signal strong { font-size:46px; }
  .session-result-copy { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .session-result-copy .eyebrow { grid-column:1/3; }
  .session-result-copy h3 { font-size:36px; }
  .session-level-up { grid-template-columns:1fr auto 1fr; gap:12px; }
  .session-level-up strong { font-size:14px; }
  .ps-points { padding:82px 18px; }
  .points-layout { min-height:0; }
  .points-balance { min-height:470px; padding:45px 22px; }
  .points-balance h2 { font-size:clamp(48px,13vw,64px); }
  .points-value strong { font-size:38px; }
  .points-earn { padding:42px 22px; }
  .points-earn > p { font-size:12px; }
  .ps-rewards { overflow:hidden; padding-top:82px; padding-bottom:82px; }
  .carousel-head { min-height:52px; }
  .carousel-head button { width:46px; height:44px; }
  .reward-store { margin-right:-18px; padding-right:18px; scroll-padding-left:0; -webkit-overflow-scrolling:touch; overscroll-behavior-inline:contain; }
  .reward-store article { min-width:72vw; min-height:430px; padding:24px; }
  .reward-store article:last-child { margin-right:18px; }
  .reward-store h3 { font-size:18px; }
  .reward-store button { min-height:44px; }
  .ps-achievements { overflow:hidden; padding-top:82px; padding-bottom:82px; }
  .ps-achievements .section-head { gap:25px; }
  .ps-achievements .achievement-counter { align-items:flex-start; text-align:left; min-height:54px; }
  .achievement-track { margin-right:-18px; padding-right:18px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
  .achievement-track .achievement { min-width:72vw; min-height:390px; scroll-snap-align:start; }
  .achievement-track .achievement:last-child { margin-right:18px; }
  .achievement-icon { width:92px; height:92px; }
  .battle-pass { padding:82px 18px calc(90px + env(safe-area-inset-bottom)); }
  .battle-head { min-height:68svh; }
  .battle-head h2 { font-size:clamp(48px,13vw,64px); overflow-wrap:normal; word-break:normal; }
  .battle-status { width:100%; padding:0; text-align:left; }
  .battle-status strong { display:flex; justify-content:space-between; align-items:center; }
  .battle-content { margin-top:55px; }
  .battle-carousel-head { flex-wrap:wrap; gap:8px; }
  .battle-carousel-head .eyebrow { width:100%; margin-bottom:8px; }
  .pass-jumps { overflow-x:auto; padding-bottom:4px; }
  .pass-jumps button { min-height:44px; white-space:nowrap; }
  .battle-track-wrap { margin-right:-18px; }
  .battle-track { padding-right:18px; scroll-padding-left:0; -webkit-overflow-scrolling:touch; overscroll-behavior-inline:contain; }
  .pass-level { min-width:43vw; min-height:230px; padding:18px; }
  .pass-level:last-child { margin-right:18px; }
  .pass-level .pass-reward { font-size:13px; }
  .battle-quests { margin-top:60px; }
  .battle-quest { min-height:130px; grid-template-columns:1fr auto; padding:22px 0; }
  .battle-quest strong { font-size:11px; line-height:1.4; }
  .battle-quest > b { font-size:8px; text-align:right; }
  .battle-quest .quest-bar { height:5px; }
  .ps-leaderboard { padding-top:82px; padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
  .leaderboard-head { gap:25px; }
  .season-id { align-self:flex-end; }
  .leaderboard-tabs { width:100%; }
  .leaderboard-tabs button { min-height:44px; flex:1; }
  .leader { min-height:76px; grid-template-columns:42px 1fr auto; padding:0 4px; }
  .leader > span { font-size:18px; }
  .leader > strong { font-size:20px; }
  .leader b { min-width:80px; font-size:9px; }
  .detail-modal { display:flex; align-items:flex-end; }
  .detail-panel { position:relative; top:auto; left:auto; right:auto; bottom:auto; width:100%; max-height:90svh; border-left:0; border-top:1px solid var(--line); border-radius:16px 16px 0 0; transform:translateY(105%); -webkit-overflow-scrolling:touch; }
  .detail-modal.open .detail-panel { transform:none; }
  .detail-close { top:12px; margin:12px 12px 0 auto; width:44px; height:44px; }
  .detail-content { padding:8px 22px calc(40px + env(safe-area-inset-bottom)); }
  .detail-content h2 { font-size:clamp(42px,13vw,58px); }
  .detail-action { min-height:54px; }
  .achievement-catalog { padding:calc(25px + env(safe-area-inset-top)) 18px calc(45px + env(safe-area-inset-bottom)); }
  .catalog-head { position:sticky; z-index:4; top:calc(env(safe-area-inset-top) * -1); padding-top:8px; padding-bottom:18px; background:linear-gradient(#0c0c0e 75%,transparent); }
  .catalog-head h2 { font-size:clamp(48px,15vw,68px); }
  .catalog-close { width:46px; height:46px; }
  .catalog-progress { margin:30px 0 24px; }
  .catalog-filters { position:sticky; z-index:3; top:92px; margin-right:-18px; padding:10px 18px 14px 0; background:#0c0c0e; -webkit-overflow-scrolling:touch; }
  .catalog-filters button { min-height:44px; }
  .catalog-grid { display:grid; grid-template-columns:1fr; gap:0; overflow:visible; border-top:1px solid var(--line); }
  .catalog-card { min-width:0; width:100%; min-height:405px; border-left:1px solid var(--line); }
}
