:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#effaf5;background:#0b0f11;font-synthesis:none;letter-spacing:0;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0b0f11}button,a{color:inherit;font:inherit}button{border:0;cursor:pointer}#scene{position:fixed;inset:0;z-index:0;width:100%;height:100%;display:block}.surface-noise{pointer-events:none;position:fixed;inset:0;z-index:1;opacity:.26;background-image:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.03) 1px,transparent 1px),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 1px,transparent 5px);background-size:64px 64px,64px 64px,auto;mix-blend-mode:screen}.hud{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:76px;padding:18px clamp(18px,5vw,72px);pointer-events:none}.brand,nav,.guide,.section-back,.room-card,.project-card,.blog-workspace,.timeline-workspace,.timeline-editor,.timeline-add,.progress-rail{pointer-events:auto}.brand{display:inline-flex;align-items:baseline;gap:8px;color:#effaf5;font-weight:950;text-decoration:none}.brand span{color:#2bd4bd}.brand strong{color:#effaf5b3;font-size:.82rem;text-transform:uppercase}nav{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(239,250,245,.16);border-radius:999px;background:#0b0f118f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}nav button{min-height:34px;padding:0 13px;border-radius:999px;background:transparent;color:#effaf5b8;font-size:.9rem;font-weight:850;transition:color .18s ease,background .18s ease,transform .18s ease}nav button:hover,nav button:focus-visible,nav button.is-active{color:#071111;background:#2bd4bd;transform:translateY(-1px)}.guide{position:fixed;left:clamp(18px,5.8vw,88px);bottom:clamp(30px,7vh,74px);z-index:4;width:min(560px,calc(100vw - 36px));transition:opacity .24s ease,transform .24s ease}body.in-room .guide{opacity:0;transform:translateY(18px);pointer-events:none}.section-back{position:fixed;left:clamp(18px,5vw,72px);top:92px;z-index:8;min-height:42px;border:1px solid rgba(239,250,245,.18);border-radius:8px;background:#080c0db8;color:#effaf5;padding:0 15px;font-weight:950;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,background .18s ease}.section-back.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.section-back:hover,.section-back:focus-visible{background:#2bd4bd;color:#071111}.eyebrow{width:fit-content;margin:0 0 15px;padding:8px 11px;border:1px solid rgba(43,212,189,.38);border-radius:999px;background:#2bd4bd1a;color:#82f7e4;font-size:.78rem;font-weight:950;text-transform:uppercase}h1,h2,p{overflow-wrap:anywhere;text-shadow:0 4px 24px rgba(0,0,0,.76)}h1,h2{max-width:10ch;margin:0;color:#f8fff9;font-weight:950;line-height:.98;letter-spacing:0}h1{font-size:clamp(3rem,6.5vw,6.2rem)}h2{font-size:clamp(2.3rem,5.2vw,4.8rem)}p{max-width:620px;margin:20px 0 0;color:#effaf5c2;font-size:clamp(1rem,1.55vw,1.22rem);line-height:1.76}.room-card{position:fixed;right:clamp(18px,5.4vw,78px);bottom:clamp(26px,7vh,74px);z-index:6;width:min(440px,calc(100vw - 36px));padding:22px;border:1px solid rgba(239,250,245,.16);border-radius:8px;background:linear-gradient(145deg,#effaf524,#effaf50f),#080c0db3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}body.in-room .room-card{opacity:1;transform:translateY(0);pointer-events:auto}.room-card h2{max-width:8.5ch;font-size:clamp(2.1rem,4.4vw,3.8rem)}.room-card button{min-height:44px;margin-top:22px;padding:0 18px;border-radius:999px;background:#f26a3d;color:#071111;font-weight:950}.project-card{position:fixed;right:clamp(18px,5.2vw,76px);bottom:clamp(26px,7vh,74px);z-index:7;width:min(410px,calc(100vw - 36px));display:grid;gap:16px;padding:22px;border:1px solid rgba(239,250,245,.2);border-radius:8px;background:linear-gradient(145deg,#effaf524,#effaf50f),#080c0dd1;box-shadow:0 20px 58px #0000005c;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}.project-card.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.project-card h2{max-width:none;font-size:clamp(2.25rem,5vw,4.2rem)}.project-card p:not(.eyebrow){margin-top:12px;color:#effaf5c7;font-size:1rem;line-height:1.68}.project-card-tags{display:flex;flex-wrap:wrap;gap:8px}.project-card-tags span{min-height:30px;display:inline-flex;align-items:center;border:1px solid rgba(43,212,189,.3);border-radius:999px;background:#2bd4bd1a;color:#a8f1df;padding:0 10px;font-size:.82rem;font-weight:850}.project-card-actions{display:flex;gap:10px}.project-primary,.project-secondary{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0 14px;font-weight:900;text-decoration:none}.project-primary{flex:1;background:#2bd4bd;color:#071111}.project-secondary{border:1px solid rgba(239,250,245,.18);background:#effaf514;color:#effaf5}.blog-workspace{position:fixed;right:clamp(18px,4vw,56px);bottom:clamp(22px,5vh,54px);z-index:7;width:min(720px,calc(100vw - 36px));max-height:min(720px,calc(100vh - 128px));display:grid;grid-template-rows:auto auto minmax(0,1fr);border:1px solid rgba(218,232,228,.72);border-radius:8px;background:#fffdf8;color:#202124;box-shadow:0 18px 50px #00000047;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}.blog-workspace.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.blog-workspace .eyebrow{margin-bottom:4px;border:0;background:transparent;color:#0f766e;padding:0}.blog-workspace h2{max-width:none;color:#202124;font-size:clamp(1.75rem,3.4vw,3.1rem)}.blog-workspace-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid #ded8cc}.blog-status{min-height:34px;margin:0;padding:9px 18px;border-bottom:1px solid #ded8cc;color:#0f766e;background:#f2fbf8;font-size:.9rem;font-weight:800;line-height:1.45;text-shadow:none}.blog-status[hidden],.blog-status:empty{display:none}.blog-status[data-tone=success]{color:#0f766e;background:#edfdf7}.blog-status[data-tone=warn]{color:#9a5d00;background:#fff8e7}.blog-status[data-tone=error]{color:#b42318;background:#fff1f0}.blog-workspace-actions,.blog-editor-actions{display:flex;align-items:center;gap:8px}.blog-primary,.blog-secondary,.blog-post-card button{min-height:40px;border:1px solid #ded8cc;border-radius:8px;padding:0 13px;font-weight:850}.blog-primary{border-color:#0f766e;background:#0f766e;color:#fff}.blog-secondary,.blog-post-card button{background:#fff;color:#202124}.blog-workspace-body{min-height:0;display:grid;grid-template-columns:minmax(190px,.78fr) minmax(0,1.22fr);gap:14px;padding:16px;overflow:hidden}.blog-post-list{min-height:280px;display:grid;align-content:start;gap:10px;overflow:auto;padding-right:4px}.blog-empty-state,.blog-post-card,.blog-editor-card{border:1px solid #ded8cc;border-radius:8px;background:#fff}.blog-empty-state{padding:16px;color:#6d6a64;line-height:1.6}.blog-post-card{display:grid;gap:8px;padding:12px}.blog-post-card.is-active{border-color:#0f766e;background:#f2fbf8}.blog-post-card h3{margin:0;color:#202124;font-size:1rem;line-height:1.25}.blog-post-card p{margin:0;color:#6d6a64;font-size:.9rem;line-height:1.48;text-shadow:none}.blog-post-meta{display:flex;flex-wrap:wrap;gap:8px;color:#0f766e;font-size:.78rem;font-weight:800}.blog-editor-card{min-height:0;display:grid;gap:12px;align-content:start;padding:14px;overflow:auto}.blog-editor-card[hidden]{display:none}.blog-editor-time{width:fit-content;border:1px solid #ded8cc;border-radius:999px;background:#f8f5ee;color:#0f766e;padding:7px 10px;font-size:.82rem;font-weight:850}.blog-field{display:grid;gap:6px;color:#3f3d38;font-size:.86rem;font-weight:800}.blog-field input,.blog-field textarea{width:100%;border:1px solid #ded8cc;border-radius:8px;background:#fff;color:#202124;padding:12px;outline-color:#0f766e}.blog-field textarea{min-height:210px;resize:vertical;line-height:1.65}.blog-dropzone{min-height:116px;display:grid;place-items:center;align-content:center;gap:6px;border:2px dashed #9bbeb7;border-radius:8px;background:#f7fffc;color:#202124;cursor:pointer;text-align:center;padding:16px}.blog-dropzone input{display:none}.blog-dropzone span,.blog-file-queue{color:#6d6a64;font-size:.88rem}.blog-dropzone.is-dragging{border-color:#0f766e;background:#e8f8f3}.blog-file-queue{display:grid;gap:6px}.blog-file-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #ded8cc;border-radius:8px;background:#f8f5ee;padding:8px 10px;color:#202124;text-decoration:none}.blog-file-pill span{min-width:0;overflow-wrap:anywhere}.blog-file-pill.is-image{justify-content:start}.blog-file-thumb{width:56px;height:44px;flex:0 0 auto;border:1px solid #ded8cc;border-radius:6px;object-fit:cover;background:#fff}body.blog-writing .guide{opacity:0;transform:translateY(18px);pointer-events:none}.timeline-workspace{position:fixed;left:0;right:0;top:50%;z-index:7;height:min(620px,72vh);display:flex;align-items:center;padding:0;background:transparent;perspective:1500px;opacity:0;transform:translateY(calc(-50% + 18px));pointer-events:none;transition:opacity .22s ease,transform .22s ease}.timeline-workspace.is-open{opacity:1;transform:translateY(-50%);pointer-events:auto}.timeline-workspace-header{display:none;align-items:start;justify-content:space-between;gap:18px;pointer-events:none}.timeline-workspace-header .eyebrow{margin-bottom:8px}.timeline-workspace-header h2{max-width:none;font-size:clamp(1.9rem,4vw,4.2rem)}.timeline-close{pointer-events:auto;min-height:42px;border:1px solid rgba(239,250,245,.18);border-radius:8px;background:#effaf514;color:#effaf5;padding:0 16px;font-weight:900}.timeline-add{position:fixed;left:clamp(18px,5vw,72px);top:150px;z-index:10;min-height:42px;border:1px solid rgba(43,212,189,.48);border-radius:8px;background:#2bd4bd29;color:#a8fff0;padding:0 15px;font-weight:950;box-shadow:0 0 24px #2bd4bd1f;transition:background .18s ease,color .18s ease,transform .18s ease}.timeline-add:hover,.timeline-add:focus-visible{background:#2bd4bd;color:#071111;transform:translateY(-1px)}.timeline-scroll{width:100vw;height:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;display:flex;align-items:center;padding:0;perspective:1500px;transform:rotateX(9deg);transform-style:preserve-3d;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);scrollbar-color:#2bd4bd rgba(239,250,245,.12);scrollbar-width:none}.timeline-scroll::-webkit-scrollbar{display:none}.timeline-track{position:relative;min-width:max(1640px,calc(var(--timeline-count, 5) * 328px));display:grid;grid-template-columns:repeat(var(--timeline-count, 5),minmax(250px,1fr));align-items:center;gap:78px;padding:70px 16vw 76px;transform-style:preserve-3d}.timeline-track:after{content:"";position:absolute;left:16vw;right:16vw;top:43%;height:250px;border-top:5px solid transparent;border-radius:50%;background:linear-gradient(90deg,#2bd4bd,#ffd166,#f26a3d,#7dd3fc) border-box;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;border-image:linear-gradient(90deg,#2bd4bd,#ffd166,#f26a3d,#7dd3fc) 1;box-shadow:0 -10px 34px #2bd4bd3d,inset 0 20px 32px #7dd3fc14;transform:translateY(-50%) translateZ(-150px) rotateX(64deg)}.timeline-event{position:relative;z-index:1;display:grid;grid-template-rows:124px minmax(92px,auto) 58px 28px;align-items:center;justify-items:center;gap:12px;min-width:250px;transform:translateZ(var(--depth, 0px)) rotateY(var(--rotate-y, 0deg)) translateY(var(--lift, 0px)) scale(var(--scale, 1));transform-style:preserve-3d;opacity:var(--node-opacity, 1);filter:brightness(var(--brightness, 1));cursor:pointer;transition:opacity .18s ease,transform .18s ease,filter .18s ease}.timeline-event:before{content:"编辑";position:absolute;left:0;top:-34px;min-height:24px;display:inline-flex;align-items:center;border:1px solid rgba(43,212,189,.34);border-radius:999px;background:#2bd4bd1a;color:#9ff8ea;padding:0 8px;font-size:.72rem;font-weight:900;opacity:0;transform:translateZ(70px) translateY(6px);transition:opacity .16s ease,transform .16s ease}.timeline-event:hover:before{opacity:1;transform:translateZ(70px) translateY(0)}.timeline-event:nth-child(2n){margin-top:-36px}.timeline-event:hover{filter:brightness(1.12)}.timeline-event p{width:min(230px,100%);min-height:86px;margin:0;color:#effaf5d1;font-size:.94rem;line-height:1.58;text-align:center;transform:translateZ(42px)}.timeline-visual{position:relative;width:142px;height:142px;overflow:visible;perspective:760px;transform:translateZ(86px) rotateX(-14deg) rotateY(var(--planet-spin, 0deg));transform-style:preserve-3d;transition:transform .16s ease,box-shadow .18s ease}.planet-core,.planet-ring,.planet-shadow,.planet-surface,.planet-highlight{position:absolute;pointer-events:none}.planet-core{left:19px;top:13px;width:104px;height:104px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.92),transparent 0 12px),radial-gradient(circle at 56% 54%,#1dd0bf,#0b4746 58%,#031111);box-shadow:inset -28px -24px 34px #0000009e,inset 14px 12px 28px #ffffff2e,inset 34px 0 32px #ffffff14,0 22px 54px #0000008f,0 0 38px #2bd4bd33;transform:translateZ(28px) rotateY(var(--core-spin, 0deg));transform-style:preserve-3d}.planet-core:before,.planet-core:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none}.planet-core:before{background:radial-gradient(circle at 74% 68%,rgba(0,0,0,.62),transparent 0 48%),linear-gradient(100deg,transparent 0 48%,rgba(0,0,0,.34) 70%,rgba(0,0,0,.66) 100%);mix-blend-mode:multiply}.planet-core:after{inset:8px 10px 42px 18px;background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.74),transparent 0 56%);opacity:.72;filter:blur(.4px)}.planet-surface{inset:-18px;border-radius:50%;background:repeating-linear-gradient(92deg,rgba(255,255,255,.18) 0 3px,transparent 3px 14px),repeating-linear-gradient(24deg,transparent 0 12px,rgba(255,255,255,.08) 12px 15px,transparent 15px 29px);background-position:var(--surface-shift, 0px) 0,var(--surface-shift-alt, 0px) 0;mix-blend-mode:screen;opacity:.46;transform:translateZ(5px)}.planet-highlight{inset:0;border-radius:50%;background:radial-gradient(circle at 26% 22%,rgba(255,255,255,.42),transparent 0 22%),radial-gradient(circle at 42% 36%,rgba(255,255,255,.16),transparent 0 36%);transform:translateZ(10px)}.planet-ring{left:-1px;top:47px;width:144px;height:48px;border:3px solid rgba(168,255,240,.38);border-left-color:#a8fff01a;border-right-color:#ffd1666b;border-radius:50%;box-shadow:0 0 18px #2bd4bd2e,inset 0 0 16px #7dd3fc1a}.planet-ring-back{opacity:.34;transform:translateZ(-20px) rotateX(72deg) rotate(-18deg)}.planet-ring-front{clip-path:inset(50% -12% -18% -12%);opacity:.86;transform:translateZ(42px) rotateX(72deg) rotate(-18deg)}.planet-shadow{left:28px;right:24px;bottom:-4px;height:22px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.5),transparent 68%);filter:blur(3px);transform:translateZ(-54px) rotateX(72deg)}.visual-code .planet-core{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.88),transparent 0 11px),repeating-linear-gradient(115deg,rgba(168,255,240,.38) 0 5px,transparent 5px 16px),radial-gradient(circle at 58% 58%,#1dd0bf,#0b4746 56%,#031111)}.visual-web .planet-core{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.88),transparent 0 11px),repeating-linear-gradient(22deg,rgba(255,255,255,.14) 0 8px,transparent 8px 22px),radial-gradient(circle at 54% 50%,#7dd3fc,#145178 58%,#07121d)}.visual-server .planet-core{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.86),transparent 0 11px),repeating-linear-gradient(176deg,rgba(255,209,102,.55) 0 8px,transparent 8px 20px),radial-gradient(circle at 54% 52%,#f5b84d,#7b4d13 60%,#160d04)}.visual-3d .planet-core{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.88),transparent 0 11px),conic-gradient(from 35deg,#7dd3fceb,#2bd4bd80,#c084fcb8,#7dd3fceb),radial-gradient(circle at 56% 54%,#152436,#050a16 68%)}.visual-next .planet-core{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.88),transparent 0 11px),radial-gradient(circle at 70% 30%,rgba(255,209,102,.85),transparent 0 16px),radial-gradient(circle at 32% 70%,rgba(43,212,189,.65),transparent 0 20px),radial-gradient(circle at 54% 54%,#c084fc,#3d1b67 62%,#0d0618)}.timeline-axis{position:relative;height:58px}.timeline-axis span{position:absolute;left:0;top:23px;width:18px;height:18px;border:3px solid #071111;border-radius:50%;background:#2bd4bd;box-shadow:0 0 0 5px #2bd4bd33,0 0 24px #2bd4bdad;transform:translateZ(44px)}.timeline-event time{color:#effaf5;font-size:.92rem;font-weight:950;transform:translateZ(42px)}body.timeline-reading .guide{opacity:0;transform:translateY(18px);pointer-events:none}.timeline-editor{position:fixed;right:clamp(18px,4vw,56px);top:50%;z-index:9;width:min(380px,calc(100vw - 36px));display:grid;gap:12px;padding:18px;border:1px solid rgba(239,250,245,.18);border-radius:8px;background:#080c0de0;box-shadow:0 22px 60px #0006;opacity:0;transform:translateY(calc(-50% + 18px));pointer-events:none;transition:opacity .18s ease,transform .18s ease}.timeline-editor.is-open{opacity:1;transform:translateY(-50%);pointer-events:auto}.timeline-editor header,.timeline-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.timeline-editor .eyebrow{margin:0}.timeline-editor label{display:grid;gap:6px;color:#effaf5c2;font-size:.86rem;font-weight:850}.timeline-editor input,.timeline-editor textarea,.timeline-editor select{width:100%;border:1px solid rgba(239,250,245,.18);border-radius:8px;background:#effaf514;color:#effaf5;padding:11px;outline-color:#2bd4bd}.timeline-editor textarea{resize:vertical;line-height:1.55}.timeline-editor option{color:#071111}.timeline-editor button{min-height:38px;border:1px solid rgba(239,250,245,.18);border-radius:8px;background:#effaf514;color:#effaf5;padding:0 12px;font-weight:900}#save-timeline-edit{border-color:#2bd4bd;background:#2bd4bd;color:#071111}.progress-rail{position:fixed;right:clamp(16px,3vw,36px);top:50%;z-index:4;display:grid;gap:12px;transform:translateY(-50%)}.progress-rail span{width:9px;height:36px;border:1px solid rgba(239,250,245,.2);border-radius:999px;background:#effaf51a;transition:height .18s ease,background .18s ease,border-color .18s ease}.progress-rail span.is-active{height:58px;border-color:#2bd4bdcc;background:#2bd4bd}@media(max-width:720px){.hud{align-items:flex-start;min-height:104px;padding:16px}.brand{flex-direction:column;gap:0;line-height:1.05}nav{max-width:194px;justify-content:flex-end;flex-wrap:wrap;gap:6px;padding:6px}nav button{min-height:30px;padding:0 10px;font-size:.8rem}.guide{left:16px;right:auto;bottom:22px;width:min(300px,calc(100vw - 32px))}h1{max-width:7.5ch;font-size:clamp(2.15rem,11vw,3.2rem);line-height:1}p{margin-top:14px;font-size:.95rem;line-height:1.62}.room-card,.project-card{left:16px;right:16px;bottom:18px;width:auto}.project-card-actions{flex-direction:column}.blog-workspace{left:12px;right:12px;bottom:12px;width:auto;max-height:calc(100vh - 132px)}.blog-workspace-header,.blog-workspace-actions,.blog-editor-actions{align-items:stretch;flex-direction:column}.blog-workspace-body{grid-template-columns:1fr;overflow:auto}.blog-post-list{min-height:0;max-height:168px}.timeline-workspace{inset:50% 0 auto;height:68vh;padding:14px}.timeline-workspace-header{align-items:stretch;flex-direction:column}.timeline-track{min-width:1180px;gap:34px;padding-left:24vw;padding-right:24vw;grid-template-columns:repeat(var(--timeline-count, 5),minmax(200px,1fr))}.timeline-event{min-width:200px}.timeline-add{top:142px;left:16px;min-height:38px;padding:0 12px}.timeline-editor{inset:auto 12px 12px;width:auto;transform:translateY(18px)}.timeline-editor.is-open{transform:translateY(0)}.progress-rail{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
