:root{--card: rgba(255, 255, 255, .78);--ink: #1f372a;--muted: #5f7a6b;--accent: #477056;--accent-strong: #335a44;--danger: #af4545}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--ink);background:#edf4e8}a{color:inherit}.site-shell{--shell-bg-image: none;--shell-texture-image: none;--shell-tint: rgba(244, 252, 240, .66);position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:24px;isolation:isolate}.site-shell:before{content:"";position:absolute;inset:0;z-index:-3;background-image:var(--shell-bg-image);background-size:cover;background-position:center;transform:scale(1.05)}.site-shell:after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 22% 14%,rgba(172,215,166,.34),transparent 34%),radial-gradient(circle at 82% 86%,rgba(117,167,130,.33),transparent 40%),var(--shell-tint)}.glow{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35;z-index:-1}.glow-left{width:260px;height:260px;top:8%;left:-40px;background:#9cc795}.glow-right{width:320px;height:320px;bottom:-120px;right:-80px;background:#6e9780}.card{position:relative;z-index:1;width:min(680px,100%);padding:42px 28px;border-radius:26px;background:var(--card);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 18px 48px #36523e2b;border:1px solid rgba(255,255,255,.42);overflow:hidden}.card:before{content:"";position:absolute;inset:0;background-image:var(--shell-texture-image);opacity:.42;pointer-events:none;z-index:-1}.card-large{width:min(1020px,100%)}.welcome-card{text-align:center}.hub-card,.page-card{text-align:left}.welcome-atmosphere{position:absolute;inset:0;pointer-events:none}.spark{position:absolute;border-radius:999px;background:linear-gradient(90deg,#71a2790d,#58886642,#71a2790d);filter:blur(.2px)}.spark-a{width:180px;height:6px;top:26px;right:14px;transform:rotate(-12deg)}.spark-b{width:130px;height:5px;top:72px;left:6px;transform:rotate(8deg)}.spark-c{width:110px;height:5px;bottom:18px;right:16px;transform:rotate(-9deg)}.brand{display:inline-flex;align-items:center;gap:10px}.brand-logo{width:42px;height:42px;flex:none}.tag{margin:0;font-size:14px;letter-spacing:.08em;color:var(--muted)}h1{margin:12px 0 16px;font-size:clamp(34px,4.8vw,50px);line-height:1.15}.desc{margin:0 auto;max-width:34ch;font-size:clamp(16px,2.8vw,18px);line-height:1.75;color:var(--muted)}.pass-form{margin-top:26px;display:grid;gap:12px;justify-items:center}.pass-input{width:min(420px,100%);border:1px solid rgba(51,90,68,.22);border-radius:999px;background:#ffffffeb;padding:11px 16px;font-size:16px;outline:none;color:var(--ink)}.pass-input:focus{border-color:#335a4499;box-shadow:0 0 0 3px #57866726}.btn{border:0;border-radius:999px;padding:12px 28px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(130deg,var(--accent),var(--accent-strong));box-shadow:0 8px 20px #416c5152;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px #416c5161}.mini-btn{padding:10px 14px;font-size:14px}.hint{margin:10px 0 0;color:var(--muted);font-size:14px}.error{margin:12px 0 0;color:var(--danger);font-size:14px}.hub-title{margin:12px 0 10px;font-size:clamp(30px,4vw,42px);line-height:1.2}.hub-desc{margin:0;max-width:56ch;font-size:16px;line-height:1.72;color:var(--muted)}.module-grid{margin-top:22px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));position:relative;z-index:2}.module-card{border:1px solid rgba(51,90,68,.16);border-radius:16px;background:#ffffffd6;padding:14px;text-decoration:none;display:grid;gap:5px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.module-card:hover{transform:translateY(-1px);border-color:#3c6c4a66;box-shadow:0 10px 18px #3555401f}.module-icon{font-size:18px}.module-type{font-size:12px;color:var(--muted)}.module-name{font-size:17px;font-weight:700}.module-slogan{font-size:13px;line-height:1.55;color:var(--muted)}.module-state{margin-top:4px;display:inline-flex;width:fit-content;padding:3px 8px;border-radius:999px;background:#4d7b591f;color:#2f5b41;font-size:12px;font-weight:700}.module-state.locked{background:#99785224;color:#785436}.falling-layer{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.falling-item{position:absolute;top:-70px;width:var(--drop-size);height:var(--drop-size);animation:falling var(--drop-duration) linear forwards}.falling-emoji,.falling-image{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 4px 7px rgba(0,0,0,.12))}.falling-emoji{font-size:var(--drop-size);line-height:1}.secret-corner{position:absolute;right:10px;bottom:8px;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:#355f4938;font-size:16px;cursor:pointer;z-index:3}.secret-corner:hover{color:#355f499e}.drop-manager{margin-top:16px;border:1px solid rgba(51,90,68,.16);border-radius:14px;padding:14px;background:#fafff8e0;position:relative;z-index:3}.drop-manager h2{margin:0;font-size:18px}.drop-manager p{margin:6px 0 0;color:var(--muted);font-size:13px}.drop-controls{margin-top:12px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.drop-input,.drop-file{width:100%;border-radius:10px;border:1px solid rgba(51,90,68,.23);padding:9px 10px;background:#fff;font-size:14px}.custom-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}.custom-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid rgba(51,90,68,.15);border-radius:10px;padding:8px 10px;background:#ffffffd9}.custom-list button{border:0;border-radius:8px;padding:6px 8px;background:#f2dfdc;color:#7f3f38;cursor:pointer}.lock-tip{margin:12px 0 0;color:#6b4c37;font-size:13px;position:relative;z-index:3}@keyframes falling{0%{transform:translateZ(0) rotate(0);opacity:0}8%{opacity:.95}to{transform:translate3d(var(--drop-drift),calc(100vh + 120px),0) rotate(var(--drop-spin));opacity:0}}.page-head h1{margin-bottom:10px}.page-head p{margin:0;color:var(--muted);font-size:16px}.directory-list{margin-top:18px;display:grid;gap:10px}.page-nav{margin-top:14px;display:flex;flex-wrap:wrap;gap:14px}.directory-item{border:1px solid rgba(51,90,68,.14);border-radius:14px;padding:13px;display:grid;gap:4px;text-decoration:none;background:#f7fbf6e0;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.directory-item:hover{border-color:#3d694966;box-shadow:0 8px 16px #3c5c461a;transform:translateY(-1px)}.entry-label{font-size:12px;color:var(--muted)}.entry-status{justify-self:start;margin-top:2px;display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700}.entry-status.open{background:#4d7b5924;color:#2f5b41}.entry-status.locked{background:#99785224;color:#785436}.inline-link{display:inline-block;font-size:14px;color:#2f5b41;text-decoration:none}.inline-link:hover{text-decoration:underline}.locked-block{margin-top:18px;border:1px solid rgba(153,120,82,.22);border-radius:14px;background:#fff8f0cc;padding:16px}.locked-block h2{margin:0;font-size:26px}.locked-block p{margin:8px 0 0;color:#76553d}.list-wrap{margin-top:14px;width:100%;overflow:auto;border:1px solid rgba(51,90,68,.14);border-radius:12px;background:#ffffffb3}.playlist{width:100%;border-collapse:collapse;min-width:620px}.playlist th,.playlist td{padding:10px 12px;border-bottom:1px solid rgba(51,90,68,.12);text-align:left;font-size:14px}.playlist th{background:#8db09033;position:sticky;top:0}.playlist tbody tr:nth-child(2n){background:#74987b12}.playlist tbody tr:last-child td{border-bottom:0}.route-fade-enter-active,.route-fade-leave-active,.route-slide-left-enter-active,.route-slide-left-leave-active,.route-slide-right-enter-active,.route-slide-right-leave-active{transition:opacity .26s ease,transform .28s ease}.route-fade-enter-from,.route-fade-leave-to{opacity:0}.route-slide-left-enter-from,.route-slide-right-leave-to{opacity:0;transform:translate(24px) scale(.995)}.route-slide-left-leave-to,.route-slide-right-enter-from{opacity:0;transform:translate(-24px) scale(.995)}@media(max-width:760px){.card{padding:34px 20px;border-radius:22px}.desc{line-height:1.65}.drop-controls{grid-template-columns:1fr}}
