:root{font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#25364b;background:#f5f6f8;font-synthesis:none;--blue:#285c9d;--line:#dce1e8}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}.icon{width:18px;height:18px;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #7ba6df;outline-offset:3px}
.auth-page{min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:0 24px}.auth-header{width:min(960px,100%);height:72px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:650;letter-spacing:.02em}.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;background:#253f60;color:white}.brand-mark svg{width:25px;height:25px}.brand-en{font-size:9px;font-weight:500;letter-spacing:.13em;color:#738297;display:block;margin-top:1px}.header-note{font-size:12px;color:#7b8796}
.auth-shell{width:min(408px,100%);margin:30px 0 28px;background:white;border:1px solid #dfe4ea;border-radius:8px;box-shadow:0 3px 12px #22385304}.auth-panel{padding:26px 28px}.auth-tabs{display:flex;border-bottom:1px solid #e5e8ee;gap:25px;margin-bottom:22px}.auth-tabs a{font-size:13px;color:#7b8796;padding:0 2px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;min-width:42px;text-align:center}.auth-tabs a[aria-current]{color:#284f82;border-color:#284f82;font-weight:600}.auth-tabs a:hover{color:#244f88}.form-heading h2{font-size:21px;font-weight:600;margin:0;line-height:1.4;letter-spacing:0}.auth-subtitle{font-size:12px;color:#7d8796;line-height:1.65;margin:7px 0 21px}.auth-form{display:grid;gap:14px}.auth-field{display:grid;gap:6px}.auth-field label{font-size:12px;color:#435166;font-weight:550}.auth-input{width:100%;min-width:0;height:39px;border:1px solid #d7dee7;border-radius:5px;padding:0 11px;outline:none;color:#283a51;background:white;font-size:13px;transition:border-color .15s,box-shadow .15s}.auth-input::placeholder{color:#a0a9b6}.auth-input:hover{border-color:#b6c2d2}.auth-input:focus{border-color:#7498c9;box-shadow:0 0 0 2px #285c9d0c}.auth-input[aria-invalid=true]{border-color:#c76070}.input-wrap{display:flex;align-items:center;position:relative}.input-wrap>.icon{position:absolute;left:11px;width:15px;height:15px;color:#8c99ab;pointer-events:none}.input-wrap .auth-input{padding-left:34px}.password-wrap .auth-input{padding-right:41px}.password-toggle{position:absolute;right:2px;top:2px;height:35px;width:35px;border:0;border-radius:4px;display:grid;place-items:center;background:transparent;color:#8a97a9}.password-toggle>.icon{width:16px;height:16px}.password-toggle:hover,.password-toggle[aria-pressed=true]{background:#f0f4f9;color:#285c9d}.field-hint,.captcha-help small{font-size:11px;color:#7e8b9e;line-height:1.5}.field-error{font-size:11px;color:#b83e51;line-height:1.6}.caps-hint{font-size:11px;color:#91691d}.password-guidance{margin-top:-7px}.password-rule{display:flex;flex-wrap:wrap;gap:13px;font-size:11px;color:#78899d}.password-rule span:before{content:"";width:4px;height:4px;display:inline-block;border-radius:50%;background:#b5c0ce;margin-right:6px;vertical-align:middle}.password-rule .met{color:#387d65}.password-rule .met:before{background:#387d65}.password-meter{display:flex;gap:4px;margin-top:7px}.password-meter i{height:2px;width:33.33%;background:#e7ebf1}.password-meter[data-score="1"] i:first-child{background:#aac1df}.password-meter[data-score="2"] i:nth-child(-n+2){background:#6b94c7}.password-meter[data-score="3"] i{background:#69a18e}
.field-label-row,.captcha-help{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-label-row>span{font-size:10px;color:#8692a3}.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px}.captcha-image{height:39px;display:grid;place-items:center;padding:0;border:1px solid #dce3ed;border-radius:5px;background:#f4f7fb;overflow:hidden;font-size:11px;color:#768aa4}.captcha-image img{display:block;width:100%;height:100%;object-fit:contain}.captcha-help{margin-top:-2px}.text-button{display:flex;align-items:center;gap:4px;border:0;background:none;color:#607fa7;padding:0;font-size:11px;min-height:22px}.text-button>.icon{width:12px;height:12px}.auth-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:11px;margin-top:-2px}.remember{display:flex;align-items:center;gap:6px;min-height:22px;color:#637185}.remember input{margin:0;width:13px;height:13px;accent-color:#285c9d}.password-help{max-width:190px;text-align:right}.password-help summary{cursor:pointer;list-style:none;line-height:22px;color:#607c9f}.password-help summary::-webkit-details-marker{display:none}.password-help p{font-size:11px;line-height:1.6;color:#6d7c91;border:1px solid #e3e8ef;background:#f8f9fb;border-radius:4px;padding:8px;text-align:left;margin:5px 0}
.auth-submit{height:39px;border:1px solid #285c9d;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:9px;background:#285c9d;color:white;font-size:13px;font-weight:550;margin-top:1px}.auth-submit:hover:not(:disabled){background:#214f89}.auth-submit>.icon{width:15px;height:15px}.auth-submit[aria-busy=true]>.icon{display:none}.auth-submit[aria-busy=true]:after{content:"";width:12px;height:12px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-feedback{padding:9px 11px;border:1px solid #efd5db;border-radius:5px;background:#fff5f6;color:#ac4255;font-size:12px;line-height:1.6}.auth-foot{border-top:1px solid #edf0f4;margin-top:19px;padding-top:14px;display:flex;justify-content:center;align-items:center;gap:5px;font-size:10px;line-height:1.7;color:#8190a3;text-align:center}.auth-foot>.icon{width:12px;height:12px}.auth-bottom{width:min(408px,100%);display:flex;justify-content:space-between;color:#929caa;font-size:10px;padding:0 1px 24px;letter-spacing:.03em}.form-kicker{font-size:11px;color:#7c8b9f;margin-bottom:13px}.account-connection{width:100%;padding:10px 16px;background:#edf3fb;color:#315b90;font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-height:850px){.auth-shell{margin-top:55px}}
@media(max-width:560px){.auth-page{padding:0 18px}.auth-header{height:66px;width:min(408px,100%)}.auth-shell{margin-top:16px;margin-bottom:22px}.auth-panel{padding:23px 22px}.auth-input{height:42px;font-size:16px}.auth-input::placeholder{font-size:13px}.password-toggle{height:38px;width:38px}.captcha-image{height:42px}.auth-submit{height:42px}.form-heading h2{font-size:20px}.auth-tabs{margin-bottom:20px}.auth-bottom{padding-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Shared MapTool measurement mark: keep the geometry identical in every header. */
.brand-mark{background:#18324f;color:#fff;flex-shrink:0}
.brand-mark svg.maptool-symbol{width:100%;height:100%;display:block}
.brand-mark .maptool-symbol .logo-distance{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round}
.brand-mark .maptool-symbol .logo-endpoint{fill:#55d7c6;stroke:none}
.brand-mark .maptool-symbol .logo-ruler{fill:none;stroke:#fff;stroke-width:1.8;stroke-opacity:.76;stroke-linecap:round;stroke-linejoin:round}


/* Shared input and click feedback. */
.auth-shell--designed .auth-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:26px;border:1px solid #e5ecef;border-radius:8px;background:#edf2f580}
.auth-shell--designed .auth-tabs a{position:relative;z-index:0;isolation:isolate;display:block;padding:8px 12px;min-width:0;margin:0;border:0;border-radius:5px;line-height:18px;color:#738794;transition:color .2s,background .2s,transform .15s}
.auth-shell--designed .auth-tabs a[aria-current]{background:#fff;color:#244b5b;box-shadow:0 1px 5px #27445610,0 0 0 1px #dfe7eb80;font-weight:600}
.auth-shell--designed .auth-tabs a:hover:not([aria-current]){background:#ffffff80;color:#30566b}
.auth-shell--designed .auth-tabs a:active{transform:scale(.975)}
.auth-shell--designed .form-heading h2{font-size:24px;letter-spacing:-.02em}
.auth-shell--designed .auth-subtitle{color:#788b98}
.auth-shell--designed .auth-field{gap:7px}
.auth-shell--designed .auth-field label{transition:color .2s}
.auth-shell--designed .auth-field:focus-within label{color:#24786f}
.auth-shell--designed .auth-input{border-color:#dce5e9;background:#f9fbfc;border-radius:7px;transition:border-color .2s,box-shadow .2s,background .2s}
.auth-shell--designed .auth-input:hover{border-color:#b6cbd0}
.auth-shell--designed .auth-input:focus{border-color:#72ada5;box-shadow:0 0 0 3px #57a99b12;background:#fff}
.auth-shell--designed .auth-input[aria-invalid=true]{border-color:#c76070;box-shadow:0 0 0 2px #c760700a}
.auth-shell--designed .input-wrap>.icon{z-index:1;transition:color .2s,transform .2s}
.auth-shell--designed .input-wrap:focus-within>.icon{color:#4f958c;transform:translateY(-1px)}
.auth-shell--designed .password-toggle{transition:color .2s,background .2s,transform .15s}
.auth-shell--designed .password-toggle:active{transform:scale(.9)}
.auth-shell--designed .captcha-image{transition:border-color .2s,box-shadow .2s,transform .15s}
.auth-shell--designed .captcha-image:hover{border-color:#9cbfc0;box-shadow:0 0 0 2px #79afa510}
.auth-shell--designed .captcha-image:active{transform:scale(.97)}
.auth-shell--designed .text-button{transition:color .2s}
.auth-shell--designed .text-button:hover{color:#287a71}
.auth-shell--designed .text-button>.icon{transition:transform .4s}
.auth-shell--designed .text-button:hover>.icon{transform:rotate(70deg)}
.auth-shell--designed .text-button:disabled>.icon{animation:spin .9s linear infinite}
.auth-shell--designed .auth-submit{position:relative;isolation:isolate;overflow:hidden;height:44px;border:1px solid #244958;border-radius:7px;background:linear-gradient(115deg,#234b5e,#173c4e);box-shadow:0 5px 11px #173c4e19,0 1px 0 #ffffff14 inset;transition:transform .18s,box-shadow .25s,background .25s}
.auth-shell--designed .auth-submit:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,#ffffff10 48%,transparent 66%);transform:translateX(-100%);transition:transform .65s;pointer-events:none}
.auth-shell--designed .auth-submit:hover:not(:disabled){background:linear-gradient(115deg,#28576a,#1a4356);transform:translateY(-1px);box-shadow:0 8px 17px #173c4e24,0 1px 0 #ffffff18 inset}
.auth-shell--designed .auth-submit:hover:not(:disabled):before{transform:translateX(100%)}
.auth-shell--designed .auth-submit:active:not(:disabled){transform:translateY(1px) scale(.99);box-shadow:0 2px 4px #173c4e1c}
.auth-shell--designed .auth-submit>.icon{transition:transform .2s}
.auth-shell--designed .auth-submit:hover:not(:disabled)>.icon{transform:translateX(3px)}
.auth-shell--designed .auth-submit:disabled{opacity:.75}
.auth-click-ripple{position:absolute;pointer-events:none;border-radius:50%;background:currentColor;opacity:0;z-index:-1}
.auth-shell--designed .auth-submit .auth-click-ripple{background:#c7f4ec;z-index:0}
.auth-shell--designed .password-meter i{transition:background .3s}
.auth-shell--designed .auth-feedback:not([hidden]){animation:feedback-enter .2s ease-out}
.auth-shell--designed .remember input{transition:box-shadow .2s;cursor:pointer}
.auth-shell--designed .remember input:focus-visible{outline:2px solid #6baca3;outline-offset:3px}
.auth-shell--designed .remember input:checked{accent-color:#337c71}
.auth-shell--designed .password-help[open] p{animation:feedback-enter .2s ease-out}
@keyframes measure-draw{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes measure-pulse{0%{transform:scale(.75);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes readout-reveal{0%,35%{opacity:.3}100%{opacity:1}}
@keyframes feedback-enter{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* Soft line-art companion. SVG geometry follows the pointer without intercepting it. */
.mortar-companion{position:fixed;left:clamp(10px,1.8vw,28px);bottom:30px;width:224px;height:192px;z-index:5;pointer-events:none;user-select:none}
.companion-art{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 3px 5px #42675a07)}
.companion-caption{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:-8px;color:#809b90;font-size:9px;letter-spacing:.06em}
.companion-caption i{width:4px;height:4px;border-radius:50%;background:#8bad9a}
.companion-smoke,.companion-flash{opacity:0;pointer-events:none}
.mortar-companion.is-firing .mortar-recoil{animation:companion-recoil .48s cubic-bezier(.2,.7,.3,1)}
.mortar-companion.is-firing .companion-smoke{opacity:1}
.mortar-companion.is-firing .puff-one{animation:companion-smoke-one .85s ease-out both}
.mortar-companion.is-firing .puff-two{animation:companion-smoke-two 1s .03s ease-out both}
.mortar-companion.is-firing .puff-three{animation:companion-smoke-three .9s .07s ease-out both}
.mortar-companion.is-firing .companion-flash{animation:companion-flash .26s ease-out both}
@keyframes companion-recoil{0%,100%{transform:translateY(0)}16%{transform:translateY(5px)}48%{transform:translateY(-1px)}}
@keyframes companion-smoke-one{from{opacity:.7;transform:translate(0,0) scale(.5)}to{opacity:0;transform:translate(-10px,-27px) scale(2)}}
@keyframes companion-smoke-two{from{opacity:.65;transform:translate(0,0) scale(.7)}to{opacity:0;transform:translate(8px,-37px) scale(2.6)}}
@keyframes companion-smoke-three{from{opacity:.55;transform:translate(0,0) scale(.6)}to{opacity:0;transform:translate(-19px,-40px) scale(2.2)}}
@keyframes companion-flash{0%{opacity:0}20%{opacity:.75}100%{opacity:0}}
@media(max-width:1100px){.mortar-companion{width:184px;height:163px;left:3px;bottom:27px}}
@media(max-width:560px){
 .mortar-companion{width:132px;height:117px;left:0;bottom:8px;opacity:.86}
 .companion-caption{font-size:7px;letter-spacing:0;margin-top:-5px}
 .auth-page:has(.auth-shell--designed) .auth-bottom{padding-left:126px;justify-content:flex-end}
 .auth-page:has(.auth-shell--designed) .auth-bottom>span:first-child{display:none}
}
@media(prefers-reduced-motion:reduce){.mortar-companion *{animation:none!important}.mortar-companion.is-firing .companion-smoke{opacity:0}}


/* The interaction is the hero; the terrain supplies depth without taking focus. */
.auth-page:has(.auth-shell--designed){--auth-ink:#263e35;--auth-accent:#739580;min-height:100svh;padding:0 clamp(22px,5vw,80px);background:#f0f2e9;color:var(--auth-ink);isolation:isolate;position:relative}
.field-world{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 16% 15%,#fbfcf1 0,transparent 57%),radial-gradient(ellipse at 72% 7%,#e0eadd75,transparent 55%),linear-gradient(155deg,#f4f5ee 12%,#e9eee4 70%,#e8ebe0)}
.field-halo{position:absolute;width:72vw;height:72vw;left:-14vw;top:-36vw;border:1px solid #ffffff8c;border-radius:50%;box-shadow:0 0 0 90px #ffffff10,0 0 0 180px #ffffff08}
.terrain-scene{display:block;width:100%;height:100%;position:absolute;inset:0}
.auth-page:has(.auth-shell--designed) .auth-header{position:relative;width:min(1280px,100%);height:92px;border-bottom:1px solid #a4b6a626;flex-shrink:0}
.auth-page:has(.auth-shell--designed) .brand{gap:11px;font-size:19px;letter-spacing:.04em;color:#324b40}
.auth-page:has(.auth-shell--designed) .brand-mark{width:35px;height:35px;border-radius:9px;background:linear-gradient(140deg,#3c5e50,#253f36);border:1px solid #ffffff65;box-shadow:0 4px 9px #4866511a,0 1px 0 #ffffff30 inset}
.auth-page:has(.auth-shell--designed) .brand-en{font-size:8px;letter-spacing:.18em;color:#849486}
.header-note{display:flex;gap:13px;align-items:center;font-size:10px;letter-spacing:.05em;color:#889588}
.header-index{font-family:Consolas,monospace;color:#a5b19d;font-size:11px}
.header-note i{height:5px;width:5px;background:#8daa85;border-radius:50%;box-shadow:0 0 0 4px #8daa850f}
.auth-shell--designed{width:min(1160px,100%);display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:clamp(48px,8vw,132px);align-items:start;margin:70px 0 72px;background:transparent;border:0;box-shadow:none;border-radius:0}
.auth-scene{padding:15px 0 0;min-width:0}
.scene-kicker{display:flex;align-items:center;gap:10px;color:#889981;font-size:9px;letter-spacing:.18em;font-weight:500}
.scene-kicker>span{width:20px;height:1px;background:#9ab190}
.auth-scene h1{font-size:clamp(44px,4vw,58px);font-weight:550;line-height:1.3;letter-spacing:-.045em;margin:24px 0 20px;color:#344e40}
.auth-scene h1>span{color:#839c79;font-weight:450}
.scene-description{font-size:12px;line-height:1.95;color:#8b9986;margin:0;letter-spacing:.035em}
.scene-interaction-hint{display:flex;align-items:center;gap:12px;margin:26px 0 0;color:#6f856c}
.scene-interaction-hint strong{font-size:11px;font-weight:550;letter-spacing:.025em}
.scene-interaction-hint p{font-size:10px;line-height:1.7;color:#9aa58f;margin:4px 0 0}
.interaction-crosshair{position:relative;display:block;width:31px;height:31px;border:1px solid #c4d0bc;border-radius:50%;box-shadow:0 0 0 5px #fff3}
.interaction-crosshair:before,.interaction-crosshair:after{content:"";position:absolute;background:#9ab08f}
.interaction-crosshair:before{width:1px;height:11px;left:14px;top:9px}
.interaction-crosshair:after{width:11px;height:1px;left:9px;top:14px}
.scene-capabilities{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:35px;padding-top:18px;border-top:1px solid #a8b99f30;width:max-content;max-width:100%;font-size:10px;color:#84947c}
.scene-capabilities>span{display:flex;align-items:center;gap:6px}
.scene-capabilities b{font-family:Consolas,monospace;font-weight:400;font-size:8px;color:#abb69f}
.auth-shell--designed>.auth-panel{position:relative;isolation:isolate;min-width:0;padding:25px 29px 24px;border:1px solid #ffffffd9;border-radius:20px;background:linear-gradient(145deg,#fffffff0,#ffffffce);backdrop-filter:blur(18px);box-shadow:0 32px 70px -28px #526e5240,0 8px 24px -12px #4b6b501f,0 1px 0 #fff inset}
.auth-shell--designed>.auth-panel:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,#fff,transparent)}
.auth-shell--designed>.auth-panel:after{content:"";position:absolute;inset:8px -9px -9px 8px;z-index:-2;border:1px solid #ffffff65;border-radius:21px;background:#ffffff13;box-shadow:0 12px 36px #5d795008;pointer-events:none}
.panel-eyebrow{display:flex;justify-content:space-between;align-items:center;color:#a1ad99;font-size:8px;letter-spacing:.2em;margin-bottom:22px}
.panel-eyebrow svg{width:17px;height:17px;color:#99ad8f}
.auth-shell--designed .auth-tabs{border-color:#dce5d78f;border-radius:9px;background:#e9eee666;margin-bottom:26px}
.auth-shell--designed .auth-tabs a{font-size:12px;padding:7px 10px;border-radius:6px;color:#97a28e}
.auth-shell--designed .auth-tabs a[aria-current]{color:#4a694e;box-shadow:0 2px 6px #4560400c,0 0 0 1px #dfe7d7b0}
.auth-shell--designed .auth-tabs a:hover:not([aria-current]){color:#5e795d}
.auth-shell--designed .form-heading h2{font-size:23px;letter-spacing:-.015em;font-weight:550;color:#344e3d}
.auth-shell--designed .auth-subtitle{font-size:11px;color:#96a18e;margin:8px 0 23px}
.auth-shell--designed .auth-field label{font-size:11px;color:#6d7f65}
.auth-shell--designed .auth-field:focus-within label{color:#587b54}
.auth-shell--designed .auth-form{gap:15px}
.auth-shell--designed .auth-input{height:42px;font-size:12px;border-color:#dce5d7;border-radius:7px;background:#fafcf8c4;color:#425b44;box-shadow:0 1px 3px #4f705a03 inset}
.auth-shell--designed .auth-input::placeholder{color:#a4af9d;font-size:12px}
.auth-shell--designed .auth-input:hover{border-color:#b8c9b0}
.auth-shell--designed .auth-input:focus{border-color:#98b38c;box-shadow:0 0 0 3px #a0bf8b16;background:#fff}
.auth-shell--designed .input-wrap>.icon{color:#a1b098}
.auth-shell--designed .input-wrap:focus-within>.icon{color:#78946c}
.auth-shell--designed .password-toggle{color:#97aa8c;height:38px}
.auth-shell--designed .password-toggle:hover{color:#6d8a61;background:#ebf0e7}
.auth-shell--designed .field-hint,.auth-shell--designed .captcha-help small{font-size:10px;color:#9da993}
.auth-shell--designed .field-label-row>span{font-size:9px;color:#9ba990}
.auth-shell--designed .captcha-image{height:42px;border-radius:7px;border-color:#dce5d7;background:#f1f5ed}
.auth-shell--designed .text-button{color:#879d79;font-size:10px}
.auth-shell--designed .remember,.auth-shell--designed .password-help summary{font-size:10px;color:#899b7e}
.auth-shell--designed .remember input{accent-color:#789469}
.auth-shell--designed .password-rule{font-size:10px;color:#8e9f82}
.auth-shell--designed .auth-submit{height:44px;border-radius:8px;border-color:#5d7c50;background:linear-gradient(115deg,#83a374,#638655);color:#fff;font-size:12px;box-shadow:0 7px 15px #6e8a5624,0 1px 0 #ffffff40 inset}
.auth-panel input.is-projectile-shield,.auth-panel button.is-projectile-shield,.auth-tabs a.is-projectile-shield{border-color:#8dd9c9!important;animation:control-shield-impact 1.15s cubic-bezier(.18,.78,.25,1);}
.auth-tabs a.is-projectile-shield{box-shadow:inset 0 0 0 1px #8dd9c9,0 0 10px #80d8c552;}
@keyframes control-shield-impact{0%{filter:drop-shadow(0 0 0 #80d8c500)}18%{filter:drop-shadow(0 0 9px #80d8c5b8)}52%{filter:drop-shadow(0 0 5px #80d8c56e)}100%{filter:drop-shadow(0 0 0 #80d8c500)}}
.auth-shell--designed .auth-submit:hover:not(:disabled){background:linear-gradient(115deg,#8aab79,#6c915c);border-color:#6c8c5b;box-shadow:0 9px 20px #6e8a5630,0 1px 0 #ffffff40 inset}
.auth-shell--designed .auth-foot{border-color:#dfe8d97a;color:#a2ae98;font-size:9px;margin-top:20px;padding-top:16px}
.auth-page:has(.auth-shell--designed) .auth-bottom{position:relative;z-index:5;width:min(1280px,100%);margin-top:auto;padding:0 0 26px;display:flex;justify-content:space-between;color:#99a890;font-size:8px;letter-spacing:.09em}
.auth-bottom i{font-style:normal;margin:0 8px;color:#bbc6b2}
.trajectory-stage{position:fixed;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.auth-page.is-impact-shaking>.field-world,.auth-page.is-impact-shaking>.auth-header,.auth-page.is-impact-shaking>.auth-shell>.auth-panel,.auth-page.is-impact-shaking>.auth-shell>.auth-scene>:not(.mortar-companion),.auth-page.is-impact-shaking>.auth-bottom{animation:page-impact-shake .4s cubic-bezier(.2,.75,.2,1) both;will-change:transform}
@keyframes page-impact-shake{0%,100%{translate:0 0}14%{translate:-.8px .35px}28%{translate:1.15px -.65px}44%{translate:-.75px -.35px}61%{translate:.55px .3px}79%{translate:-.25px .15px}}
.auth-shell--designed .auth-tabs a{overflow:hidden}
.mortar-companion{left:clamp(18px,3.8vw,72px);bottom:64px;width:340px;height:288px;z-index:5;opacity:1}
.mortar-companion:before{content:"";position:absolute;z-index:-1;left:14%;right:3%;bottom:22px;height:42px;border-radius:50%;background:linear-gradient(155deg,#fbfcf0,#dce5d1);border:1px solid #ffffffd6;box-shadow:0 8px 0 #c1d1b8,0 11px 0 #b8c9ae,7px 23px 26px #67836624}
.companion-art{filter:drop-shadow(1px 3px 2px #53745312)}
.companion-caption{font-size:9px;letter-spacing:.06em;margin-top:-7px;color:#819477;text-shadow:0 1px #ffffff9c}
@media(min-width:1600px){.auth-shell--designed{margin-top:100px}.mortar-companion{width:390px;height:330px;bottom:74px;left:6vw}}
@media(max-height:800px) and (min-width:981px){.auth-shell--designed{margin-top:30px;margin-bottom:36px}.auth-page:has(.auth-shell--designed) .auth-header{height:75px}.auth-scene h1{font-size:44px}.mortar-companion{width:250px;height:215px;bottom:45px;left:12px}.scene-capabilities{margin-top:24px}.auth-shell--designed>.auth-panel{padding-top:20px;padding-bottom:20px}.panel-eyebrow{margin-bottom:17px}}
@media(max-width:1100px) and (min-width:981px){.auth-shell--designed{gap:50px;grid-template-columns:minmax(0,1fr) 370px}.auth-scene h1{font-size:44px}.mortar-companion{left:8px;width:270px;height:230px}}
@media(max-width:980px){
 .auth-page:has(.auth-shell--designed){padding:0 26px}
 .auth-page:has(.auth-shell--designed) .auth-header{height:76px;width:min(680px,100%)}
 .auth-shell--designed{width:min(408px,100%);display:flex;flex-direction:column;gap:25px;margin:28px 0 90px}
 .auth-scene{padding:0 4px}
 .auth-scene h1{font-size:32px;line-height:1.4;letter-spacing:-.035em;margin:15px 0 10px}
 .auth-scene h1 br{display:none}.auth-scene h1>span{margin-left:5px}
 .scene-description{font-size:11px}.scene-description br{display:none}
 .scene-kicker{font-size:8px}
 .scene-interaction-hint{margin-top:16px;gap:10px}
 .interaction-crosshair{width:27px;height:27px}
 .interaction-crosshair:before{left:12px;top:7px}.interaction-crosshair:after{left:7px;top:12px}
 .scene-interaction-hint strong{font-size:10px}.scene-interaction-hint p{font-size:9px}
 .scene-capabilities{display:none}
 .auth-shell--designed>.auth-panel{width:100%;padding:25px 29px}
 .terrain-scene{opacity:.65}
 .mortar-companion{width:205px;height:177px;left:0;bottom:26px}
 .mortar-companion:before{bottom:20px;height:25px;box-shadow:0 6px 0 #c1d1b8,0 8px 0 #b8c9ae,5px 15px 20px #6783661c}
 .companion-caption{font-size:8px}
 .auth-page:has(.auth-shell--designed) .auth-bottom{width:min(680px,100%);justify-content:flex-end;padding-bottom:22px}
 .auth-page:has(.auth-shell--designed) .auth-bottom>span:first-child{display:none}
}
@media(max-width:560px){
 .auth-page:has(.auth-shell--designed){padding:0 20px}
 .auth-page:has(.auth-shell--designed) .auth-header{height:68px}
 .auth-page:has(.auth-shell--designed) .brand-mark{width:31px;height:31px;border-radius:8px}
 .auth-page:has(.auth-shell--designed) .brand{font-size:17px}
 .header-note{font-size:8px;gap:6px;letter-spacing:0}.header-index{display:none}
 .auth-shell--designed{margin-top:24px;margin-bottom:138px;gap:22px}
 .auth-scene h1{font-size:27px;margin-top:12px;margin-bottom:8px}
 .scene-description{font-size:10px;line-height:1.8}
 .scene-kicker{font-size:7px;letter-spacing:.13em}
 .scene-interaction-hint{margin-top:13px}
 .scene-interaction-hint strong{font-size:10px}.scene-interaction-hint p{font-size:8px}
 .auth-shell--designed>.auth-panel{padding:22px 21px;border-radius:16px}
 .auth-shell--designed>.auth-panel:after{inset:6px -5px -6px 5px;border-radius:17px}
 .panel-eyebrow{margin-bottom:17px;font-size:7px}
 .auth-shell--designed .auth-tabs{margin-bottom:22px}
 .auth-shell--designed .form-heading h2{font-size:21px}
 .auth-shell--designed .auth-input{font-size:16px}
 .auth-shell--designed .auth-input::placeholder{font-size:12px}
 .auth-shell--designed .auth-form{gap:14px}
 .auth-shell--designed .auth-subtitle{margin-bottom:20px}
 .mortar-companion{width:150px;height:132px;bottom:12px;left:-3px}
 .mortar-companion:before{bottom:21px;height:19px}
 .companion-caption{font-size:7px;margin-top:-7px;letter-spacing:0}
 .auth-page:has(.auth-shell--designed) .auth-bottom{font-size:7px;padding-left:134px;padding-bottom:20px;letter-spacing:.03em}
 .terrain-scene{opacity:.5}
}
@media(prefers-reduced-motion:reduce){.auth-shell--designed *,.mortar-companion *{animation:none!important;transition:none!important}.auth-page.is-impact-shaking>.field-world,.auth-page.is-impact-shaking>.auth-header,.auth-page.is-impact-shaking>.auth-shell>.auth-panel,.auth-page.is-impact-shaking>.auth-shell>.auth-scene>:not(.mortar-companion),.auth-page.is-impact-shaking>.auth-bottom{animation:none!important}}

/* Compact floating access card: denser form rhythm with restrained 3D depth. */
@media(min-width:981px){
 .auth-shell--designed{grid-template-columns:minmax(0,1fr) 356px;gap:clamp(42px,7vw,112px);margin-top:58px}
 .auth-shell--designed>.auth-panel{padding:19px 23px 18px;border-radius:17px;transform:perspective(1200px) rotateY(-2.4deg) rotateX(.7deg) translate3d(0,-6px,18px);transform-origin:50% 45%;box-shadow:20px 34px 72px -31px #3d614a52,0 13px 27px -17px #3354423d,0 1px 0 #fff inset;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
 .auth-shell--designed>.auth-panel:hover,.auth-shell--designed>.auth-panel:focus-within{transform:perspective(1200px) rotateY(-.7deg) rotateX(.2deg) translate3d(0,-10px,23px);box-shadow:18px 42px 84px -32px #31553e5c,0 18px 34px -19px #31513e48,0 1px 0 #fff inset}
 .auth-shell--designed>.auth-panel:after{inset:7px -8px -8px 7px;border-radius:18px;background:linear-gradient(145deg,#ffffff26,#b8ccb514);box-shadow:9px 13px 28px #3d5f4521}
 .panel-eyebrow{margin-bottom:14px}
 .auth-shell--designed .auth-tabs{margin-bottom:17px}
 .auth-shell--designed .form-heading h2{font-size:21px}
 .auth-shell--designed .auth-subtitle{margin:5px 0 15px}
 .auth-shell--designed .auth-form{gap:11px}
 .auth-shell--designed .auth-field{gap:4px}
 .auth-shell--designed .auth-input,.auth-shell--designed .captcha-image{height:38px}
 .auth-shell--designed .auth-submit{height:40px}
 .auth-shell--designed .auth-foot{margin-top:14px;padding-top:12px}
 .auth-shell--designed .captcha-help{margin-top:-1px}
}
@media(max-width:980px){
 .auth-scene{position:relative;min-height:185px;padding-right:190px}
 .auth-scene .mortar-companion{position:absolute;left:auto;right:-5px;bottom:-4px}
}
@media(max-width:560px){
 .auth-shell--designed{margin-bottom:38px;gap:14px}
 .auth-scene{min-height:0;padding-right:0;padding-bottom:105px}
 .auth-scene .mortar-companion{width:132px;height:117px;left:-5px;right:auto;bottom:-1px}
 .auth-shell--designed>.auth-panel{padding:18px 19px 17px}
 .panel-eyebrow{margin-bottom:13px}
 .auth-shell--designed .auth-tabs{margin-bottom:16px}
 .auth-shell--designed .auth-subtitle{margin:5px 0 15px}
 .auth-shell--designed .auth-form{gap:11px}
 .auth-shell--designed .auth-field{gap:4px}
 .auth-shell--designed .auth-input,.auth-shell--designed .captcha-image{height:40px}
 .auth-shell--designed .auth-submit{height:41px}
 .auth-shell--designed .auth-foot{margin-top:14px;padding-top:12px}
 .auth-page:has(.auth-shell--designed) .auth-bottom{padding-left:0;padding-bottom:16px}
}
