:root{color-scheme:dark;--bg-base:#050506;--bg-raise:#0a0a0b;--bg-card:#0d0d0f;--bg-inset:#08080a;--line:#ffffff1a;--line-soft:#ffffff0e;--line-strong:#ffffff3d;--ink:#f4f4f5;--ink-2:#f4f4f5b8;--ink-3:#f4f4f575;--accent:#fff;--r-xl:20px;--r-lg:14px;--r-sm:9px;--r-pill:999px;--shadow-card:inset 0 1px 0 #ffffff0a, 0 18px 40px -28px #000000e6;--shadow-lift:inset 0 1px 0 #ffffff14, 0 34px 64px -32px #000;--font-sans:"PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-display:clamp(2.75rem, 10.5vw, 7rem);--fs-page:clamp(2.25rem, 6vw, 3.6rem);--fs-sec:clamp(1.75rem, 3.6vw, 2.5rem);--container:1120px;--gutter:5%;--sp-section:clamp(72px, 8.5vw, 120px);--gap:clamp(16px, 2vw, 24px);--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-image:radial-gradient(130% 90% at 50% -24%,#0b0b0d 0%,#0000 52%);background-repeat:no-repeat;background-attachment:fixed;font-weight:400;line-height:1.75;overflow-x:hidden}body:before{content:"";z-index:-2;pointer-events:none;background-image:linear-gradient(90deg,#ffffff0b 1px,#0000 1px),linear-gradient(#ffffff0b 1px,#0000 1px);background-size:72px 72px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(120% 80% at 50% 0,#000 0%,#0000 78%);mask-image:radial-gradient(120% 80% at 50% 0,#000 0%,#0000 78%)}body:after{content:"";z-index:-1;pointer-events:none;opacity:.38;background-image:radial-gradient(90% 60% at 50% -10%,#ffffff0d,#0000 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:no-repeat,repeat;position:fixed;inset:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{text-wrap:balance}::selection{color:#000;background:#ffffff47}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:#ffffff24;border:3px solid #000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffffff42}:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #ffffffd9}.skip-link{z-index:300;border-radius:var(--r-pill);color:#000;transition:transform .25s var(--ease);background:#fff;padding:10px 22px;font-size:.88rem;font-weight:600;position:absolute;top:12px;left:50%;transform:translate(-50%,-160%)}.skip-link:focus-visible{transform:translate(-50%)}.container{width:min(var(--container), 100% - var(--gutter) * 2);margin-inline:auto}.section{padding:var(--sp-section) 0}.section--flush{padding-top:0}.section--top-tight{padding-top:clamp(12px,2vw,24px)}.section-more{justify-content:center;margin-top:clamp(32px,4vw,48px);display:flex}.section-sub{margin-bottom:30px;font-size:1.55rem}.section-sub+*{margin-bottom:0}.section-sub:not(:first-child){margin-top:clamp(48px,6vw,68px)}.section-head{margin-bottom:clamp(32px,4vw,56px)}.section-eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--ink-2);margin-bottom:20px;padding-bottom:14px;font-size:.75rem;display:inline-block;position:relative}.section-eyebrow:after{content:"";background:linear-gradient(90deg, var(--accent) 0%, #ffffff1f 55%, transparent 100%);width:100%;height:1px;transform:scaleX(var(--rule-scale,1));transform-origin:0;position:absolute;bottom:0;left:0}.section-title{font-size:var(--fs-sec);letter-spacing:-.01em;font-weight:700;line-height:1.28}.section-subtitle{color:var(--ink-2);max-width:620px;margin-top:16px;font-size:1.02rem}.btn{border-radius:var(--r-pill);letter-spacing:.02em;cursor:pointer;border:1px solid var(--line-strong);color:var(--ink);transition:border-color .35s var(--ease), background-color .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease);background:0 0;justify-content:center;align-items:center;gap:8px;padding:13px 30px;font-size:.95rem;font-weight:600;display:inline-flex;position:relative}.btn:hover{background:#ffffff0d;border-color:#ffffff8c;box-shadow:0 10px 34px -16px #ffffff73}.btn-primary{color:#000;background:#fff;border-color:#fff}.btn-primary:hover{color:#000;background:#fff;border-color:#fff;box-shadow:0 14px 40px -16px #fff9}.btn-ghost{border-color:var(--line);background:#ffffff0a}.gradient-text{color:var(--ink)}.js[data-motion=pending] [data-reveal],.js[data-motion=pending] [data-hero-char],.js[data-motion=pending] [data-hero-part]{opacity:0}.js[data-motion=reduced] [data-reveal],.js[data-motion=reduced] [data-hero-char],.js[data-motion=reduced] [data-hero-part],.js[data-motion=off] [data-reveal],.js[data-motion=off] [data-hero-char],.js[data-motion=off] [data-hero-part]{opacity:1!important;transform:none!important}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-card);transition:border-color .45s var(--ease), box-shadow .45s var(--ease), background-color .45s var(--ease);position:relative;overflow:hidden}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-lift)}.nav-shell{z-index:100;transition:padding .35s var(--ease), background-color .35s var(--ease), backdrop-filter .35s var(--ease), border-color .35s var(--ease);border-bottom:1px solid #0000;padding:18px 0;position:fixed;top:0;left:0;right:0}.nav-shell.scrolled{-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom-color:var(--line-soft);background:#000000b8;padding:10px 0}.nav-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{letter-spacing:.05em;transition:opacity .3s var(--ease);align-items:center;gap:11px;font-size:1.12rem;font-weight:700;display:flex}.brand:hover{opacity:.75}.brand img{border-radius:9px;width:34px;height:34px}.nav-links{align-items:center;gap:4px;display:flex}.nav-links a{border-radius:var(--r-pill);color:var(--ink-2);transition:color .3s var(--ease), background-color .3s var(--ease);padding:9px 16px;font-size:.94rem;position:relative}.nav-links a:hover{color:var(--ink);background:#ffffff12}.nav-links a.active{color:var(--ink)}.nav-links a.active:after{content:"";background:var(--accent);width:14px;height:1px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.nav-toggle{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:border-color .3s var(--ease), background-color .3s var(--ease);background:0 0;border-radius:11px;justify-content:center;align-items:center;display:none}.nav-toggle:hover{background:#ffffff0d;border-color:#ffffff80}.nav-mobile{z-index:99;-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease), visibility .4s var(--ease);background:#000000f5;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:none;position:fixed;inset:0}.nav-mobile.open{opacity:1;visibility:visible;pointer-events:auto}.nav-mobile a{letter-spacing:.02em;color:var(--ink-3);transition:color .3s var(--ease);padding:14px 32px;font-size:1.6rem;font-weight:600}.nav-mobile a:hover,.nav-mobile a.active{color:var(--ink)}.hero{text-align:center;justify-content:center;align-items:center;min-height:100svh;padding:168px 0 112px;display:flex;position:relative;overflow:visible}.hero-glow{filter:blur(100px);opacity:.2;z-index:0;will-change:transform;pointer-events:none;border-radius:50%;width:520px;height:520px;position:absolute}.hero-glow.one{background:radial-gradient(circle,#ffffff80,#0000 70%);top:2%;left:-12%}.hero-glow.two{background:radial-gradient(circle,#ffffff61,#0000 70%);bottom:-12%;right:-10%}.hero-content{z-index:1;max-width:900px;margin-inline:auto;position:relative}.hero h1{margin-bottom:24px}.hero-text{font-size:var(--fs-display);letter-spacing:-.03em;font-weight:800;line-height:1.08;display:block}.hero-char{vertical-align:bottom;line-height:1.08;display:inline-block;overflow:hidden}.hero-char>span{will-change:transform;display:inline-block}.hero-subtext{color:var(--ink-2);max-width:660px;margin:0 auto 44px;font-size:clamp(1rem,2.2vw,1.35rem);line-height:1.85}.hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.hero-scroll{z-index:1;border:1px solid var(--line-strong);border-radius:20px;justify-content:center;width:24px;height:40px;padding-top:8px;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.hero-scroll:after{content:"";background:var(--accent);border-radius:3px;width:3px;height:7px;animation:1.9s infinite scroll-dot}@keyframes scroll-dot{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(14px)}to{opacity:0;transform:translateY(0)}}.grid-2{gap:var(--gap);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--gap);grid-template-columns:repeat(3,1fr);display:grid}.grid-2>:only-child{width:100%;max-width:calc((var(--container) - var(--gap)) / 2);grid-column:1/-1;justify-self:center}.grid-2>:only-child .media{aspect-ratio:16/10}.project-card{display:block}.project-card .media{aspect-ratio:16/10;background:var(--bg-inset);position:relative;overflow:hidden}.project-card .media:after{content:"";opacity:.8;transition:opacity .5s var(--ease);background:linear-gradient(#0000 45%,#0000008c);position:absolute;inset:0}.project-card:hover .media:after{opacity:.35}.project-card .media img{object-fit:cover;width:100%;height:100%;transform:scale(1.001)}.project-card .body{padding:22px 26px 28px}.project-card .status{letter-spacing:.12em;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--r-pill);margin-bottom:14px;padding:3px 11px;font-size:.72rem;display:inline-block}.project-card h3{letter-spacing:-.005em;margin-bottom:8px;font-size:1.32rem;font-weight:700}.project-card p{color:var(--ink-2);font-size:.95rem}.post-card{flex-direction:column;display:flex}.post-card .meta{letter-spacing:.06em;color:var(--ink-3);align-items:center;gap:10px;padding:24px 26px 0;font-size:.76rem;display:flex}.post-card .meta .cat{color:var(--ink-2)}.post-card .meta .cat:after{content:"/";color:var(--line-strong);margin-left:10px}.post-card h3{padding:10px 26px 0;font-size:1.22rem;font-weight:700;line-height:1.5}.post-card h3 a{transition:color .3s var(--ease)}.post-card:hover h3 a{color:var(--ink)}.post-card .excerpt{color:var(--ink-2);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;padding:10px 26px 0;font-size:.92rem;display:-webkit-box;overflow:hidden}.post-card .link{letter-spacing:.02em;color:var(--ink-3);transition:color .3s var(--ease), gap .35s var(--ease);align-items:center;gap:8px;margin-top:auto;padding:16px 26px 24px;font-size:.88rem;display:inline-flex}.post-card .link svg{transition:transform .35s var(--ease)}.post-card:hover .link{color:var(--ink);gap:12px}.post-card:hover .link svg{transform:translate(2px)}.page-hero{text-align:center;padding:168px 0 64px}.page-hero h1{font-size:var(--fs-page);letter-spacing:-.02em;font-weight:800;line-height:1.15}.page-hero .desc{color:var(--ink-2);max-width:640px;margin:18px auto 0;font-size:1.02rem}.post-layout{padding:168px 0 96px}.post-layout .post-header{text-align:center;max-width:820px;margin:0 auto 48px}.post-layout .post-header h1{letter-spacing:-.015em;margin-bottom:18px;font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:800;line-height:1.3}.post-layout .post-meta{color:var(--ink-3);letter-spacing:.08em;flex-wrap:wrap;justify-content:center;gap:16px;font-size:.8rem;display:flex}.post-cover{border-radius:var(--r-xl);border:1px solid var(--line);box-shadow:var(--shadow-card);margin-bottom:56px;overflow:hidden}.post-cover img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.post-content,.prose-page{max-width:720px;color:var(--ink);margin:0 auto;font-size:1.06rem}.prose-page{padding-bottom:40px}.post-content p,.prose-page p{margin:20px 0;line-height:1.95}.post-content h2,.prose-page h2{letter-spacing:-.005em;border-bottom:1px solid var(--line);margin:48px 0 18px;padding-bottom:12px;font-size:1.5rem;font-weight:700}.post-content h3,.prose-page h3{margin:40px 0 16px;font-size:1.26rem;font-weight:600}.post-content a,.prose-page a{color:var(--ink);transition:border-color .3s var(--ease);border-bottom:1px solid #fff6}.post-content a:hover,.prose-page a:hover{border-color:var(--accent)}.post-content blockquote{border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--ink-2);background:#ffffff09;border-left:2px solid #fff9;margin:28px 0;padding:6px 24px}.post-content ul,.post-content ol,.prose-page ul{margin:20px 0 20px 24px}.post-content li,.prose-page li{margin:8px 0}.post-content li::marker{color:var(--ink-3)}.post-content table{border-collapse:collapse;width:100%;margin:28px 0;font-size:.92rem}.post-content th,.post-content td{text-align:left;border:1px solid var(--line);padding:12px 16px}.post-content th{color:#000;background:#fff;font-weight:600}.post-content code{background:#ffffff1a;border-radius:6px;padding:3px 8px;font-size:.88em}.post-content pre{background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--r-lg);margin:28px 0;padding:20px 24px;overflow-x:auto}.post-content pre code{background:0 0;padding:0}.post-content img,.prose-page img{border-radius:var(--r-lg);border:1px solid var(--line);margin:32px auto}.post-content .center{text-align:center}.post-content .post-divider{border:none;border-top:1px solid var(--line);margin:48px 0}.empty-state{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-xl);background:#ffffff03;flex-direction:column;justify-content:center;align-items:center;padding:72px 24px;display:flex}.empty-state-icon{color:var(--ink-3);margin-bottom:18px;font-size:2.4rem;line-height:1}.empty-state-title{margin-bottom:8px;font-size:1.12rem;font-weight:600}.empty-state-desc{color:var(--ink-3);font-size:.9rem}.empty-state-compact{padding:52px 24px}.novel-card{appearance:none;text-align:left;width:100%;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:var(--bg-card);cursor:pointer;padding:0;display:block}.novel-card:focus-visible{outline-offset:4px;outline:2px solid #ffffffd9}.prose-page--center{text-align:center}.prose-page--center h2{border-bottom:none;padding-bottom:0}.prose-page--center p{max-width:560px;margin-inline:auto}.prose-page .qrcode{border-radius:var(--r-lg);width:220px;height:auto;margin:0 auto 36px}.prose-cta{margin-top:40px}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.toast{z-index:200;color:#fff;border:1px solid var(--line-strong);border-radius:var(--r-pill);letter-spacing:.06em;opacity:0;visibility:hidden;transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;pointer-events:none;background:#000;padding:12px 32px;font-size:.92rem;position:fixed;bottom:48px;left:50%;transform:translate(-50%,16px);box-shadow:0 14px 44px #000000d9}.toast.show{opacity:1;visibility:visible;transform:translate(-50%)}.footer{border-top:1px solid var(--line-soft);background:#0000008c;margin-top:40px}.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding:76px 0 52px;display:grid}.footer-brand p{color:var(--ink-2);max-width:320px;margin-top:18px;font-size:.95rem}.footer h4{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:20px;font-size:.74rem;font-weight:400}.footer-links{flex-direction:column;gap:12px;list-style:none;display:flex}.footer-links a{color:var(--ink-2);transition:color .3s var(--ease), padding-left .3s var(--ease);font-size:.94rem}.footer-links a:hover{color:var(--ink);padding-left:4px}.footer-bottom{border-top:1px solid var(--line-soft);text-align:center;padding:30px 0 34px}.footer-bottom .slogan{color:var(--ink-3);margin-bottom:10px;font-size:.86rem}.footer-bottom .copyright{letter-spacing:.08em;color:var(--ink-3);font-size:.76rem}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:100svh;padding:120px 24px 60px;display:flex}.not-found .code{letter-spacing:-.04em;color:#0000;-webkit-text-stroke:1px #ffffff59;font-size:clamp(5rem,17vw,11rem);font-weight:700;line-height:1}.not-found h1{font-size:1.7rem;font-weight:700}.not-found p{color:var(--ink-2);max-width:420px}.game-page{color:#fff;background:#000;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:120px 20px 40px;display:flex}.game-container{text-align:center;width:100%;max-width:400px;animation:.8s ease-out fadeIn}.game-title{letter-spacing:.3em;opacity:.9;margin-bottom:40px;font-size:2.5rem;font-weight:300}.score-panel{opacity:.75;justify-content:space-between;margin-bottom:30px;font-size:.9rem;display:flex}.board{background:#111;border:1px solid #ffffff14;border-radius:16px;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px;display:grid;box-shadow:0 0 40px #ffffff0d}.tile{aspect-ratio:1;cursor:pointer;color:#000;opacity:0;background:#222;border-radius:12px;justify-content:center;align-items:center;font-size:1.8rem;font-weight:600;transition:transform .4s cubic-bezier(.4,0,.2,1),background .3s,opacity .3s;display:flex;transform:rotateY(180deg)}.tile.revealed{opacity:1;background:#fff;transform:rotateY(0)}.tile.matched{color:#666;pointer-events:none;opacity:.5;background:#333}.tile:hover:not(.revealed):not(.matched){background:#2e2e2e;transform:rotateY(180deg)scale(1.05)}.tile:focus-visible{outline-offset:3px;outline:2px solid #fff}.tile:active:not(.revealed):not(.matched){transform:rotateY(180deg)scale(.95)}.controls{justify-content:center;gap:15px;margin-top:30px;display:flex}.controls button{color:#fff;cursor:pointer;letter-spacing:.1em;background:0 0;border:1px solid #ffffff4d;border-radius:30px;padding:12px 30px;font-family:inherit;font-size:.9rem;transition:background .3s,border-color .3s}.controls button:hover{background:#ffffff1a;border-color:#ffffff80}.controls button:active{transform:scale(.98)}.controls button:focus-visible{outline-offset:3px;background:#ffffff14;outline:2px solid #fff}.message{opacity:0;min-height:2rem;margin-top:30px;font-size:1.1rem;transition:opacity .3s}.message.show{opacity:1}.message.success{color:#fff;font-weight:500}.message.error{color:#fff;text-shadow:0 0 12px #ffffffb3,0 0 28px #ffffff59;font-weight:700}.game-footer{opacity:.3;letter-spacing:.1em;margin-top:50px;font-size:.75rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal],.js [data-hero-char]{opacity:1!important;transform:none!important}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=1024px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}}@media (width<=820px){:root{--gutter:6%}.nav-links{display:none}.nav-toggle{display:inline-flex}.nav-mobile{display:flex}.grid-2,.grid-3{grid-template-columns:1fr}.grid-2>:only-child{grid-column:auto;max-width:none}.grid-2>:only-child .media{aspect-ratio:16/10}.hero{padding:148px 0 100px}.page-hero,.post-layout{padding-top:140px}.post-card .link{margin-top:0}}@media (width<=560px){.footer-grid{grid-template-columns:1fr;gap:28px;padding:56px 0 40px}.hero-actions .btn{flex:auto}.post-content,.prose-page{font-size:1.02rem}}@media (hover:none){.card:hover,.btn:hover{transform:none}.post-card:hover .link{gap:8px}}
