:root{--paper:#f6f7f4;--ink:#20241f;--muted:#62675f;--line:#d1d4cc;--accent:#b8411d;--soft:#eaece6;--accent-light:#f4e5db;--radius:4px;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Geist,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}[hidden]{display:none!important}.container{width:min(100% - 112px,1376px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:88px;display:flex}.brand{letter-spacing:-1.1px;align-items:center;gap:14px;font-size:27px;font-weight:600;display:inline-flex}.brand-square{background:var(--accent);flex-shrink:0;width:22px;height:22px;display:inline-block}.site-header nav{gap:42px;font-size:15px;display:flex}.site-header nav a{padding-block:12px;position:relative}.site-header nav a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .2s;position:absolute;bottom:3px;left:0;transform:scaleX(0)}.site-header nav a:hover:after{transform:scaleX(1)}.hero-main{grid-template-columns:1.05fr 1fr;align-items:center;gap:0;min-height:600px;display:grid;position:relative}.hero-copy{z-index:1;padding:60px 0 62px}.hero h1{letter-spacing:-.065em;font-size:clamp(52px,6.4vw,96px);font-weight:600;line-height:1.24}.hero h1 span{display:block}.hero-copy>p{color:var(--muted);max-width:480px;margin:30px 0 32px;font-size:clamp(16px,1.4vw,20px);line-height:1.85}.hero-actions{gap:15px;display:flex}.button{border:1px solid var(--ink);border-radius:var(--radius);white-space:nowrap;justify-content:space-between;align-items:center;gap:32px;min-height:54px;padding:15px 24px;font-size:16px;transition:background .2s,transform .2s;display:inline-flex}.button span{font-size:23px;line-height:1}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.primary:hover{background:#963417}.secondary:hover{background:var(--soft)}.button:active{transform:translateY(1px)}.hero-art{aspect-ratio:1;place-items:center;width:calc(100% + 30px);margin-left:-15px;display:grid}.hero-art img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:100%}.interests{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:32px;padding:30px 0;display:grid}.interest{gap:28px;display:flex}.interest-index{color:var(--muted);padding-top:6px;font-size:12px}.interest>div{border-left:1px solid var(--line);padding-left:26px}.interest h2{letter-spacing:-.5px;font-size:19px;font-weight:500}.interest p{color:var(--muted);margin-top:8px;font-size:14px}.about-details{color:var(--muted);max-width:560px;font-size:13px}.about-details summary{cursor:pointer;align-items:center;gap:16px;width:fit-content;padding:10px 0;display:flex}.about-details p{padding:10px 0;line-height:1.9}.section{padding-top:115px;scroll-margin-top:20px}.section-heading{margin-bottom:28px}.section-title-line{align-items:baseline;gap:24px;display:flex}.section-number{color:var(--accent);font-size:12px}.section h2{letter-spacing:-2.5px;font-size:clamp(34px,3.8vw,54px);font-weight:500;line-height:1.3}.heading-period{color:var(--accent);margin-left:3px}.section-heading>p{color:var(--muted);margin-top:15px;margin-left:46px;font-size:17px;line-height:1.8}.gallery-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;margin:34px 0 24px;display:flex}.sample-notice{color:var(--muted);font-size:12px;line-height:1.8}.filters{flex-wrap:wrap;gap:5px;display:flex}.filters button{border-radius:var(--radius);color:var(--muted);background:0 0;border:0;padding:10px 14px;font-size:13px;transition:background .2s,color .2s}.filters button span{opacity:.85;margin-left:5px;font-size:10px}.filters button:hover{background:var(--soft)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 28px;display:grid}.project-cover{aspect-ratio:1.85;background:var(--soft);border-radius:var(--radius);position:relative;overflow:hidden}.project-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.project-card:hover .project-cover img{transform:scale(1.025)}.cover-index{color:#fff;background:#20241fbb;border-radius:2px;padding:5px 7px;font-size:10px;line-height:1;position:absolute;top:15px;left:17px}.project-title{align-items:center;gap:10px;margin-top:22px;display:flex}.project-title h3{letter-spacing:-.6px;font-size:23px;font-weight:500}.example-badge{color:#a03718;background:var(--accent-light);border-radius:3px;padding:4px 7px;font-size:10px}.project-category{color:var(--muted);margin-left:auto;font-size:11px}.project-description{color:var(--muted);margin:10px 0 17px;font-size:14px;line-height:1.85}.project-meta{flex-wrap:wrap;align-items:center;gap:13px;font-size:11px;display:flex}.status{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.status:before{content:"";background:#737a70;border-radius:50%;width:6px;height:6px}.status.accent:before{background:var(--accent)}.tech-tags{border-left:1px solid var(--line);flex-wrap:wrap;gap:6px;margin:0;padding:0 0 0 13px;list-style:none;display:flex}.tech-tags li{background:var(--soft);color:var(--muted);border-radius:2px;padding:4px 6px}.project-details{border-bottom:1px solid var(--line);margin-top:15px;font-size:12px}.project-details summary{cursor:pointer;justify-content:space-between;padding:12px 0;list-style:none;display:flex}.project-details summary::-webkit-details-marker,.about-details summary::-webkit-details-marker{display:none}.project-details summary span{font-size:17px;transition:transform .2s}.project-details[open] summary span{transform:rotate(45deg)}.project-details>p{color:var(--muted);padding:0 0 18px;line-height:1.9}.project-visit{color:var(--accent);margin-top:15px;font-size:13px;display:inline-block}.cover-empty{background:#eceee7}.empty-art{position:absolute;inset:0;overflow:hidden}.empty-orbit{aspect-ratio:1;border:1px solid #adb5a7;border-radius:50%;width:70%;position:absolute;top:15%;left:15%;transform:scaleY(.5)rotate(-28deg)}.empty-dot{aspect-ratio:1;background:var(--accent);border-radius:50%;width:18%;position:absolute;top:29%;left:54%}.empty-label{letter-spacing:2px;color:var(--muted);font-size:11px;position:absolute;bottom:25px;left:25px}.no-cover-label{color:var(--muted);font-size:11px;position:absolute;top:16px;right:18px}.gallery-empty{background:var(--soft);text-align:center;color:var(--muted);border-radius:var(--radius);padding:65px 20px;font-size:16px}.tools{padding-bottom:100px}.tools-notice{margin:0 0 25px 46px}.tool-list{border-top:1px solid var(--line)}.tool-row{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr) 140px 150px;align-items:center;gap:24px;padding:32px 20px;transition:background .2s;display:grid}.tool-row:hover{background:#eef0e9}.tool-symbol{letter-spacing:-2px;text-align:center;font-size:32px;font-weight:400}.tool-info h3{font-size:21px;font-weight:500}.example-text{color:var(--muted);vertical-align:middle;margin-left:8px;font-size:10px;font-weight:400}.tool-info p{color:var(--muted);margin-top:7px;font-size:13px;line-height:1.9}.tool-category{color:var(--muted);border-left:1px solid var(--line);padding-left:24px;font-size:12px}.tool-entry{text-align:right;font-size:12px}.unavailable{background:var(--soft);color:#5c6257;border-radius:var(--radius);padding:8px 12px;display:inline-block}.tool-entry a{color:var(--accent)}.site-footer{border-top:1px solid var(--line);padding:36px 0 24px}.footer-main{justify-content:space-between;align-items:center;display:flex}.footer-wordmark{letter-spacing:-4px;align-items:center;gap:17px;font-size:clamp(38px,5vw,72px);font-weight:600;display:flex}.footer-wordmark .brand-square{width:.7em;height:.7em}.footer-main p{color:var(--muted);margin-top:11px;font-size:13px}.back-top{gap:15px;font-size:14px;display:flex}.footer-meta{color:var(--muted);justify-content:space-between;gap:20px;margin-top:48px;font-size:10px;display:flex}.footer-meta a{margin-inline:10px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:9;background:var(--ink);color:#fff;padding:14px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.not-found{padding-block:120px}.not-found h1{margin:24px 0;font-size:clamp(32px,5vw,60px)}.not-found p{color:var(--muted);line-height:1.8}.not-found a{margin-top:35px}@media (width>=1400px){.hero-main{min-height:680px}.hero-art{max-height:680px}}@media (width<=1024px){.container{width:calc(100% - 64px)}.site-header{height:78px}.hero-main{min-height:500px}.hero h1{font-size:65px}.hero-copy{padding-block:55px}.hero-copy>p{font-size:16px}.button{gap:20px;padding:14px 18px}.interest{gap:18px}.interest>div{padding-left:18px}.interest h2{font-size:17px}.interest p{font-size:12px}.gallery-toolbar{flex-direction:column;align-items:flex-start}.tool-row{grid-template-columns:52px minmax(0,1fr) 90px 140px;gap:16px}.tool-category{padding-left:14px}}@media (width<=767px){.container{width:calc(100% - 40px)}.site-header{height:74px}.brand{gap:9px;font-size:22px}.brand-square{width:17px;height:17px}.site-header nav{gap:17px;font-size:12px}.hero-main{grid-template-columns:1fr;min-height:0}.hero-copy{padding:50px 0 0}.hero h1{letter-spacing:-3px;font-size:clamp(48px,11.7vw,76px);line-height:1.25}.hero-copy>p{max-width:330px;margin:22px 0 25px;font-size:15px}.hero-actions{gap:12px}.button{gap:35px;min-height:50px;padding:12px 18px;font-size:14px}.hero-art{aspect-ratio:1.2;width:100%;max-width:460px;max-height:340px;margin:14px auto 0}.hero-art img{object-fit:contain}.interests{gap:14px;padding:24px 0}.interest{display:block}.interest-index{font-size:10px}.interest>div{border:0;margin-top:9px;padding-left:0}.interest h2{font-size:14px}.interest p{max-width:100px;margin-top:6px;font-size:11px;line-height:1.8}.about-details{font-size:12px}.section{padding-top:70px}.section-title-line{gap:16px}.section-number{font-size:10px}.section h2{letter-spacing:-1.8px;font-size:35px}.section-heading>p{margin-top:10px;margin-left:35px;font-size:14px}.gallery-toolbar{gap:15px;margin-top:25px}.filters{gap:1px}.filters button{padding:9px 10px;font-size:12px}.project-grid{grid-template-columns:1fr;gap:32px}.project-cover{aspect-ratio:1.65}.project-title{margin-top:18px}.project-title h3{font-size:21px}.project-category{font-size:10px}.project-description{font-size:13px}.project-meta{gap:10px;font-size:10px}.tech-tags{padding-left:10px}.tools-notice{margin-left:35px;font-size:11px}.tool-row{grid-template-columns:38px minmax(0,1fr);gap:10px 18px;padding:24px 0}.tool-symbol{grid-row:1/3;align-self:start;margin-top:3px;font-size:28px}.tool-info h3{font-size:18px}.tool-info p{font-size:12px}.tool-category{border:0;grid-column:2;padding:0;font-size:10px}.tool-entry{text-align:left;grid-column:2;margin-top:2px;font-size:10px}.unavailable{padding:5px 8px}.tools{padding-bottom:65px}.footer-wordmark{letter-spacing:-2.5px;gap:12px;font-size:42px}.footer-main{align-items:flex-start}.footer-main p{font-size:12px}.back-top{gap:8px;margin-top:14px;font-size:12px}.footer-meta{gap:10px;margin-top:32px;font-size:9px}.footer-meta>div:empty{display:none}}@media (width<=380px){.container{width:calc(100% - 32px)}.site-header nav{gap:12px;font-size:11px}.brand{font-size:20px}.button{gap:20px}.footer-wordmark{font-size:35px}.back-top{font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-latin-400-normal.B40WzpMT.woff2)format("woff2"),url(/_astro/geist-latin-400-normal.akEymXtG.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-latin-500-normal.CTWBw9NS.woff2)format("woff2"),url(/_astro/geist-latin-500-normal.BDXIbFrL.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-latin-600-normal.CSETrqM2.woff2)format("woff2"),url(/_astro/geist-latin-600-normal.DsPlZH-9.woff)format("woff")}
