/* V3 additions share the reference palette, typography and gold line language. */
.celestial-face.original-art .celestial-art img{transform:none}
.night-duo img.chibi-avatar{background:none;object-fit:cover;object-position:center 5%;border-radius:50%;height:66px;width:66px}.night-duo img.chibi-avatar.med{object-position:57% 10%}.loading-readers.independent-chibi{display:flex;align-items:flex-end;justify-content:center;width:320px;height:255px}.loading-readers.independent-chibi>img{width:50%;height:100%;object-fit:contain;mask-image:none;border-radius:0}
@media(max-width:700px){.night-duo img.chibi-avatar{width:48px;height:48px}.loading-readers.independent-chibi{width:235px;height:210px}}
.fate-progress{position:absolute;top:92px;left:50%;transform:translateX(-50%);width:min(340px,75vw);z-index:3;color:var(--text-muted);font-family:var(--night-serif,serif)}
.fate-progress ol{position:relative;display:flex;justify-content:space-between;list-style:none;margin:0;padding:0}
.fate-progress ol:before,.fate-progress ol:after{content:"";position:absolute;top:11px;left:9px;right:9px;height:1px;background:#9f81b580;z-index:0}
.fate-progress ol:after{right:auto;width:calc(var(--fate-progress)*.95);background:var(--gold-400);box-shadow:0 0 8px #e3c78e30}
.fate-progress li{position:relative;width:24px;text-align:center;outline:none}
.fate-progress li>span{position:relative;z-index:1;display:block;background:transparent;font-size:17px;line-height:24px;text-shadow:0 0 4px var(--night-900)}
.fate-progress li>span svg{width:13px;height:13px;vertical-align:middle;filter:drop-shadow(0 0 4px #0d0816)}
.fate-progress ol>li.future{color:#927f9c}
.fate-progress:after{content:"✧";position:absolute;top:3px;left:9px;font-size:11px;color:var(--gold-300);text-shadow:0 0 6px #f0d9a4;pointer-events:none;animation:fate-trail 16s ease-in-out infinite;opacity:0}
.fate-progress li.complete{color:var(--gold-700)}
.fate-progress li.current{color:var(--gold-300)}
.fate-progress li.current>span{animation:fate-node-breathe 4s ease-in-out infinite;text-shadow:0 0 12px #f0d9a470}
.fate-progress li small{position:absolute;top:28px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;opacity:0;transition:opacity .2s;letter-spacing:.12em}
.fate-progress li.current small,.fate-progress li:hover small,.fate-progress li:focus small{opacity:1}
.fate-progress li:focus-visible>span{outline:1px solid var(--gold-500);outline-offset:3px;border-radius:50%}
.fate-progress-mobile{display:none}
@keyframes fate-node-breathe{50%{text-shadow:0 0 18px #f0d9a4bb;filter:brightness(1.18)}}
@keyframes fate-trail{10%{opacity:.6}80%{left:calc(100% - 20px);opacity:.6}100%{left:calc(100% - 20px);opacity:0}}
@media(max-width:700px){.fate-progress{top:79px;left:auto;right:22px;transform:none;width:auto}.fate-progress ol,.fate-progress:after{display:none}.fate-progress-mobile{display:block;margin:0;color:var(--gold-400);font-size:12px;letter-spacing:.1em}.fate-progress-mobile span{font-size:10px;color:var(--text-secondary);margin-left:8px}}
@media(prefers-reduced-motion:reduce){.fate-progress li.current>span,.fate-progress:after{animation:none}.fate-progress:after{display:none}.fate-progress li small{transition:none}}
.journey-wheel{position:relative;width:min(610px,100%);aspect-ratio:1;margin:25px auto;color:var(--gold-400)}
.journey-wheel>.fate-astrolabe{position:absolute;inset:8%;width:84%;height:84%;opacity:.45;animation:none}
.journey-illumination{position:absolute;inset:8%;width:84%;height:84%;fill:none;stroke:#786284;stroke-width:1}
.journey-illumination>circle:first-child{stroke:var(--gold-400);stroke-width:1.3;transform:rotate(-90deg);transform-origin:50% 50%;filter:drop-shadow(0 0 4px #e3c78e50)}
.journey-illumination circle.lit{fill:var(--gold-300);stroke:var(--gold-300);filter:drop-shadow(0 0 5px #e3c78e70)}
.journey-heart{position:absolute;inset:30% 20%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse,#160d25cc,transparent 72%)}
.journey-heart>span{font-size:44px;text-shadow:0 0 20px #b69ad8aa}.journey-heart small{color:var(--text-secondary);margin:10px 0}.journey-heart h3{font-size:27px;font-weight:400;margin:7px 0;color:var(--gold-300)}.journey-heart p{font-size:12px;color:var(--text-secondary);line-height:1.7}
.journey-orbit{position:absolute;width:128px;min-height:90px;border:0;background:radial-gradient(ellipse,#160d25e8,transparent 75%);color:var(--gold-300);text-align:center;padding:10px;cursor:pointer}
.journey-orbit>span{display:block;font-size:24px;margin-bottom:8px}.journey-orbit strong{display:block;font-weight:400;font-size:17px}.journey-orbit small{display:block;margin-top:6px;color:var(--text-secondary);font-size:11px}.journey-orbit:focus-visible{outline:1px solid var(--gold-500);border-radius:50%}.journey-orbit:hover{filter:brightness(1.2)}
.orbit-0{left:50%;top:0;transform:translateX(-50%)}.orbit-1{right:-3%;top:42%}.orbit-2{left:50%;bottom:0;transform:translateX(-50%)}.orbit-3{left:-3%;top:42%}
.journey-under{text-align:center;margin:0 auto 30px}.journey-under>p{font-size:17px;color:var(--gold-300);line-height:1.8}.journey-under>p span{display:block;font-size:13px;color:var(--text-secondary)}
.journey-keepers{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:660px;margin:35px auto}.journey-keepers>div{display:flex;align-items:center;gap:16px}.journey-keepers img{width:64px;height:82px;object-fit:cover;object-position:50% 20%;border:1px solid var(--gold-700);border-radius:45%}.journey-keepers p{font-size:13px;color:var(--text-secondary);line-height:1.7}.journey-keepers strong{display:block;color:var(--gold-300);font:21px Georgia,serif;margin-bottom:7px}.journey-keepers span{display:block}.journey-history-title{text-align:center;font-weight:400;color:var(--gold-300);font-size:24px}.journey-storage{font-size:12px!important}
.collection-progress{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px auto 28px}.collection-progress svg{width:48px;height:48px;fill:none;stroke:#78568855;stroke-width:1.2;transform:rotate(-90deg)}.collection-progress svg .lit{stroke:var(--gold-400);filter:drop-shadow(0 0 3px #e3c78e50)}.collection-progress p{color:var(--gold-300);font-size:16px}.collection-progress p small{display:block;color:var(--text-secondary);font-size:12px;margin-top:5px}
.undiscovered-card{text-align:center;min-width:0;color:var(--text-muted)}.undiscovered-card .night-back{height:auto;width:100%;aspect-ratio:300/510;filter:blur(1.2px) saturate(.6);opacity:.65;box-sizing:border-box}.undiscovered-card>small{display:block;font-size:12px;line-height:1.7;padding-top:10px}
.undiscovered-card .night-back{opacity:.58}.undiscovered-card>small{letter-spacing:.06em}
.night-library>button{position:relative;transition:transform .3s,filter .3s}.night-library>button:hover{transform:translateY(-7px);filter:brightness(1.06)}.night-library>button:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff7eb22 49%,transparent 68%);opacity:0;pointer-events:none}.night-library>button:hover:after{opacity:1;animation:collection-light 1.1s ease-out 1}@keyframes collection-light{from{transform:translateX(-50%)}to{transform:translateX(50%)}}
body[data-night-page=tavern] #night-root,body[data-night-page=library] #night-root{background-size:auto,max(100vw,150svh) auto;background-repeat:no-repeat;background-position:center,center top;background-attachment:scroll,fixed}
.night-active #toast{background:#160d25ed;color:var(--gold-300);border:1px solid #d8b87870;font-family:KaiTi,SimSun,serif}
.journey-achievements{max-width:720px;margin:30px auto}.journey-achievement{display:flex;align-items:center;gap:20px;padding:20px 10px;border-bottom:1px solid #d8b87833}.journey-achievement>span{font-size:30px;color:var(--gold-300)}.journey-achievement.unlit{opacity:.45}.journey-achievement h3{font-weight:400;color:var(--gold-300);margin:0 0 6px}.journey-achievement p{font-size:14px;color:var(--text-secondary);margin:0}
@media(max-width:700px){.journey-wheel{margin:20px auto;max-width:420px}.journey-heart{inset:30% 22%}.journey-heart>span{font-size:28px}.journey-heart h3{font-size:20px}.journey-heart p{font-size:10px}.journey-heart small{font-size:10px;margin:5px}.journey-orbit{width:100px;min-height:65px;padding:6px}.journey-orbit strong{font-size:13px}.journey-orbit>span{font-size:18px;margin-bottom:5px}.journey-orbit small{font-size:9px;margin-top:4px}.orbit-1{right:-3%;top:40%}.orbit-3{left:-3%;top:40%}.journey-keepers{gap:16px}.journey-keepers>div{display:block;text-align:center}.journey-keepers img{width:50px;height:66px}.journey-keepers p{font-size:12px}.collection-progress p small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.night-library>button{transition:none}.night-library>button:hover:after{animation:none}}
@media(max-width:480px){.night-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.night-library .celestial-name strong{font-size:9cqw}.night-library .celestial-name small{font-size:3.8cqw}}
.account-page{padding-top:105px;max-width:760px!important}.account-brand{text-align:center;color:var(--gold-300);font-size:30px;letter-spacing:.12em;margin:5px 0 26px}.account-brand em{display:block;font:italic 17px Georgia,serif;letter-spacing:.02em;margin-top:7px}
.night-auth-panel,.night-account-panel{position:relative;max-width:540px;margin:25px auto 20px;padding:36px 45px 38px;border-radius:18px;background:linear-gradient(130deg,#211238c9,#0d0816d9);box-shadow:0 10px 60px #08061166;isolation:isolate}
.night-auth-panel>.gold-frame,.night-account-panel>.gold-frame{z-index:-1}.night-auth-panel h2{font-weight:400;font-size:29px;color:var(--gold-300);text-align:center;margin:14px 0}.night-auth-panel>.night-note{font-size:14px!important;text-align:center;margin-bottom:24px}.account-celestial{height:50px;overflow:hidden;opacity:.5;color:var(--gold-500);text-align:center}.account-celestial svg{width:130px;height:130px;transform:translateY(-41px);animation:none}
#night-auth-form{display:flex;flex-direction:column;gap:10px;position:relative;z-index:4}#night-auth-form>label{font-size:14px;color:var(--text-secondary);margin:4px 0}#night-auth-form>.night-input{background:#0d0816a6;border:1px solid #d8b87870;border-radius:9px;color:var(--text-primary);padding:12px 16px;width:100%;box-sizing:border-box;min-height:48px;font-family:inherit;font-size:16px}#night-auth-form>.night-input:focus{outline:1px solid var(--gold-400);box-shadow:0 0 14px #b69ad833}#night-auth-form .auth-remember{display:flex;gap:8px;align-items:center;font-size:12px}.auth-remember input{accent-color:var(--violet-500)}#night-auth-form>.night-btn.primary{display:block;width:100%;margin-top:6px;min-height:52px;clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%);border-radius:0}#night-auth-message{font-size:13px;line-height:1.7;color:var(--gold-300);min-height:23px;margin:3px 0}
.auth-other{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}.auth-other .night-btn{background:none;border:0;font-size:12px;color:var(--text-secondary);padding:6px 10px;min-height:40px}.auth-other .night-btn:before,.auth-other .night-btn:after{display:none}.auth-local-note{font-size:13px;line-height:1.8;color:var(--text-secondary);text-align:center}.night-auth-panel>.night-btn{display:block;margin:25px auto}.account-wheel{width:180px;height:180px;margin:0 auto 20px;color:var(--gold-400)}.account-wheel svg{animation:none}.night-account-panel>.night-note{font-size:14px!important}.night-account-panel .night-actions{flex-wrap:wrap;gap:12px}.night-account-panel .night-btn{font-size:14px}.journey-legacy-history{max-width:760px;margin:30px auto}.journey-legacy-history summary{color:var(--gold-300);cursor:pointer;line-height:1.7}.journey-legacy-history small{font-size:12px;color:var(--text-secondary)}
.auth-welcomed .account-celestial{opacity:.9;filter:drop-shadow(0 0 10px #d8b87880);transition:opacity .5s,filter .5s}
.night-auth-panel{padding-top:28px;padding-bottom:30px}.account-celestial{height:62px}.account-celestial svg{width:120px;height:120px;transform:translateY(-23px)}
.journey-heart h3{letter-spacing:.05em}.journey-wheel>.fate-astrolabe{opacity:.57}.journey-orbit>strong{letter-spacing:.04em}.journey-keepers{padding-top:20px;border-top:1px solid #d8b87833}
body[data-night-page=account] #night-root{background-size:auto,max(100vw,150svh) auto;background-repeat:no-repeat;background-position:center,center top;background-attachment:scroll,fixed}
body[data-night-page=account-history] #night-root{background-size:auto,max(100vw,150svh) auto;background-repeat:no-repeat;background-position:center,center top;background-attachment:scroll,fixed}
/* Dedicated landscape composition keeps both full heads visible on desktop. */
@media(min-width:701px){.night-art{background-image:url('/assets/web/hd-v8/hero-1536.webp');background-position:center 18%}}
@media(max-width:700px){.account-page{padding-top:95px}.account-brand{font-size:26px;margin-bottom:18px}.night-auth-panel,.night-account-panel{padding:25px 27px 28px;margin-top:18px}.night-auth-panel h2{font-size:25px}.night-auth-panel>.night-note{font-size:12px!important}.account-wheel{width:140px;height:140px}.auth-other{gap:4px;margin-top:14px}}
