*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:#151515;background:#fff;font-family:Arial,"Microsoft YaHei",sans-serif;font-weight:400}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #817052;outline-offset:5px}header{height:80px;padding:0 30px;position:fixed;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;z-index:20;background:#fff} .brand{font-size:24px;font-weight:800;letter-spacing:-2px;white-space:nowrap}.brand span{font-size:12px;font-weight:400;letter-spacing:2px;margin-left:9px}nav{display:flex;gap:36px;font-size:13px}nav a{position:relative;color:#777;white-space:nowrap}nav a.active{color:#111}nav a.active:before{content:"";width:5px;height:5px;background:#111;position:absolute;left:-12px;top:7px}.actions{display:flex;gap:18px}.actions button{padding:8px}.actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3}#menu{display:none}main{padding-top:102px;min-height:85vh}.section-head{margin:20px 5vw 40px;display:flex;justify-content:space-between;align-items:baseline}.section-head h1{font-size:15px;font-weight:400;margin:0}.section-head span{font-size:11px;color:#888;letter-spacing:.08em}.project{margin:0 5vw 64px;display:block}.project-image{overflow:hidden;background:#e6e4df;position:relative;aspect-ratio:2.05}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .78s cubic-bezier(.45,0,.55,1),opacity .6s}.project:hover img{transform:scale(1.018)}.project-caption{display:flex;justify-content:space-between;margin-top:14px;gap:12px;font-size:12px;line-height:1.7}.project-caption h2{font-weight:400;font-size:14px;margin:0}.project-caption span{color:#777}.project-caption .arrow{font-size:21px;color:#111}.caption-right{display:flex;gap:24px;align-items:center}.page-title{font-size:clamp(27px,4vw,52px);font-weight:400;margin:0 0 20px}.page-intro{margin:28px 5vw 55px;max-width:700px;line-height:1.8}.muted{color:#777;font-size:12px}.detail-head{margin:24px 5vw 40px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.detail-head dl{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;font-size:12px}.detail-head dt{color:#888;margin-bottom:8px}.detail-head dd{margin:0}.back{font-size:12px;display:inline-block;margin-bottom:28px}.detail-image{margin:0 5vw 35px}.detail-image img{width:100%;display:block}.detail-image figcaption{font-size:11px;color:#777;margin:10px 0}.text-line{margin:45px 5vw;font-size:14px;line-height:1.9;max-width:700px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:11px;border-bottom:1px solid #ccc;padding:5px 0;margin-right:15px}.module{margin:0 5vw 100px;scroll-margin-top:110px}.module-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid #ddd;padding-top:24px}.module h2{font-size:28px;font-weight:400;margin:0 0 12px}.module-head p{font-size:13px;line-height:1.9;max-width:420px}.diagram{height:280px;background:#f4f3ef;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.diagram svg{width:90%;height:85%}.module-body{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;margin-top:30px}.module-body img{width:100%;aspect-ratio:1.7;object-fit:cover}.eyebrow{font-size:10px;color:#888;letter-spacing:.1em;margin:0 0 16px}.related-link{display:block;border-bottom:1px solid #ddd;padding:18px 0;font-size:13px}.videos{margin:0 5vw;display:grid;grid-template-columns:1fr 1fr;gap:50px 30px}.video-cover{aspect-ratio:1.75;background:#eee;position:relative;overflow:hidden}.video-cover img{width:100%;height:100%;object-fit:cover}.play{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:35px;text-shadow:0 1px 15px #000}.video h2{font-size:16px;font-weight:400}.video button.open-video{padding:0;text-align:left;width:100%}.site-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:0 3px}.site-grid button{padding:0;overflow:hidden;aspect-ratio:1.2;background:#eee}.site-grid img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .5s}.site-grid button:hover img{transform:scale(1.04)}footer{margin-top:100px;padding:40px 5vw 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:35px;font-size:12px;border-top:1px solid #eee;line-height:1.8}footer span{color:#999;font-size:10px;margin-left:12px}footer small{color:#888}.demo-note{width:100%;font-size:10px;color:#999;margin-top:20px}.demo-note a{text-decoration:underline}dialog{border:0;padding:32px;width:min(720px,90vw);max-height:85vh}dialog::backdrop{background:#0008;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;font-size:13px}.dialog-head button{font-size:28px}#query{width:100%;border:0;border-bottom:1px solid #aaa;padding:22px 0;outline:none;font-size:22px}#results a{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding:20px 0;font-size:14px}#results p{font-size:12px;color:#777}#lightbox{background:#111;color:white;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:30px;align-items:center;justify-content:space-between}#lightbox[open]{display:flex}#lightbox figure{margin:0;width:85%;text-align:center}#lightbox img{max-width:100%;max-height:82vh;object-fit:contain}#lightbox figcaption{font-size:12px;margin-top:18px}.light-close{position:absolute;top:15px;right:22px;font-size:32px}#intro{position:fixed;inset:0;z-index:100;background:#080808;color:white;transition:background .75s;pointer-events:auto}.intro-brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:48px;letter-spacing:-3px;font-weight:800;white-space:nowrap;transition:all 1s cubic-bezier(.65,0,.35,1)}.intro-brand span{font-size:22px;font-weight:400;letter-spacing:4px;margin-left:15px}#intro.leave{background:transparent;pointer-events:none}#intro.leave .intro-brand{left:30px;top:25px;transform:translate(0,0);font-size:24px;color:#111}#intro.leave .intro-brand span{font-size:12px;letter-spacing:2px;margin-left:9px}#skip{position:absolute;bottom:30px;right:5vw;font-size:12px}#intro.leave #skip{display:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.admin{margin:20px 5vw;max-width:1000px}.admin textarea{display:block;width:100%;height:460px;border:1px solid #ddd;padding:20px;font:12px/1.6 monospace}.admin button,.notice button{background:#111;color:white;padding:12px 20px;margin:15px 10px 0 0}.notice{padding:30px;background:#f4f3ef;line-height:1.8}.error-image{object-fit:contain!important;opacity:.6}@media(min-width:1600px){.project-image{aspect-ratio:2.3}}@media(max-width:760px){header{height:62px;padding:0 5vw}.brand{font-size:22px}.brand span{font-size:10px}#menu{display:block}nav{display:none;position:fixed;inset:62px 0 auto;background:white;padding:24px 9vw 36px;flex-direction:column;gap:28px;border-bottom:1px solid #eee}nav.expanded{display:flex}main{padding-top:80px}.section-head{margin:15px 5vw 25px}.section-head span{font-size:9px}.project{margin-bottom:40px}.project-image{aspect-ratio:1.25}.project-caption{font-size:10px}.project-caption h2{font-size:13px}.caption-right{gap:10px}.detail-head,.module-head,.module-body{grid-template-columns:1fr;gap:20px}.detail-head dl{margin:0}.videos{grid-template-columns:1fr;gap:40px}.site-grid{grid-template-columns:repeat(2,1fr)}.page-intro{margin-top:20px;margin-bottom:35px}.module{margin-bottom:65px}.diagram{height:240px}#lightbox{padding:10px}#lightbox figure{width:82%}.intro-brand{font-size:38px}#intro.leave .intro-brand{left:5vw;top:18px;font-size:22px}#intro.leave .intro-brand span{font-size:10px}footer{margin-top:60px}.project-caption .arrow{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
