@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root,[data-theme=sand]{--bg:#fdfbf7;--bg-accent:#f4eee6;--surface:#fff9;--text:#4a403c;--text-soft:#85756e;--text-h:#1e1816;--border:#8c736926;--accent:#cd8566;--accent-strong:#b25d3b;--code-bg:#cd85661a;--shadow:0 30px 60px #32231c14, 0 12px 24px #32231c0a;--bg-gradient-1:#cd85661f;--bg-gradient-2:#87a8951a;--paifang-wood:#3c2a21;--paifang-plaque-bg-start:#1f1b1a;--paifang-plaque-bg-end:#382b26;--paifang-plaque-border:#a88351;--paifang-plaque-outline:#5a4429;--paifang-text-color:#dfb982;--paifang-shadow:#472e2366;--shimmer-1:#ece6df;--shimmer-2:#f4f0ec}[data-theme=celadon]{--bg:#f5f9f7;--bg-accent:#e6f0eb;--surface:#fff9;--text:#3c4a45;--text-soft:#6e857c;--text-h:#161e1b;--border:#698c7e26;--accent:#66cda8;--accent-strong:#3b9b77;--code-bg:#66cda81a;--shadow:0 30px 60px #1c322a14, 0 12px 24px #1c322a0a;--bg-gradient-1:#66cda81f;--bg-gradient-2:#87a8951a;--paifang-wood:#26332d;--paifang-plaque-bg-start:#1a221e;--paifang-plaque-bg-end:#26332d;--paifang-plaque-border:#669980;--paifang-plaque-outline:#334d40;--paifang-text-color:#b3d9c7;--paifang-shadow:#23473866;--shimmer-1:#dfece6;--shimmer-2:#ecf4f0}[data-theme=ink]{--bg:#f8f9fa;--bg-accent:#e9ecef;--surface:#fff9;--text:#495057;--text-soft:#868e96;--text-h:#212529;--border:#49505726;--accent:#868e96;--accent-strong:#495057;--code-bg:#4950571a;--shadow:0 30px 60px #21252914, 0 12px 24px #2125290a;--bg-gradient-1:#4950571f;--bg-gradient-2:#adb5bd1a;--paifang-wood:#212529;--paifang-plaque-bg-start:#151719;--paifang-plaque-bg-end:#2b3035;--paifang-plaque-border:#868e96;--paifang-plaque-outline:#495057;--paifang-text-color:#dee2e6;--paifang-shadow:#21252966;--shimmer-1:#e9ecef;--shimmer-2:#f8f9fa}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 10% 0%, var(--bg-gradient-1), transparent 40%), radial-gradient(circle at 90% 20%, var(--bg-gradient-2), transparent 35%), linear-gradient(180deg, var(--bg) 0%, var(--bg-accent) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0;font-family:Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;font-weight:400;line-height:1.7;transition:background .5s,color .5s}*{box-sizing:border-box}html{scroll-behavior:smooth}body:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#ffffff4d 1px,#0000 1px),linear-gradient(90deg,#ffffff4d 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#00000080,#0000);mask-image:linear-gradient(#00000080,#0000)}#root{width:min(1200px,100% - 40px);margin:0 auto;padding:40px 0 64px}h1,h2,p{margin:0}h1,h2{color:var(--text-h);font-family:Playfair Display,serif;font-weight:600;line-height:1.2}h1{letter-spacing:-.02em;margin-bottom:1.2rem;font-size:clamp(2.4rem,5vw,4.2rem)}h2{letter-spacing:-.01em;margin-bottom:.85rem;font-size:clamp(1.8rem,3vw,2.4rem)}code{background:var(--code-bg);color:var(--accent-strong);border-radius:6px;align-items:center;padding:.2rem .6rem;font-family:JetBrains Mono,SFMono-Regular,ui-monospace,monospace;font-size:.9em;display:inline-flex}img{max-width:100%}@media (width<=900px){#root{width:min(100% - 24px,1200px);padding-top:24px}}.page-shell{flex-direction:column;gap:1.5rem;padding-top:0;display:flex}.top-controls{z-index:100;align-items:center;gap:1rem;display:flex;position:absolute;top:1rem;right:1.5rem}.btn-3d-toggle{border:1px solid var(--border);color:var(--text-h);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffffe6,#fff6);border-radius:20px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 12px #0000000d}.btn-3d-toggle:hover{background:#fffffff2;transform:translateY(-2px);box-shadow:0 6px 16px #0000001a}.theme-switcher{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);background:#fff6;border-radius:20px;gap:.5rem;padding:.4rem;display:flex}.theme-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0;transition:transform .2s,border-color .2s,box-shadow .2s;box-shadow:inset 0 2px 4px #0000001a}.theme-btn:hover{transform:scale(1.15)}.theme-btn.active{border-color:var(--text-h);transform:scale(1.1);box-shadow:0 0 0 2px #fffc,inset 0 2px 4px #0000001a}.paifang-container{z-index:10;pointer-events:none;justify-content:center;align-items:center;width:100%;max-width:480px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.paifang-roof{flex-direction:column;flex:1;align-items:center;margin-bottom:0;display:flex;position:relative}.paifang-eaves{background:var(--paifang-wood);width:115%;height:16px;box-shadow:0 8px 24px var(--paifang-shadow);border-radius:8px;position:absolute;top:-8px}.paifang-eaves:before,.paifang-eaves:after{content:"";background:var(--paifang-wood);transform-origin:bottom;border-radius:50% 50% 0 0;width:24px;height:20px;position:absolute;top:-4px}.paifang-eaves:before{left:-15px;transform:rotate(-30deg)}.paifang-eaves:after{right:-15px;transform:rotate(30deg)}.paifang-plaque{background:linear-gradient(135deg, var(--paifang-plaque-bg-start) 0%, var(--paifang-plaque-bg-end) 100%);border:4px solid var(--paifang-plaque-border);box-shadow:inset 0 0 10px #000c, 0 8px 20px var(--paifang-shadow);z-index:2;outline:2px solid var(--paifang-plaque-outline);outline-offset:-8px;border-radius:4px;margin-top:10px;padding:.75rem 2.5rem;position:relative}.paifang-text{color:var(--paifang-text-color);text-shadow:2px 2px 4px #000c;letter-spacing:.15em;font-family:Ma Shan Zheng,Zhi Mang Xing,ZCOOL XiaoWei,serif;font-size:2.6rem;font-weight:400;display:block}@media (width<=600px){.top-controls{top:calc(env(safe-area-inset-top,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 8px);gap:.5rem}.btn-3d-toggle{padding:.3rem .6rem;font-size:.8rem}.theme-switcher{gap:.4rem;padding:.3rem}.theme-btn{width:16px;height:16px}.paifang-text{letter-spacing:.12em;padding:.15rem .35rem;font-size:1.55rem}.paifang-plaque{margin-top:8px;padding:.45rem .9rem}.paifang-container{transform-origin:top;max-width:300px;top:0;transform:translate(-50%)scale(.92)}.paifang-eaves{border-radius:6px;height:12px;top:-6px}.paifang-eaves:before,.paifang-eaves:after{width:18px;height:15px;top:-3px}.paifang-eaves:before{left:-12px}.paifang-eaves:after{right:-12px}}.hero-section,.gallery-section{padding:1rem 2rem 2rem}.hero-section{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);background:#ffffffb8;border-radius:24px;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);align-items:stretch;gap:1.5rem;margin:1rem 2rem 0;padding:4rem 2rem 2rem;display:grid;position:relative}.hero-copy{text-align:left;flex-direction:column;justify-content:center;padding:1rem;display:flex}.hero-copy h1{max-width:12.2em;color:var(--text-h);letter-spacing:-.03em;margin:0;font-size:clamp(1.95rem,3.1vw,2.7rem);font-weight:500;line-height:1.22}.hero-copy h1 span{white-space:nowrap;display:block}.hero-copy h1 span+span{margin-top:.12em}.hero-artist-badge{color:var(--text-soft);z-index:3;background:#ffffffb8;border:1px solid #a2806d2e;border-radius:999px;align-items:baseline;gap:.55rem;padding:.4rem .85rem;display:inline-flex;position:absolute;top:8.1rem;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #472e2314}.hero-artist-badge span{letter-spacing:.18em;text-transform:uppercase;font-family:Inter,sans-serif;font-size:.8rem}.hero-artist-badge strong{color:var(--accent-strong);letter-spacing:.08em;font-size:1.08rem;font-weight:700}.hero-actions{margin-top:1.1rem;display:flex}.hero-3d-entry{color:#fff8f0;text-align:left;cursor:pointer;background:radial-gradient(circle at 84% 18%,#ffebd233,#0000 20%),linear-gradient(135deg,#4f1c0efa,#8d371bf5 58%,#d06f38f0 100%);border:1px solid #7329143d;border-radius:24px;align-items:center;gap:.9rem;width:min(100%,460px);min-height:112px;padding:1rem 1.1rem 1rem 1.25rem;transition:transform .3s,box-shadow .3s,filter .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 26px 56px #5c22104d,inset 0 1px #fff1e13d,inset 0 0 0 1px #ffd8b80f}.hero-3d-entry:before{content:"";pointer-events:none;background:linear-gradient(90deg,#ffd6a838,#0000 14%),radial-gradient(circle at 100% 0,#fff4e652,#0000 28%),linear-gradient(120deg,#0000 0%,#ffffff1a 52%,#0000 100%);position:absolute;inset:0}.hero-3d-entry:hover{filter:saturate(1.08);transform:translateY(-4px)scale(1.012);box-shadow:0 30px 62px #5c221057,inset 0 1px #fff1e147,inset 0 0 0 1px #ffd8b814}.hero-3d-entry__content{z-index:1;flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;min-width:0;display:flex;position:relative}.hero-3d-entry__eyebrow{letter-spacing:.26em;text-transform:uppercase;color:#ffe8d0cc;font-family:Inter,sans-serif;font-size:.68rem}.hero-3d-entry strong{color:#fffdf9;font-size:1.52rem;font-weight:800;line-height:1.16}.hero-3d-entry__hint{color:#fff1e2d6;font-size:.98rem;line-height:1.35}.hero-3d-entry__cta{z-index:1;color:#fff7ef;background:#fff7ef24;border-radius:999px;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.55rem;font-weight:700;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #ffebd62e}.art-card{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);background:#ffffffb8;border-radius:24px}.eyebrow{color:var(--accent-strong);letter-spacing:.25em;text-transform:uppercase;margin:0 0 1.25rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:700}.hero-description,.section-description{max-width:42rem;color:var(--text-soft);font-size:1.05rem;line-height:1.7}.hero-description code{margin:0 .25rem}.hero-stats{gap:1rem;padding:1.25rem;display:grid}.stat-card{background:linear-gradient(135deg,#ffffffe6,#fff6);border:1px solid #fffc;border-radius:18px;flex-direction:column;justify-content:center;gap:.5rem;padding:1.5rem;transition:transform .3s,box-shadow .3s;display:flex}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #472e2314}.stat-label{color:var(--text-soft);font-size:.95rem;font-weight:500}.stat-card strong{color:var(--text-h);font-family:Playfair Display,serif;font-size:1.75rem}.section-heading{text-align:left;margin-bottom:2rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;display:grid}.art-card{cursor:pointer;flex-direction:column;margin:0;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.art-card:hover{border-color:#d58d724d;transform:translateY(-8px);box-shadow:0 20px 40px #472e231f}.art-image-wrapper{aspect-ratio:4/5;background:#ece6df;width:100%;position:relative;overflow:hidden}.art-image-wrapper.loading:before{content:"";background:linear-gradient(90deg, var(--shimmer-1) 0%, var(--shimmer-2) 50%, var(--shimmer-1) 100%);background-size:200% 100%;animation:1.5s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.art-image{object-fit:cover;z-index:1;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .5s;display:block;position:relative}.art-card:hover .art-image{transform:scale(1.05)}.art-meta{color:var(--text-h);text-align:center;background:linear-gradient(to bottom, transparent, var(--surface) 10%);z-index:2;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;padding:1.5rem 1.5rem 1.8rem;display:flex;position:relative}.art-title-wrapper{align-items:center;gap:.6rem;margin-top:.5rem;display:flex;position:relative}.art-title-wrapper:before{content:"";background:var(--accent);opacity:.5;border-radius:2px;width:30px;height:2px;transition:width .4s cubic-bezier(.16,1,.3,1),opacity .4s;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.art-card:hover .art-title-wrapper:before{opacity:.8;background:var(--accent-strong);width:80px}.art-title{color:var(--text-h);letter-spacing:.05em;font-family:Ma Shan Zheng,Zhi Mang Xing,serif;font-size:1.8rem;font-weight:400;transition:color .3s}.art-card:hover .art-title{color:var(--accent-strong)}.art-filename{color:var(--text-soft);overflow-wrap:anywhere;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.85rem}.site-footer{margin:1.75rem 2rem 0;padding:1.5rem 0 .5rem}.footer-inner{border-top:1px solid var(--border);justify-content:center;padding-top:1.25rem;display:flex}.footer-logo{letter-spacing:.18em;text-transform:uppercase;color:var(--text-soft);padding:.25rem .75rem;font-family:Inter,system-ui,sans-serif;font-size:.85rem;position:relative}.footer-logo:before,.footer-logo:after{content:"";background:linear-gradient(to right, transparent, var(--accent), transparent);opacity:.55;width:22px;height:1px;position:absolute;top:50%;transform:translateY(-50%)}.footer-logo:before{left:-26px}.footer-logo:after{right:-26px}.lightbox-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#14100ed9;flex-direction:column;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;inset:0}.lightbox-close{color:#fffc;cursor:pointer;z-index:1010;background:0 0;border:none;padding:0;font-size:3rem;font-weight:300;line-height:1;transition:color .2s,transform .2s;position:absolute;top:1.5rem;right:2rem}.lightbox-nav{color:#ffffff80;cursor:pointer;z-index:1010;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:1rem;font-size:4rem;font-weight:200;line-height:1;transition:color .2s,transform .2s;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{color:#fff;transform:translateY(-50%)scale(1.1)}.nav-prev{left:2rem}.nav-next{right:2rem}.lightbox-close:hover{color:#fff;transform:scale(1.1)}.lightbox-content{flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;animation:.4s cubic-bezier(.16,1,.3,1) zoomIn;display:flex}.lightbox-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:75vh;box-shadow:0 24px 64px #0006}.lightbox-caption{text-align:center;color:#fff;margin-top:1.5rem}.lightbox-caption h3{letter-spacing:.05em;margin:0 0 .5rem;font-family:Playfair Display,serif;font-size:1.5rem;font-weight:500}.lightbox-caption p{color:#fff9;margin:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=900px){.top-controls{top:calc(env(safe-area-inset-top,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 12px);position:fixed}.theme-switcher{background:#ffffff8c}.theme-btn{width:18px;height:18px}.hero-section{grid-template-columns:1fr;grid-template-areas:"title""artist""stats""entry";margin:1.2rem .9rem 0;padding:3.9rem 1rem 1.1rem}.gallery-section{padding:1rem}.hero-copy,.hero-stats{padding:.5rem}.hero-copy{display:contents}.hero-copy h1{text-align:center;grid-area:title;max-width:100%;margin:38px 0 0;font-size:clamp(1.9rem,7.2vw,2.6rem);line-height:1.2}.hero-artist-badge{grid-area:artist;justify-content:center;margin:.7rem auto 0;position:static;transform:none}.hero-actions{grid-area:entry;justify-content:center;width:100%;margin-top:.35rem}.hero-3d-entry{gap:.75rem;width:100%;max-width:100%;min-height:102px;padding:.95rem .95rem 1rem 1.05rem}.hero-3d-entry__content{text-align:left;align-items:flex-start}.hero-3d-entry strong{font-size:1.3rem}.hero-3d-entry__hint{font-size:.9rem}.eyebrow{margin-bottom:.9rem}.hero-stats{grid-area:stats;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.25rem;padding:.25rem}.stat-card{border-radius:16px;padding:1rem}.stat-card strong{font-size:clamp(1.15rem,5vw,1.75rem);line-height:1.18}.stat-label{font-size:.85rem}.section-heading{text-align:center;margin-bottom:1.25rem}.gallery-grid{grid-template-columns:1fr;gap:1.25rem}.art-meta{padding:1.2rem 1.2rem 1.4rem}.art-title{font-size:1.55rem}.site-footer{margin:1.25rem .9rem 0;padding-top:1.1rem}.footer-logo{letter-spacing:.16em;text-align:center;font-size:.78rem}.lightbox-close{top:1rem;right:1.5rem}.lightbox-image{max-height:65vh}}
