:root,.dark{--background:#101010;--foreground:#f4f2ef;--primary:#e33137;--primary-foreground:#fff;--popover:#161616;--muted:#242424;--muted-foreground:#999;--border:#333;--radius:0;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--background);color:var(--foreground);font-family:Arial,'Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:5px}button{border-radius:0!important}p,h1,h2,h3{margin:0}img,video{display:block}button svg{flex-shrink:0}.nav{height:100px;margin:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);font-size:11px;letter-spacing:.09em}.nav>a:first-child{font-size:27px;font-weight:800;letter-spacing:-1.4px}.nav span,footer span{color:var(--primary);font-size:12px;vertical-align:top;margin-left:3px}.nav nav{display:flex;gap:40px}.nav>a:last-child{display:flex;align-items:center;gap:10px}.nav a:hover{color:var(--primary)}.hero{padding-top:54px}.hero-intro{margin:0 8vw 48px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.hero-intro h1{font-size:clamp(40px,5.2vw,78px);line-height:.98;font-weight:400;letter-spacing:-.065em}.hero-intro h1 span{color:#aaa}.hero-intro p{font-size:12px;line-height:2.1;margin-left:auto;margin-right:7vw}.hero-intro p span{color:#939393}.archive-link{font-size:11px;padding-bottom:5px;border-bottom:1px solid #555}.hero-stage{margin:0 5vw;padding-inline:var(--inset,3vw)}.hero-screen{position:relative;display:block;width:100%;height:min(59vw,650px);max-height:65vh;background:#080808;padding:0;border:0;overflow:hidden}.hero-video{width:100%;height:100%;object-fit:contain}.hero-play{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:12px;padding:18px 22px;border:1px solid #fff8;border-radius:99px;background:#1118;backdrop-filter:blur(8px);font-size:11px;opacity:0;transform:translate(calc(-50% + var(--mx,0px)),calc(-50% + var(--my,0px)));transition:opacity .25s,transform .2s ease-out;pointer-events:none}.hero-screen:hover .hero-play,.hero-screen:focus-visible .hero-play{opacity:1}.frame-label{position:absolute;bottom:22px;left:24px;font:10px monospace;color:#fff;background:#1117;padding:7px}.hero-caption{margin:24px 8vw 38px;display:flex;justify-content:space-between;align-items:center}.hero-caption span{font:10px monospace;letter-spacing:.08em;color:#888}.hero-caption h2{font-size:20px;font-weight:400;margin-top:9px;letter-spacing:-.02em}.motion-control{display:flex;align-items:center;gap:8px;font-size:10px!important;color:#bbb;background:none;border:0;padding:10px}.feature-select{display:flex;margin:0 8vw;border-top:1px solid var(--border);gap:28px}.feature-select button{display:flex;align-items:center;flex:1;justify-content:space-between;white-space:normal;text-align:left;height:auto;padding:20px 0;background:none!important;border:0;border-top:1px solid transparent;margin-top:-1px;color:#888;font-size:11px;gap:12px}.feature-select button span{font:10px monospace}.feature-select .chosen{color:#f4f2ef;border-color:var(--primary)}.feature-select .chosen span{color:var(--primary)}.works{padding:115px 8vw 80px}.section-heading{border-top:1px solid var(--border);padding-top:24px;display:flex;justify-content:space-between;align-items:center}.section-heading>p,.about>p{font:10px monospace;letter-spacing:.08em;color:#999}.section-heading h2{font-size:30px;font-weight:400;letter-spacing:-.04em}.section-heading h2 span{font:12px monospace;color:#888}.filter-bar{display:flex;justify-content:space-between;align-items:center;margin:48px 0 24px}.medium-tabs{display:flex;gap:28px}.medium-tabs button{background:none!important;border:0;padding:0 0 10px;font-size:23px;height:auto;color:#777;display:flex;gap:10px;border-bottom:1px solid transparent}.medium-tabs .selected{color:#fff;border-color:var(--primary)}.medium-tabs small{font:10px monospace;color:#777}.search{display:flex;gap:10px;align-items:center;color:#888;border-bottom:1px solid #444;padding:8px 0}.search input{width:140px;background:none;border:0;color:#eee;font-size:12px;outline:none}.search button{background:none;border:0}.facets{display:flex;flex-wrap:wrap;gap:16px 45px;padding:4px 0 24px}.filter-row{display:flex;align-items:center;gap:4px}.filter-row>span{font-size:10px;color:#777;margin-right:12px}.filter-row button{background:none;border:0;font-size:11px;color:#999;padding:7px 12px;height:auto}.filter-row .selected{color:#fff;background:#292929}.result-count{font:10px monospace;color:#777;display:flex;justify-content:space-between;border-top:1px solid var(--border);padding-top:20px;margin-bottom:30px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 35px;align-items:start}.project-card{border:0;background:none;padding:0;text-align:left;min-width:0}.card-media{position:relative;background:#080808;overflow:hidden;width:100%}.portrait-card{width:76%;justify-self:center}.card-media img,.card-media video{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.card-media video{opacity:0;transition:opacity .4s}.project-card:hover video{opacity:1}.play-mark{position:absolute;right:16px;bottom:16px;width:38px;height:38px;display:grid;place-items:center;background:#1119;border:1px solid #fff6;border-radius:50%;transition:background .2s}.project-card:hover .play-mark{background:var(--primary);border-color:var(--primary)}.card-info{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:18px}.card-info p{font-size:10px;color:#888;margin-bottom:9px;line-height:1.7}.card-info h3{font-size:18px;font-weight:400;line-height:1.5}.project-arrow{color:#888;transition:transform .25s}.project-card:hover .project-arrow{color:var(--primary);transform:translate(3px,-3px)}.empty{padding:80px 0;text-align:center;color:#aaa}.empty h3{font-size:18px;margin-bottom:20px}.about{margin:50px 8vw 0;border-top:1px solid var(--border);padding:65px 0 100px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.about h2{font-size:clamp(30px,4vw,60px);font-weight:400;line-height:1.4;letter-spacing:-.04em}.intro{font-size:15px;color:#999;line-height:2;margin-top:35px}.contact{display:flex;align-items:center;gap:22px;margin-top:38px;color:var(--primary);font-size:17px;width:fit-content;border-bottom:1px solid #633;padding-bottom:12px}footer{margin:0 5vw;padding:35px 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}footer>a:first-child{font-size:27px;font-weight:800;letter-spacing:-1px}footer p{font:9px monospace;color:#666}footer>a:last-child{font-size:11px}.project-dialog,dialog{width:min(1150px,94vw)!important;max-width:1150px!important;max-height:92dvh;overflow-y:auto;background:#161616;color:#eee;border:1px solid #444;border-radius:0!important;padding:30px!important;gap:22px!important}.detail-heading>p{font:10px monospace;color:var(--primary);margin-bottom:12px}.detail-title{font-size:24px!important;font-weight:400!important;padding-right:35px;line-height:1.5!important}.detail-video{width:100%;height:auto;max-height:65dvh;object-fit:contain;background:#080808}.detail-copy{display:grid;grid-template-columns:2fr 1fr;gap:30px}.detail-copy span{font:10px monospace;color:#aaa;display:block;margin-bottom:10px}.detail-copy p{font-size:12px;line-height:1.9;color:#999}.detail-nav{border-top:1px solid #333;padding-top:15px;display:flex;justify-content:space-between;align-items:center}.detail-nav>span{font:10px monospace;color:#777}.detail-nav button{background:none;border:0;display:flex;gap:10px;align-items:center;padding:10px;font-size:12px}.clip-tabs{display:flex;gap:8px;flex-wrap:wrap}.clip-tabs button{font-size:11px;background:none;border:1px solid #444;padding:8px 12px}.clip-tabs .selected{background:var(--primary);border-color:var(--primary)}.image-gallery{display:grid;gap:24px}.image-gallery img{width:100%;height:auto;object-fit:contain}.image-gallery a{display:block}.image-gallery a:focus-visible{outline-offset:0}[data-slot=dialog-overlay],dialog::backdrop{background:#000c!important;backdrop-filter:blur(10px)}dialog{position:fixed;inset:0;margin:auto}.close-dialog{position:absolute;top:12px;right:16px;background:none;border:0;font-size:26px}.detail-video,.image-gallery{margin:20px 0}
@media(max-width:700px){.nav{height:76px}.nav nav{gap:24px}.nav>a:last-child{font-size:9px}.hero{padding-top:38px}.hero-intro{margin:0 6vw 30px;flex-wrap:wrap;gap:25px}.hero-intro h1{font-size:46px}.hero-intro p{font-size:10px;margin:0 0 4px auto}.archive-link{display:none}.hero-stage{margin:0 3vw;padding:0!important}.hero-screen{height:56vw;max-height:none}.hero-play{opacity:1;padding:10px 14px;font-size:9px;top:auto;bottom:14px;left:auto;right:12px;transform:none}.frame-label{left:12px;bottom:14px;font-size:8px}.hero-caption{margin:22px 6vw}.hero-caption h2{font-size:17px}.feature-select{margin:0 6vw;gap:12px}.feature-select button{font-size:10px;align-items:flex-start;padding:16px 0;line-height:1.6}.feature-select svg{display:none}.works{padding:70px 6vw}.section-heading{align-items:flex-start}.section-heading h2{font-size:24px}.filter-bar{margin-top:35px}.medium-tabs{gap:22px}.medium-tabs button{font-size:21px}.search input{width:92px}.facets{gap:12px}.filter-row button{padding:7px 10px}.project-grid{gap:38px;grid-template-columns:1fr}.portrait-card{width:80%}.card-info h3{font-size:18px}.about{margin:0 6vw;padding:45px 0 65px;grid-template-columns:1fr;gap:30px}.about h2{font-size:34px}.contact{font-size:16px}footer p{display:none}.project-dialog,dialog{padding:20px!important}.detail-copy{grid-template-columns:1fr;gap:20px}.detail-title{font-size:20px!important}.result-count>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-play{transform:translate(-50%,-50%)}}

/* Independent vertical flow: preserve full artwork without row-height gaps. */
.project-grid{--work-gap:52px;grid-auto-rows:1px;row-gap:0;column-gap:36px;align-items:start}
.project-card,.portrait-card{width:100%;min-width:0;justify-self:stretch;align-self:start}
.project-grid>.empty{grid-column:1/-1;grid-row:auto}
@media(max-width:700px){.project-grid{--work-gap:36px;column-gap:0}.portrait-card{width:100%}.portrait-card .card-media{max-width:420px;margin-inline:auto}}
