@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=IBM+Plex+Sans:wght@300;400;500&family=IBM+Plex+Mono:wght@400&family=Noto+Sans+SC:wght@300;400;500&family=Noto+Serif+SC:wght@300;400;500&display=swap";:root{--canvas:#181c25;--canvas-elevated:#1f2330;--canvas-sunken:#12151c;--surface:#242836;--surface-hover:#2b2f3d;--surface-active:#323644;--text-primary:#e8e4df;--text-secondary:#9a968f;--text-tertiary:#6b675f;--text-on-accent:#181c25;--accent:#d4a574;--accent-hover:#e0b88a;--accent-muted:#d4a57426;--accent-glow:#d4a57414;--border:#e8e4df14;--border-strong:#e8e4df26;--border-accent:#d4a5744d;--success:#7ab88f;--danger:#c47272;--font-display:"Cormorant Garamond", "Noto Serif SC", Georgia, serif;--font-body:"IBM Plex Sans", "Noto Sans SC", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--ease:cubic-bezier(.4, 0, .2, 1);--duration-fast:.2s;--duration-normal:.35s;--duration-slow:.5s;--duration-glacial:1s;--room-tint:#d4a57408}[data-room=日子]{--room-tint:#d4a57408}[data-room=印记]{--room-tint:#dab4640d}[data-room=书房]{--room-tint:#82a0c80a}[data-room=悄悄话]{--room-tint:#c88c960d}[data-room=梗]{--room-tint:#d4a5740f}[data-room=雨后]{--room-tint:#8cb4aa0a}[data-room=画廊]{--room-tint:#00000008}[data-room=信]{--room-tint:#dcc8a00d}[data-room=光影]{--room-tint:#a08cc80a}[data-room=歌]{--room-tint:#6482be0d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);letter-spacing:.01em;color:var(--text-primary);background-color:var(--canvas);min-height:100vh;font-weight:400;line-height:1.75;overflow-x:hidden}#root{min-height:100vh;position:relative}#root:before{content:"";background:var(--room-tint);pointer-events:none;z-index:0;transition:background var(--duration-glacial) var(--ease);position:fixed;inset:0}#root>*{z-index:1;position:relative}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);font-weight:300;line-height:1.25}h1{font-size:2rem}h2{font-size:1.5rem;font-weight:400;line-height:1.3}h3{font-size:1.125rem;font-family:var(--font-body);letter-spacing:.01em;font-weight:500;line-height:1.4}p{margin-bottom:var(--space-6);line-height:1.8}a{color:var(--accent);transition:color var(--duration-fast) var(--ease);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}::selection{background:var(--accent-muted);color:var(--text-primary)}.page-enter{opacity:0;transform:translateY(8px)}.page-active{opacity:1;transition:opacity var(--duration-slow) var(--ease), transform var(--duration-slow) var(--ease);transform:translateY(0)}.mono{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.05em;font-size:.8125rem}.login{opacity:0;min-height:100vh;transition:opacity var(--duration-glacial) var(--ease);justify-content:center;align-items:center;display:flex}.login--visible{opacity:1}.login__center{padding:var(--space-6);flex-direction:column;align-items:center;display:flex}.login__logo{width:120px;height:120px;color:var(--accent);margin-bottom:var(--space-16);animation:4s ease-in-out infinite glow}.login__logo svg{width:100%;height:100%}@keyframes glow{0%,to{filter:drop-shadow(0 0 15px #d4a57426)}50%{filter:drop-shadow(0 0 35px #d4a57459)}}.login__verse{font-family:var(--font-display);color:var(--text-secondary);margin-bottom:var(--space-12);letter-spacing:.05em;font-size:1rem;font-style:italic;font-weight:300}.login__form{flex-direction:column;align-items:center;width:280px;display:flex}.login__input{border:none;border-bottom:1px solid var(--border-strong);width:100%;padding:var(--space-3) 0;font-family:var(--font-body);color:var(--text-primary);text-align:center;letter-spacing:.1em;transition:border-color var(--duration-normal) var(--ease);background:0 0;outline:none;font-size:1rem}.login__input:focus{border-bottom-color:var(--accent)}.login__input::placeholder{color:var(--text-tertiary);letter-spacing:.15em;font-style:italic}.login__input--shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.login__button{margin-top:var(--space-8);padding:var(--space-3) var(--space-8);background:var(--accent);color:var(--text-on-accent);font-family:var(--font-body);letter-spacing:.06em;cursor:pointer;transition:background var(--duration-normal) var(--ease);border:none;border-radius:4px;font-size:.875rem;font-weight:500}.login__button:hover{background:var(--accent-hover)}.home{max-width:720px;padding:var(--space-16) var(--space-6);opacity:0;transition:opacity var(--duration-slow) var(--ease), transform var(--duration-slow) var(--ease);margin:0 auto;transform:translateY(8px)}.home--visible{opacity:1;transform:translateY(0)}.home__header{margin-bottom:var(--space-16)}.home__title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:2rem;font-weight:300}.home__rooms{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=639px){.home__rooms{grid-template-columns:1fr}}.room-card{align-items:flex-start;gap:var(--space-2);padding:var(--space-5) var(--space-6);border:1px solid var(--border);cursor:pointer;text-align:left;transition:border-color var(--duration-normal) var(--ease), box-shadow var(--duration-normal) var(--ease);opacity:0;animation:room-in var(--duration-slow) var(--ease) forwards;background:0 0;border-radius:6px;flex-direction:column;display:flex}@keyframes room-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.room-card:hover{border-color:var(--border-accent);box-shadow:0 0 20px var(--accent-glow)}.room-card__name{font-family:var(--font-display);color:var(--text-primary);transition:color var(--duration-fast) var(--ease);font-size:1.125rem;font-weight:400}.room-card:hover .room-card__name{color:var(--accent)}.room-card__desc{font-family:var(--font-body);color:var(--text-tertiary);font-size:.8125rem;line-height:1.4}
