/* NEXUS HUNT space-time login portal */
.rift-login{position:fixed;z-index:1000;inset:0;min-height:100svh;overflow:hidden;isolation:isolate;background:#03050c;color:#edf7ff;font-family:"Microsoft YaHei","Segoe UI",sans-serif;opacity:1;visibility:visible;transition:opacity .82s ease,visibility .82s ease}
.login-locked{overflow:hidden}
.login-locked #scene{position:fixed;inset:0;visibility:hidden;pointer-events:none}
.rift-login.is-exiting{opacity:0;visibility:hidden;pointer-events:none}
.rift-login.is-entering:after{content:"";position:absolute;z-index:6;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,rgba(255,205,244,.82),rgba(255,44,110,.18) 19%,transparent 57%);mix-blend-mode:screen;animation:rift-flare .62s ease-out both}
.rift-backdrop,.rift-vignette,.rift-energy{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rift-backdrop{z-index:-3;background:#02040a url("./assets/nexus-spacetime-rift.png") center 42%/cover no-repeat;transform:scale(1.015);animation:rift-drift 32s ease-in-out infinite alternate;will-change:transform,filter}
.rift-vignette{z-index:-2;background:radial-gradient(ellipse at 50% 38%,transparent 20%,rgba(2,3,10,.14) 55%,rgba(1,2,7,.79) 100%),linear-gradient(180deg,rgba(1,3,10,.3),transparent 24%,rgba(1,3,7,.04) 48%,rgba(1,2,6,.62) 72%,#010207 100%)}
.rift-energy{z-index:1;opacity:.8;mix-blend-mode:screen}
.rift-frame{position:absolute;z-index:0;left:50%;top:36%;width:min(54vw,840px);height:min(72vh,760px);border:1px solid rgba(91,154,255,.24);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) rotate(-12deg);mask-image:linear-gradient(180deg,#000 0 66%,transparent 93%);filter:drop-shadow(0 0 13px rgba(83,80,255,.25))}
.rift-frame:before,.rift-frame:after{content:"";position:absolute;inset:5.5%;border:1px dashed rgba(146,69,255,.36);border-radius:50%;transform:rotate(35deg)}
.rift-frame:after{inset:12% -4%;border-color:rgba(255,74,119,.35);border-style:solid;border-width:1px 0;transform:rotate(-27deg)}
.rift-frame.frame-b{width:min(45vw,700px);height:min(63vh,650px);border-color:rgba(246,82,137,.28);transform:translate(-50%,-50%) rotate(22deg) scaleY(.88);animation:frame-turn 90s linear infinite}
.rift-frame.frame-b:before{inset:-5% 12%;border-color:rgba(101,84,255,.24);border-style:solid;transform:rotate(74deg)}
.rift-frame.frame-b:after{inset:8% -10%;border-color:rgba(255,66,115,.2);transform:rotate(12deg)}
.rift-frame.frame-c{width:min(67vw,1050px);height:min(88vh,920px);border-color:rgba(48,128,239,.15);transform:translate(-50%,-50%) rotate(8deg) scaleY(.78)}
.rift-frame.frame-c:before{inset:13% 0;border-color:rgba(153,85,255,.2);border-style:solid;transform:rotate(-40deg)}
.rift-frame.frame-c:after{inset:-3% 10%;border-color:rgba(69,145,255,.16);border-width:1px 0;transform:rotate(49deg)}
.rift-topline{position:absolute;z-index:4;left:clamp(18px,4vw,58px);right:clamp(18px,4vw,58px);top:clamp(16px,3vh,34px);display:flex;align-items:center;justify-content:space-between}
.rift-brand{display:flex;align-items:baseline;gap:8px;color:#f2f5ff;text-decoration:none;text-shadow:0 0 18px #8d4cff55;letter-spacing:2px}
.rift-brand b{font:700 22px/1 Orbitron,"Arial",sans-serif;letter-spacing:3px}
.rift-brand span{color:#e25383;font:700 10px/1 Orbitron,"Arial",sans-serif;letter-spacing:3px}
.rift-brand i,.rift-secure i,.rift-card-foot i,.rift-eyebrow i,.rift-bottomline i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#63f0d1;box-shadow:0 0 10px #4dffd9}
.rift-brand i{width:4px;height:4px;margin-left:2px;vertical-align:top;box-shadow:0 0 8px #71e8ff}
.rift-secure{display:grid;grid-template-columns:8px auto;align-items:center;column-gap:8px;color:#d8d7e9;font-size:10px;letter-spacing:1px;text-align:right}
.rift-secure i{grid-row:1/3;width:7px;height:7px;background:#55f2d3}
.rift-secure small{grid-column:2;margin-top:3px;color:#8293b4;font:8px/1.2 Consolas,monospace;letter-spacing:1.4px}
.rift-heading{position:absolute;z-index:3;left:50%;top:55%;width:min(90vw,620px);transform:translate(-50%,-50%);text-align:center;text-shadow:0 3px 24px #02010a,0 0 30px #d82c7770;pointer-events:none}
.rift-eyebrow{display:flex;align-items:center;justify-content:center;gap:11px;margin:0 0 9px;color:#e6a4d9;font:9px/1.2 Consolas,monospace;letter-spacing:2px}
.rift-eyebrow i{width:24px;height:1px;border-radius:0;background:linear-gradient(90deg,transparent,#f768b6);box-shadow:0 0 8px #ff4094}
.rift-eyebrow i:last-child{transform:scaleX(-1)}
.rift-heading h1{margin:0;color:#fff2ff;font-size:clamp(25px,4.3vw,42px);font-weight:600;letter-spacing:9px;text-indent:9px;text-shadow:0 0 12px rgba(253,133,235,.45),0 0 35px rgba(255,46,128,.25)}
.rift-heading>p:last-child{margin:6px 0 0;color:#c3bdd0;font-size:11px;letter-spacing:3px}
.rift-coordinate{position:absolute;z-index:2;top:42%;color:#a8a1b9;font:9px/1.9 Consolas,monospace;letter-spacing:1px;text-shadow:0 0 8px #7f4ce9}
.rift-coordinate span{color:#777b98}
.coordinate-left{left:clamp(18px,6vw,90px)}
.coordinate-right{right:clamp(18px,6vw,90px);text-align:right}
.rift-coordinate b{color:#ff6f9f;font-weight:500}
.rift-login-card{position:absolute;z-index:5;left:50%;bottom:clamp(16px,4.4vh,48px);width:min(1050px,calc(100% - 64px));padding:13px 17px 10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 178px;column-gap:11px;row-gap:8px;transform:translateX(-50%);border:1px solid rgba(132,153,210,.52);border-radius:6px;background:linear-gradient(105deg,rgba(4,8,21,.89),rgba(9,9,23,.75) 55%,rgba(4,7,19,.9));box-shadow:0 16px 52px #0009,inset 0 1px #e4caff18,inset 0 0 28px #544aff0c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.rift-login-card:before,.rift-login-card:after{content:"";position:absolute;width:30px;height:12px;border-color:#fe557e;border-style:solid;pointer-events:none}
.rift-login-card:before{top:-1px;left:-1px;border-width:1px 0 0 1px}
.rift-login-card:after{right:-1px;bottom:-1px;border-width:0 1px 1px 0}
.rift-card-cap{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 1px 7px;border-bottom:1px solid rgba(141,144,184,.19);color:#ece3f0;font-size:11px;letter-spacing:1px}
.rift-card-cap>span{display:flex;align-items:center;gap:8px}
.rift-card-cap>span i{width:6px;height:6px;border:1px solid #ff5a90;box-shadow:0 0 9px #ff3d81;border-radius:50%}
.rift-card-cap small{color:#777b99;font:8px/1.2 Consolas,monospace;letter-spacing:1.2px}
.rift-card-cap small b{color:#61e2ce;margin:0 5px}
.rift-field{height:46px;min-width:0;display:flex;align-items:center;gap:10px;padding:0 11px;border:1px solid rgba(113,134,177,.36);border-radius:4px;background:rgba(5,10,24,.66);transition:border-color .2s,box-shadow .2s,background .2s}
.rift-field:focus-within{border-color:#e462a2;box-shadow:0 0 16px #ec378522,inset 0 0 14px #9a49ff10;background:rgba(10,12,29,.85)}
.rift-field-icon{width:17px;flex:0 0 17px;color:#a49ed4;font-size:19px;text-align:center}
.rift-field .key-icon{color:#ef8dbd}
.rift-field-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.rift-field-copy small{color:#9091aa;font-size:8px;letter-spacing:1px}
.rift-field input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:#eff1ff;font:12px/1.3 Consolas,"Microsoft YaHei",monospace;letter-spacing:.4px}
.rift-field input::placeholder{color:#59647c;font:10px "Microsoft YaHei",sans-serif;letter-spacing:0}
.field-state{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#51e3bf;box-shadow:0 0 7px #51e3bf}
.reveal-key{padding:4px;border:0;background:transparent;color:#737c9a;font-size:12px;cursor:pointer}
.reveal-key:hover{color:#ff9fc6}
.rift-submit{height:46px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #c94878;border-radius:4px;background:linear-gradient(110deg,#8e1748,#bc2e63 53%,#7a1749);box-shadow:0 0 18px #df28673a,inset 0 1px #ffc7df2d;color:#fff4fb;font:600 13px "Microsoft YaHei",sans-serif;letter-spacing:2px;cursor:pointer;transition:filter .2s,box-shadow .2s,transform .2s}
.rift-submit i{font:20px/1 Consolas,monospace;font-style:normal;transition:transform .2s}
.rift-submit:hover{filter:brightness(1.2);box-shadow:0 0 28px #ff357e70,inset 0 1px #ffd4e43a}
.rift-submit:hover i{transform:translateX(4px)}
.rift-submit:active{transform:scale(.985)}
.rift-submit:disabled{opacity:.72;cursor:wait}
.rift-card-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;min-height:14px;color:#78809a;font:8px/1.2 Consolas,"Microsoft YaHei",sans-serif;letter-spacing:.35px}
.rift-card-foot span:first-child{display:flex;align-items:center;gap:6px}
.rift-card-foot i{width:5px;height:5px;background:#4cddbd}
.rift-card-foot #riftMessage{color:#b8abc4}
.rift-card-foot #riftMessage.is-error{color:#ff7b96;text-shadow:0 0 9px #f3456c55}
.rift-login-card.has-error{border-color:rgba(255,89,124,.82);box-shadow:0 16px 52px #0009,0 0 22px #ff3b6c2c,inset 0 1px #ffccd522}
.rift-login-card.has-error .rift-field:has(input[aria-invalid="true"]){border-color:#d85070;box-shadow:0 0 13px #ff355626}
.rift-bottomline{position:absolute;z-index:3;left:clamp(18px,4vw,58px);right:clamp(18px,4vw,58px);bottom:9px;display:flex;justify-content:space-between;gap:14px;color:#77758d;font:7px/1.3 Consolas,"Microsoft YaHei",sans-serif;letter-spacing:.6px}
.rift-bottomline span{white-space:nowrap}
.rift-bottomline b{color:#ca557f;font-weight:400;margin:0 4px}
.rift-bottomline i{width:4px;height:4px;margin-right:5px;vertical-align:1px}
.classic-screen{transition:opacity .5s ease}

/* Hunter profile modal */
.hunter-profile-dialog{width:min(520px,calc(100vw - 28px));max-height:min(92dvh,680px);overflow:auto;padding:23px;border:1px solid rgba(92,173,204,.36);border-radius:13px;background:linear-gradient(145deg,#0c1d2c,#08121e 60%,#0b1725);color:#e6f2fa;box-shadow:0 28px 90px #000c,inset 0 1px #d1f8ff14}
.hunter-profile-dialog::backdrop{background:rgba(1,5,10,.72);backdrop-filter:blur(7px)}
.hunter-profile-dialog>form{position:absolute;top:11px;right:11px;margin:0}
.profile-row .avatar{padding:0;cursor:pointer;font-family:inherit}
.profile-row .avatar:focus-visible{outline:2px solid #8be7ec;outline-offset:3px}
.profile-dialog-close{width:30px;height:30px;border:1px solid #80a7b733;border-radius:7px;background:#122433;color:#b9d3df;font-size:20px;cursor:pointer}
.profile-dialog-close:hover{border-color:#73e6e4;color:#fff}
.profile-dialog-header{display:grid;grid-template-columns:68px 1fr auto;gap:13px;align-items:center;padding:3px 34px 18px 0;border-bottom:1px solid #66b6cf24}
.profile-dialog-avatar{position:relative;width:62px;height:62px;display:grid;place-items:center;border:1px solid #a465c5;border-radius:13px;background:radial-gradient(circle at 50% 31%,#663788,#141833 70%);color:#f0ddff;font-size:24px;box-shadow:0 0 20px #a050e527}
.profile-dialog-avatar i{position:absolute;right:4px;bottom:4px;width:9px;height:9px;border:2px solid #0c1d2c;border-radius:50%;background:#55e6bd}
.profile-dialog-header>div small{color:#8ea9bb;font:9px Consolas,monospace;letter-spacing:1.1px}
.profile-dialog-header h2{margin:5px 0;color:#f0f6fa;font-size:21px;font-weight:600;letter-spacing:1px}
.profile-dialog-header p{margin:0;color:#8ea4b4;font-size:10px}
.profile-dialog-header p b{padding:0 4px;color:#547a8c;font-weight:400}
.profile-level{align-self:center;color:#68e2d1;font:700 16px Consolas,monospace;text-align:right}
.profile-level small{display:block;margin-top:5px;color:#98aab7;font:10px "Microsoft YaHei",sans-serif}
.profile-dialog-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 0}
.profile-dialog-stats article{min-height:77px;display:flex;flex-direction:column;justify-content:center;padding:9px 11px;border:1px solid #508baa27;border-radius:8px;background:linear-gradient(145deg,#102435,#0c1a28)}
.profile-dialog-stats small{color:#88a2b2;font-size:10px}
.profile-dialog-stats b{margin:5px 0 2px;color:#6be2d2;font:600 19px Consolas,monospace}
.profile-dialog-stats span{color:#708796;font-size:9px}
.profile-dialog-section{padding:13px 14px;border:1px solid #508baa21;border-radius:8px;background:#081522}
.profile-dialog-section h3{margin:0 0 9px;color:#bbd3df;font-size:11px;font-weight:500;letter-spacing:1px}
.profile-dialog-section dl{margin:0}
.profile-dialog-section dl>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-top:1px solid #5a8ca318;font-size:11px}
.profile-dialog-section dt{color:#8299a7}
.profile-dialog-section dd{margin:0;color:#d2e3ea}
.profile-dialog-section .profile-balance{color:#67e4ce;font:600 12px Consolas,monospace}
.profile-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}
.profile-dialog-actions button{min-width:94px;height:34px;padding:0 13px;border:1px solid #45708a66;border-radius:6px;background:#102234;color:#b7d1dc;font:11px "Microsoft YaHei",sans-serif;cursor:pointer}
.profile-dialog-actions button:hover{border-color:#67dedb;color:#f2ffff}
.profile-dialog-actions .profile-dialog-done{border-color:#317d7d;background:linear-gradient(110deg,#124b52,#163b48);color:#d7fffa}
.profile-dialog-actions .profile-dialog-done:hover{background:#1b5d61}
.profile-dialog-actions button:focus-visible,.profile-dialog-close:focus-visible{outline:2px solid #8be7ec;outline-offset:2px}

@keyframes rift-drift{from{transform:scale(1.015) translate3d(-.3%,0,0);filter:brightness(.92)}to{transform:scale(1.055) translate3d(.3%,-.6%,0);filter:brightness(1.06)}}
@keyframes frame-turn{to{transform:translate(-50%,-50%) rotate(382deg) scaleY(.88)}}
@keyframes rift-flare{0%{opacity:0;transform:scale(.3)}45%{opacity:.85}100%{opacity:0;transform:scale(1.5)}}
@media(max-width:760px){
  .rift-backdrop{background-position:center 37%}
  .rift-frame{width:82vw;height:67vh;top:33%}
  .rift-frame.frame-b{width:68vw;height:59vh}
  .rift-frame.frame-c{width:96vw;height:78vh}
  .rift-topline{left:16px;right:16px;top:16px}
  .rift-brand b{font-size:18px}
  .rift-secure{font-size:8px}
  .rift-secure small{font-size:7px}
  .rift-coordinate{top:37%;font-size:7px}
  .coordinate-left{left:12px}.coordinate-right{right:12px}
  .rift-heading{top:48%;width:94vw}
  .rift-eyebrow{font-size:7px;letter-spacing:1.2px;gap:6px}
  .rift-eyebrow i{width:13px}
  .rift-heading h1{font-size:26px;letter-spacing:7px;text-indent:7px}
  .rift-heading>p:last-child{font-size:9px;letter-spacing:1.6px}
  .rift-login-card{bottom:25px;width:calc(100% - 24px);padding:10px 10px 8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:7px;row-gap:7px}
  .rift-card-cap{padding-bottom:6px;font-size:10px}
  .rift-card-cap small{font-size:7px;letter-spacing:.5px}
  .rift-field{height:42px;padding:0 7px;gap:5px}
  .rift-field-icon{width:14px;flex-basis:14px;font-size:16px}
  .rift-field-copy small{font-size:7px}
  .rift-field input{font-size:10px}
  .rift-field input::placeholder{font-size:8px}
  .reveal-key{font-size:10px}
  .rift-submit{grid-column:1/-1;height:38px;font-size:12px}
  .rift-card-foot{font-size:7px}
  .rift-bottomline{left:12px;right:12px;bottom:8px;font-size:6px;gap:4px}
  .rift-bottomline span:nth-child(2){display:none}
}
@media(max-height:620px) and (min-width:761px){
  .rift-login-card{bottom:20px;padding:9px 13px 7px;row-gap:6px}
  .rift-field,.rift-submit{height:39px}
  .rift-heading{top:51%}
  .rift-heading h1{font-size:30px}
}
@media(max-height:560px) and (orientation:landscape){
  .rift-frame{top:34%;width:52vw;height:92vh}
  .rift-frame.frame-b{width:44vw;height:78vh}
  .rift-frame.frame-c{width:64vw;height:110vh}
  .rift-heading{top:44%}
  .rift-heading h1{font-size:24px;letter-spacing:6px}
  .rift-eyebrow{margin-bottom:4px;font-size:7px}
  .rift-heading>p:last-child{margin-top:2px;font-size:8px}
  .rift-login-card{bottom:25px;width:min(92vw,860px);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 132px;padding:5px 9px 4px;column-gap:7px;row-gap:3px}
  .rift-card-cap{display:none}
  .rift-field,.rift-submit{height:27px}
  .rift-field{padding:0 7px;gap:5px}
  .rift-field-copy small{font-size:6px}
  .rift-field input{font-size:8px}
  .rift-field input::placeholder{font-size:6px}
  .rift-submit{font-size:9px}
  .rift-card-foot{font-size:5px;min-height:7px}
  .rift-bottomline{bottom:7px;font-size:5px}
}
@media(max-width:360px){.rift-secure small{display:none}.rift-coordinate{display:none}.rift-login-card{width:calc(100% - 16px)}.rift-card-cap small{font-size:6px}.rift-bottomline{font-size:5px}}
@media(prefers-reduced-motion:reduce){.rift-backdrop,.rift-frame.frame-b{animation:none}.rift-login,.classic-screen{transition:none}}
