:root{--paper:#fff;--paper2:#f5f4f2;--ink:#000;--signal:#00e;--line:#000;--line-strong:#000;--muted:#000}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);font-family:Arial,Helvetica,sans-serif}.nav{z-index:50;flex-direction:column;gap:10px;padding:28px 0 0 32px;display:flex;position:fixed;top:0;left:0}.nav .name{text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:400}.nav a{text-transform:uppercase;letter-spacing:.04em;color:var(--ink);width:fit-content;font-family:Arial,Helvetica,sans-serif;font-size:11px;text-decoration:none;display:block}.nav a:hover{color:var(--signal);text-decoration:underline}.coords-badge{z-index:50;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:right;white-space:nowrap;font-family:Arial,Helvetica,sans-serif;font-size:11px;position:fixed;top:28px;right:32px}.landing{justify-content:center;align-items:center;height:100vh;padding:0 60px;display:flex;position:relative}.graph{width:min(74vw,98.4375vh,900px);height:min(52.6221vw,70vh,640px);position:relative}.axis-line{background:var(--line-strong);position:absolute}.axis-h{width:100%;height:1px;top:50%;left:0}.axis-v{width:1px;height:100%;top:0;left:50%}.axis-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-family:Arial,Helvetica,sans-serif;font-size:11px;position:absolute}.axis-label.left{text-align:right;top:50%;left:-4px;transform:translate(-100%,-50%)}.axis-label.right{top:50%;right:-4px;transform:translate(100%,-50%)}.axis-label.top{text-align:center;top:-8px;left:50%;transform:translate(-50%,-100%)}.axis-label.bottom{text-align:center;bottom:-8px;left:50%;transform:translate(-50%,100%)}.node{cursor:grab;text-align:center;color:var(--ink);white-space:nowrap;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:400;line-height:1.15;display:flex;position:absolute;transform:translate(-50%,-50%)}.node:active{cursor:grabbing}.node:hover{color:var(--signal);text-decoration:underline}.node .node-thumb{background:var(--ink);position:relative;overflow:hidden}.node .node-thumb img{object-fit:cover}.node .ratio-land{width:32px;height:18px}.node .ratio-port{width:20px;height:25px}.work{padding:140px 32px 100px;position:relative}.work-head{margin-bottom:32px}.work-head h2{text-transform:uppercase;letter-spacing:.05em;font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:400}.filters{flex-wrap:wrap;gap:18px;margin-top:24px;display:flex}.filter-btn{cursor:pointer;color:var(--ink);background:0 0;border:none;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:13px}.filter-btn:hover{color:var(--signal);text-decoration:underline}.filter-btn.active{text-decoration:underline}.grid{background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.card{background:var(--paper);cursor:pointer;flex-direction:column;gap:14px;min-height:220px;padding:32px;transition:background .25s;display:flex}.card:hover{background:var(--paper2)}.card.hidden{display:none}.card-filler{cursor:default;pointer-events:none}.card-filler:hover{background:var(--paper)}.thumb{background:var(--ink);position:relative;overflow:hidden}.thumb img{object-fit:cover}.thumb.ratio-land{width:96px;height:54px}.thumb.ratio-port{width:60px;height:75px}.card-meta{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card:hover .card-title{color:var(--signal);text-decoration:underline}.card-title-group{flex-direction:column;gap:6px;display:flex}.card-title{font-size:19px;font-weight:400;line-height:1.3}.card-client{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-family:Arial,Helvetica,sans-serif;font-size:11px}.card-index{color:var(--muted);font-family:Arial,Helvetica,sans-serif;font-size:12px}.card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:340px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.about{grid-template-columns:1fr 1fr;gap:60px;padding:120px 32px;display:grid}.about h2{max-width:560px;margin-bottom:20px;font-size:20px;font-weight:400;line-height:1.5}.about-intro{color:var(--muted);max-width:560px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.7}.languages{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:20px;font-family:Arial,Helvetica,sans-serif;font-size:11px}.about-cols{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.about-cols .col-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:12px;font-family:Arial,Helvetica,sans-serif;font-size:11px}.about-cols ul{color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:2;list-style:none}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding:60px 32px 40px;font-family:Arial,Helvetica,sans-serif;font-size:12px;display:flex}.footer-cta{margin-bottom:14px;font-family:Arial,Helvetica,sans-serif;font-size:22px}.footer-link{padding:1px 6px}.footer-link a{color:var(--ink);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.footer-link a:hover{color:var(--signal);text-decoration:underline}.footer-info{text-align:right;line-height:1.7}.overlay{z-index:100;background:0 0;transition:transform .5s cubic-bezier(.65,0,.35,1);position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}.overlay.open{transform:translateY(0)}.ov-control{z-index:110;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:400;transition:opacity .3s;position:fixed}.ov-control.visible{opacity:1;pointer-events:auto}.ov-control:hover{color:var(--signal)}#ovClose{font-size:26px;line-height:1;top:32px;left:50%;transform:translate(-50%)}#ovPrev,#ovNext{font-size:22px;line-height:1;top:50%;transform:translateY(-50%)}#ovPrev{left:32px}#ovNext{right:32px}.ov-header{text-align:left;width:800px;max-width:92vw;margin:0 auto;padding:140px 0 48px}.ov-header h1{font-size:26px;font-weight:400;line-height:1.25}.ov-header .eyebrow{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:10px;font-family:Arial,Helvetica,sans-serif;font-size:11px;display:block}.ov-body{flex-direction:column;align-items:center;padding:0 24px 60px;display:flex}.ov-pair{flex-direction:column;align-items:center;width:100%;margin-bottom:100px;display:flex}.ov-pair:last-child{margin-bottom:80px}.ov-img{background:var(--ink);justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative;overflow:hidden}.ov-img.ratio-land{aspect-ratio:16/9;width:min(900px,92vw,124.44vh);height:auto}.ov-img.ratio-port{aspect-ratio:4/5;width:min(600px,92vw,64vh);height:auto}.ov-img-pair{justify-content:center;gap:32px;max-width:92vw;margin:0 auto;display:flex}.ov-img-pair .ov-img{aspect-ratio:4/5;flex:1 1 0;width:min(436px,46vw - 16px,64vh);height:auto;margin:0}.ov-img span{color:var(--muted);font-size:12px}.ov-img img,.ov-img video{object-fit:cover;width:100%;height:100%;display:block}.ov-text{text-align:left;width:800px;max-width:92vw;padding-top:28px}.ov-text .eyebrow{color:var(--muted);margin-bottom:14px;font-size:13px}.ov-text p{font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.7}.ov-text p a{color:var(--ink);text-decoration:underline}.ov-text p a:hover{color:var(--signal)}@media (max-width:860px){.graph{width:min(92vw,62vh);height:min(92vw,62vh)}.grid{grid-template-columns:1fr}.about{grid-template-columns:1fr;gap:32px;padding:70px 32px 90px}.ov-img-pair{gap:12px}.landing{flex-direction:column;height:auto;padding-top:170px;padding-bottom:0}.work{padding:150px 32px 80px}.footer-info{text-align:left}#ovPrev{left:16px}#ovNext{right:16px}}@media (max-width:480px){.coords-badge{white-space:normal;max-width:110px;font-size:9px;line-height:1.4}.landing{padding-left:20px;padding-right:20px}.graph{width:min(84vw,62vh);height:min(84vw,62vh)}.axis-label{font-size:9px}.axis-label.left{text-align:left;background:var(--paper);padding-right:4px;left:0;transform:translateY(-50%)}.axis-label.right{text-align:right;background:var(--paper);padding-left:4px;right:0;transform:translateY(-50%)}.node{white-space:normal;max-width:84px;font-size:10px}}
