:root{color-scheme:dark;--gold:#ecd194;--ink:#251332;--cream:#fff2d8;--muted:#d8c6db}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:radial-gradient(ellipse at 40% 0,#51315e,#1c102a 60%);color:var(--cream);font:15px/1.65 Georgia,serif}a{color:var(--gold)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;padding:11px 18px;border:1px solid #b8995e;border-radius:24px;background:#3a2347;color:var(--cream);text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}.gold{border:1px solid #ffebba;background:linear-gradient(135deg,#fff0c3,#d9aa55,#f1d48f);color:#311b36;font-weight:bold;box-shadow:0 4px 18px #0e051c66}button:hover:not(:disabled),a.button:hover{filter:brightness(1.1)}:focus-visible{outline:3px solid #ffe4a0;outline-offset:4px}[hidden]{display:none!important}.top{max-width:1240px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px}.seal{font-size:10px;letter-spacing:.16em}.top a{text-decoration:none}main{max-width:1240px;margin:auto;padding:0 24px}.hero{min-height:330px;position:relative;display:flex;align-items:flex-end;justify-content:center;text-align:center;padding:55px 24px 30px;background:linear-gradient(transparent,#211029eb),url('../assets/gateway/royal-sanctuary.webp') center 30%/cover;border:1px solid #c9a869;border-radius:24px;overflow:hidden}.hero h1{font-size:clamp(34px,5vw,58px);line-height:1.15;margin:10px 0;color:#ffe2a2;font-weight:normal;text-wrap:balance}.hero p{margin:8px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--gold);margin:0 0 10px}.panel{padding:28px;border:1px solid #9d7c50;border-radius:20px;background:linear-gradient(145deg,#392143e8,#251530f0);box-shadow:0 10px 30px #12071944;min-width:0}h2{font-size:25px;font-weight:normal;color:var(--gold);line-height:1.25;margin:0 0 18px}h3{font-size:18px;color:#f4d99b;font-weight:normal;margin:0 0 8px}.login{max-width:620px;margin:28px auto}label{display:block;margin:14px 0 6px;color:#f7e4bc}input,select,textarea{display:block;width:100%;border:1px solid #b29465;background:#fff7e8;color:#311e3c;border-radius:9px;padding:11px 12px;max-width:100%}form button{margin-top:17px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.small{font:13px/1.65 system-ui,sans-serif;color:var(--muted)}.preview-link{display:inline-block;margin-top:14px}.status:not(:empty){padding:14px 18px;border:1px solid #d9b56c;border-radius:12px;background:#37213d;white-space:pre-wrap}.status.error{border-color:#e59688;color:#ffded7}.sample{padding:15px 20px;margin:24px 0;border:1px dashed #e3c27d;color:#fff0c8;font:13px/1.6 system-ui,sans-serif}.welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 20px}.welcome h2{margin:0}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 24px}.tabs a{padding:8px 13px;border:1px solid #90724f;border-radius:22px;text-decoration:none;font-size:13px}.tabs a:hover{background:#51345e}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.wide{grid-column:1/-1}.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.record{border:1px solid #795c47;border-radius:13px;padding:18px;margin:12px 0;background:#23142f55}.record p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.badge{display:inline-block;padding:3px 10px;background:#5a3a61;border-radius:14px;color:#f6d99c;font:11px/1.6 system-ui,sans-serif}.numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.number{padding:14px;border:1px solid #8b6c4a;border-radius:12px}.number span{display:block;font-size:12px;color:var(--muted)}.number strong{display:block;font-size:26px;font-weight:normal;color:#ffe3a3;overflow-wrap:anywhere}.loshu{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-width:220px;margin:14px auto}.loshu span{min-height:42px;padding:6px;border:1px solid #ad8c53;text-align:center;font-size:20px}details{margin-top:20px;border-top:1px solid #795c47;padding-top:16px}summary{cursor:pointer;color:#f1d69d}.timeline .record{position:relative;border-left:3px solid #d1ad68;margin-left:12px}.connect{display:flex;justify-content:space-between;align-items:center;gap:24px}.connect h2{margin-bottom:6px}footer{text-align:center;color:#bda8c4;font:12px/1.7 system-ui,sans-serif;padding:40px 20px}.empty{padding:18px 0;color:#d7c3d9;font-style:italic}.admin-box{margin:24px 0;padding:22px;border:1px solid #b99556;border-radius:18px}.admin-box h2{color:#ecd194}.admin-box label{display:block}.admin-box input,.admin-box select,.admin-box textarea{width:100%;padding:10px;background:#fff7e8;color:#311e3c}.admin-box button{margin:14px 8px 0 0}.admin-box .status{white-space:pre-wrap}.admin-box details{margin:18px 0}.admin-box [hidden]{display:none!important}@media(max-width:700px){main{padding:0 14px}.top{padding:16px 14px}.seal{display:none}.hero{min-height:280px;padding:35px 12px 20px}.hero h1{font-size:36px}.panel{padding:22px 18px}.dashboard-grid{grid-template-columns:1fr}.wide{grid-column:auto}.welcome,.connect{align-items:flex-start;flex-direction:column}.form-row{grid-template-columns:1fr;gap:0}.tabs{gap:7px}.tabs a{font-size:12px}.record-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Royal Sanctuary interior — Journey pages only. The gateway and backend are untouched. */
html{min-height:100%;background:#24102f}
body{min-height:100dvh;position:relative;isolation:isolate;background:transparent;color:#fff1d4;font-size:16px}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:#2b1436 url('../assets/gateway/royal-sanctuary.webp') center top/cover no-repeat;pointer-events:none}
body:after{content:"";position:fixed;inset:12px;z-index:-1;border:1px solid #e8ca85;border-radius:28px;box-shadow:inset 0 0 65px #250b3e80,0 0 0 11px #1d092b35;background:linear-gradient(180deg,#2910370d,#28103128 40%,#1c0b25a6);pointer-events:none}
.top{max-width:1460px;padding:27px 38px;position:relative;z-index:1;text-shadow:0 2px 8px #16061d}.top a{font-size:15px}.seal{font-size:11px;letter-spacing:.19em}
main{width:min(92%,1320px);max-width:1320px;padding:0 12px;position:relative;z-index:1}
.hero{min-height:205px;padding:35px 20px 25px;background:none;border:0;box-shadow:none;border-radius:0;overflow:visible;align-items:center}
.hero>div{padding:16px 28px;border-radius:25px;background:radial-gradient(ellipse,#271033a6,transparent 75%);text-shadow:0 2px 10px #1e052c,0 1px 3px #1e052c}
.hero h1{font-size:clamp(38px,4.7vw,68px);color:#ffe4aa;letter-spacing:.015em}.hero p{font-size:17px}.hero .eyebrow{font-size:11px;letter-spacing:.23em;color:#ffe5b1}
.panel{position:relative;border:2px solid #d7b46a;border-radius:22px;background:linear-gradient(145deg,#fffaf2f7,#f7ead2f5);color:#412744;box-shadow:0 15px 40px #1c062d66,inset 0 0 0 5px #fff6df,inset 0 0 0 6px #d2b77d55;min-width:0;padding:30px;}
.panel:before,.panel:after{content:"✧";position:absolute;color:#b38a3b;font-size:26px;line-height:1;pointer-events:none}.panel:before{top:10px;left:12px}.panel:after{bottom:10px;right:12px}
.panel h2{color:#512e59;font-size:28px;text-wrap:balance}.panel h3{color:#61426b}.panel .eyebrow{color:#896327;font-size:11px;letter-spacing:.13em}.panel label{color:#51344e}.panel .small{color:#755c71}.panel p{line-height:1.7}.panel a{color:#6c4820}.panel .empty{color:#755d77}
.login{max-width:650px;margin:12px auto 42px;padding:38px 40px 34px;box-shadow:0 18px 60px #18062099,0 0 32px #edc67530,inset 0 0 0 5px #fff6df,inset 0 0 0 6px #d2b77d66}
.login h2{font-size:33px;margin-bottom:16px}.login .preview-link{font-size:15px;display:inline-block;text-underline-offset:4px;margin-top:16px}.login>.small{font-size:13px}
input,select,textarea{color-scheme:light;border:1px solid #bda070;background:#fffef9;color:#382040;border-radius:12px;padding:12px 14px;font-size:16px;box-shadow:inset 0 2px 4px #48244709}
.panel button{background:linear-gradient(145deg,#f6e6be,#e9ce91);color:#442747;border:1px solid #ba9247}.panel .gold,.gold{color:#3e2244;background:linear-gradient(120deg,#fff0be,#dfb75e 55%,#f3d696);border:1px solid #c99d47;box-shadow:0 5px 15px #5d3b4b20}
.status:not(:empty){max-width:820px;margin:15px auto;background:#2f163eeb;color:#fff0cf;border-color:#d9b56c;box-shadow:0 6px 24px #19072055}.status.error{color:#ffe0d7}.sample{background:#2d143ee8;box-shadow:0 5px 20px #1b082b44;border:1px dashed #e3c27d;border-radius:12px}
.welcome{padding:24px 30px;border:1px solid #d6b365;border-radius:20px;background:linear-gradient(120deg,#30123fe8,#532b61d9);box-shadow:0 10px 24px #1c072f55}.welcome h2{font-size:31px;color:#ffe3a0}.welcome .eyebrow{font-size:11px}.welcome button{background:#fff3d4;color:#492a51}
.tabs{justify-content:center;gap:10px;margin:22px 0 28px;padding:16px;border:1px solid #cfa85f;border-radius:20px;background:#31133de8;box-shadow:0 8px 24px #1e062e55}.tabs a{background:linear-gradient(145deg,#fff8e7,#edd9a9);border-color:#d5b06a;color:#4d2c52;font-weight:bold;padding:10px 16px;font-size:14px}.tabs a:hover{background:#fff4cf;color:#35213f}
.dashboard-grid{gap:26px;align-items:start}.panel.wide{align-self:stretch}.record{background:linear-gradient(120deg,#fffdf7,#f2e6d1);border-color:#d6be8c;box-shadow:0 3px 9px #6d4a7110}.record h3{font-size:20px}.record p{color:#5a3b5e}.badge{background:#e8d3a7;color:#543253}.number{background:linear-gradient(135deg,#fffdf4,#f2e1bd);border-color:#d4b477;box-shadow:0 2px 5px #a68a4d18}.number span{color:#6b516e;font-size:13px}.number strong{color:#633d69;font-size:30px}.loshu span{background:#fff9e9;color:#5a3264;border-color:#c6a05d}.panel summary{color:#795225;font-weight:bold}.panel details{border-color:#d6bd91}.timeline .record{border-left:3px solid #b18a3f}.connect{background:linear-gradient(115deg,#fff9e9,#f3dfb1)}
footer{color:#ffebc5;text-shadow:0 2px 6px #1b062b;font-size:13px;padding:25px 20px 40px}
@media(min-width:1600px){.hero{min-height:245px}.login{margin-top:24px}}
@media(max-width:700px){body:before{background-position:center top;background-size:auto 100dvh}body:after{inset:7px;border-radius:18px}.top{padding:22px 22px}.top a{font-size:14px}main{width:94%;padding:0 5px}.hero{min-height:190px;padding:20px 0 15px}.hero>div{padding:12px 8px}.hero h1{font-size:39px}.hero p{font-size:15px}.hero .eyebrow{font-size:10px}.panel{padding:26px 21px}.login{margin:10px auto 28px;padding:31px 25px}.login h2{font-size:29px}.dashboard-grid{gap:20px}.welcome{padding:22px}.welcome h2{font-size:27px}.tabs{padding:12px 8px;gap:8px}.tabs a{padding:8px 11px;font-size:12px}.panel h2{font-size:26px}input,select,textarea{font-size:16px}.numbers{gap:9px}.number{padding:12px}.number span{font-size:12px}.connect{gap:15px}}


#dll-royal-floral-layer,#dll-golden-cursor-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:8;contain:layout style paint}
#dll-golden-cursor-layer{z-index:9999}
.dll-flower{position:absolute;left:0;top:0;width:var(--flower-size);height:var(--flower-size);opacity:0;filter:drop-shadow(0 0 5px var(--flower-glow));animation:dll-floral-drift var(--flower-time) linear var(--flower-delay) infinite;will-change:transform,opacity}
.dll-flower svg{width:100%;height:100%;display:block}
.dll-flower:after{content:'';position:absolute;width:3px;height:3px;left:75%;top:18%;border-radius:50%;background:#fffaf0;box-shadow:0 0 5px 2px #fff7e7a8;animation:dll-floral-glimmer 2.9s ease-in-out infinite alternate}
@keyframes dll-floral-glimmer{0%,55%{opacity:0;transform:scale(.4)}85%{opacity:.85;transform:scale(1.1)}100%{opacity:0;transform:scale(.3)}}
@keyframes dll-floral-drift{0%{transform:translate3d(var(--start-x),110vh,0) rotate(-18deg);opacity:0}8%{opacity:.75}50%{transform:translate3d(var(--mid-x),48vh,0) rotate(15deg);opacity:.85}92%{opacity:.7}100%{transform:translate3d(var(--end-x),-12vh,0) rotate(-10deg);opacity:0}}
.dll-gold-mote{position:absolute;width:var(--mote-size);height:var(--mote-size);border-radius:50%;background:#ffe8a2;box-shadow:0 0 5px #ffcf65,0 0 10px #f6b83c;animation:dll-gold-fade 680ms ease-out forwards;will-change:transform,opacity}
@keyframes dll-gold-fade{from{opacity:.9;transform:translate3d(0,0,0) scale(1)}to{opacity:0;transform:translate3d(var(--dx),var(--dy),0) scale(.2)}}
@media(max-width:700px){.dll-flower{opacity:.7}}
@media(prefers-reduced-motion:reduce){#dll-royal-floral-layer,#dll-golden-cursor-layer{display:none!important}}

/* Requested refinements: compact lower login; transparent welcome/nav; balanced panel rows. */
#loginArea.login{max-width:550px;padding:24px 28px 22px;margin:clamp(90px,16vh,160px) auto 32px;border-radius:19px}
#loginArea .eyebrow{font-size:10px;margin:0 0 6px}
#loginArea h2{font-size:27px;margin:0 0 10px}
#loginArea>p:not(.eyebrow){font-size:14px;line-height:1.5;margin:8px 0 12px}
#loginArea label{font-size:14px;margin:9px 0 4px}
#loginArea input,#loginArea select{padding:9px 11px;font-size:15px;border-radius:9px;min-height:40px}
#loginArea button{font-size:14px;padding:9px 17px;margin-top:12px}
#loginArea>.small{font-size:11px;line-height:1.45;margin:12px 0 8px}
#loginArea .preview-link{font-size:13px;margin-top:5px}
.welcome,.tabs{background:transparent;border:0;box-shadow:none;border-radius:0}
.welcome{padding:14px 5px;margin:22px 0 8px;text-shadow:0 2px 8px #1d082b,0 1px 3px #1d082b}
.welcome h2{font-size:30px}.welcome .eyebrow{margin-bottom:7px}
.tabs{padding:9px 0;margin:8px 0 24px;gap:9px}
.tabs a{padding:9px 14px;font-size:13px;box-shadow:0 3px 10px #1e092e33}
.dashboard-grid{gap:22px;align-items:stretch}
.dashboard-grid>.panel{padding:25px 26px}
.dashboard-grid>.panel h2{font-size:25px;margin-bottom:12px}
.dashboard-grid>.panel .eyebrow{margin-bottom:8px}
.dashboard-grid>.panel>p{margin-top:8px;margin-bottom:12px}
#profileForm label{margin:10px 0 5px;font-size:14px}
#profileForm input,#profileForm select{padding:10px 12px;font-size:15px}
#profileForm button{margin-top:12px}
#blueprintContent .numbers{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#blueprintContent .number{padding:10px 11px}
#blueprintContent .number span{font-size:11px;line-height:1.4;min-height:31px}
#blueprintContent .number strong{font-size:25px;line-height:1.3}
#blueprintContent>h3{text-align:center;margin:14px 0 6px;font-size:18px}
#blueprintContent .loshu{max-width:150px;gap:4px;margin:6px auto 9px}
#blueprintContent .loshu span{min-height:31px;font-size:18px;padding:2px;line-height:1.4}
#blueprintContent>p.small{font-size:12px;line-height:1.5;margin:6px 0}
.record{padding:15px 17px;margin:10px 0}.record h3{font-size:18px}.record p{margin:7px 0}
#milestoneList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#milestoneList .record{margin:0;min-width:0}.connect p{margin-bottom:0}
@media(max-width:1050px){#blueprintContent .numbers{grid-template-columns:repeat(2,minmax(0,1fr))}#milestoneList{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#loginArea.login{max-width:510px;padding:22px 22px 20px;margin-top:75px}#loginArea h2{font-size:26px}#loginArea input,#loginArea select{font-size:16px}.welcome{padding:10px 0}.welcome h2{font-size:27px}.tabs{gap:7px;padding:6px 0;margin-bottom:20px}.tabs a{font-size:12px;padding:8px 11px}.dashboard-grid{gap:20px}.dashboard-grid>.panel{padding:24px 21px}#blueprintContent .numbers{grid-template-columns:repeat(3,minmax(0,1fr))}#blueprintContent .number{padding:10px 7px}#blueprintContent .number span{font-size:10px}#blueprintContent .number strong{font-size:23px}#milestoneList{grid-template-columns:1fr}}
@media(max-width:370px){#blueprintContent .numbers{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep sample refresh legible while its action remains disabled. */
#refreshDashboard:disabled{opacity:1;background:#fff0cf;color:#45244f;cursor:default}
