:root{--ink:#121212;--paper:#f4f3ee;--lime:#c8ff00;--orange:#ff721f;--blue:#2469ff;--muted:#888}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans SC",sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.nav{position:fixed;z-index:20;top:0;left:0;width:100%;height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;color:white;mix-blend-mode:difference}.brand{font:500 14px "IBM Plex Mono";letter-spacing:.08em}.brand span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;background:white;color:black;border-radius:50%}.nav nav{display:flex;align-items:center;gap:28px;font:500 12px "IBM Plex Mono"}.pill{border:1px solid currentColor;border-radius:99px;padding:9px 16px}.hero{position:relative;background:#000;color:white;overflow:hidden}.original-cover{min-height:auto;padding:0}.original-cover>img{display:block;width:100%;height:auto}.eyebrow,.section-no{font:600 11px "IBM Plex Mono";letter-spacing:.16em}.scroll{position:absolute;bottom:24px;right:4vw;font:11px "IBM Plex Mono";letter-spacing:.12em;color:white;mix-blend-mode:difference}.scroll b{display:inline-grid;place-items:center;margin-left:8px;width:34px;height:34px;border-radius:50%;background:white;color:black}.intro,.works,.process{padding:110px 4vw}.intro{display:grid;grid-template-columns:1fr 3fr;gap:5vw}.intro-copy h2{margin:0;max-width:1100px;font-size:clamp(34px,4.35vw,68px);line-height:1.32;letter-spacing:-.025em}.intro-copy h2 span{background:var(--lime);padding:.06em .16em .1em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.intro-copy>p{max-width:720px;margin:48px 0 70px;font-size:17px;line-height:2;color:#555}.stats{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bbb}.stats div{padding:25px 0;border-right:1px solid #bbb}.stats div+div{padding-left:25px}.stats b,.stats span{display:block}.stats b{font:500 clamp(26px,3vw,48px) "IBM Plex Mono"}.stats span{margin-top:8px;color:#777;font-size:13px}.works{background:#101010;color:white}.works-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.works h2{margin:12px 0 0;font-size:clamp(48px,7vw,92px);letter-spacing:-.06em}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filters button{cursor:pointer;border:1px solid #555;color:#aaa;background:none;padding:10px 17px;border-radius:99px;font:12px "Noto Sans SC"}.filters button.active{background:var(--lime);border-color:var(--lime);color:black}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:52px 20px}.card{grid-column:span 6;cursor:pointer;transition:opacity .35s,transform .5s}.card:nth-child(3n){grid-column:span 12}.card:nth-child(3),.card:nth-child(6){grid-column:span 6}.card.hidden{display:none}.card:hover{transform:translateY(-8px)}.cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:#222}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.1,1)}.card:hover img{transform:scale(1.035)}.cover:after{content:'VIEW PROJECT ↗';position:absolute;right:18px;bottom:18px;padding:10px 14px;background:var(--lime);color:black;font:600 10px "IBM Plex Mono";opacity:0;transform:translateY(10px);transition:.3s}.card:hover .cover:after{opacity:1;transform:none}.card-info{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:16px}.card-info h3{margin:0;font-size:24px}.card-info p{margin:6px 0 0;color:#888;font:11px "IBM Plex Mono"}.card-info b{font:12px "IBM Plex Mono";color:#777}.personal-pages{display:grid;gap:18px;margin-top:90px}.personal-pages img{display:block;width:100%;height:auto}.process{background:var(--blue);color:white}.process>h2{max-width:1600px;font-size:clamp(36px,5vw,76px);line-height:1.22;letter-spacing:-.035em;margin:55px 0 80px}.process>h2 strong{color:var(--lime);font-weight:900}.process-list{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #ffffff66}.process-list article{padding:28px 20px 60px 0;border-right:1px solid #ffffff66}.process-list article+article{padding-left:20px}.process-list span{font:12px "IBM Plex Mono";color:#bcd0ff}.process-list h3{font-size:26px;margin:45px 0 12px}.process-list p{font-size:14px;color:#d3dfff}footer{background:var(--lime);padding:100px 4vw 30px}footer>p{font-size:18px}footer>a{display:flex;justify-content:space-between;font:400 clamp(50px,11vw,160px)/1 "Archivo Black";letter-spacing:-.07em;border-bottom:3px solid;padding-bottom:30px}footer>div{display:flex;justify-content:space-between;margin-top:25px;font:11px "IBM Plex Mono"}.viewer{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:0;background:#0b0b0b;color:white}.viewer::backdrop{background:#000}.close{position:fixed;z-index:3;top:22px;right:26px;width:50px;height:50px;border:0;border-radius:50%;background:var(--lime);font-size:32px;cursor:pointer}.viewer-head{padding:90px 6vw 40px}.viewer-head p{font:12px "IBM Plex Mono";color:#888}.viewer-head h2{margin:10px 0;font-size:clamp(42px,7vw,90px);letter-spacing:-.05em}.viewer-pages{display:grid;gap:16px;padding:0 6vw 80px}.viewer-pages img{display:block;width:100%;box-shadow:0 10px 50px #000}.cursor{position:fixed;z-index:100;pointer-events:none;width:12px;height:12px;border-radius:50%;background:var(--lime);mix-blend-mode:difference;transform:translate(-50%,-50%)}.reveal{opacity:0;transform:translateY(35px);transition:.8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:760px){.nav{height:62px}.nav nav>a:not(.pill){display:none}.intro{grid-template-columns:1fr;padding-top:80px}.intro-copy,.stats{grid-column:1}.intro-copy h2{font-size:clamp(32px,10vw,48px);line-height:1.38;letter-spacing:-.015em}.stats{grid-template-columns:1fr}.stats div{border-right:0;border-bottom:1px solid #bbb;padding:20px 0!important}.works-head{display:block}.filters{justify-content:flex-start;margin-top:25px}.card,.card:nth-child(3n),.card:nth-child(3),.card:nth-child(6){grid-column:span 12}.process>h2{font-size:clamp(30px,9vw,46px);line-height:1.3}.process-list{grid-template-columns:1fr 1fr}.cursor{display:none}footer>a{font-size:13vw}.scroll{display:none}}
