:root{--muted:#aeb5bf;--red:#b6322c;--line:rgba(239,228,206,.15)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{overflow-x:hidden;background:#080d17;color:#f4eee4;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}.scene,.veil{position:fixed;inset:0}.scene{background:url("/assets/portal/ninja-village-hero-v1.png") 43% center/cover no-repeat;animation:reveal 1.2s ease-out both}.veil{background:linear-gradient(90deg,rgba(5,9,16,.12),rgba(5,9,16,.06) 48%,rgba(5,9,16,.76) 74%,rgba(5,9,16,.94)),linear-gradient(0deg,rgba(4,7,13,.82),transparent 35%);pointer-events:none}.veil:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) .6px,transparent .6px);background-size:4px 4px;opacity:.18}
.topbar{position:relative;z-index:2;height:92px;padding:0 clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(5,8,14,.55),transparent)}.brand{display:flex;align-items:center;gap:13px;color:#fff;text-decoration:none}.brand-seal{width:48px;height:48px;display:grid;place-items:center;border:1px solid #d35b47;border-radius:50%;background:radial-gradient(circle,#9d2924,#421718);font-family:serif;font-size:25px;box-shadow:0 0 0 4px rgba(188,54,45,.12),0 8px 30px #0008}.brand strong{display:block;font-family:"Songti SC",STSong,serif;font-size:23px;letter-spacing:.22em}.brand small{display:block;margin-top:1px;color:#9d9fa4;font-size:8px;letter-spacing:.33em}.server{font-size:12px;letter-spacing:.12em;color:#b8bdc7}.server i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#64c887;box-shadow:0 0 12px #64c887}.server span{margin:0 8px;color:#5d636c}
.layout{position:relative;z-index:1;min-height:calc(100vh - 148px);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:8vw;align-items:center;padding:50px clamp(24px,7vw,112px) 70px}.story{align-self:end;padding-bottom:9vh;text-shadow:0 4px 20px #000}.eyebrow{margin:0 0 15px;color:#dd8b58;font-size:11px;font-weight:700;letter-spacing:.42em}.story h1{margin:0;font-family:"Songti SC",STSong,serif;font-size:clamp(52px,6vw,90px);font-weight:800;line-height:1.04;letter-spacing:.08em}.story h1 span{color:transparent;-webkit-text-stroke:1px rgba(247,235,213,.75)}.intro{max-width:480px;margin:24px 0 30px;color:#c6c6c9;font-family:"Songti SC",STSong,serif;font-size:15px;line-height:1.9;letter-spacing:.08em}.features{display:flex;gap:34px}.features div{display:flex;gap:10px;align-items:flex-start}.features b{color:#bf4a39;font-family:Georgia,serif;font-size:12px}.features span{font-size:13px;letter-spacing:.1em}.features small{color:#8d939d;font-size:10px;letter-spacing:.06em}
.card{position:relative;width:100%;padding:36px 38px 31px;border:1px solid rgba(230,218,194,.2);border-radius:2px;background:linear-gradient(145deg,rgba(21,27,38,.95),rgba(9,14,24,.97));box-shadow:0 30px 100px rgba(0,0,0,.54),inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(15px)}.card:before,.card:after{content:"";position:absolute;width:42px;height:42px;border-color:#a84938;pointer-events:none}.card:before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.card:after{right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid}.card-heading p{margin:0 0 5px;color:#a9adb5;font-size:10px;letter-spacing:.28em}.card-heading h2{margin:0 0 25px;font-family:"Songti SC",STSong,serif;font-size:27px;letter-spacing:.12em}.tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:21px;border-bottom:1px solid var(--line)}.tab{position:relative;padding:11px;border:0;background:none;color:#777f8c;font:600 13px inherit;letter-spacing:.1em;cursor:pointer}.tab.active{color:#f5e9d4}.tab.active:after{content:"";position:absolute;left:20%;right:20%;bottom:-1px;height:2px;background:#bd4637;box-shadow:0 0 12px #bd4637}.field{display:block;margin:0 0 14px}.field>span:first-child{display:block;margin-bottom:7px;color:#abb0b8;font-size:11px;letter-spacing:.08em}.field input{width:100%;height:44px;padding:0 13px;border:1px solid rgba(216,211,201,.18);border-radius:2px;outline:0;background:rgba(0,0,0,.23);color:#fff;font-size:14px;transition:.2s}.field input::placeholder{color:#626975}.field input:focus{border-color:#a84738;box-shadow:0 0 0 3px rgba(168,71,56,.12)}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:58px}.password-wrap button{position:absolute;right:7px;top:7px;height:30px;border:0;background:none;color:#8e949e;font-size:11px;cursor:pointer}.captcha-row{display:grid;grid-template-columns:1fr 170px;gap:10px;align-items:end}.captcha-row .field{margin-bottom:0}.captcha-button{height:57px;padding:0;border:1px solid rgba(216,211,201,.18);border-radius:3px;overflow:hidden;background:#eee;cursor:pointer;position:relative}.captcha-button img{display:block;width:100%;height:100%;object-fit:cover}.captcha-button span{position:absolute;inset:auto 0 0;padding:2px;background:rgba(0,0,0,.62);color:#fff;font-size:9px;opacity:0;transition:.2s}.captcha-button:hover span{opacity:1}.submit{width:100%;height:50px;margin-top:20px;padding:0 17px;border:0;border-radius:2px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(100deg,#8f2524,#c34b36);color:#fff;font:700 14px inherit;letter-spacing:.24em;cursor:pointer;box-shadow:0 10px 28px rgba(148,38,34,.3);transition:.2s}.submit:hover{filter:brightness(1.12);transform:translateY(-1px)}.submit:disabled{filter:saturate(.3);cursor:wait;transform:none}.submit b{font-size:22px;font-weight:300}.message{min-height:19px;margin:11px 0 0;color:#df7664;text-align:center;font-size:12px}.message.success{color:#7dd49b}.security-note{margin:14px -5px 0;color:#707985;text-align:center;font-size:10px}.security-note i{font-style:normal;color:#9d7862}.hidden{display:none!important}
.profile{display:flex;gap:16px;align-items:center;padding:20px;border:1px solid var(--line);background:rgba(0,0,0,.18)}.avatar{width:59px;height:59px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #a94737;border-radius:50%;background:radial-gradient(circle,#782b26,#21161a);font-family:serif;font-size:25px}.profile small{color:#818895;font-size:10px;letter-spacing:.16em}.profile strong{display:block;margin:2px 0 5px;font-family:Georgia,"Songti SC",serif;font-size:21px;letter-spacing:.06em}.profile p{margin:0;color:#9198a3;font-size:11px}.launch{margin-top:25px}.logout{width:100%;height:42px;margin-top:8px;border:1px solid var(--line);background:transparent;color:#9299a4;cursor:pointer}.logout:hover{color:#fff;border-color:#747b85}.session-note{margin-top:21px;padding:13px 15px;border-left:2px solid #9c3e32;background:rgba(255,255,255,.025)}.session-note b{font-size:11px;letter-spacing:.1em}.session-note p{margin:4px 0 0;color:#787f8b;font-size:10px;line-height:1.6}
footer{position:relative;z-index:2;height:56px;padding:0 clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);background:rgba(3,6,11,.46);color:#717782;font-size:10px;letter-spacing:.08em}footer button{border:0;background:none;color:#a5aab3;font:inherit;cursor:pointer}footer button:hover{color:#e7ddd0}footer b{color:#cf6d51}.toast{position:fixed;z-index:5;left:50%;bottom:76px;transform:translate(-50%,20px);padding:10px 17px;border:1px solid #795249;background:#161b24;color:#eee1d1;font-size:12px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes reveal{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){.veil{background:linear-gradient(0deg,rgba(5,9,16,.95),rgba(5,9,16,.32) 80%),linear-gradient(90deg,rgba(5,9,16,.12),rgba(5,9,16,.5))}.layout{grid-template-columns:1fr;justify-items:center;padding-top:38px}.story{align-self:auto;width:min(540px,100%);padding:20px 0}.story h1{font-size:52px}.card{max-width:440px}.server{display:none}}@media(max-width:520px){.topbar{height:76px}.brand strong{font-size:19px}.layout{padding:25px 14px 45px}.story{display:none}.card{padding:29px 22px}.captcha-row{grid-template-columns:1fr 142px}footer{padding:0 15px;justify-content:center}footer>span{display:none}}@media(prefers-reduced-motion:reduce){.scene{animation:none}.submit,.toast{transition:none}}
