/* Warm light reveals a dimensional authentication desk. */
body:not(.jr-unlocked):has(.lamp-stage){background:#080c12;color:#f3f0e9}
#jr-access-screen:has(.lamp-stage){display:block;padding:0}
.lamp-stage{min-height:100dvh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 24% 75%,#151c26 0,transparent 48%),linear-gradient(135deg,#080b10,#10151e);color:#f6f2e8;isolation:isolate;--pull:0px}
.lamp-stage:before{content:'';position:absolute;inset:0;opacity:.12;pointer-events:none;background-image:linear-gradient(#fff2 1px,transparent 1px),linear-gradient(90deg,#fff2 1px,transparent 1px);background-size:75px 75px;mask-image:linear-gradient(transparent,#000)}
.lamp-brand{position:absolute;left:5vw;top:32px;z-index:2;display:flex;gap:13px;align-items:center}.lamp-brand .logo{box-shadow:0 6px 0 #075151,0 12px 25px #11b7a028}.lamp-brand b{font-size:21px}.lamp-brand small{display:block;font-size:9px;letter-spacing:3px;color:#8a969e;margin-top:7px}
.lamp-stage .lamp-layout{position:relative;min-height:100dvh;max-width:1140px;margin:auto;display:grid;grid-template-columns:42% 58%;align-items:center;padding:115px 30px 60px;gap:20px;z-index:1}
.lamp-side{height:580px;position:relative;align-self:center}.lamp-object{position:absolute;width:265px;height:490px;left:50%;top:20px;transform:translateX(-50%)}
.lamp-shade{position:absolute;width:230px;height:115px;top:0;left:17px;z-index:4;clip-path:polygon(22% 0,78% 0,100% 93%,98% 100%,2% 100%,0 93%);background:linear-gradient(100deg,#202730,#535961 25%,#252d37 58%,#111922);box-shadow:inset 0 2px 5px #fff8;transition:background .6s}
.lamp-shade:before{content:'';position:absolute;left:18%;right:18%;top:0;height:5px;border-radius:50%;background:#7b8791}.lamp-shade:after{content:'';position:absolute;left:0;right:0;bottom:0;height:9px;border-radius:50%;background:#0b1019;transition:.5s}
.lamp-stem{position:absolute;width:11px;height:334px;left:125px;top:105px;background:linear-gradient(90deg,#10151b,#75818b 35%,#343f47 70%,#080c12);z-index:3;box-shadow:8px 0 12px #0005}
.lamp-base{position:absolute;width:158px;height:24px;left:52px;top:435px;background:linear-gradient(#78818b,#1c242c 60%);border-radius:50%;box-shadow:0 8px 0 #0a1018,0 20px 22px #0009;z-index:3}
.lamp-bulb{position:absolute;width:32px;height:25px;background:#6b6d66;left:115px;top:102px;border-radius:0 0 50% 50%;z-index:2;transition:.4s}
.lamp-pull{position:absolute;top:107px;left:215px;width:50px;height:calc(120px + var(--pull));z-index:6;background:none;padding:0;touch-action:none;cursor:grab;box-shadow:none!important;transform:none!important}
.lamp-pull:before{content:'';position:absolute;width:2px;top:0;bottom:16px;left:24px;background:linear-gradient(90deg,#a9a184,#5e5849);box-shadow:1px 0 2px #000a}
.lamp-pull:after{content:'';position:absolute;bottom:0;left:19px;width:12px;height:22px;border-radius:8px;background:linear-gradient(90deg,#8f7447,#ffdfa2 45%,#a5834b);box-shadow:0 4px 6px #000a}
.lamp-pull:focus-visible{outline:2px solid #ffe0a0;outline-offset:7px;border-radius:15px}.lamp-pull:active{cursor:grabbing}
.lamp-cone{position:absolute;left:-150px;top:104px;width:560px;height:395px;background:linear-gradient(#ffda843b,#ffdf9e08 95%,transparent);clip-path:polygon(36% 0,66% 0,100% 100%,0 100%);opacity:0;transition:opacity .6s;filter:blur(8px);pointer-events:none;z-index:1}
.lamp-floor{position:absolute;width:460px;height:95px;left:50%;top:460px;transform:translateX(-50%);background:radial-gradient(ellipse,#ffd17b42,transparent 68%);opacity:0;transition:.8s;pointer-events:none}
.lamp-hint{position:absolute;top:515px;text-align:center;width:100%;color:#c9b387;font-size:12px;letter-spacing:.3px;line-height:1.8}.lamp-hint span{display:block;font-size:19px;margin-bottom:6px;color:#f4d69b}
.lamp-intro{text-align:left;max-width:440px;transition:.4s;position:absolute;right:5%;top:40%;width:45%}.lamp-intro .eyebrow{color:#ddbc77;text-transform:uppercase;letter-spacing:3px;font-size:10px}.lamp-intro h1{font-size:44px;line-height:1.3;letter-spacing:-1.4px;margin:20px 0}.lamp-intro p{font-size:14px;line-height:1.9;color:#8e9ba6}.lamp-intro small{display:block;color:#64727e;margin-top:40px;font-size:11px;line-height:1.8}
.lamp-form-area{position:relative;min-width:0;opacity:0;visibility:hidden;transform:perspective(1000px) rotateY(-9deg) translateY(30px) scale(.95);transition:opacity .65s,transform .8s cubic-bezier(.2,.7,.2,1),visibility .65s;filter:drop-shadow(0 22px 25px #0005)}
.lamp-stage.lit .lamp-form-area{opacity:1;visibility:visible;transform:perspective(1000px) rotateY(0) translateY(0) scale(1)}
.lamp-stage.lit .lamp-intro{opacity:0;visibility:hidden;pointer-events:none}.lamp-stage.lit .lamp-shade{background:linear-gradient(100deg,#55452b,#b19b64 25%,#75613e 58%,#322b22)}
.lamp-stage.lit .lamp-shade:after{background:#ffdf8c;box-shadow:0 0 24px #ffca56}.lamp-stage.lit .lamp-bulb{background:#fff0ba;box-shadow:0 0 25px 10px #ffd675c0}.lamp-stage.lit .lamp-cone,.lamp-stage.lit .lamp-floor{opacity:1}.lamp-stage.lit .lamp-hint{opacity:.65}
.lamp-particles{position:absolute;inset:110px -55px 10px;pointer-events:none;opacity:0;transition:opacity .7s}.lit .lamp-particles{opacity:1}.lamp-particles i{position:absolute;width:3px;height:3px;background:#ffdf8c;border-radius:50%;box-shadow:0 0 7px #ffce68;animation:lamp-dust 5s infinite ease-in-out;animation-delay:calc(var(--i) * -.7s);left:calc(8% + var(--i) * 7%);top:calc(15% + var(--i) * 5%)}
@keyframes lamp-dust{0%,100%{transform:translate3d(0,10px,0);opacity:.12}50%{transform:translate3d(14px,-24px,0);opacity:.9}}
#overlay.lamp-inline{position:relative;inset:auto;display:none;padding:0;background:none;backdrop-filter:none;z-index:auto;align-items:initial;justify-content:initial}#overlay.lamp-inline.show{display:block}
.lamp-inline .modal{max-width:460px;width:100%;max-height:none;overflow:visible;padding:32px;background:linear-gradient(145deg,#29323be8,#111a25f5);border:1px solid #d3b67b45;border-top-color:#ffe1a06b;box-shadow:0 12px 0 #070d14,0 18px 40px #0007,inset 0 1px 0 #ffffff12;color:#f6f1e8;border-radius:25px}.lamp-inline .modal>.close{display:none}
.lamp-inline h2{font-size:25px;margin:0 0 25px;color:#fff5dc}.lamp-inline label{color:#b7c0c5;font-size:12px}.lamp-inline input:not([type=checkbox]){background:linear-gradient(145deg,#131c26,#1a2631);box-shadow:inset 3px 3px 8px #050a1099,inset -1px -1px 2px #ffffff0a;border:1px solid #73828f39;color:white;border-radius:13px;min-height:47px;padding:12px}.lamp-inline input:focus{outline:2px solid #f7cf78;outline-offset:2px}.lamp-inline .primary{color:#38290e;background:linear-gradient(135deg,#ffe3a0,#dcb25a);box-shadow:0 5px 0 #997736,0 11px 20px #ffcd6522;border:1px solid #ffebb8}.lamp-inline .secondary{background:#24313e;border-color:#5d6b7544;color:#dce5e8;box-shadow:0 4px 0 #0a141f}.lamp-inline .authlinks{font-size:11px}.lamp-inline .authlinks button{color:#f4d08b}.lamp-inline .helper,.lamp-inline .session-note{color:#92a2ad}.lamp-inline .session-note{margin-bottom:0}
.lamp-stage .lamp-foot{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:1px;color:#63717d}
/* Numeric entry becomes a verification object, then a real success state. */
.otp-card{text-align:center;min-height:390px;padding:6px 0;color:#283a50}.otp-card h2{margin:10px 0 8px!important;color:#24364a!important;font-size:23px}.otp-card .otp-desc{color:#8994a5;font-size:12px;line-height:1.8;word-break:break-word;margin:0 0 28px}.otp-boxes{display:flex;gap:9px;justify-content:center;position:relative;margin:32px 0;perspective:600px}.otp-digit{width:45px!important;min-width:0;max-width:52px;min-height:54px!important;height:54px;padding:0!important;text-align:center;font-size:23px!important;border-radius:13px!important;border:1px solid #dce2ec!important;background:linear-gradient(145deg,#fff,#f0f3f8)!important;box-shadow:4px 5px 10px #bdc7d44a,-3px -3px 8px #fff!important;color:#33445c!important;margin:0!important}.otp-digit:focus{border-color:#9290d2!important;outline:2px solid #cac8f580!important;box-shadow:0 0 18px #a9a4ef4a!important}.otp-digit.filled{border-color:#aaa9cf!important;transform:translateY(-1px)}
.otp-card .otp-submit{width:auto;min-width:180px;font-size:12px}.otp-card .otp-resend{display:block;margin:23px auto 0;background:none;box-shadow:none;color:#807bb0;font-size:11px;padding:8px}.otp-resend:disabled{cursor:default;color:#9aa4b3}.otp-card .otp-error{min-height:28px;font-size:11px;color:#b14d57;line-height:1.8;margin-top:14px}.otp-state{height:175px;display:none;place-items:center;position:relative;margin:12px 0}.otp-spinner{width:75px;height:75px;border:3px solid #e9e7fa;border-top-color:#9185d6;border-bottom-color:#b1a8e4;border-radius:50%;animation:otp-spin 1s linear infinite;box-shadow:0 0 0 7px #eeedfa,0 0 0 11px #f6f5fb}.otp-spinner:after{content:'';position:absolute;inset:14px;border:2px solid #dad4f0;border-radius:50%}
@keyframes otp-spin{to{transform:rotate(360deg)}}
.otp-card.scatter .otp-digit{animation:otp-scatter .6s cubic-bezier(.4,0,.5,1) forwards;animation-delay:calc(var(--digit) * .025s)}
@keyframes otp-scatter{35%{transform:translateY(-10px) scale(1.1)}100%{transform:translate(calc((var(--digit) - 2.5) * 17px),calc((var(--digit) - 2.5) * -12px)) rotate(calc((var(--digit) - 2.5) * 60deg)) scale(.1);opacity:0}}
.otp-card.verifying .otp-boxes,.otp-card.verified .otp-boxes{display:none}.otp-card.verifying .otp-state,.otp-card.verified .otp-state{display:grid}.otp-card.verifying .otp-submit,.otp-card.verified .otp-submit{display:none}.otp-card.verifying .otp-resend,.otp-card.verified .otp-resend{visibility:hidden}
.otp-check{display:none;width:72px;height:72px;background:linear-gradient(145deg,#24d6a6,#12aa7d);border-radius:50%;box-shadow:0 0 0 12px #1fd7a318,0 0 35px 12px #21cb9b55;place-items:center;color:white;font-size:38px;animation:otp-success .5s cubic-bezier(.2,1.6,.6,1)}
.otp-card.verified .otp-spinner{display:none}.otp-card.verified .otp-check{display:grid}.otp-verified-label{display:none;position:absolute;bottom:4px;color:#fff;background:#18b887;border-radius:20px;padding:4px 16px;font-size:9px;letter-spacing:2px;box-shadow:0 3px 7px #16b78a44}.otp-card.verified .otp-verified-label{display:block}.otp-card.verified:after{content:'✦ · ✧ · ✦';color:#3ed5ad;position:absolute;font-size:25px;letter-spacing:17px;left:0;right:0;top:48%;pointer-events:none;animation:otp-confetti .9s ease-out forwards}
@keyframes otp-success{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@keyframes otp-confetti{to{transform:translateY(-65px) scale(1.3);opacity:0}}
.modal:has(.otp-card){position:relative;background:linear-gradient(145deg,#fff,#f2f4fa)!important;border-color:#fff!important;box-shadow:10px 15px 35px #1b2a4533,-5px -5px 20px #ffffff77!important;color:#283a50;transition:border-color .4s,box-shadow .4s}.modal:has(.otp-card.verified){border-color:#9be3cf!important;box-shadow:0 0 35px #19cc9b33,0 15px 30px #1b2a4533!important}.otp-card .jr-icon{display:none!important}.otp-card.shake{animation:otp-shake .3s}@keyframes otp-shake{25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@media(max-width:700px){.lamp-brand{top:21px;left:25px}.lamp-brand .logo{width:40px;height:40px;font-size:23px}.lamp-brand b{font-size:18px}.lamp-brand small{font-size:8px}.lamp-stage .lamp-layout{display:flex;flex-direction:column;padding:93px 20px 62px;gap:0;min-height:100dvh}.lamp-side{width:100%;height:300px;flex:none;transition:height .7s}.lamp-object{transform:translateX(-50%) scale(.57);transform-origin:top center;top:0}.lamp-floor{top:260px;width:300px}.lamp-hint{top:263px;font-size:10px;transition:.4s}.lamp-hint span{font-size:15px;margin:0}.lamp-intro{position:relative;top:auto;right:auto;width:100%;text-align:center;padding:35px 5px 0;max-width:440px}.lamp-intro h1{font-size:32px;margin:15px 0}.lamp-intro p{font-size:12px}.lamp-intro small{margin-top:25px}.lamp-form-area{width:100%;max-width:440px;display:none}.lamp-stage.lit .lamp-form-area{display:block;margin-top:10px}.lamp-stage.lit .lamp-side{height:200px}.lamp-stage.lit .lamp-intro{display:none}.lamp-stage.lit .lamp-hint{top:168px}.lamp-stage.lit .lamp-floor{top:170px}.lamp-stage.lit .lamp-object{transform:translateX(-50%) scale(.36)}.lamp-inline .modal{padding:25px 23px;border-radius:22px}.lamp-inline h2{font-size:22px}.lamp-inline .authlinks button{font-size:10px}.otp-boxes{gap:7px}.otp-digit{height:48px!important;min-height:48px!important;width:39px!important;font-size:21px!important}.otp-card{min-height:350px}.lamp-stage .lamp-foot{position:relative;bottom:auto;padding:0 10px 20px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.lamp-stage *,.otp-card *{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}
#jr-access-screen>.lamp-stage{width:100%;min-width:0;margin:0}
@media(max-width:700px){.lamp-side>.lamp-pull{left:calc(50% + 48px)!important;top:61px!important;height:calc(90px + var(--pull))}.lamp-stage.lit .lamp-side>.lamp-pull{left:calc(50% + 30px)!important;top:38px!important;height:calc(70px + var(--pull))}}

.otp-spinner{position:relative}
