*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#050505;--bg2:#101010;--ink:#ece8e1;--mid:#8c8c8c;--gray:#4a4a4a;--rule:#191919;--soft:#ddd9d4}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:'Archivo',sans-serif;cursor:none;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.page{display:none}.page.active{display:block}.anchor{scroll-margin-top:58px}
#cur{width:8px;height:8px;background:var(--ink);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;left:0;top:0;transform:translate(-50%,-50%);transition:transform .18s ease,background .18s ease}
#cur.big{transform:translate(-50%,-50%) scale(4.8);background:rgba(220,216,210,.18)}
#cur-f{width:34px;height:34px;border:1px solid rgba(236,232,225,.20);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;left:0;top:0;transform:translate(-50%,-50%)}
nav{position:fixed;inset:0 0 auto;z-index:300;height:58px;padding:0 52px;display:flex;align-items:center;justify-content:space-between;background:rgba(5,5,5,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--rule)}
.n-logo{color:var(--ink);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.01em;cursor:none}
.n-c{display:flex;align-items:center;gap:28px}
.n-a{background:none;border:none;color:var(--gray);font-size:10px;font-weight:400;letter-spacing:.08em;cursor:none;transition:color .2s}
.n-a:hover,.n-logo:hover{color:var(--ink)}
.n-avail{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--gray);letter-spacing:.04em}
.n-dot{width:5px;height:5px;background:#1faa54;border-radius:50%}
.hero{min-height:100vh;padding-top:58px;border-bottom:1px solid var(--rule);display:flex;flex-direction:column}
.hero-spacer{flex:1;min-height:34vh;border-bottom:1px solid var(--rule)}
.hero-inner{padding:0 52px;border-bottom:1px solid var(--rule)}
.hero-label,.section-mini-label,.sec-tag,.pm-k,.pb-lbl,.pg-lbl,.si-k,.f-r a{font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.hero-label{margin:18px 0 20px}.hero-name-outer{margin:0 -52px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hero-name,.ph-name{line-height:.86;letter-spacing:-.06em;display:flex;align-items:baseline;gap:.14em;flex-wrap:wrap}
.hero-name{font-size:clamp(80px,13vw,190px);padding:12px 52px 8px}.ph-name{font-size:clamp(52px,9vw,136px);padding:14px 52px 10px}
.thin{font-style:italic;font-weight:300;letter-spacing:-.02em}.hero-foot{padding:26px 0 22px}
.hero-copy{font-size:14px;line-height:1.9;color:var(--mid);max-width:390px;font-weight:300}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr)}
.hs{padding:18px 52px 16px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hs:last-child{border-right:none}.hs-n{font-size:22px;line-height:1;color:var(--ink);margin-bottom:4px;font-weight:600}.hs-l{font-size:9px;color:var(--gray);letter-spacing:.16em;text-transform:uppercase}
.section-mini-label{padding:20px 52px 12px}#project-list{border-top:1px solid var(--rule)}
.p-row{width:100%;height:82px;display:grid;grid-template-columns:54px minmax(260px,1fr) minmax(180px,360px);align-items:center;gap:18px;padding:0 52px;background:transparent;border:none;border-bottom:1px solid var(--rule);color:var(--ink);cursor:none;text-align:left;transition:background .18s ease}
.p-num{font-size:11px;color:#242424;letter-spacing:.06em}.p-title{font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--ink);transition:color .18s ease,transform .28s ease}
.p-meta{display:flex;justify-content:flex-end;align-items:center}.p-cat{font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:#303030;white-space:nowrap;transition:color .18s ease}
.p-row.hovered{background:var(--soft)}.p-row.hovered .p-num{color:rgba(0,0,0,.16)}.p-row.hovered .p-title{color:#f5f3ee;transform:translateX(6px)}.p-row.hovered .p-cat{color:rgba(255,255,255,.28)}
.about-teaser{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;padding:44px 52px;border-top:1px solid var(--rule);cursor:none;transition:background .2s}
.about-teaser:hover{background:var(--bg2)}.teaser-tag{margin-bottom:12px}.about-teaser-text{font-size:clamp(18px,2vw,26px);font-style:italic;line-height:1.55;color:var(--mid);max-width:680px}
.about-teaser-link{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--gray);letter-spacing:.14em;text-transform:uppercase}
.contact-sec{position:relative;padding:80px 52px 72px;border-top:1px solid var(--rule);overflow:hidden}
.contact-h{font-size:clamp(64px,8vw,136px);line-height:.86;letter-spacing:-.05em;margin:16px 0 28px}.contact-h .thin{display:block;color:var(--mid)}
.contact-email{display:inline-block;color:var(--ink);text-decoration:none;font-size:clamp(20px,1.8vw,30px);font-style:italic;position:relative}
.contact-email::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--ink);transform:scaleX(.25);transform-origin:left;transition:transform .35s ease}
.contact-email:hover::after{transform:scaleX(1)}
.contact-ghost{position:absolute;right:-14px;bottom:-48px;font-size:clamp(110px,18vw,260px);line-height:1;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px var(--rule);user-select:none;pointer-events:none}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 52px;border-top:1px solid var(--rule);background:var(--bg2)}
.f-l{font-size:10px;color:var(--gray)}.f-r{display:flex;gap:22px}.f-r a{color:var(--gray);text-decoration:none;cursor:none}.f-r a:hover{color:var(--ink)}
.about{min-height:100vh;padding-top:58px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule)}
.ab-l,.ab-r{padding:80px 52px}.ab-l{border-right:1px solid var(--rule)}
.ab-h{font-size:clamp(44px,5vw,78px);line-height:.9;letter-spacing:-.05em;margin-bottom:34px}.ab-h .thin{display:block;color:var(--mid)}.ab-body{font-size:15px;line-height:1.9;color:var(--mid)}.ab-body p+p{margin-top:16px}
.sk-list{border-top:1px solid var(--rule)}.sk{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--rule)}.sk-name{font-size:14px}.sk-n{font-size:10px;color:var(--gray)}
.pw{padding-top:58px}.ph{border-bottom:1px solid var(--rule)}.ph-top{padding:42px 52px 0}.back{display:inline-flex;align-items:center;gap:10px;background:none;border:none;color:var(--gray);cursor:none;font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:34px}.back:hover{color:var(--ink)}
.ph-name-wrap{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.ph-meta-strip{display:grid;grid-template-columns:repeat(3,1fr)}.pm-cell{padding:18px 52px;border-right:1px solid var(--rule)}.pm-cell:last-child{border-right:none}.pm-v,.si-v{font-size:13px;color:var(--ink)}
.pc-wrap{min-height:460px;display:flex;justify-content:center;align-items:center;padding:58px 52px;background:var(--bg2);border-bottom:1px solid var(--rule)}.pc-wrap img{max-width:920px;width:100%;max-height:620px;object-fit:contain}
.pb{display:grid;grid-template-columns:280px 1fr;border-bottom:1px solid var(--rule)}.pb-s{padding:52px;border-right:1px solid var(--rule)}.si{padding:14px 0;border-bottom:1px solid var(--rule)}.pb-t{padding:52px}.pb-t p{font-size:clamp(18px,2vw,24px);line-height:1.8;color:var(--mid);font-style:italic}
.pg{padding:52px;border-bottom:1px solid var(--rule)}.gg{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.gi{min-height:240px;display:flex;align-items:center;justify-content:center;padding:26px;background:var(--bg2)}.gi.wide{grid-column:span 2}.gi img{max-width:100%;max-height:420px}
.preview-img{position:fixed;pointer-events:none;z-index:500;width:280px;height:200px;overflow:hidden;opacity:0;transform:translate(-50%,-50%);transition:opacity .16s ease;border:1px solid rgba(255,255,255,.08);background:rgba(18,18,18,.98);display:flex;align-items:center;justify-content:center;padding:26px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.preview-img img{max-width:100%;max-height:100%;object-fit:contain;display:block}.preview-img.visible{opacity:1}
@media (max-width:900px){nav{padding:0 20px}.n-c .n-a{display:none}.hero-inner,.ab-l,.ab-r,.contact-sec,footer,.ph-top,.ph-name,.pm-cell,.pb-s,.pb-t,.pg,.section-mini-label{padding-left:20px;padding-right:20px}.hero-name-outer{margin:0 -20px}.hero-name{padding:10px 20px 8px;font-size:clamp(60px,15vw,100px)}.hero-spacer{min-height:26vh}.hero-stats{grid-template-columns:1fr 1fr}.hs{padding-left:20px;padding-right:20px}.p-row{grid-template-columns:36px 1fr;padding:0 20px}.p-meta{display:none}.about-teaser{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.about{grid-template-columns:1fr}.ab-l{border-right:none;border-bottom:1px solid var(--rule)}.pb{grid-template-columns:1fr}.pb-s{border-right:none;border-bottom:1px solid var(--rule)}.ph-meta-strip{grid-template-columns:1fr}.pm-cell{border-right:none;border-bottom:1px solid var(--rule)}}
@media (pointer:coarse){body,button,a{cursor:auto}#cur,#cur-f,.preview-img{display:none!important}}
.pg {
  padding: 52px;
  border-bottom: 1px solid var(--rule);
}
.pg-lbl {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 28px;
}
.gg {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.gi {
  background: var(--bg2);
  border: 1px solid var(--rule);
  border-radius: 14px;
  overflow: hidden;
  padding: 14px;
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gi.wide {
  grid-column: span 2;
}
.gi img {
  width: 100%;
  height: auto;
  max-height: 700px;
  object-fit: contain;
  display: block;
  border-radius: 8px;
}
.pc-wrap {
  background: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px 52px;
  border-bottom: 1px solid var(--rule);
  min-height: 520px;
}
.pc-wrap img {
  max-width: 1000px;
  width: 100%;
  max-height: 700px;
  object-fit: contain;
  display: block;
}
@media (max-width: 900px) {
  .gg {
    grid-template-columns: 1fr;
  }
  .gi.wide {
    grid-column: span 1;
  }
  .pg,
  .pc-wrap {
    padding-left: 20px;
    padding-right: 20px;
  }
  .pb-t p {
    font-size: 16px;
  }
}
