@font-face{font-family:PortfolioMono;src:local('Consolas')}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:#f7f5ef;color:#171a1c;font-family:Arial,'Microsoft YaHei',sans-serif;--paper:#f7f5ef;--ink:#171a1c;--line:#d7d5ce;--muted:#71746e;--card:#e5e4de}body.dark{--paper:#141819;--ink:#f0f1eb;--line:#323839;--muted:#adb3ae;--card:#242a2b;background:var(--paper);color:var(--ink)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #508ee0;outline-offset:5px}.hero{height:100dvh;min-height:640px;position:relative;background:#bddce9}.hero iframe{display:block;width:100%;height:100%;border:0}.hero-down{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.08em;background:#f7f5efc9;color:#151819;padding:10px 17px;backdrop-filter:blur(10px)}.hero-down span{margin-left:24px}.section-nav{position:sticky;top:0;z-index:5;padding:22px 3.4%;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px}.brand{font-weight:800;letter-spacing:-.02em;font-size:17px}.section-nav>div{display:flex;gap:38px;align-items:center}.section-nav button{background:none;border:0;padding:0;font-size:12px}.section{padding:80px 3.4%}.section-title{display:grid;grid-template-columns:1fr 2fr;gap:28px;align-items:start}.mono{font-family:PortfolioMono,monospace;font-size:12px;letter-spacing:.035em}.section-title .mono{margin-top:8px}.section-title h1{font-size:clamp(36px,4.7vw,74px);line-height:1.2;letter-spacing:-.05em;font-weight:600;margin:0 0 24px}.intro{color:var(--muted);font-size:15px;line-height:1.8}.filter-bar{margin:60px 0 34px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:32px;flex-wrap:wrap}.filter-bar button{border:0;background:none;padding:5px 0;color:var(--muted);font-size:13px}.filter-bar button.active{color:var(--ink)}sup{margin-left:5px;font-family:monospace;font-size:10px}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:48px 24px}.project-card{grid-column:span 6;text-align:left;border:0;background:none;padding:0;display:block;min-width:0}.project-card:nth-child(5n+1){grid-column:span 8}.project-card:nth-child(5n+2){grid-column:span 4;align-self:end}.cover-wrap{position:relative;overflow:hidden;background:var(--card);aspect-ratio:16/10}.project-card:nth-child(5n+2) .cover-wrap{aspect-ratio:4/5}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.project-card:hover img{transform:scale(1.035)}.cover-wrap .open-mark{position:absolute;right:16px;bottom:16px;background:#f7f5eff0;color:#141819;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;font-size:19px}.cover-wrap .project-type{position:absolute;left:15px;top:15px;background:#f7f5eff0;color:#171a1c;padding:6px 8px;font-size:10px}.project-meta{margin-top:17px;display:flex;align-items:baseline;gap:16px;justify-content:space-between}.project-meta h2{font-size:19px;font-weight:500;margin:0}.project-meta span{font-family:monospace;font-size:11px;white-space:nowrap}.project-card .summary{font-size:12px;color:var(--muted);line-height:1.7;margin:10px 0 0;max-width:90%}.loading{color:var(--muted)}.about{margin-top:50px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:28px}.about h2{font-size:clamp(29px,3.5vw,58px);line-height:1.3;font-weight:500;letter-spacing:-.04em;margin:0 0 32px}.about p:not(.mono){max-width:600px;line-height:1.9;color:var(--muted);font-size:15px}.about-fields{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.about-fields span{border:1px solid var(--line);padding:10px 13px;font-size:12px}footer{margin:40px 3.4% 0;padding:30px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;gap:20px}footer strong{font-weight:500}dialog{border:0;padding:0;background:var(--paper);color:var(--ink);max-width:none;width:min(1180px,96vw);max-height:92dvh;margin:auto}dialog::backdrop{background:#101718bf;backdrop-filter:blur(10px)}.dialog-header{position:sticky;top:0;z-index:2;background:var(--paper);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:20px 30px}.dialog-header button,#close-image{border:0;background:none;font-size:12px}.detail-top{padding:36px 5% 30px}.detail-top h2{font-size:clamp(30px,4vw,60px);letter-spacing:-.04em;font-weight:500;margin:0 0 15px}.detail-summary{max-width:760px;font-size:16px;line-height:1.8;color:var(--muted)}.video-stage{background:#080b0c;position:relative;display:flex;justify-content:center;align-items:center;min-height:200px}.video-stage video{display:block;width:100%;max-height:65vh;object-fit:contain}.video-load{position:absolute;inset:0;display:grid;place-content:center;background:#080b0ca8;color:#fff;text-align:center;padding:20px;gap:12px}.video-load button{border:1px solid #fff7;background:#f7f5ef;color:#151819;padding:13px 22px}.video-load small{font-size:11px;line-height:1.7;color:#ccc;max-width:360px}.detail-body{padding:35px 5% 60px}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:40px}.detail-columns h3,.gallery-title{font-size:13px;font-weight:600;margin:0 0 12px}.detail-columns p{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.note{font-size:11px;color:var(--muted);line-height:1.8;border-top:1px solid var(--line);padding-top:18px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}.gallery-grid button{background:none;border:0;padding:0;text-align:left}.gallery-grid img{width:100%;max-height:420px;object-fit:contain;background:var(--card)}.gallery-grid span{display:block;font-size:11px;color:var(--muted);margin-top:9px}.full-notes{margin-top:34px;border-top:1px solid var(--line);padding-top:20px}.full-notes summary{cursor:pointer;font-size:13px}.slide-note{padding:22px 0;border-bottom:1px solid var(--line)}.slide-note h4{font-size:12px;color:var(--muted);margin:0 0 10px}.slide-note p{font-size:13px;line-height:1.9;margin:0 0 7px;white-space:pre-line}#image-dialog{width:min(1500px,96vw);background:#111;color:#fff;text-align:center;padding:20px}#close-image{display:block;margin-left:auto;color:#fff;padding:8px 0 20px}#full-image{max-width:100%;max-height:76vh;object-fit:contain}#full-image-label{font-size:12px}@media(max-width:760px){.hero{min-height:680px}.section{padding:52px 5%}.section-nav{padding:18px 5%}.section-nav>div{gap:15px}.section-nav a,.section-nav button{font-size:10px}.section-nav .brand{font-size:13px}.section-title,.about{grid-template-columns:1fr;gap:20px}.section-title h1{font-size:37px}.filter-bar{gap:20px;margin-top:35px}.project-grid{gap:32px 14px}.project-card,.project-card:nth-child(5n+1),.project-card:nth-child(5n+2){grid-column:span 12}.project-card:nth-child(5n+2) .cover-wrap{aspect-ratio:16/10}.project-meta h2{font-size:19px}.project-card .summary{max-width:100%}.detail-columns{grid-template-columns:1fr;gap:24px}.gallery-grid{grid-template-columns:1fr}.dialog-header{padding:17px 5%}.about{margin-top:25px}footer{flex-wrap:wrap;margin:0 5%;line-height:1.9}footer span{display:none}dialog{width:96vw;max-height:94dvh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
[hidden]{display:none!important}
