/* Scoped to the login gate; authenticated screens and password reset retain their styles. */
#authGate.jh-login{display:block;padding:0;overflow:auto;background:#171e20;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
#authGate.jh-login::before,#authGate.jh-login::after{display:none}
#authGate.jh-login *{box-sizing:border-box}
.jh-filter{position:absolute;pointer-events:none}
.jh-login-page{width:100%;height:100svh;min-height:780px;position:relative;overflow:hidden}
.jh-ambient{position:absolute;inset:-30px;background:center/cover no-repeat;filter:blur(26px);opacity:.26}
.jh-shade{position:absolute;inset:0;background:linear-gradient(90deg,#131c2030 20%,#111a2055 60%,#111a20 85%)}
.jh-header{position:absolute;top:39px;left:4%;right:4%;z-index:4;display:flex;align-items:center;justify-content:space-between}
.jh-brand{display:flex;gap:14px;align-items:center;color:#f4f0e8}
.jh-brand>img{width:68px;height:49px;object-fit:contain;filter:url(#jh-brand-dark)}
.jh-brand>span{display:flex;flex-direction:column;gap:8px}
.jh-brand strong{font-family:"Songti SC","STSong",serif;font-weight:900;font-size:29px;letter-spacing:5px;line-height:1}
.jh-brand small{font-size:8px;letter-spacing:3.4px;font-weight:400;color:#c2bdb4;line-height:1}
.jh-platform{font-size:12px;letter-spacing:3px;color:#ffffff80}
.jh-visual{position:absolute;left:3%;top:125px;bottom:178px;width:65%;display:flex;align-items:center;justify-content:center}
.jh-crop{position:relative;overflow:hidden;border-radius:8px;flex:none}
.jh-crop .jh-photo{position:absolute;max-width:none;height:auto;display:block}
.jh-story{position:absolute;left:4%;bottom:38px;z-index:3}
.jh-eyebrow{font-size:11px;color:#ddcbb6;letter-spacing:3px;margin-bottom:12px}
#authGate.jh-login .jh-story h2{color:#fff;font-size:36px;letter-spacing:3px;margin:0 0 10px;font-weight:500;line-height:1.3}
#authGate.jh-login .jh-story p{font-size:14px;color:#ffffffaa;margin:0}
.jh-controls{display:flex;align-items:center;gap:15px;margin-top:13px}
.jh-dots{display:flex;gap:0}
.jh-dots button,.jh-pause{border:0;background:transparent;cursor:pointer;height:28px;min-width:24px;padding:0;color:#ffffff99;font-size:12px}
.jh-dots button::after{content:"";display:block;margin:auto;width:6px;height:6px;border-radius:6px;background:#ffffff55}
.jh-dots button[aria-pressed="true"]{width:34px}
.jh-dots button[aria-pressed="true"]::after{width:27px;background:#fff}
.jh-controls button:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:4px}
.jh-form-slot{position:absolute;right:4%;top:50%;transform:translateY(-50%);width:27%;max-width:430px;min-width:330px}
#authGate.jh-login .auth-card{width:100%;display:flex;flex-direction:column;gap:0;background:#faf8f4;color:#242626;border:0;border-radius:18px;padding:40px 34px;box-shadow:0 25px 90px #0002;margin:0}
#authGate.jh-login .auth-card h1{font-size:27px;letter-spacing:1px;margin:0 0 12px;font-weight:600;color:#242626;line-height:1.35}
#authGate.jh-login .auth-card h1+p{font-size:14px;color:#8a8279;margin:0 0 28px}
#authGate.jh-login .auth-card label{display:grid;gap:10px;font-size:13px;color:#333430;font-weight:500;margin-bottom:22px}
#authGate.jh-login .auth-card input,#authGate.jh-login .auth-card select{width:100%;height:49px;padding:0 12px;border:1px solid #dad6cf;border-radius:7px;background:#ffffff90;color:#333;font:inherit;font-size:14px}
#authGate.jh-login .auth-card input:focus,#authGate.jh-login .auth-card select:focus{outline:2px solid #b6222640;border-color:#b62226}
#authGate.jh-login .auth-card .auth-message{font-size:12px;min-height:0;margin:0 0 13px;line-height:1.6}
#authGate.jh-login .auth-card .auth-message:empty{display:none}
#authGate.jh-login .auth-card .primary-button{height:49px;min-height:49px;width:100%;border:0;border-radius:7px;color:#fff;background:#b72026;box-shadow:none;font-size:16px;letter-spacing:2px;cursor:pointer}
#authGate.jh-login .auth-card .primary-button:disabled{opacity:.5;cursor:wait}
#authGate.jh-login .auth-card .secondary-button{margin-top:12px}
#authGate.jh-login .auth-card .secondary-button[hidden]{display:none}
#authGate.jh-login .auth-card .jh-culture{font-size:11px;color:#91887e;text-align:center;border-top:1px solid #e6e1d8;padding-top:22px;margin:26px 0 15px;line-height:1.8}
#authGate.jh-login .auth-card>small{font-size:11px;color:#91887e;line-height:1.8;text-align:center}
#authGate.jh-login .auth-filing{font-size:10px;color:#a2988c;align-self:center;margin-top:13px}
.jh-footer{position:absolute;right:4%;bottom:28px;font-size:10px;color:#ffffff55;letter-spacing:1px}
@media(min-width:701px) and (max-width:1100px){.jh-visual{width:57%}.jh-form-slot{right:3%;width:34%;min-width:290px}#authGate.jh-login .auth-card{padding:30px 25px}#authGate.jh-login .jh-story h2{font-size:29px}}
@media(max-width:700px){
 .jh-login-page{min-height:100svh;height:auto;padding-top:408px;background:#1e292c}
 .jh-ambient{height:365px;filter:blur(15px);opacity:1;background-color:#1e292c}
 .jh-shade{height:380px;background:#15212540}
 .jh-header{top:22px;left:22px;right:22px}.jh-brand{gap:10px}.jh-brand>img{width:45px;height:34px}.jh-brand>span{gap:6px}.jh-brand strong{font-size:21px;letter-spacing:3px}.jh-brand small{font-size:6.5px;letter-spacing:2px}.jh-platform{font-size:8px;letter-spacing:.5px;color:#e3ded3aa}
 .jh-visual{left:0;top:78px;width:100%;height:278px;bottom:auto}.jh-crop{border-radius:0}
 .jh-story{left:0;top:337px;bottom:auto;width:100%;height:87px;padding:13px 24px 16px;background:#1e292c}.jh-eyebrow,#authGate.jh-login .jh-story p{display:none}#authGate.jh-login .jh-story h2{font-size:19px;letter-spacing:2px;margin:0;line-height:1.4}.jh-controls{margin-top:4px;gap:9px}.jh-dots button,.jh-pause{height:26px;min-width:22px}.jh-dots button::after{width:5px;height:5px}.jh-dots button[aria-pressed="true"]::after{width:19px}
 .jh-form-slot{position:relative;left:0;right:auto;top:0;transform:none;max-width:none;min-width:0;width:100%;z-index:5}
 #authGate.jh-login .auth-card{border-radius:20px 20px 0 0;box-shadow:none;padding:25px 26px max(25px,env(safe-area-inset-bottom));min-height:calc(100svh - 408px)}
 #authGate.jh-login .auth-card h1{font-size:25px;margin-bottom:7px}#authGate.jh-login .auth-card h1+p{font-size:12px;margin-bottom:23px}#authGate.jh-login .auth-card label{margin-bottom:17px;gap:7px;font-size:12px}#authGate.jh-login .auth-card input,#authGate.jh-login .auth-card select{height:46px;font-size:16px}#authGate.jh-login .auth-card .primary-button{height:47px;min-height:47px}#authGate.jh-login .auth-card .jh-culture{margin-top:22px;padding-top:15px;font-size:10px}#authGate.jh-login .auth-card>small{font-size:10px}.jh-footer{display:none}
}

/* Confirmed workspace brand: transparent red/white emblem, no blue tile. */
.sidebar .brand .brand-mark{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:36px;background:transparent;box-shadow:none;border:0;border-radius:0;padding:0}
.sidebar .brand .brand-mark img{display:block;width:46px;height:36px;max-width:none;object-fit:contain;filter:url(#jh-workspace-brand-dark)}

/* Culture-led composition: city hero, two fixed mottos, small team memories at the bottom. */
.jh-login-page{min-height:780px;background:#0f1c31}
.jh-city-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;pointer-events:none}
.jh-city-shade{position:absolute;inset:0;background:linear-gradient(90deg,#09162624 15%,#09162600 55%,#09162640),linear-gradient(0deg,#091626cc,transparent 30%);pointer-events:none}
.jh-manifesto{position:absolute;left:5%;top:26%;width:57%;color:#f4f1e9}
#authGate.jh-login .jh-manifesto-label{font-size:12px;font-weight:400;letter-spacing:3px;color:#c9c7c0;margin:0 0 27px;line-height:1.5}
#authGate.jh-login .jh-manifesto h2{margin:0;font-family:"Songti SC","STSong",serif;font-size:clamp(46px,5.7vw,92px);font-weight:600;letter-spacing:4px;line-height:1.5;color:#f7f3eb}
.jh-manifesto h2 span{display:block;white-space:nowrap}
.jh-manifesto-rule{width:48px;height:2px;background:#c54243;margin:30px 0 23px}
#authGate.jh-login .jh-team-motto{margin:0;color:#ded6c7;font-size:25px;font-weight:400;letter-spacing:4px;line-height:1.6}
.jh-form-slot{top:48%}
.jh-memories{position:absolute;bottom:29px;left:5%;display:flex;align-items:center;gap:24px;z-index:2}
.jh-memories-label{font-size:12px;letter-spacing:2px;color:#dedbd5;line-height:1.6}
.jh-memories-label small{display:block;font-size:9px;color:#ffffff66;letter-spacing:1px;margin-top:5px}
.jh-memory-list{display:flex;gap:12px}.jh-memory{margin:0;width:92px}
.jh-memory-frame{width:92px;height:57px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:3px;background:#ffffff08}
.jh-memory-crop{position:relative;overflow:hidden;flex:none}
.jh-memory-crop img{position:absolute;height:auto;max-width:none;display:block;filter:saturate(.75) brightness(.95)}
.jh-memory figcaption{font-size:9px;color:#b6bac1;letter-spacing:1px;text-align:center;margin-top:6px}
@media(min-width:701px) and (max-width:1100px){.jh-manifesto{left:4%;width:55%;top:24%}#authGate.jh-login .jh-manifesto h2{font-size:clamp(40px,5.4vw,60px);letter-spacing:2px}#authGate.jh-login .jh-team-motto{font-size:20px;letter-spacing:2px}.jh-memories{left:4%;gap:16px}.jh-memories-label small{max-width:90px}.jh-memory,.jh-memory-frame{width:76px}.jh-memory-frame{height:48px}.jh-memory-list{gap:8px}}
@media(max-width:700px){
 .jh-login-page{height:auto;min-height:100svh;padding-top:330px;background:#0f1c31}
 .jh-city-image{height:365px;object-position:65% bottom}
 .jh-city-shade{height:365px;background:linear-gradient(0deg,#0f1c3130,transparent 50%)}
 .jh-manifesto{position:absolute;left:26px;top:106px;width:calc(100% - 52px)}
 #authGate.jh-login .jh-manifesto-label{font-size:9px;letter-spacing:1.8px;margin-bottom:15px}
 #authGate.jh-login .jh-manifesto h2{font-size:38px;letter-spacing:3px;line-height:1.45}
 .jh-manifesto-rule{width:28px;margin:16px 0 12px}
 #authGate.jh-login .jh-team-motto{font-size:16px;letter-spacing:2px;line-height:1.4}
 .jh-form-slot{top:0}
 #authGate.jh-login .auth-card{min-height:0;padding-bottom:25px}
 .jh-memories{position:relative;left:auto;bottom:auto;display:flex;flex-direction:column;gap:12px;padding:21px 24px 24px;background:#0f1c31}
 .jh-memories-label{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px}.jh-memories-label small{margin:0;font-size:8px}
 .jh-memory-list{width:100%;justify-content:space-between;gap:12px}.jh-memory{width:calc((100% - 24px)/3)}.jh-memory-frame{width:100%;height:57px}
}
@media(max-width:360px){#authGate.jh-login .jh-manifesto h2{font-size:35px}}

/* All seven memories remain small; narrow screens can swipe the strip. */
.jh-memories{max-width:90%}.jh-memories-label{flex-shrink:0}
.jh-memory-list{min-width:0;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:#ffffff30 transparent}
.jh-memory{flex:0 0 92px}.jh-memory-list:focus-visible{outline:1px solid #ded6c7;outline-offset:5px}
@media(min-width:701px) and (max-width:1100px){.jh-memory{flex-basis:76px}}
@media(max-width:700px){.jh-memories{max-width:none}.jh-memory-list{justify-content:flex-start}.jh-memory{flex:0 0 96px;width:96px}.jh-manifesto-rule{margin-top:12px;margin-bottom:10px}}
