.site-header[data-v-fe81f3a9]{z-index:50;height:var(--header-h);transition:background .4s var(--ease-out), border-color .4s var(--ease-out), backdrop-filter .4s var(--ease-out);border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header.scrolled[data-v-fe81f3a9]{-webkit-backdrop-filter:blur(12px)saturate(1.2);border-bottom-color:var(--line);background:#f2eee5d1}.header-inner[data-v-fe81f3a9]{justify-content:space-between;align-items:center;display:flex}.brand[data-v-fe81f3a9]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);transition:opacity .3s var(--ease-out);align-items:center;gap:.6rem;font-size:1.35rem;font-weight:500;display:inline-flex}.brand[data-v-fe81f3a9]:hover{opacity:.7}.brand-mark[data-v-fe81f3a9]{color:var(--accent);display:inline-flex}.brand-accent[data-v-fe81f3a9]{color:var(--accent);font-style:italic}.header-nav[data-v-fe81f3a9]{font-size:var(--fs-tiny);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);align-items:center;gap:.85rem;font-weight:500;display:flex}.nav-divider[data-v-fe81f3a9]{background:var(--line-strong);width:1px;height:12px}@media (max-width:560px){.brand-text[data-v-fe81f3a9]{font-size:1.1rem}.nav-meta[data-v-fe81f3a9]:first-child,.nav-divider[data-v-fe81f3a9]:first-of-type{display:none}}.hero[data-v-d2dee7e3]{min-height:100vh;padding-top:var(--header-h);padding-bottom:var(--space-xl);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero[data-v-d2dee7e3]:after{content:"极";font-family:var(--font-display);color:var(--accent);opacity:.04;pointer-events:none;z-index:0;font-size:52vw;font-weight:900;line-height:.8;position:absolute;top:12vh;right:-3vw}.hero-inner[data-v-d2dee7e3]{z-index:1;position:relative}.hero-top[data-v-d2dee7e3]{justify-content:space-between;align-items:center;margin-bottom:clamp(1.5rem,4vw,3rem);display:flex}.hero-date[data-v-d2dee7e3]{font-size:var(--fs-tiny);letter-spacing:.16em;color:var(--ink-mute);font-weight:500}.hero-title[data-v-d2dee7e3]{font-size:var(--fs-mega);letter-spacing:-.04em;margin-bottom:clamp(2rem,5vw,3.5rem);font-weight:500;line-height:.92}.hero-title .line[data-v-d2dee7e3]{display:block;overflow:hidden}.hero-title .word[data-v-d2dee7e3]{display:inline-block}.line-accent .italic[data-v-d2dee7e3]{color:var(--accent);font-style:italic;font-weight:400}.hero-bottom[data-v-d2dee7e3]{grid-template-columns:1fr 1.4fr;align-items:start;gap:clamp(1.5rem,5vw,4rem);max-width:900px;display:grid}.hero-intro[data-v-d2dee7e3]{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);letter-spacing:-.01em;font-weight:400;line-height:1.3}.hero-desc[data-v-d2dee7e3]{color:var(--ink-soft);max-width:46ch;font-size:1.0625rem;line-height:1.7}.hero-scroll[data-v-d2dee7e3]{z-index:1;align-items:center;gap:.75rem;display:flex;position:absolute;bottom:2rem;left:clamp(1.25rem,4vw,3rem)}.scroll-label[data-v-d2dee7e3]{font-size:var(--fs-tiny);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-weight:500}.scroll-line[data-v-d2dee7e3]{background:var(--ink-mute);width:60px;height:1px;display:block;position:relative;overflow:hidden}.scroll-line[data-v-d2dee7e3]:after{content:"";background:var(--accent);animation:scrollPulse-d2dee7e3 2.4s var(--ease-in-out) infinite;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}@keyframes scrollPulse-d2dee7e3{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.reveal[data-v-d2dee7e3]{opacity:0;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(30px)}.reveal.is-visible[data-v-d2dee7e3]{opacity:1;transform:translateY(0)}.hero-title .line.reveal[data-v-d2dee7e3]{transition:transform 1.1s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(100%)}.hero-title .line.reveal.is-visible[data-v-d2dee7e3]{transform:translateY(0)}@media (max-width:768px){.hero[data-v-d2dee7e3]{min-height:88vh}.hero-bottom[data-v-d2dee7e3]{grid-template-columns:1fr;gap:1rem}.hero-intro[data-v-d2dee7e3]{font-size:1.25rem}.hero-scroll[data-v-d2dee7e3]{display:none}}@media (prefers-reduced-motion:reduce){.scroll-line[data-v-d2dee7e3]:after{animation:none}}.marquee[data-v-8070c87d]{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-alt);z-index:2;padding:1.5rem 0;position:relative;overflow:hidden}.marquee-track[data-v-8070c87d]{white-space:nowrap;align-items:center;gap:0;width:max-content;animation:28s linear infinite marquee;display:flex}.marquee:hover .marquee-track[data-v-8070c87d]{animation-play-state:paused}.marquee-item[data-v-8070c87d]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);align-items:center;padding:0 1.5rem;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:500;display:inline-flex}.marquee-item[data-v-8070c87d]:nth-child(2n){color:var(--accent);font-style:italic}.marquee-dot[data-v-8070c87d]{opacity:.5;background:currentColor;border-radius:50%;width:7px;height:7px;margin-left:1.5rem;display:inline-block}@media (prefers-reduced-motion:reduce){.marquee-track[data-v-8070c87d]{justify-content:center;animation:none}}.card[data-v-9b5a427f]{cursor:pointer;transition:transform .5s var(--ease-out);outline:none;flex-direction:column;display:flex;position:relative}.reveal[data-v-9b5a427f]{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:var(--card-delay,0s);transform:translateY(40px)}.reveal.is-visible[data-v-9b5a427f]{opacity:1;transform:translateY(0)}.card-media[data-v-9b5a427f]{border-radius:var(--radius-md);background:var(--bg-alt);position:relative;overflow:hidden}.media-frame[data-v-9b5a427f]{border-radius:var(--radius-md);position:relative;overflow:hidden}.media-frame img[data-v-9b5a427f]{width:100%;height:auto;transition:transform .7s var(--ease-out), opacity .5s var(--ease-out);opacity:0;display:block}.media-frame img.loaded[data-v-9b5a427f]{opacity:1}.card:hover .media-frame img[data-v-9b5a427f]{transform:scale(1.03)}.card:focus-visible .media-frame img[data-v-9b5a427f]{transform:scale(1.03)}.media-fallback[data-v-9b5a427f]{background:var(--bg-alt);color:var(--ink-faint);justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.mode-badge[data-v-9b5a427f]{font-size:var(--fs-tiny);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);border-radius:100px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-weight:600;display:inline-flex;position:absolute;top:.85rem;right:.85rem;transform:translateY(-4px)}.card:hover .mode-badge[data-v-9b5a427f]{opacity:1;transform:translateY(0)}.card:focus-visible .mode-badge[data-v-9b5a427f]{opacity:1;transform:translateY(0)}.badge-link[data-v-9b5a427f]{color:var(--bg);background:#1a1916d1}.badge-intro[data-v-9b5a427f]{color:var(--bg);background:#b5421ceb}.card-index[data-v-9b5a427f]{font-family:var(--font-display);color:var(--bg);text-shadow:0 1px 8px #0000004d;font-size:1.5rem;font-style:italic;font-weight:500;position:absolute;bottom:.85rem;left:.95rem}.card-body[data-v-9b5a427f]{padding:1.1rem .2rem 0}.card-title[data-v-9b5a427f]{font-size:var(--fs-h3);transition:color .3s var(--ease-out);margin-bottom:.4rem;font-weight:500}.card:hover .card-title[data-v-9b5a427f]{color:var(--accent)}.card:focus-visible .card-title[data-v-9b5a427f]{color:var(--accent)}.card-desc[data-v-9b5a427f]{color:var(--ink-soft);max-width:38ch;font-size:.9375rem;line-height:1.55}.is-link .card-title[data-v-9b5a427f]:after{content:"";border-top:1.5px solid var(--accent);border-right:1.5px solid var(--accent);vertical-align:middle;width:.6em;height:.6em;margin-left:.3em;display:inline-block;transform:rotate(45deg)translateY(.1em)}@media (max-width:720px){.mode-badge[data-v-9b5a427f]{opacity:1;transform:translateY(0)}}.projects[data-v-22af38b2]{padding:var(--space-2xl) 0 var(--space-xl);z-index:2;position:relative}.section-head[data-v-22af38b2]{max-width:620px;margin-bottom:clamp(2.5rem,6vw,4.5rem)}.section-title[data-v-22af38b2]{font-size:var(--fs-h1);align-items:baseline;gap:.5rem;margin:.75rem 0 1rem;font-weight:500;display:inline-flex}.title-count[data-v-22af38b2]{color:var(--accent);font-size:.5em;font-style:italic;font-weight:400}.section-note[data-v-22af38b2]{color:var(--ink-soft);max-width:44ch;font-size:1rem;line-height:1.6}.grid[data-v-22af38b2]{grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.5rem);display:grid}.grid[data-v-22af38b2]>:nth-child(odd){margin-top:clamp(0rem,3vw,2.5rem)}@media (max-width:720px){.grid[data-v-22af38b2]{grid-template-columns:1fr;gap:1.5rem}.grid[data-v-22af38b2]>:nth-child(odd){margin-top:0}}.modal-backdrop[data-v-36bcbe1e]{z-index:200;-webkit-backdrop-filter:blur(8px);animation:fadeIn-36bcbe1e .3s var(--ease-out);background:#1a19168c;justify-content:center;align-items:center;padding:clamp(1rem,4vw,3rem);display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal[data-v-36bcbe1e]{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:720px;max-height:88vh;box-shadow:var(--shadow-raised);animation:scaleIn-36bcbe1e .4s var(--ease-spring);outline:none;position:relative;overflow-y:auto}.modal-close[data-v-36bcbe1e]{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:40px;height:40px;color:var(--ink);transition:background .3s var(--ease-out), transform .3s var(--ease-out);background:#fbf8f1d9;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:1rem;right:1rem}.modal-close[data-v-36bcbe1e]:hover{background:var(--ink);color:var(--bg);transform:rotate(90deg)}.modal-media[data-v-36bcbe1e]{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-alt);width:100%;overflow:hidden}.modal-media img[data-v-36bcbe1e]{width:100%;height:auto;display:block}.modal-content[data-v-36bcbe1e]{padding:clamp(1.75rem,4vw,2.75rem)}.modal-title[data-v-36bcbe1e]{font-size:var(--fs-h2);letter-spacing:-.02em;margin:.75rem 0;font-weight:500}.modal-summary[data-v-36bcbe1e]{font-family:var(--font-display);color:var(--ink-soft);border-bottom:1px solid var(--line);margin-bottom:1.75rem;padding-bottom:1.75rem;font-size:1.25rem;font-weight:400;line-height:1.4}.modal-detail[data-v-36bcbe1e]{flex-direction:column;gap:1rem;display:flex}.detail-para[data-v-36bcbe1e]{color:var(--ink-soft);font-size:1rem;line-height:1.75}@media (max-width:560px){.modal[data-v-36bcbe1e]{max-height:92vh}.modal-content[data-v-36bcbe1e]{padding:1.5rem}.modal-title[data-v-36bcbe1e]{font-size:1.75rem}}@keyframes fadeIn-36bcbe1e{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-36bcbe1e{0%{opacity:0;transform:scale(.94)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.site-footer[data-v-3e82f0f8]{z-index:2;margin-top:var(--space-2xl);border-top:1px solid var(--line);background:var(--bg-alt);position:relative}.footer-inner[data-v-3e82f0f8]{justify-content:space-between;align-items:center;gap:2rem;padding-top:clamp(3rem,6vw,5rem);padding-bottom:clamp(3rem,6vw,5rem);display:flex}.footer-brand[data-v-3e82f0f8]{align-items:center;gap:1rem;display:flex}.footer-mark[data-v-3e82f0f8]{color:var(--accent)}.footer-text[data-v-3e82f0f8]{flex-direction:column;gap:.3rem;display:flex}.footer-name[data-v-3e82f0f8]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:1.5rem;font-weight:500}.footer-accent[data-v-3e82f0f8]{color:var(--accent);font-style:italic}.footer-note[data-v-3e82f0f8]{font-size:var(--fs-small);color:var(--ink-mute)}.back-top[data-v-3e82f0f8]{font-size:var(--fs-tiny);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);transition:color .3s var(--ease-out), gap .3s var(--ease-out);align-items:center;gap:.6rem;font-weight:600;display:inline-flex}.back-top[data-v-3e82f0f8]:hover{color:var(--accent);gap:.9rem}.back-arrow[data-v-3e82f0f8]{transition:transform .3s var(--ease-out);display:inline-flex}.back-top:hover .back-arrow[data-v-3e82f0f8]{transform:translateY(-3px)}.footer-base[data-v-3e82f0f8]{border-top:1px solid var(--line);padding:1.25rem 0}.base-inner[data-v-3e82f0f8]{font-size:var(--fs-tiny);color:var(--ink-mute);letter-spacing:.04em;justify-content:space-between;align-items:center;display:flex}@media (max-width:640px){.footer-inner[data-v-3e82f0f8]{flex-direction:column;align-items:flex-start;gap:1.5rem}.base-inner[data-v-3e82f0f8]{flex-direction:column;align-items:flex-start;gap:.4rem}}.home-view[data-v-6c9797dd]{min-height:100vh;position:relative}:root{--bg:#f2eee5;--bg-alt:#eae4d6;--bg-deep:#1a1916;--surface:#fbf8f1;--surface-raised:#fff;--ink:#1a1916;--ink-soft:#4a4843;--ink-mute:#8a857a;--ink-faint:#b8b2a4;--accent:#b5421c;--accent-soft:#d4633f;--accent-deep:#8a2f12;--line:#1a19161f;--line-strong:#1a191638;--font-display:"Fraunces", "Songti SC", Georgia, serif;--font-body:"Spline Sans", system-ui, -apple-system, sans-serif;--fs-mega:clamp(3.5rem, 11vw, 9.5rem);--fs-h1:clamp(2.5rem, 6vw, 4.5rem);--fs-h2:clamp(1.75rem, 3.5vw, 2.75rem);--fs-h3:clamp(1.25rem, 2vw, 1.6rem);--fs-body:clamp(1rem, 1.1vw, 1.0625rem);--fs-small:.875rem;--fs-tiny:.75rem;--space-xs:.5rem;--space-sm:1rem;--space-md:1.75rem;--space-lg:3rem;--space-xl:5.5rem;--space-2xl:9rem;--radius-sm:4px;--radius-md:10px;--radius-lg:20px;--shadow-card:0 1px 2px #1a19160a, 0 8px 24px -12px #1a19162e;--shadow-raised:0 4px 12px #1a191614, 0 24px 60px -20px #1a191647;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--header-h:68px;--max-w:1320px}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:1;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;top:0;bottom:0;left:0;right:0}#app{z-index:2;min-height:100vh;position:relative}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:500;line-height:1.05}p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-alt)}::-webkit-scrollbar-thumb{background:var(--ink-faint);border:2px solid var(--bg-alt);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--ink-mute)}::selection{background:var(--accent);color:var(--bg)}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}.eyebrow{font-family:var(--font-body);font-size:var(--fs-tiny);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);align-items:center;gap:.6em;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:24px;height:1px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}.reveal{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
