.console-profile .profile-entry{display:flex;align-items:center;gap:12px;width:auto;height:48px;padding:0 8px 0 0;border:0;background:transparent;color:#f4f8ff;font:800 14px var(--display);letter-spacing:.04em;cursor:pointer}
.console-profile .profile-entry:hover,.console-profile .profile-entry:focus-visible{color:#8feaff;text-shadow:0 0 14px #35ceff;outline:0}
.console-profile .profile-entry:focus-visible .profile-avatar{box-shadow:0 0 0 4px #8feaff}
.console-tabs .mobile-profile-tab{display:none}
.console-profile .profile-entry,.console-tabs .mobile-profile-tab{position:relative}
.console-profile .profile-entry.has-unread-notification::after,.console-tabs .mobile-profile-tab.has-unread-notification::after{content:"";position:absolute;top:9px;right:0;width:9px;height:9px;border-radius:50%;background:#79ecff;box-shadow:0 0 0 3px #071a30,0 0 10px #79ecff,0 0 18px #79ecff88;pointer-events:none}
.console-profile .profile-entry.has-unread-notification{padding-right:15px}
.console-tabs .mobile-profile-tab.has-unread-notification::after{top:1px;right:2px;width:8px;height:8px}
.portal-notifications{display:grid;gap:10px;max-width:850px;margin:24px 0}
.portal-notification{display:flex;align-items:center;gap:15px;width:100%;min-height:84px;padding:15px 18px;border:1px solid #76d9ef5c;border-radius:16px;background:linear-gradient(105deg,#15405bcc,#0a243cdb);color:#fff;text-align:left;cursor:pointer;box-shadow:0 10px 25px #00101c6b;transition:background .18s,transform .18s,box-shadow .18s}
.portal-notification:hover,.portal-notification:focus-visible{background:linear-gradient(105deg,#1c5878,#0d3554);box-shadow:0 0 22px #5cdeff59;transform:translateY(-2px);outline:0}
.portal-notification.is-read{opacity:.7;background:#0b2539a8}
.portal-notification-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:#53dafa25;color:#a4f0ff;font-size:25px}
.portal-notification-copy{display:grid;gap:4px;min-width:0;flex:1}
.portal-notification-copy strong{font:900 clamp(17px,2vw,25px) var(--display);letter-spacing:.04em}
.portal-notification-copy small{color:#d4e8f3;font-size:clamp(12px,1.15vw,16px);line-height:1.3}
.portal-notification-copy time{color:#8fbed1;font-size:11px;letter-spacing:.06em}
.portal-notification-unread{flex:none;width:9px;height:9px;border-radius:50%;background:#77edff;box-shadow:0 0 11px #77edff}
.portal-account-grid,.portal-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;margin:18px 0 26px}
.portal-account-grid button,.portal-choice-grid button,.portal-profile-edit{min-height:104px;padding:19px 22px;border:1px solid #8ddfff66;border-radius:18px;background:linear-gradient(135deg,#123b58e8,#091e35e8);color:#f7fcff;text-align:left;cursor:pointer;box-shadow:0 12px 32px #0006;transition:transform .18s,background .18s,box-shadow .18s}
.portal-account-grid button{display:grid;align-content:center;gap:7px;min-width:0}
.portal-account-grid button small,.portal-account-grid button span{color:#88ddf4;font:800 clamp(12px,1.1vw,16px) var(--display);letter-spacing:.08em}
.portal-account-grid button strong{overflow-wrap:anywhere;font:900 clamp(20px,2vw,28px) var(--display)}
.portal-choice-grid button{display:grid;place-items:center;min-height:76px;text-align:center;font:900 clamp(17px,1.6vw,24px) var(--display);letter-spacing:.04em}
.portal-choice-grid button[aria-pressed="true"]{background:linear-gradient(135deg,#bcefff,#39c9f7);color:#061a31;box-shadow:0 0 24px #4edaff88}
.portal-account-grid button:hover,.portal-choice-grid button:hover,.portal-profile-edit:hover,.portal-account-grid button:focus-visible,.portal-choice-grid button:focus-visible,.portal-profile-edit:focus-visible{transform:translateY(-3px);box-shadow:0 0 0 3px #a6edff,0 0 30px #47ceff77;outline:0}
.portal-account-grid button:disabled,.portal-choice-grid button:disabled{cursor:wait;opacity:.6}
.portal-account-danger{margin:36px 0 12px;padding:24px;border-radius:20px;background:linear-gradient(135deg,#421b27e8,#1b1325e8);box-shadow:inset 0 0 0 1px #ff9c8c50}
.portal-account-danger h3{margin-top:0;color:#ffc4b5}
.portal-account-danger p{max-width:750px;color:#ffe8e3;line-height:1.45}
.portal-account-danger button,.portal-danger-button{min-height:62px;padding:13px 22px;border:1px solid #ffb1a3;border-radius:13px;background:#7d2538;color:#fff;font:900 clamp(18px,1.6vw,24px) var(--display);cursor:pointer}
.portal-account-danger button:hover,.portal-account-danger button:focus-visible{background:#a12e43;box-shadow:0 0 0 3px #ffd1c6;outline:0}
.portal-account-form{max-width:700px}.portal-account-form label small{display:block;margin-top:6px;color:#9cd7e9}
.portal-profile-edit{display:block;min-height:64px;margin:18px 0;font:900 clamp(17px,1.5vw,23px) var(--display)}
.portal-profile-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}
.portal-profile-actions .portal-profile-edit{flex:1 1 260px;margin:0}
.portal-profile-actions .portal-profile-edit small{display:block;margin-top:4px;color:#9deaff;font-size:.65em;letter-spacing:.08em}
.portal-profile-about{margin:22px 0;padding:20px 24px;border-radius:20px;background:#0d2c45cc;box-shadow:inset 0 0 0 1px #8ddfff35}
.portal-profile-about h3{margin-top:0}.portal-profile-about p{line-height:1.4}.portal-profile-motto{color:#b6efff;font-size:clamp(20px,2vw,30px);font-weight:800}
.portal-style-list{display:flex;flex-wrap:wrap;gap:10px}.portal-style-list span{padding:9px 14px;border-radius:999px;background:#44cfff2b;color:#c2f4ff;font:800 15px var(--display)}
.portal-profile-form textarea{width:100%;min-height:120px;padding:15px 17px;border:2px solid #8cdaff72;border-radius:12px;outline:0;resize:vertical;background:#071725e8;color:#fff;font:700 clamp(19px,2vw,25px)/1.3 var(--display)}
.portal-profile-form textarea:focus{border-color:#8eeaff;box-shadow:0 0 19px #56daff65}
.portal-profile-form label small{float:right;color:#99d5e7}
@media (max-width:600px){.portal-account-grid,.portal-choice-grid{grid-template-columns:1fr 1fr;gap:10px}.portal-account-grid button{grid-column:1/-1;min-height:82px}.portal-choice-grid button{min-height:68px;padding:10px;font-size:16px}.portal-account-danger{padding:18px}}
.portal-dialog{width:min(1100px,calc(100vw - 34px));height:min(900px,calc(100dvh - 32px));max-width:none;max-height:none;padding:0;border:1px solid #80dfff9a;border-radius:24px;color:#f3fbff;background:linear-gradient(145deg,#0c2035ed,#07111ff2 70%);box-shadow:0 32px 100px #000d,0 0 48px #42d5ff30;overflow:auto}
.portal-dialog::backdrop{background:#030c1bdc;backdrop-filter:blur(13px)}
body.camera-overlay-active .portal-dialog::backdrop{background:#030c1b30;backdrop-filter:none}
body.camera-overlay-active .portal-dialog{background:linear-gradient(145deg,#0c2035df,#07111fe3 70%);backdrop-filter:blur(8px)}
.portal-panel{min-height:100%;padding:clamp(20px,3.4vw,44px);background:radial-gradient(circle at 12% 0%,#3cbeff27,transparent 32%),radial-gradient(circle at 100% 100%,#8977ef1c,transparent 35%)}
.portal-top{position:sticky;z-index:2;top:-44px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:72px;margin:-10px 0 30px;padding:12px 0;background:linear-gradient(#0b2035f5,#0b2035e9);border-bottom:1px solid #92e7ff42}
.portal-top span{color:#9deaff;font:900 clamp(12px,1.3vw,18px) var(--display);letter-spacing:.14em;text-align:center}
.portal-top button,.portal-secondary{min-height:52px;padding:10px 18px;border:2px solid #8ddfff8f;border-radius:12px;background:#123c56;color:#fff;font:900 clamp(16px,1.7vw,24px) var(--display);cursor:pointer}
.portal-top button:hover,.portal-secondary:hover,.portal-top button:focus-visible,.portal-secondary:focus-visible{background:#1a6382;box-shadow:0 0 24px #5bdfff78}
.portal-top .portal-close{min-width:54px;font-size:30px;line-height:1}
.portal-panel h2{margin:0 0 17px;color:#fff;font:1000 clamp(45px,6vw,82px)/.9 var(--display);letter-spacing:.025em;text-shadow:0 5px 20px #000a,0 0 30px #42caff3d}
.portal-panel h3{margin:30px 0 13px;color:#a4edff;font:900 clamp(21px,2.5vw,34px) var(--display);letter-spacing:.07em}
.portal-body{font-size:clamp(16px,1.6vw,22px)}
.portal-lead{max-width:800px;color:#d6e9f5;font-size:clamp(19px,2vw,27px);line-height:1.42}
.portal-quiet,.portal-gesture,.portal-message{color:#acd0e3;font-size:clamp(14px,1.4vw,18px);line-height:1.4}
.portal-message:not(:empty){padding:12px 16px;border:1px solid #ffcf7f66;border-radius:10px;background:#58411d50;color:#ffebc0}
.portal-loading{display:grid;justify-items:center;align-content:center;gap:22px;min-height:35vh;color:#bceeff;text-align:center;font:900 clamp(19px,2vw,28px) var(--display)}
.portal-loading span{width:74px;height:74px;border:7px solid #6bddff45;border-top-color:#99f4ff;border-radius:50%;box-shadow:0 0 28px #54dbff55;animation:portal-spin .8s linear infinite}
@keyframes portal-spin{to{transform:rotate(360deg)}}
.portal-player-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:900px;margin:34px 0}
.portal-player-menu button{display:grid;grid-template-columns:60px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:18px;min-height:118px;padding:22px;border:1px solid #83dfff80;border-radius:16px;background:linear-gradient(115deg,#143958e9,#0b2038ec);color:#fff;text-align:left;cursor:pointer;box-shadow:inset 0 1px #ffffff29,0 14px 26px #0004}
.portal-player-menu button:hover,.portal-player-menu button:focus-visible{border-color:#ccf9ff;background:linear-gradient(115deg,#1e5976,#14304c);box-shadow:0 0 25px #55dfff66;outline:0}
.portal-player-menu button>span{grid-row:1/3;display:grid;place-items:center;width:60px;height:60px;border:2px solid #8deeff;border-radius:13px;background:#1b5877;color:#e8ffff;font:900 34px var(--display)}
.portal-player-menu button strong{font:900 clamp(23px,2.3vw,34px)/1 var(--display)}
.portal-player-menu button small{align-self:start;color:#a9d9eb;font:700 clamp(14px,1.25vw,18px) var(--display)}
.portal-gesture{margin:32px 0 0;color:#8fe6ff}
.portal-form{display:grid;gap:17px;max-width:650px;margin:25px 0}
.portal-form label,.portal-filters label{display:grid;gap:8px;color:#9ee9ff;font:900 17px var(--display);letter-spacing:.07em}
.portal-form input,.portal-filters select{width:100%;min-height:66px;padding:12px 17px;border:2px solid #8cdaff72;border-radius:12px;outline:0;background:#071725e8;color:#fff;font:700 clamp(20px,2vw,27px) var(--display)}
.portal-form input:focus,.portal-filters select:focus{border-color:#8eeaff;box-shadow:0 0 19px #56daff65}
.portal-form .portal-register-public{display:flex;align-items:flex-start;gap:14px;max-width:760px;color:#d8edf7;font:700 clamp(16px,1.5vw,20px)/1.35 var(--display);letter-spacing:0}
.portal-register-public input{flex:none;width:27px;height:27px;min-height:0;margin:2px 0 0;accent-color:#69dcff}
.portal-primary{display:inline-flex;align-items:center;justify-content:center;min-height:76px;padding:16px 27px;border:2px solid #efffff;border-radius:15px;background:linear-gradient(115deg,#efffff,#80e9ff);color:#082033;font:1000 clamp(22px,2.5vw,35px) var(--display);letter-spacing:.025em;cursor:pointer;box-shadow:0 9px 28px #56dfff46}
.portal-primary:hover,.portal-primary:focus-visible{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 9px 40px #56dfff85}
.portal-primary:disabled{opacity:.5;cursor:wait}
.portal-inline-actions,.portal-tabs,.portal-share-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.portal-inline-actions button,.portal-tabs button,.portal-share-buttons button,.portal-share-buttons a,.portal-challenge-list button,.portal-rematch button,.result-community-actions button{min-height:62px;padding:12px 19px;border:1px solid #8fe3ff87;border-radius:12px;background:#123c56;color:#f2fbff;text-decoration:none;font:900 clamp(17px,1.8vw,25px) var(--display);cursor:pointer}
.portal-inline-actions button:hover,.portal-tabs button:hover,.portal-share-buttons button:hover,.portal-share-buttons a:hover,.portal-challenge-list button:hover,.portal-rematch button:hover,.result-community-actions button:hover{background:#1e6e90;box-shadow:0 0 20px #4adaff67}
.portal-tabs em{display:inline-block;padding:2px 7px;border-radius:999px;background:#ff5278;color:white;font-size:13px;font-style:normal}
.portal-stat-grid,.portal-badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.portal-stat,.portal-badge-grid>div{display:grid;gap:7px;padding:19px;border:1px solid #83dfff65;border-radius:15px;background:#0b2b45b8}
.portal-stat span,.portal-badge-grid small{color:#a0dcef;font:800 17px var(--display)}
.portal-stat strong{font:1000 clamp(33px,4vw,56px) var(--display);line-height:1}
.portal-stat small{color:#c3d5df;font-size:15px}
.portal-badges{display:flex;flex-wrap:wrap;gap:10px}
.portal-badge{padding:12px 17px;border:1px solid #ffe5919c;border-radius:999px;background:#4c3b1a88;color:#fff1bd;font:900 19px var(--display)}
.portal-badge-grid>div span{font-size:42px}.portal-badge-grid>div strong{font:900 23px var(--display)}
.portal-history{display:grid;gap:7px}.portal-history>div{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:12px 15px;border-bottom:1px solid #86dfff35}.portal-history strong{margin-left:auto;font:900 25px var(--display)}.portal-history small{color:#aed5e9}
.portal-privacy{display:grid;gap:7px;margin:32px 0;padding:20px;border:1px solid #80dfff55;border-radius:13px;background:#102e44b0}.portal-privacy label{display:flex;align-items:center;gap:13px;font-size:19px}.portal-privacy input{width:26px;height:26px;accent-color:#62dfff}.portal-privacy small{color:#accbd9}
.portal-filters{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:25px 0}.portal-ranking{display:grid;gap:8px;max-width:850px;margin:22px 0;padding:0;list-style:none}.portal-ranking li{display:flex;align-items:center;gap:18px;min-height:60px;padding:8px 17px;border:1px solid #73d7ff5b;border-radius:11px;background:#0c2940b8}.portal-ranking li b{min-width:48px;font-size:27px}.portal-ranking li span{flex:1;font:800 clamp(19px,2vw,28px) var(--display)}.portal-ranking li strong{font:1000 clamp(26px,3vw,41px) var(--display)}
.portal-ranking-hero{display:grid;gap:7px;margin:7px 0 25px;padding:clamp(22px,3vw,36px);border:1px solid #9beaff85;border-radius:20px;background:radial-gradient(circle at 90% 0%,#4fe1ff42,transparent 35%),linear-gradient(120deg,#1e3c63,#10172d 72%);box-shadow:0 18px 40px #0007,inset 0 1px #ffffff4a}
.portal-ranking-hero span,.portal-profile-identity small{color:#90e8ff;font:900 16px var(--display);letter-spacing:.16em}
.portal-ranking-hero strong{font:1000 clamp(38px,5vw,74px)/1 var(--display);text-shadow:0 3px 20px #0009}
.portal-ranking-hero p{margin:0;color:#d6e8f5;font-size:clamp(16px,1.6vw,22px)}
.portal-ranking li{max-width:none;min-height:78px;border-color:#88dfff58;background:linear-gradient(100deg,#142f4ecf,#10233be8);box-shadow:inset 0 1px #ffffff19}
.portal-ranking li:nth-child(-n+3){border-color:#ffe6a075;background:linear-gradient(100deg,#4f3e3add,#193653df 65%,#10233be8)}
.portal-ranking li a{display:flex;align-items:center;gap:11px;flex:1;min-width:0;color:#f4fbff;font:900 clamp(18px,2vw,29px) var(--display);text-decoration:none}
.portal-ranking li a::before{content:'◉';display:grid;place-items:center;flex:none;width:42px;height:42px;border:2px solid #9ee9ff;border-radius:12px;background:#205679;color:#9eeaff;font-size:22px;box-shadow:0 0 15px #60dcff55}
.portal-ranking li a:hover,.portal-ranking li a:focus-visible{color:#91edff;text-decoration:underline;text-underline-offset:5px}
.portal-ranking li a small{color:#8ddfff;font:800 12px var(--display);letter-spacing:.08em}
.portal-profile-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(17px,3vw,32px);margin:5px 0 28px;padding:clamp(20px,3vw,38px);border:1px solid #8bdfff9c;border-radius:20px;background:radial-gradient(circle at 85% 5%,#4dcaff43,transparent 40%),linear-gradient(125deg,#173b61,#10182e 72%);box-shadow:0 18px 42px #0008,inset 0 1px #ffffff55}
.portal-profile-avatar{display:grid;place-items:center;width:clamp(94px,12vw,160px);height:clamp(94px,12vw,160px);border:4px solid #bcf6ff;border-radius:23px;background:linear-gradient(145deg,#48bce7,#1f507e);color:#fff;font:1000 clamp(60px,8vw,106px)/1 var(--display);text-shadow:0 4px 16px #113850;box-shadow:0 0 0 7px #54d7ff28,0 0 32px #49d7ff80}
.portal-profile-identity{display:grid;gap:9px;min-width:0}.portal-profile-identity strong{font:1000 clamp(38px,5vw,72px)/.95 var(--display);overflow-wrap:anywhere}.portal-profile-identity>span{color:#c9deeb;font:800 16px var(--display)}
.portal-profile-ribbon{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:11px;margin-top:6px}.portal-profile-ribbon>span{padding:11px 16px;border:1px solid #a5e9ff6e;border-radius:11px;background:#081b30b8;color:#d9f2ff;font:800 clamp(15px,1.6vw,21px) var(--display)}.portal-profile-ribbon b{color:#fff;font-size:1.15em}
.portal-challenge-hero{display:grid;gap:12px;max-width:800px;margin:22px 0;padding:clamp(22px,4vw,42px);border:2px solid #92e9ff90;border-radius:20px;background:radial-gradient(circle at 70% 5%,#47d9ff29,transparent 40%),#0a2c45e6;box-shadow:0 0 35px #57dfff2a}.portal-challenge-hero>span{color:#9ceeff;font:900 clamp(20px,2.4vw,32px) var(--display);letter-spacing:.08em}.portal-challenge-hero h3{margin:0;color:#fff;font-size:clamp(40px,5vw,70px)}.portal-challenge-hero>strong{color:#fff;font:1000 clamp(70px,11vw,150px)/.8 var(--display);text-shadow:0 0 30px #65e5ff75}.portal-challenge-hero>strong small{font-size:.22em;color:#a0eaff}.portal-challenge-hero p{margin:4px 0 0;color:#cbe8f4;font:800 20px var(--display)}
.portal-challenge-list{display:grid;gap:11px}.portal-challenge-list button{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left}.portal-challenge-list button span{color:#a3eaff}
.portal-rematch{display:grid;gap:10px;margin:30px 0}.portal-rematch strong{color:#ff9cad;font:900 24px var(--display)}
.portal-share-url{max-width:850px;overflow-wrap:anywhere;padding:18px;border:1px solid #95e9ff8c;border-radius:12px;background:#071725;color:#fff;font:700 clamp(17px,1.8vw,23px) monospace}
.portal-share-buttons>*{display:inline-flex;align-items:center;justify-content:center}
.portal-qr{display:grid;place-items:center;max-width:230px;min-height:230px;margin:20px 0;padding:12px;border-radius:12px;background:white}.portal-qr svg{display:block;width:206px;height:206px}
.result-community{display:grid;gap:10px;width:min(880px,100%);margin:8px auto 0;text-align:center}.result-community[hidden]{display:none}.result-community-outcome{display:grid;gap:3px;color:#bdfad5}.result-community-outcome strong{font:1000 clamp(22px,2.5vw,34px) var(--display)}.result-community-outcome span,.result-community-best,.result-community-error{font:800 clamp(13px,1.3vw,19px) var(--display);letter-spacing:.04em}.result-community-error{color:#ffdf9b}.result-community-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.result-community-actions button{min-height:53px;padding:10px 16px;font-size:clamp(15px,1.5vw,21px)}
@media(max-width:700px){.console-tabs .mobile-profile-tab{display:flex;align-items:center;justify-content:center;gap:4px;width:clamp(62px,19vw,98px);padding:0 5px;font-size:13px}.mobile-profile-tab span{flex:none;font-weight:900}.mobile-profile-tab small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 9px var(--display)}.portal-dialog{width:100vw;height:100dvh;border:0;border-radius:0}.portal-panel{padding:18px}.portal-top{top:-18px;min-height:60px;margin-bottom:22px}.portal-top span{font-size:10px}.portal-top button{min-height:44px;padding:7px 9px;font-size:14px}.portal-panel h2{font-size:clamp(42px,11vw,65px)}.portal-body{font-size:16px}.portal-lead{font-size:19px}.portal-form input{min-height:58px}.portal-primary{width:100%;min-height:70px}.portal-stat-grid,.portal-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-stat{padding:12px}.portal-stat strong{font-size:32px}.portal-filters{grid-template-columns:1fr}.portal-challenge-hero>strong{font-size:75px}.portal-history>div{flex-wrap:wrap}.portal-share-buttons>*{flex:1 1 45%}.result-community-actions button{flex:1 1 40%}}
@media(max-width:380px){.console-brand>b{display:none}.console-header{gap:4px}.console-tabs{gap:2px}.console-tabs .mobile-profile-tab{width:68px}}
@media(max-width:700px){.portal-profile-hero{grid-template-columns:72px 1fr;gap:15px}.portal-profile-avatar{width:72px;height:72px;border-radius:15px;font-size:49px}.portal-profile-identity strong{font-size:clamp(30px,8vw,44px)}.portal-profile-identity small{font-size:10px}.portal-profile-ribbon>span{font-size:12px;padding:8px 10px}.portal-ranking li{gap:9px;padding:8px;min-height:67px}.portal-ranking li b{min-width:30px;font-size:19px}.portal-ranking li a{font-size:17px;gap:6px}.portal-ranking li a::before{width:30px;height:30px;font-size:16px}.portal-ranking li a small{display:none}.portal-ranking li strong{font-size:21px}.portal-ranking-hero strong{font-size:38px}.portal-register-public input{min-height:0;width:25px;height:25px}}
@media(max-width:700px){.portal-player-menu{grid-template-columns:1fr;gap:10px;margin:20px 0}.portal-player-menu button{grid-template-columns:48px 1fr;min-height:82px;padding:13px;column-gap:13px}.portal-player-menu button>span{width:48px;height:48px;font-size:25px}.portal-player-menu button strong{font-size:23px}.portal-player-menu button small{font-size:13px}.portal-form{max-width:100%}.portal-form label{font-size:15px}.portal-form input{font-size:20px}.portal-dialog{overscroll-behavior:contain}}
@media(max-height:690px){.portal-panel{padding-block:13px}.portal-top{margin-bottom:14px}.portal-panel h2{font-size:clamp(35px,5vh,52px)}.portal-challenge-hero{padding:17px}.portal-challenge-hero>strong{font-size:clamp(55px,9vh,95px)}}
@media(prefers-reduced-motion:reduce){.portal-primary{transition:none}.portal-primary:hover{transform:none}.portal-loading span{animation:none}}

/* Full-screen console sign-in, composed over a separate generated scene. */
.portal-auth-dialog{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;background:#071322;box-shadow:none;overflow:auto}
.portal-auth-dialog .portal-panel{position:relative;isolation:isolate;min-height:100dvh;padding:clamp(24px,3vw,54px) clamp(28px,5vw,92px);background:none;overflow:hidden}
.portal-auth-dialog .portal-panel::before{content:"";position:fixed;z-index:-2;inset:-2%;background:url('/assets/menu/login-hero-motion.png') center/cover no-repeat;animation:portal-scene-enter 1.2s cubic-bezier(.2,.8,.2,1) both}
.portal-auth-dialog .portal-panel::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(90deg,#04101e96 0%,#06122273 34%,#06122225 59%,transparent 80%),linear-gradient(0deg,#020a19a8,transparent 28%)}
.portal-auth-dialog .portal-top{position:relative;top:auto;justify-content:flex-start;min-height:72px;width:100%;margin:0 0 clamp(48px,8vh,100px);padding:0;border:0;background:none}
.portal-auth-dialog .portal-top>span{order:-1;margin-right:auto;text-align:left}
.portal-auth-brand{display:flex;align-items:center;gap:13px;color:#fff;letter-spacing:0}
.portal-auth-brand .station-mark{width:50px;height:50px;flex:none}
.portal-auth-brand b{font:800 28px/.8 var(--display);letter-spacing:.08em}
.portal-auth-dialog .portal-top .portal-back,.portal-auth-dialog .portal-top .portal-close{min-height:48px;padding:7px 15px;border:1px solid #b7eaff70;border-radius:50px;background:#0d2039a8;font-size:18px;backdrop-filter:blur(10px)}
.portal-auth-dialog .portal-top .portal-close{min-width:48px;padding:4px;font-size:29px}
.portal-auth-dialog .portal-panel h2,.portal-auth-dialog .portal-body,.portal-auth-dialog .portal-gesture{width:min(640px,48vw);animation:portal-copy-enter .6s ease-out both}
.portal-auth-dialog .portal-panel h2{display:grid;gap:0;margin:0 0 16px;font:1000 clamp(68px,6.7vw,120px)/.82 var(--display);letter-spacing:-.01em;text-shadow:0 6px 25px #000b}
.portal-auth-dialog .portal-panel h2 em{color:#56d5ff;font-style:normal}
.portal-auth-dialog .portal-lead{max-width:580px;margin:0 0 24px;color:#dbeeff;font:500 clamp(20px,1.8vw,28px)/1.3 var(--body);text-shadow:0 3px 14px #000}
.portal-auth-dialog .portal-form{max-width:none;margin:0;gap:12px}
.portal-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portal-auth-dialog .portal-login-field{position:relative;display:block}
.portal-auth-dialog .portal-login-field svg{position:absolute;top:50%;left:22px;transform:translateY(-50%);width:27px;height:27px;fill:none;stroke:#d5e8f8;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.portal-auth-dialog .portal-login-field input{min-height:66px;padding:12px 20px 12px 66px;border:1px solid #cfecff48;border-radius:40px;background:linear-gradient(110deg,#20334aaf,#39445685);font:500 clamp(18px,1.5vw,24px) var(--body);backdrop-filter:blur(14px);box-shadow:inset 0 1px #ffffff1c,0 5px 18px #0003}
.portal-auth-dialog .portal-login-field input::placeholder{color:#d1deeb;opacity:1}
.portal-auth-dialog .portal-login-field input:focus{border-color:#8cecff;box-shadow:0 0 0 3px #5bdfff52,0 0 26px #5bdfff4f}
.portal-auth-dialog .portal-primary{width:100%;min-height:76px;margin-top:6px;border:0;border-radius:40px;background:linear-gradient(105deg,#e1fbff,#73ddff 63%,#2cb4fc);box-shadow:0 0 30px #43d3ff64,0 9px 25px #0005;font-size:clamp(25px,2.3vw,34px);transition:transform .2s,filter .2s,box-shadow .2s}
.portal-auth-dialog .portal-inline-actions{display:flex;flex-wrap:nowrap;gap:12px;width:max-content;max-width:calc(100vw - 10vw);margin:30px 0 0}
.portal-auth-dialog .portal-inline-actions button{min-height:60px;padding:11px clamp(14px,1.4vw,25px);border:1px solid #e0f0ff3c;border-radius:40px;background:linear-gradient(125deg,#2d3b51b8,#171f32b8);font-size:clamp(16px,1.4vw,23px);white-space:nowrap;backdrop-filter:blur(15px);box-shadow:inset 0 1px #ffffff2b,0 8px 20px #0005;transition:transform .18s,background .18s,box-shadow .18s}
.portal-auth-dialog .portal-inline-actions button:hover,.portal-auth-dialog .portal-inline-actions button:focus-visible{transform:translateY(-3px);background:#265171;box-shadow:0 0 24px #5bdbff77}
.portal-auth-dialog .portal-quiet{margin:17px 0 0;color:#d4e7f4;font-size:14px;text-shadow:0 2px 10px #000}
.portal-auth-dialog .portal-gesture{margin:16px 0 0;color:#9beeff;font-size:15px;text-shadow:0 2px 10px #000}
.site-activity{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;width:fit-content;max-width:100%;padding:13px 19px;border:1px solid #86dcff57;border-radius:18px;background:#071a2fc7;color:#d8f2ff;font:800 clamp(13px,1.2vw,17px) var(--display);letter-spacing:.055em;box-shadow:inset 0 1px #ffffff24,0 12px 28px #0005;backdrop-filter:blur(12px)}
.site-activity>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.site-activity strong{color:#fff;font-size:1.18em}.site-activity i{width:9px;height:9px;border-radius:50%;background:#28ec89;box-shadow:0 0 12px #2bf69b}.site-activity small{flex-basis:100%;color:#a9cbda;font:500 11px var(--body);letter-spacing:0}
.portal-auth-dialog .portal-panel{display:flex;flex-direction:column}.portal-auth-dialog .site-activity{margin-top:auto;padding-top:13px}
@keyframes portal-scene-enter{from{opacity:0;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@keyframes portal-copy-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.portal-auth-dialog .portal-panel{padding:24px 32px}.portal-auth-dialog .portal-top{margin-bottom:9vh}.portal-auth-dialog .portal-panel h2,.portal-auth-dialog .portal-body,.portal-auth-dialog .portal-gesture{width:min(560px,58vw)}.portal-auth-dialog .portal-panel h2{font-size:clamp(60px,8vw,95px)}.portal-auth-dialog .portal-inline-actions{max-width:calc(100vw - 64px);flex-wrap:wrap}}
@media(max-width:700px){.portal-auth-dialog .portal-panel{padding:18px 19px 30px}.portal-auth-dialog .portal-panel::before{background-position:68% top}.portal-auth-dialog .portal-panel::after{background:linear-gradient(0deg,#03101ef5 0%,#03101eea 47%,#03101e8a 75%,#03101e42 100%)}.portal-auth-dialog .portal-top{min-height:48px;margin-bottom:clamp(130px,23vh,240px)}.portal-auth-brand .station-mark{width:36px;height:36px}.portal-auth-brand b{font-size:20px}.portal-auth-dialog .portal-top .portal-back{font-size:13px;min-height:39px;padding:6px 9px}.portal-auth-dialog .portal-top .portal-close{min-height:39px;min-width:39px;font-size:24px}.portal-auth-dialog .portal-panel h2,.portal-auth-dialog .portal-body,.portal-auth-dialog .portal-gesture{width:100%}.portal-auth-dialog .portal-panel h2{font-size:clamp(54px,13vw,84px);margin-bottom:12px}.portal-auth-dialog .portal-lead{font-size:18px;margin-bottom:16px}.portal-auth-dialog .portal-login-field input{min-height:58px;font-size:17px}.portal-auth-dialog .portal-primary{min-height:64px}.portal-auth-dialog .portal-inline-actions{width:100%;max-width:100%;margin-top:18px;gap:8px}.portal-auth-dialog .portal-inline-actions button{flex:1 1 auto;min-height:49px;font-size:16px;white-space:normal}.portal-auth-dialog .portal-inline-actions button:last-child{flex-basis:100%}.portal-auth-dialog .portal-quiet{font-size:12px}.portal-auth-dialog .portal-gesture{font-size:12px}}
@media(max-width:700px){.site-activity{gap:5px 13px;padding:11px 13px;font-size:12px}.site-activity>span{white-space:normal}.site-activity small{font-size:10px}.portal-auth-dialog .site-activity{margin-top:25px}}
@media(max-width:380px){.portal-auth-dialog .portal-top .portal-back{font-size:0}.portal-auth-dialog .portal-top .portal-back::before{content:'←';font-size:22px}}
@media(prefers-reduced-motion:reduce){.portal-auth-dialog .portal-panel::before,.portal-auth-dialog .portal-panel h2,.portal-auth-dialog .portal-body,.portal-auth-dialog .portal-gesture{animation:none}}
body.camera-overlay-active .portal-auth-dialog{background:#06122288}
body.camera-overlay-active .portal-auth-dialog .portal-panel::before{opacity:.55}
body.camera-overlay-active .portal-auth-dialog .portal-panel::after{background:linear-gradient(90deg,#03101ef0,#03101eac 50%,#03101e3d)}

/* Public rankings: console dashboard with real game art and real score fields. */
.portal-ranking-dialog{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;background:#061426;box-shadow:none;overflow:auto}
.portal-ranking-dialog .portal-panel{position:relative;isolation:isolate;min-height:100dvh;padding:clamp(18px,2.6vw,44px);background:none}
.portal-ranking-dialog .portal-panel::before{content:"";position:absolute;z-index:-2;inset:0;background:url('/assets/menu/rankings-room.png') center/cover no-repeat;opacity:.76}
.portal-ranking-dialog .portal-panel::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#041021ad,#061426b0 38%,#041021a8),linear-gradient(0deg,#041021d9,transparent 72%);pointer-events:none}
.portal-ranking-dialog .portal-top{top:0;min-height:58px;margin:0 0 clamp(20px,3vh,35px);background:#07192a99;border-bottom-color:#7cddff39;border-radius:14px;padding:8px 14px;backdrop-filter:blur(10px)}
.portal-ranking-dialog .portal-panel>h2{margin:0 0 2px;font:1000 italic clamp(60px,5.6vw,102px)/.9 var(--display);letter-spacing:-.02em;text-shadow:0 5px 22px #000a;animation:ranking-enter .55s ease-out both}
.portal-ranking-dialog .portal-panel>h2 em{font-style:inherit;color:#fff}
.portal-ranking-dialog .portal-panel>h2 strong{color:#45cbff}
.ranking-intro{margin:0 0 clamp(18px,2vh,28px);color:#d8e9fa;font-size:clamp(18px,1.5vw,25px);text-shadow:0 2px 13px #000}
.ranking-layout{display:grid;grid-template-columns:clamp(190px,18vw,300px) minmax(0,1fr) clamp(205px,19vw,300px);gap:clamp(12px,1.3vw,22px);align-items:start}
.ranking-games,.ranking-spotlight,.ranking-table{border:1px solid #63cfff60;border-radius:16px;background:#071a30d6;box-shadow:0 16px 35px #0007,inset 0 1px #d3f8ff1e;backdrop-filter:blur(12px)}
.ranking-games{display:grid;gap:7px;padding:14px}
.ranking-label,.ranking-soon{display:block;margin:2px 3px 8px;color:#7be2ff;font:900 clamp(14px,1.15vw,19px) var(--display);letter-spacing:.08em}
.ranking-soon{margin:12px 4px 4px;color:#9fb6c9;font-size:14px;line-height:1.2}
.ranking-games button{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:10px;width:100%;min-height:69px;padding:5px 11px 5px 5px;border:1px solid #75bfe74d;border-radius:11px;background:#0b2744c4;color:#fff;text-align:left;cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s}
.ranking-games button:hover,.ranking-games button:focus-visible,.ranking-games button[aria-pressed="true"]{background:#11426d;border-color:#6ce3ff;box-shadow:0 0 0 2px #48d8ff42,0 0 21px #2ccaff65;outline:none;transform:translateX(3px)}
.ranking-games button img{width:72px;height:57px;object-fit:cover;border-radius:8px}
.ranking-games button strong{font:900 clamp(18px,1.65vw,27px)/.94 var(--display);overflow-wrap:anywhere}
@media(max-width:1250px){.ranking-games button{grid-template-columns:55px minmax(0,1fr) auto;gap:7px}.ranking-games button img{width:55px}.ranking-games button strong{font-size:17px;overflow-wrap:normal;line-height:1}.ranking-games button>span{font-size:24px}}
.ranking-games button>span{color:#a7eeff;font:900 30px var(--display)}
.ranking-main{min-width:0}
.ranking-game-hero{display:grid;grid-template-columns:clamp(135px,17vw,250px) minmax(0,1fr) auto;align-items:center;gap:clamp(14px,2vw,30px);min-height:clamp(135px,14vw,205px);padding:12px clamp(13px,1.5vw,24px) 12px 12px;border:1px solid #c989ff54;border-radius:15px;background:linear-gradient(110deg,#123254df,#112745d9 58%,#3d2a4c9c);box-shadow:0 0 28px #6b7aff35,inset 0 1px #ffffff34;overflow:hidden;animation:ranking-enter .55s ease-out both}
.ranking-game-hero>img{width:100%;height:clamp(112px,12vw,180px);object-fit:cover;border-radius:11px;box-shadow:0 0 20px #55bfff45}
.ranking-game-hero>div strong{display:block;font:1000 italic clamp(30px,3vw,53px)/.9 var(--display);text-transform:uppercase;text-shadow:0 3px 14px #0009}
.ranking-game-hero p{margin:10px 0 0;color:#d9e7f6;font-size:clamp(13px,1.05vw,18px);line-height:1.25}
.ranking-game-hero button{min-height:58px;padding:10px 16px;border:0;border-radius:40px;background:linear-gradient(110deg,#f5ffff,#a8eaff);color:#082044;font:900 clamp(16px,1.5vw,25px) var(--display);white-space:nowrap;box-shadow:0 0 24px #8bdfff67;cursor:pointer;transition:transform .18s,box-shadow .18s}
.ranking-game-hero button:hover,.ranking-game-hero button:focus-visible{transform:scale(1.04);box-shadow:0 0 35px #92eaffb3}
.ranking-periods{display:flex;gap:8px;margin:14px 0}
.ranking-periods button{flex:1;min-height:50px;padding:8px 12px;border:1px solid #7ccfff66;border-radius:10px;background:#0c2542da;color:#e3f2ff;font:900 clamp(14px,1.25vw,21px) var(--display);cursor:pointer;transition:background .18s,box-shadow .18s}
.ranking-periods button:hover,.ranking-periods button:focus-visible,.ranking-periods button[aria-pressed="true"]{background:#105783;border-color:#50d5ff;color:#fff;box-shadow:0 0 21px #27c9ff73}
.ranking-table{overflow:hidden}
.ranking-table-head,.ranking-table li{display:grid;grid-template-columns:76px minmax(0,1fr) 135px;align-items:center;gap:12px;padding:10px 18px}
.ranking-table-head{min-height:41px;color:#9fcfe5;font:800 clamp(13px,1vw,17px) var(--display);letter-spacing:.08em}
.ranking-table-head span:last-child{text-align:right}
.ranking-table ol{display:grid;gap:4px;margin:0;padding:0 5px 5px;list-style:none}
.ranking-table li{min-height:63px;border:1px solid #66bded42;border-radius:8px;background:linear-gradient(100deg,#0a3358dd,#0a213bd6);animation:ranking-row-enter .4s ease-out both;animation-delay:calc(min(var(--row,0),10) * 45ms)}
.ranking-table li:nth-child(1){--row:1;border-color:#4fe2ff;box-shadow:0 0 18px #1dbfff58;background:linear-gradient(100deg,#0c4d7c,#0b2a4a)}
.ranking-table li:nth-child(2){--row:2}.ranking-table li:nth-child(3){--row:3}.ranking-table li:nth-child(4){--row:4}.ranking-table li:nth-child(5){--row:5}.ranking-table li:nth-child(6){--row:6}.ranking-table li:nth-child(7){--row:7}.ranking-table li:nth-child(8){--row:8}
.ranking-table li:hover{background:#19517b}
.ranking-place{font:1000 clamp(24px,2vw,33px) var(--display);color:#b8d3e7;text-align:center}
.ranking-table li:nth-child(1) .ranking-place{color:#ffd85e}.ranking-table li:nth-child(2) .ranking-place{color:#e0eeff}.ranking-table li:nth-child(3) .ranking-place{color:#ffa35e}
.ranking-table li a{display:flex;align-items:center;gap:11px;min-width:0;color:#fff;text-decoration:none}
.ranking-avatar{display:grid;place-items:center;flex:none;width:40px;height:40px;border:2px solid #9ceaff;border-radius:10px;background:linear-gradient(145deg,#266b9a,#243364);font:1000 23px var(--display)}
.ranking-table li a strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 clamp(17px,1.35vw,23px) var(--display)}
.ranking-table li a small{margin-left:auto;color:#83dfff;font:800 12px var(--display);white-space:nowrap}
.ranking-table li>a:hover strong,.ranking-table li>a:focus-visible strong{color:#85e9ff;text-decoration:underline}
.ranking-table li>b{text-align:right;font:1000 clamp(22px,1.9vw,32px) var(--display)}
.ranking-table li.ranking-empty{display:block;padding:24px;color:#d8eeff;font-size:18px;text-align:center}
.ranking-main>.portal-quiet{margin:13px 3px;color:#a8c7d7;font-size:13px}
.ranking-spotlight{padding:11px 14px 20px}
.ranking-spotlight-art{position:relative;height:clamp(135px,13vw,205px);margin-bottom:15px;border-radius:11px;background-image:linear-gradient(0deg,#071a30a6,transparent),var(--spotlight-art);background-position:center;background-size:cover;overflow:hidden}
.ranking-spotlight-art img{position:absolute;right:0;bottom:-24px;width:clamp(90px,9vw,142px);height:auto;filter:drop-shadow(0 0 22px #ffd25b9a);animation:ranking-trophy-float 3.5s ease-in-out infinite}
.ranking-spotlight>span{color:#78deff;font:900 clamp(15px,1.1vw,19px) var(--display);letter-spacing:.08em}
.ranking-spotlight>strong{display:block;margin:4px 0 10px;color:#52d4ff;font:1000 italic clamp(45px,4.5vw,75px)/.9 var(--display);text-shadow:0 0 22px #35c9ff65}
.ranking-spotlight>a{display:block;padding:12px;border-radius:9px;background:#153557;color:#fff;text-decoration:none;font:900 clamp(17px,1.4vw,23px) var(--display)}
.ranking-spotlight>a:hover,.ranking-spotlight>a:focus-visible{background:#2178a0;color:#fff}
.ranking-spotlight p{color:#bedce9;font-size:15px}
.ranking-spotlight-stats{display:flex;justify-content:space-between;gap:8px;margin-top:15px;padding:13px 0;border-top:1px solid #80d5ff48;color:#9dcce1;font:800 15px var(--display)}
.ranking-spotlight-stats b{color:#fff;font-size:20px}
@keyframes ranking-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes ranking-row-enter{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@keyframes ranking-trophy-float{50%{transform:translateY(-9px)}}
@media(max-width:980px){.ranking-layout{grid-template-columns:200px minmax(0,1fr)}.ranking-spotlight{grid-column:2}.ranking-game-hero{grid-template-columns:150px minmax(0,1fr)}.ranking-game-hero button{grid-column:2;justify-self:start}.ranking-games button{grid-template-columns:57px 1fr auto}.ranking-games button img{width:57px}}
@media(max-width:800px){.portal-ranking-dialog .portal-panel{padding:16px}.portal-ranking-dialog .portal-panel>h2{font-size:clamp(55px,10vw,80px)}.ranking-layout{grid-template-columns:1fr}.ranking-games{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding:9px}.ranking-games .ranking-label,.ranking-games .ranking-soon{display:none}.ranking-games button{flex:0 0 165px;grid-template-columns:51px 1fr;min-height:60px;scroll-snap-align:start}.ranking-games button img{width:51px;height:48px}.ranking-games button strong{font-size:19px}.ranking-games button>span{display:none}.ranking-spotlight{grid-column:auto}.ranking-game-hero{grid-template-columns:120px minmax(0,1fr)}.ranking-game-hero>img{height:116px}.ranking-game-hero>div strong{font-size:clamp(27px,5vw,42px)}.ranking-periods button{font-size:16px}}
@media(max-width:520px){.portal-ranking-dialog .portal-top{margin-bottom:14px}.ranking-intro{font-size:16px}.ranking-game-hero{grid-template-columns:95px minmax(0,1fr);gap:10px;padding:8px}.ranking-game-hero>img{height:93px}.ranking-game-hero>div strong{font-size:28px}.ranking-game-hero p{font-size:12px;margin-top:5px}.ranking-game-hero button{grid-column:1/-1;width:100%;min-height:48px}.ranking-periods{gap:5px}.ranking-periods button{min-height:45px;padding:6px;font-size:13px}.ranking-table-head,.ranking-table li{grid-template-columns:49px minmax(0,1fr) 80px;gap:5px;padding:8px}.ranking-table li{min-height:58px}.ranking-avatar{width:32px;height:32px;font-size:19px}.ranking-table li a{gap:6px}.ranking-table li a strong{font-size:16px}.ranking-table li a small{display:none}.ranking-table li>b{font-size:22px}.ranking-table-head{font-size:11px}.ranking-spotlight-art{height:140px}}
@media(prefers-reduced-motion:reduce){.portal-ranking-dialog .portal-panel>h2,.ranking-game-hero,.ranking-table li,.ranking-spotlight-art img{animation:none}}
body.camera-overlay-active .portal-ranking-dialog{background:#06142655}
body.camera-overlay-active .portal-ranking-dialog .portal-panel::before{opacity:.26}
body.camera-overlay-active .portal-ranking-dialog .portal-panel::after{background:linear-gradient(90deg,#041021a0,#04102172)}

/* Full-screen player profile. All values come from the profile response. */
.portal-profile-dialog{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;background:#071325;box-shadow:none;overflow:auto}
.portal-profile-dialog .portal-panel{position:relative;isolation:isolate;min-height:100dvh;padding:clamp(18px,2.4vw,38px) clamp(24px,4.7vw,84px) 54px;background:none;overflow:hidden}
.portal-profile-dialog .portal-panel::before{content:"";position:fixed;z-index:-2;inset:0;background:url('/assets/menu/profile-world-motion.png') center top/cover no-repeat;animation:portal-scene-enter 1.1s ease-out both}
.portal-profile-dialog .portal-panel::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(90deg,#041024dc 0%,#06152bc9 34%,#06152b42 67%,#06152b1a),linear-gradient(0deg,#031023f0,#03102391 40%,transparent 84%)}
body.camera-overlay-active .portal-profile-dialog{background:#07132538}
body.camera-overlay-active .portal-profile-dialog .portal-panel::before{opacity:.38}
body.camera-overlay-active .portal-profile-dialog .portal-panel::after{background:linear-gradient(90deg,#041024bd,#06152b7a 55%,#06152b42),linear-gradient(0deg,#031023d9,transparent 85%)}
.portal-profile-dialog .portal-top{position:relative;top:auto;justify-content:flex-start;gap:20px;margin:0 0 clamp(20px,3vh,36px);padding:0;border:0;background:none}
.portal-profile-dialog .portal-top>span{margin-right:auto;text-align:left;color:#8ee9ff}
.portal-profile-dialog .portal-top button{min-height:54px;border:1px solid #87dfff91;border-radius:12px;background:#0a2440b8;box-shadow:inset 0 1px #ffffff29,0 4px 18px #0005;backdrop-filter:blur(10px);font-size:clamp(15px,1.25vw,20px)}
.portal-profile-dialog .portal-top .portal-close{min-width:54px}
.portal-profile-dialog .portal-top button:hover,.portal-profile-dialog .portal-top button:focus-visible{background:#175777;box-shadow:0 0 0 3px #68dfff52,0 0 22px #40dfff8a}
.portal-profile-dialog .portal-panel h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:.08em;margin:0 0 20px;font-size:clamp(59px,6.2vw,108px);letter-spacing:-.015em;animation:portal-copy-enter .6s ease-out both}
.portal-profile-dialog .portal-panel h2 em{color:#27c9ff;font-style:normal}
.portal-profile-dialog .portal-body{max-width:1620px;margin:auto}
.portal-profile-dialog .portal-profile-hero{display:flex;align-items:center;gap:clamp(20px,2.5vw,40px);width:min(870px,63%);min-height:clamp(180px,22vh,250px);margin:0 0 20px;padding:clamp(18px,2vw,30px);border:1px solid #7bd7ff8c;border-radius:22px;background:linear-gradient(105deg,#0b2747d9,#0b27479c 68%,#0b27472e);box-shadow:0 16px 38px #0007,inset 0 1px #ffffff38;backdrop-filter:blur(15px);animation:portal-profile-rise .65s ease-out both}
.portal-profile-dialog .portal-profile-avatar{flex:none;width:clamp(112px,12vw,190px);height:clamp(112px,12vw,190px);border:4px solid #89edff;border-radius:27px;background:radial-gradient(circle at 80% 15%,#2fb8ffb8,transparent 30%),radial-gradient(circle at 0% 100%,#366bff,#0a2f75 65%,#051844);font-size:clamp(75px,8vw,120px);box-shadow:0 0 0 5px #155cff99,0 0 25px #26d5ffd8,inset 0 0 28px #45cfff66;text-shadow:0 4px 18px #001b54}
.portal-profile-dialog .portal-profile-identity{flex:1;gap:10px}.portal-profile-dialog .portal-profile-identity small{color:#6ee6ff;font-size:clamp(13px,1.05vw,17px)}
.portal-profile-online{color:#30ef7d;text-shadow:0 0 12px #28ef83}.portal-profile-dialog .portal-profile-identity strong{font-size:clamp(43px,4.4vw,74px);text-shadow:0 4px 14px #0009}.portal-profile-dialog .portal-profile-identity>span{font-size:clamp(15px,1.25vw,20px)}
.portal-profile-level{display:flex;align-items:center;gap:13px;max-width:600px;margin-top:3px}.portal-profile-level>div{flex:1;min-width:90px;height:18px;padding:3px;border:1px solid #6ddfff8a;border-radius:99px;background:#06132ae0;box-shadow:inset 0 2px 5px #0007}.portal-profile-level>div span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1dbbff,#83f4ff);box-shadow:0 0 12px #57deff;animation:portal-profile-level-fill 1s ease-out both}.portal-profile-level small{white-space:nowrap;color:#c3e8ff!important;font-size:clamp(11px,.95vw,15px)!important;letter-spacing:0!important}
.portal-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 24px}.portal-profile-metrics>div{display:grid;grid-template-columns:74px 1fr;grid-template-rows:1fr 1fr;column-gap:16px;min-height:98px;padding:14px 20px;border:1px solid #6bd1ff79;border-radius:17px;background:#0a2543c9;backdrop-filter:blur(12px);box-shadow:inset 0 1px #ffffff27,0 12px 20px #0004;animation:portal-profile-rise .6s ease-out both}.portal-profile-metrics>div:nth-child(2){animation-delay:.08s}.portal-profile-metrics>div:nth-child(3){animation-delay:.16s}.portal-profile-metrics>div:nth-child(4){animation-delay:.24s}.portal-profile-metrics>div>span{grid-row:1/3;display:grid;place-items:center;width:64px;height:64px;align-self:center;border:1px solid #70d9ff9c;border-radius:14px;background:#0a3960;color:#7de6ff;font-size:34px;filter:drop-shadow(0 0 11px #2baeff)}.portal-profile-metrics>div:nth-child(2)>span{border-color:#ffca6e;background:#4d331f}.portal-profile-metrics>div:nth-child(3)>span{border-color:#ff9c57;background:#43271f}.portal-profile-metrics>div:nth-child(4)>span{border-color:#e098ff;background:#35214a}.portal-profile-metrics strong{align-self:end;font:1000 clamp(28px,2.5vw,45px)/1 var(--display);white-space:nowrap}.portal-profile-metrics small{align-self:start;color:#9fe1ff;font:800 clamp(12px,1.05vw,17px) var(--display);letter-spacing:.04em}
.portal-profile-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(25px,3vw,48px)}.portal-profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:48px}.portal-profile-dialog .portal-profile-section-head h3,.portal-profile-dialog .portal-profile-details h3{margin:0 0 12px;color:#86e7ff;font-size:clamp(23px,2vw,32px);letter-spacing:.07em}.portal-profile-section-head button{padding:6px 0;border:0;background:none;color:#9ceaff;font:800 clamp(14px,1.1vw,18px) var(--display);cursor:pointer}.portal-profile-section-head button:hover{color:white;text-shadow:0 0 14px #65dfff}
.portal-profile-games{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.portal-profile-game{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:190px;padding:0 0 10px;overflow:hidden;border:1px solid #7ccfff82;border-radius:16px;background:#0c213ce8;color:#fff;text-align:left;cursor:pointer;box-shadow:0 8px 22px #0008;transition:transform .22s,box-shadow .22s,border-color .22s}.portal-profile-game:hover:not(:disabled),.portal-profile-game:focus-visible:not(:disabled){transform:translateY(-6px);border-color:#b9f5ff;box-shadow:0 0 0 3px #27beff70,0 0 26px #2ebfff8a}.portal-profile-game:disabled{cursor:default;opacity:.7}.portal-profile-game img{display:block;width:100%;height:clamp(105px,10vw,165px);object-fit:cover}.portal-profile-game strong{padding:9px 12px 0;font:900 clamp(17px,1.35vw,23px) var(--display)}.portal-profile-game small{padding:2px 12px;color:#a9dfff;font:700 clamp(11px,.9vw,14px) var(--display)}.portal-profile-play{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:30px;height:30px;border:1px solid #b7efff;border-radius:50%;background:#081a31be;font-size:14px}.portal-profile-soon{position:absolute;top:12px;right:10px;padding:5px;background:#071729c9;color:#e4eff8;font-size:10px}
.portal-profile-achievements{display:grid;gap:9px}.portal-profile-achievement{display:flex;align-items:center;gap:14px;min-height:73px;padding:9px 15px;border:1px solid #6fcfff66;border-radius:14px;background:#0b2540c9;backdrop-filter:blur(9px);box-shadow:inset 0 1px #ffffff24}.portal-profile-achievement>span{display:grid;place-items:center;flex:none;width:55px;height:55px;border:1px solid #ffcc748c;border-radius:12px;background:#422e1fc9;font-size:28px}.portal-profile-achievement>div{display:grid;gap:3px;min-width:0}.portal-profile-achievement strong{font:900 clamp(17px,1.35vw,22px) var(--display)}.portal-profile-achievement small{color:#a3d9f2;font:500 clamp(13px,1vw,16px) var(--body)}.portal-profile-empty{margin:0;padding:20px;border:1px dashed #78dfff7a;border-radius:14px;background:#0a2543b8;color:#cdeaff;font-size:17px;line-height:1.4}
.portal-profile-dialog .portal-tabs{margin:26px 0 36px}.portal-profile-details{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:8px}.portal-profile-details section{min-width:0}
@keyframes portal-profile-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes portal-profile-level-fill{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
@media(max-width:1050px){.portal-profile-dialog .portal-profile-hero{width:min(750px,78%)}.portal-profile-columns{grid-template-columns:1fr}.portal-profile-game img{height:150px}}
@media(max-width:700px){.portal-profile-dialog .portal-panel{padding:17px 17px 42px}.portal-profile-dialog .portal-panel::before{background-position:64% top}.portal-profile-dialog .portal-panel::after{background:linear-gradient(90deg,#041024df,#06152b70),linear-gradient(0deg,#031023ed,transparent 85%)}.portal-profile-dialog .portal-top{flex-wrap:wrap;gap:8px;margin-bottom:23px}.portal-profile-dialog .portal-top>span{order:-1;flex-basis:100%;text-align:left;font-size:11px}.portal-profile-dialog .portal-top button{min-height:43px;padding:7px 10px;font-size:13px}.portal-profile-dialog .portal-top .portal-close{min-width:43px;margin-left:auto}.portal-profile-dialog .portal-panel h2{font-size:clamp(43px,11vw,70px);gap:0}.portal-profile-dialog .portal-profile-hero{width:100%;min-height:0;gap:15px;padding:15px}.portal-profile-dialog .portal-profile-avatar{width:77px;height:77px;border-width:2px;border-radius:15px;font-size:51px}.portal-profile-dialog .portal-profile-identity{gap:5px}.portal-profile-dialog .portal-profile-identity strong{font-size:clamp(27px,7vw,42px)}.portal-profile-dialog .portal-profile-identity>span{font-size:11px}.portal-profile-level{display:block}.portal-profile-level>div{height:12px;margin:5px 0}.portal-profile-level small{font-size:10px!important;white-space:normal}.portal-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.portal-profile-metrics>div{grid-template-columns:46px 1fr;min-height:73px;column-gap:8px;padding:9px}.portal-profile-metrics>div>span{width:42px;height:42px;font-size:22px}.portal-profile-metrics strong{font-size:26px}.portal-profile-metrics small{font-size:10px}.portal-profile-games{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-profile-game img{height:120px}.portal-profile-details{grid-template-columns:1fr}.portal-profile-dialog .portal-profile-section-head h3{font-size:23px}}
@media(max-width:380px){.portal-profile-dialog .portal-top .portal-profile-ranklink{font-size:11px}.portal-profile-dialog .portal-panel h2{font-size:42px}}
@media(prefers-reduced-motion:reduce){.portal-profile-dialog .portal-panel::before,.portal-profile-dialog .portal-panel h2,.portal-profile-dialog .portal-profile-hero,.portal-profile-metrics>div,.portal-profile-level>div span{animation:none}}

/* Keep the sign-in wordmark identical to the start-screen header. */
.portal-auth-brand.console-brand{gap:16px}
.portal-auth-brand.console-brand .station-mark{width:57px;height:57px;flex:none;margin:0}
.portal-auth-brand.console-brand>b{font:900 clamp(23px,2.2vw,37px)/.83 var(--body);letter-spacing:.07em}
@media(max-width:900px){.portal-auth-brand.console-brand .station-mark{width:40px;height:40px;border-width:6px}.portal-auth-brand.console-brand .station-mark::after{width:10px;height:10px;left:10px;top:10px}.portal-auth-brand.console-brand>b{font-size:23px}}
@media(max-width:700px){.portal-auth-brand.console-brand{gap:7px}.portal-auth-brand.console-brand .station-mark{width:31px;height:31px;border-width:5px}.portal-auth-brand.console-brand .station-mark::after{width:8px;height:8px;left:7px;top:7px}.portal-auth-brand.console-brand>b{font-size:17px}}
/* Admin analytics extends the player-world shell; data remains server-authorized. */
.portal-analytics-dialog{width:min(1380px,calc(100vw - 34px))}
.portal-analytics-dialog .portal-panel{width:100%;min-width:0}
.analytics-periods{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.analytics-periods button{min-width:62px;min-height:46px;padding:8px 15px;border:1px solid #65bce770;border-radius:11px;background:#0d233dcf;color:#d7ecff;font:800 16px var(--display);cursor:pointer}
.analytics-periods button[aria-pressed=true]{border-color:#7fe5ff;background:#14517b;color:white;box-shadow:0 0 20px #3bd5ff66}
.analytics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.analytics-metric{min-width:0;min-height:115px;padding:17px;border:1px solid #74c9ed57;border-radius:15px;background:linear-gradient(150deg,#143456d9,#081b33ec);box-shadow:inset 0 1px #ffffff18}
.analytics-metric span,.analytics-metric small{display:block;color:#a8d7ed;font:800 12px var(--display);letter-spacing:.08em}
.analytics-metric strong{display:block;margin:7px 0;color:#fff;font:900 clamp(29px,3vw,48px)/1 var(--display);font-variant-numeric:tabular-nums}
.analytics-metric small{font-size:11px;line-height:1.25;letter-spacing:0}
.analytics-section{margin-top:22px;padding:19px;border:1px solid #74c9ed45;border-radius:16px;background:#07192dd6}
.analytics-section h3{margin:0 0 16px;color:#78e1ff;font:900 20px var(--display)}
.analytics-chart{min-height:160px;display:flex;align-items:end;gap:6px;overflow-x:auto;padding:8px 0 2px}
.analytics-bar{position:relative;flex:1 0 18px;height:150px;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px;padding:0;border:0;background:none;cursor:pointer}
.analytics-bar i{display:block;min-height:5px;width:min(100%,28px);border-radius:6px 6px 2px 2px;background:linear-gradient(#8df1ff,#168fdb);box-shadow:0 0 13px #43d5ff66;animation:analytics-rise .6s ease-out both}
.analytics-bar.is-zero i{min-height:0;box-shadow:none}
.analytics-bar span{font-size:10px;color:#a9cce0;white-space:nowrap}
.analytics-bar:hover i,.analytics-bar:focus-visible i{background:linear-gradient(#fff7b2,#45dfff);box-shadow:0 0 20px #68e8ff}
.analytics-bar:focus-visible{outline:2px solid #b9f4ff;outline-offset:2px;border-radius:4px}
.analytics-bar:hover::after,.analytics-bar:focus-visible::after{content:attr(data-value);position:absolute;z-index:2;bottom:calc(100% - 18px);left:50%;transform:translateX(-50%);padding:5px 8px;border:1px solid #7edfff;border-radius:7px;background:#07192f;color:#fff;font:700 12px var(--display);white-space:nowrap;pointer-events:none}
.analytics-games{display:grid;gap:6px}
.analytics-games>div{display:grid;grid-template-columns:minmax(120px,2fr) repeat(3,minmax(65px,1fr));gap:12px;padding:10px 12px;border-radius:8px;background:#15304a9c;color:#d5ebf8;font-size:14px}
.analytics-games strong{color:white}
@keyframes analytics-rise{from{transform:scaleY(.05);transform-origin:bottom}to{transform:scaleY(1);transform-origin:bottom}}
@media(max-width:1000px){.analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-metric{min-height:105px;padding:12px}.analytics-metric strong{font-size:30px}.analytics-games>div{grid-template-columns:1fr 1fr}.analytics-games>div strong{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.analytics-bar i{animation:none}}
@media(min-width:1101px){.portal-profile-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.portal-profile-metrics>div{grid-template-columns:54px 1fr;gap:9px;padding:11px}.portal-profile-metrics>div>span{width:51px;height:51px;font-size:27px}.portal-profile-metrics strong{font-size:clamp(27px,2.1vw,39px)}.portal-profile-metrics small{font-size:clamp(10px,.85vw,14px)}}
@media(min-width:701px) and (max-width:1100px){.portal-profile-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ranking-live-link{margin-left:12px;padding:8px 13px;border:1px solid #78dfff88;border-radius:10px;background:#0d3553;color:#adf0ff;font:900 15px var(--display);cursor:pointer}
.ranking-live-link:hover,.ranking-live-link:focus-visible{background:#1a6587;box-shadow:0 0 18px #35d4ff88}
.portal-live-dialog .portal-panel{background:radial-gradient(circle at 100% 0%,#26c9ff1d,transparent 43%),linear-gradient(160deg,#0c233b,#071425)}
.portal-live-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:24px 0}
.portal-live-metrics>div{min-width:0;padding:20px;border:1px solid #70ddff74;border-radius:16px;background:#0c3050c9;box-shadow:inset 0 1px #ffffff20,0 12px 25px #0005;animation:portal-profile-rise .5s both}
.portal-live-metrics span{font-size:28px}.portal-live-metrics strong{display:block;color:white;font:1000 clamp(30px,3vw,54px) var(--display)}.portal-live-metrics small{color:#97e8ff;font:800 12px var(--display);letter-spacing:.08em}
.portal-live-section{margin-top:30px}.portal-live-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portal-live-games button{display:flex;align-items:center;gap:16px;min-height:96px;padding:9px;border:1px solid #69ccff75;border-radius:13px;background:#102d49;color:white;text-align:left;cursor:pointer}
.portal-live-games button:hover,.portal-live-games button:focus-visible{border-color:#b5f2ff;background:#18547a;box-shadow:0 0 22px #5bd6ff55}
.portal-live-games img{width:90px;height:73px;border-radius:8px;object-fit:cover}.portal-live-games button span{flex:1;font:900 21px var(--display)}.portal-live-games small{display:block;color:#9ed7ef;font:600 13px var(--body)}.portal-live-games b{padding:10px;font-size:32px}
.portal-live-records{display:grid;gap:8px}.portal-live-records>div{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center;gap:12px;padding:13px 17px;border:1px solid #70c9ed4d;border-radius:10px;background:#102c46bb}.portal-live-records strong{color:#ffe392;font:900 27px var(--display)}.portal-live-records a{color:#8ce8ff;text-decoration:none}
@media(max-width:950px){.portal-live-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.portal-live-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-live-metrics>div{padding:12px}.portal-live-games{grid-template-columns:1fr}.portal-live-records>div{grid-template-columns:1fr 1fr}.portal-live-records a{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.portal-live-metrics>div{animation:none}}
