:root{--bg-gradient: linear-gradient(160deg, #fff5ea 0%, #ffe2c6 30%, #ffc19c 62%, #ff9e83 100%);--glow: radial-gradient(1100px 560px at 82% -8%, rgba(255, 168, 120, .55), transparent 60%);--surface: rgba(255, 255, 255, .55);--surface-strong: rgba(255, 255, 255, .8);--border: rgba(255, 255, 255, .6);--text: #4a3830;--text-soft: #83695b;--accent: #ff7a4d;--accent-2: #ffb15e;--shadow: 0 12px 32px rgba(184, 112, 72, .18);--radius: 20px}[data-theme=sunset]{--sunset-red: #b91c1c;--sunset-orange: #dc2626;--sunset-gold: #f59e0b;--sunset-cream: #fef3c7;--sunset-purple: #6d28d9;--sunset-shadow: #1c1917;--bg-image: url(/bg/sunset.webp);--bg-overlay: linear-gradient(180deg, rgba(28, 16, 28, .46) 0%, rgba(28, 16, 28, .24) 38%, rgba(18, 10, 22, .6) 100%);--surface: rgba(28, 25, 23, .42);--surface-strong: rgba(28, 25, 23, .7);--border: rgba(254, 243, 199, .18);--text: var(--sunset-cream);--text-soft: rgba(254, 243, 199, .74);--accent: var(--sunset-gold);--accent-2: var(--sunset-orange);--accent-3: var(--sunset-purple);--shadow: 0 16px 40px rgba(0, 0, 0, .46);--glow: radial-gradient(900px 520px at 80% -10%, rgba(245, 158, 11, .28), transparent 60%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg-gradient) fixed;line-height:1.75;-webkit-font-smoothing:antialiased;transition:color .4s ease}[data-theme=sunset] body{background-image:var(--bg-overlay),var(--bg-image);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}body:before{content:"";position:fixed;inset:0;background:var(--glow);pointer-events:none;z-index:-1}a{color:var(--accent);text-decoration:none;transition:color .25s ease}a:hover{color:var(--accent-2)}img{max-width:100%;display:block}.container{width:100%;max-width:960px;margin:0 auto;padding:96px 20px 60px}.glass{background:var(--surface);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}.nav{position:sticky;top:14px;z-index:50;margin:14px auto 0;width:calc(100% - 28px);max-width:960px;display:flex;align-items:center;gap:14px;padding:10px 18px;border-radius:16px}.nav-brand{font-weight:700;font-size:1.15rem;color:var(--text);letter-spacing:1px}.nav-links{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.nav-link{color:var(--text-soft);padding:6px 12px;border-radius:10px;font-size:.95rem;transition:background .25s ease,color .25s ease}.nav-link:hover{background:var(--surface-strong);color:var(--text)}.nav-link.active{color:var(--accent);background:var(--surface-strong)}.theme-toggle{border:1px solid var(--border);background:var(--surface-strong);color:var(--text);width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:1.1rem;display:grid;place-items:center;transition:transform .2s ease}.theme-toggle:hover{transform:translateY(-2px)}.footer{max-width:960px;margin:40px auto 24px;width:calc(100% - 28px);padding:18px 22px;border-radius:16px}.footer-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--text-soft);font-size:.9rem}.footer-links a{margin-left:14px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:.78rem;color:var(--accent);margin:0 0 8px;font-weight:600}.section-title{font-size:1.7rem;margin:0 0 6px;color:var(--text)}.section-sub{color:var(--text-soft);margin:0 0 26px}.btn{display:inline-block;padding:11px 22px;border-radius:999px;background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;box-shadow:0 8px 22px #dc262659;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px);color:#fff;box-shadow:0 12px 28px #dc262673}.btn.ghost{background:var(--surface-strong);color:var(--text);box-shadow:none;border:1px solid var(--border)}.hero{text-align:center;padding:40px 0 20px}.hero h1{font-size:clamp(2.2rem,6vw,3.4rem);margin:0 0 14px;line-height:1.2;color:var(--text)}.hero p{font-size:1.15rem;color:var(--text-soft);margin:0 auto 26px;max-width:560px}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{padding:20px;border-radius:var(--radius);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px #0000004d}.card .thumb{height:130px;border-radius:14px;margin-bottom:14px}.card h3{margin:0 0 6px;font-size:1.15rem;color:var(--text)}.card p{margin:0 0 12px;color:var(--text-soft);font-size:.95rem}.tag{display:inline-block;font-size:.72rem;padding:3px 10px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--border);color:var(--text-soft);margin:0 6px 6px 0}.gallery-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.gallery-item{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;aspect-ratio:4 / 3;border:1px solid var(--border);box-shadow:var(--shadow)}.gallery-item .ph{position:absolute;inset:0;transition:transform .4s ease}.gallery-item .ph[src]{width:100%;height:100%;object-fit:cover}.gallery-item:hover .ph{transform:scale(1.06)}.gallery-item .cap{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent);color:#fff}.gallery-item .cap b{display:block;font-size:.98rem}.gallery-item .cap span{font-size:.78rem;opacity:.85}.lightbox{position:fixed;inset:0;background:#140c18d1;display:none;place-items:center;z-index:100;padding:24px}.lightbox.open{display:grid}.lightbox .lb-inner{max-width:720px;width:100%;border-radius:18px;overflow:hidden;background:#fff}.lightbox .lb-ph{height:360px}.lightbox .lb-cap{padding:16px 20px;color:#4a3830}.lightbox .lb-close{position:absolute;top:18px;right:22px;background:#fff3;border:none;color:#fff;width:42px;height:42px;border-radius:12px;font-size:1.3rem;cursor:pointer}.post-list{display:grid;gap:16px}.post-row{padding:18px 22px;border-radius:16px;display:block;color:var(--text)}.post-row:hover{background:var(--surface-strong);transform:translateY(-3px)}.post-row h3{margin:0 0 4px;font-size:1.2rem}.post-row .meta{color:var(--text-soft);font-size:.85rem;margin:0 0 8px}.post-row p{margin:0;color:var(--text-soft)}.prose{font-size:1rem;line-height:1.8;letter-spacing:.02em;word-break:break-word}.prose h1,.prose h2,.prose h3{font-weight:700;line-height:1.3;margin-top:2em;margin-bottom:1em;scroll-margin-top:90px}.prose h1{font-size:1.7rem}.prose h2{font-size:1.3rem}.prose h3{font-size:1.08rem}.prose h2:before,.prose h3:before,.prose h4:before{content:"# ";color:var(--accent);opacity:.55;font-weight:600}.prose p{margin:1.2em 0}.prose strong{font-weight:600;color:var(--accent)}.prose a{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--accent)}.prose ul{list-style:square;padding-left:1.3em}.prose ol{list-style:lower-roman;padding-left:1.4em}.prose li{margin:.35em 0}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface-strong);margin:1.2em 0;padding:.7em 1em;border-radius:8px;color:var(--text-soft)}.prose code{background:var(--surface-strong);border:1px solid var(--border);padding:.12em .4em;border-radius:6px;font-size:.9em}.prose pre{border:1px solid var(--border);padding:1rem 1.2rem;border-radius:12px;overflow:auto;margin:1.2em 0;background:var(--surface-strong)}.prose pre code{background:transparent;border:0;padding:0}.prose img{border-radius:12px;margin:1.4em auto;border:1px solid var(--border);max-width:100%}.prose hr{border:0;border-top:1px solid var(--border);margin:1.6em 0}.prose table{width:100%;border-collapse:collapse;font-size:.95em;margin:1.2em 0}.prose th,.prose td{border-bottom:1px solid var(--border);padding:.5em .6em;text-align:left}.blog-toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:28px}.blog-toolbar button{border:1px solid var(--border);background:var(--surface-strong);color:var(--text-soft);padding:6px 16px;border-radius:999px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.blog-toolbar button.active,.blog-toolbar button:hover{color:#fff;background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:transparent}.blog-year{margin-bottom:26px}.blog-year-head{display:flex;align-items:baseline;gap:10px;margin:0 4px 12px}.blog-year-head b{font-size:1.4rem;color:var(--text)}.blog-year-head span{font-size:.85rem;color:var(--text-soft)}.blog-year-head .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}.blog-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:14px;transition:background .2s ease,transform .2s ease}.blog-row:hover{background:var(--surface-strong)}.blog-row .date{width:46px;flex-shrink:0;font-size:.9rem;font-weight:600;color:var(--text-soft);font-variant-numeric:tabular-nums}.blog-row .marker{position:relative;width:8px;height:8px;flex-shrink:0}.blog-row .marker i{display:block;width:6px;height:6px;border-radius:50%;background:var(--text-soft);transition:all .2s ease}.blog-row:hover .marker i{background:var(--accent);height:16px;border-radius:4px}.blog-row .title{flex:1;min-width:0;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .2s ease,color .2s ease}.blog-row:hover .title{color:var(--accent);transform:translate(8px)}.blog-row .tags{display:flex;gap:8px;flex-shrink:0;color:var(--text-soft);font-size:.85rem}.blog-row .tags span:before{content:"#";opacity:.7}.blog-post{display:flex;gap:28px;align-items:flex-start}.blog-article{flex:1;min-width:0;padding:34px 30px}.blog-article .post-title{text-align:center;font-size:1.9rem;font-weight:700;color:var(--text);margin:0}.blog-article .post-meta{text-align:center;color:var(--text-soft);font-size:.9rem;margin:14px 0 4px}.blog-article .post-meta .ptag{margin:0 6px}.blog-article .post-meta .ptag:before{content:"#";opacity:.7}.toc{width:232px;flex-shrink:0;position:sticky;top:90px;padding:16px 18px;border-radius:16px;align-self:flex-start;max-height:calc(100vh - 120px);overflow:auto}.toc h4{margin:0 0 10px;font-size:.85rem;color:var(--text-soft);font-weight:600;letter-spacing:1px}.toc a{display:block;padding:5px 0 5px 12px;color:var(--text-soft);font-size:.88rem;border-left:2px solid var(--border);transition:all .2s ease}.toc a:hover{color:var(--accent)}.toc a.active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.toc a.lvl3{padding-left:26px;font-size:.84rem}@media(max-width:860px){.blog-post{flex-direction:column}.toc,.blog-row .tags{display:none}}.aurora{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;display:none}[data-theme=sunset] .aurora{display:block}.aurora span{position:absolute;border-radius:50%;filter:blur(72px);mix-blend-mode:screen;opacity:.32;will-change:transform}.aurora .a1{width:46vw;height:46vw;left:-8vw;top:-10vw;background:radial-gradient(circle,var(--sunset-purple),transparent 70%);animation:aurora-float1 18s ease-in-out infinite}.aurora .a2{width:40vw;height:40vw;right:-6vw;top:8vw;background:radial-gradient(circle,var(--sunset-red),transparent 70%);animation:aurora-float2 22s ease-in-out infinite}.aurora .a3{width:38vw;height:38vw;left:18vw;bottom:-14vw;background:radial-gradient(circle,var(--sunset-gold),transparent 70%);animation:aurora-float3 26s ease-in-out infinite}.aurora .a4{width:30vw;height:30vw;right:12vw;bottom:-8vw;background:radial-gradient(circle,var(--sunset-orange),transparent 70%);animation:aurora-float1 24s ease-in-out infinite reverse}@keyframes aurora-float1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(6vw,4vw) scale(1.12)}}@keyframes aurora-float2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-5vw,5vw) scale(1.08)}}@keyframes aurora-float3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(4vw,-5vw) scale(1.15)}}.shimmer{position:relative;display:inline-block;overflow:hidden;padding:11px 24px;border-radius:999px;background:linear-gradient(120deg,var(--accent-2),var(--accent));color:#fff;font-weight:600;box-shadow:0 8px 24px #dc262666;transition:transform .2s ease,box-shadow .2s ease}.shimmer:hover{transform:translateY(-2px);box-shadow:0 12px 30px #dc262680;color:#fff}.shimmer:after{content:"";position:absolute;top:0;left:0;bottom:0;width:55%;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);transform:translate(-180%);animation:shimmer-sweep 2.8s ease-in-out infinite}@keyframes shimmer-sweep{0%{transform:translate(-180%)}60%,to{transform:translate(220%)}}@property --beam-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.border-beam{position:relative;border-radius:var(--radius)}.border-beam:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.6px;background:conic-gradient(from var(--beam-angle),transparent 0deg,var(--accent-2) 36deg,var(--accent) 72deg,var(--accent-3) 108deg,transparent 200deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:beam-rotate 4.5s linear infinite;pointer-events:none}@keyframes beam-rotate{to{--beam-angle: 360deg}}.magic-card{position:relative;transition:transform .25s ease,box-shadow .25s ease}.magic-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%),rgba(254,243,199,.16),transparent 42%);opacity:0;transition:opacity .3s ease;pointer-events:none}.magic-card:hover{transform:translateY(-6px);box-shadow:0 20px 46px #00000057}.magic-card:hover:before{opacity:1}.text-reveal{display:inline-block}.text-reveal .tr-word{display:inline-block;white-space:pre}.text-reveal .tr-char{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(16px) rotateX(-40deg);animation:tr-in .7s cubic-bezier(.22,1,.36,1) forwards}@keyframes tr-in{to{opacity:1;filter:blur(0);transform:none}}@media(max-width:600px){.container{padding-top:88px}.nav-links{display:none}.footer-row{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}html{scroll-behavior:auto}.aurora span,.shimmer:after,.border-beam:before{animation:none}.text-reveal .tr-char{opacity:1;filter:none;transform:none;animation:none}}
