#hub{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;border:0;border-radius:0;background:transparent;isolation:isolate}#hub::backdrop{background:transparent}.hub-backdrop{position:absolute;inset:0;z-index:-1;background:#ad7d4d url('assets/hub-room-clean.png') center/cover no-repeat}.hub-back{position:absolute;left:2.8%;top:3%;background:#fff1d9;border:1px solid #c99a6b;border-radius:25px;padding:11px 21px;font-size:14px}.hub-heading{position:absolute;top:7%;left:29%;right:17%;display:block;text-align:center;color:#4f2913}.hub-heading h2{font:600 clamp(28px,3.1vw,54px)/1.5 "Songti SC",SimSun,serif;letter-spacing:.04em;margin:0;white-space:nowrap}.hub-heading h2:focus{outline:0}.hub-heading p{font:clamp(15px,1.65vw,27px)/1.7 "Songti SC",SimSun,serif;letter-spacing:.08em;margin:4px 0 0}.hub-entry{position:absolute;display:block;text-align:left;border:1px solid #9d6336;border-radius:30px;background:#fff2dceF;padding:14px 22px;color:#4e2915;transition:transform .2s,background .2s;min-height:88px}.hub-entry:hover{background:#fff9ee;transform:translateY(-5px)}.hub-entry strong{display:flex;align-items:center;justify-content:space-between;gap:20px;font:600 clamp(19px,1.85vw,31px)/1.4 "Songti SC",SimSun,serif;white-space:nowrap}.hub-entry strong span{font:34px/1 serif;font-weight:400}.hub-entry small{display:block;font-size:clamp(12px,1.15vw,18px);line-height:1.7;margin-top:4px;white-space:nowrap}.hub-books{left:5.4%;top:25%;width:15%}.hub-talk{left:33.6%;top:27.2%;width:16%}.hub-cards{left:56.8%;top:29.8%;width:18%}.hub-records{right:3.4%;top:29.4%;width:14%}.hub-snapshot{position:absolute;left:2.5%;bottom:5.5%;width:clamp(145px,12vw,220px);padding:10px;border:1px solid #bc8d5e;border-radius:18px;background:#fff3df;color:#5d3019;text-align:center;transition:transform .2s}.hub-snapshot:hover{transform:translateY(-4px);background:#fff9ed}.hub-snapshot img{display:block;width:100%;aspect-ratio:1.7;object-fit:cover;background:#e9caa0;border-radius:9px}.hub-snapshot span{display:block;font-size:clamp(12px,1.15vw,18px);margin-top:9px;white-space:nowrap}.hub-status{position:absolute;right:18px;bottom:14px;color:#624025;background:#fff2dcdd;padding:5px 9px;border-radius:8px;font-size:11px}.hub-status:empty{display:none}#hubFlight{position:fixed;pointer-events:none;z-index:1000;padding:5px;background:#fff1d9;border:1px solid #c49a70;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #3a1d1230}#hubFlight[hidden]{display:none}#hubFlight img{width:100%;height:100%;object-fit:contain;display:block}.hub-entering .hub-backdrop{animation:hub-fade-in .8s ease both}.hub-entering .hub-entry{animation:hub-entrance .5s ease both;animation-delay:.35s}.hub-entering .hub-talk{animation-delay:.45s}.hub-entering .hub-cards{animation-delay:.55s}.hub-entering .hub-records{animation-delay:.65s}.hub-entering .hub-heading{animation:hub-entrance .7s ease both;animation-delay:.2s}.hub-entering .hub-snapshot{visibility:hidden}@keyframes hub-fade-in{from{opacity:0}to{opacity:1}}@keyframes hub-entrance{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
#hubModule{width:min(760px,94vw);max-height:90dvh;background:#fff5e5;border:1px solid #c49b70;color:#523016;border-radius:18px;padding:24px;overflow:auto}#hubModule::backdrop{background:#4027198c}#hubModule>header{position:sticky;top:-24px;background:#fff5e5;margin:-24px -24px 18px;padding:20px 24px 14px;z-index:1;border-bottom:1px solid #e6cbaa}#hubModuleTitle{font-size:27px}#closeHubModule{white-space:nowrap;font-size:13px}.room-intro{font-size:15px;line-height:1.9}.room-muted{font-size:12px;color:#8b6e50;line-height:1.8}.room-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.room-actions button{background:#f7e8cf;border:1px solid #c59c6b;border-radius:20px;padding:9px 14px;font-size:14px}.room-actions button:hover{background:#ebd6b3}.room-primary{background:#8b5935!important;color:white!important}.reading-people{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reading-person{background:#fff9ed;border:1px solid #dfbf95;border-radius:12px;text-align:left;padding:18px;cursor:pointer}.reading-person img{display:block;width:88px;height:88px;object-fit:contain;margin-bottom:10px}.reading-person strong{display:block;font-family:"Songti SC",SimSun,serif;font-size:23px}.reading-person span{display:block;font-size:13px;line-height:1.8;margin-top:7px}.reading-log{max-height:42dvh;overflow:auto;margin-top:16px}.reading-line{padding:12px 0;border-bottom:1px solid #ecdcc6;line-height:1.9;font-size:15px;white-space:pre-wrap}.reading-line.me{margin-left:18%;background:#edddc4;padding:10px 14px;border-radius:12px;border:0}.reading-line small{display:block;color:#967452;font-size:11px}.reflection-result{border:1px solid #dec09a;border-radius:12px;padding:20px;margin:18px 0;background:#fff9ee}.reflection-result h3{font:600 30px/1.5 "Songti SC",SimSun,serif;margin:0 0 10px}.reflection-symbol{font-size:40px;color:#a57b45;display:block;margin-bottom:10px}.reflection-result p{font-size:15px;line-height:1.95}.reflection-result .room-muted{font-size:12px}.record-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.record-card{border:1px solid #ddbc92;background:#fff9ec;border-radius:12px;padding:12px;text-align:left}.record-card img{width:100%;aspect-ratio:1.7;object-fit:cover;border-radius:8px;display:block;background:#edcfab}.record-card strong{display:block;font:600 18px/1.7 "Songti SC",SimSun,serif;margin-top:8px}.record-card small{display:block;font-size:12px;color:#8b6c4e;line-height:1.9}.record-picture{display:block;width:100%;max-height:340px;object-fit:contain;border:1px solid #e1c49e;border-radius:12px;background:#f0dab9}.room-empty{padding:28px 8px;line-height:2;color:#826447}.room-message{font-size:14px;line-height:1.9;padding:12px 0;border-bottom:1px solid #ead7bd;white-space:pre-wrap}.room-message strong{font-size:11px;display:block;color:#987858}.room-field{display:block;width:100%;min-height:82px;border:1px solid #c6a177;border-radius:9px;background:#fffaf2;font:14px/1.8 inherit;padding:12px;color:#523016}.room-note-status{font-size:13px;color:#6c7040;min-height:20px;margin-top:10px}
@media(max-width:1100px) and (min-width:701px){.hub-entry{padding:10px 14px;min-height:75px;border-radius:22px}.hub-entry strong{font-size:20px;gap:9px}.hub-entry small{font-size:12px;white-space:normal}.hub-books{left:3%;width:20%}.hub-talk{left:29%;width:21%}.hub-cards{left:53%;width:24%}.hub-records{right:2%;width:19%}.hub-heading{left:26%;right:8%}.hub-heading h2{font-size:32px}}
@media(max-width:700px){#hub{overflow-y:auto}.hub-backdrop{position:fixed;background-position:48% center}.hub-back{top:16px;left:16px;padding:8px 14px;font-size:12px}.hub-heading{top:13%;left:16px;right:16px}.hub-heading h2{font-size:clamp(25px,6.6vw,31px);white-space:normal}.hub-heading p{font-size:15px;letter-spacing:.03em;margin-top:10px}.hub-entries{position:absolute;top:34%;left:16px;right:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.hub-entry{position:relative;inset:auto;width:auto;min-height:114px;padding:14px 15px;border-radius:20px;background:#fff2dcee}.hub-entry strong{font-size:21px;gap:5px;white-space:normal}.hub-entry strong span{font-size:26px}.hub-entry small{font-size:12px;white-space:normal;line-height:1.7}.hub-cards strong{font-size:19px}.hub-snapshot{bottom:3%;left:16px;width:150px;padding:8px;border-radius:14px}.hub-snapshot span{font-size:12px;margin-top:6px}.hub-status{bottom:18px;right:10px;max-width:170px;font-size:10px}.reading-people,.record-list{grid-template-columns:1fr}.reading-person{display:grid;grid-template-columns:70px 1fr;column-gap:12px;padding:14px}.reading-person img{width:70px;height:70px;grid-row:1/3;margin:0}.reading-person strong{font-size:21px}.reading-person span{font-size:12px;margin-top:0}#hubModule{padding:18px}#hubModule>header{top:-18px;margin:-18px -18px 14px;padding:16px 18px}#hubModuleTitle{font-size:24px}#closeHubModule{font-size:12px;padding:8px}.room-actions button{font-size:13px}}
@media(max-height:650px) and (min-width:701px){.hub-heading{top:5%}.hub-heading h2{font-size:34px}.hub-heading p{font-size:18px}.hub-entry{top:31%;min-height:70px;padding:9px 16px}.hub-entry strong{font-size:23px}.hub-entry small{font-size:12px}.hub-snapshot{width:140px;bottom:4%}}
@media(prefers-reduced-motion:reduce){.hub-entering .hub-backdrop,.hub-entering .hub-entry,.hub-entering .hub-heading{animation:none}.hub-entry,.hub-snapshot{transition:none}}
