@font-face{font-family:'Zeroes';src:url(fonts/zeroes.one-regular.otf) format('opentype');font-display:swap}
@font-face{font-family:'Helmet';src:url(fonts/helmet.regular.ttf) format('truetype');font-display:swap}

:root{
  --dim:rgba(255,255,255,.58);--faint:rgba(255,255,255,.18);--hair:rgba(255,255,255,.32);
  --pdim:rgba(0,0,0,.55);--pfaint:rgba(0,0,0,.12);
  --disp:'Zeroes',system-ui,sans-serif;--sans:'Helmet',system-ui,sans-serif;
  --gut:6vw;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:#000;color:#fff;font-family:var(--sans);-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
a{color:inherit}
button{font:inherit;color:inherit}
em{font-style:normal;color:var(--dim)}
.tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--gut)}
.disp{font-family:var(--disp);font-weight:400;letter-spacing:.01em}
@keyframes blink{50%{opacity:0}}

/* ---------- sections ---------- */
.paper{background:#fff;color:#000}
.paper em{color:rgba(0,0,0,.42)}
.paper .tag{color:var(--pdim)}
.sec{padding:16vh 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;border-bottom:1px solid currentColor;padding-bottom:22px;margin-bottom:6vh}
.sec-head h2{font-family:var(--disp);font-weight:400;font-size:clamp(44px,6.6vw,100px);line-height:.95}
.sec-head p{max-width:40ch;font-size:16px;line-height:1.55;opacity:.7}
.btn{display:inline-flex;align-items:center;gap:12px;padding:18px 26px;border:1px solid currentColor;font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;background:transparent;cursor:pointer;transition:background .2s,color .2s}
.paper .btn:hover,.paper .btn.solid{background:#000;color:#fff}
.paper .btn.solid:hover{background:#fff;color:#000}
.ink .btn:hover,.ink .btn.solid{background:#fff;color:#000;border-color:#fff}
.ink .btn.solid:hover{background:#000;color:#fff}

/* ---------- offers ---------- */
.offers{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}
.offer{border:1px solid #fff;padding:32px;display:flex;flex-direction:column;gap:24px}
.offer.main{background:#fff;color:#000}
.offer.main .tag{color:var(--pdim)}
.offer.main .btn.solid{background:#000;color:#fff;border-color:#000}
.offer.main .btn.solid:hover{background:#fff;color:#000}
.offer:not(.main) h3{font-size:clamp(28px,2.6vw,40px)}
.offer .body{font-size:16px;line-height:1.55;opacity:.8}
.offer h3{font-family:var(--disp);font-weight:400;font-size:clamp(34px,3.6vw,54px);line-height:1}
.price{font-family:var(--disp);font-size:clamp(40px,4.6vw,72px);line-height:1;letter-spacing:-.01em}
.price small{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-top:10px}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid currentColor}
.steps li{counter-increment:s;padding:16px 14px 0 0;font-size:14px;line-height:1.45;position:relative}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-size:11px;letter-spacing:.16em;opacity:.55;margin-bottom:10px}
.steps li b{display:block;font-weight:400;font-size:16px;margin-bottom:4px}
.offer .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

/* ---------- cases: blog-style posts ---------- */
.post{display:block;text-decoration:none;border:1px solid #000}
.featured{display:grid;grid-template-columns:1.25fr 1fr;transition:background .25s,color .25s}
.featured:hover{background:#000;color:#fff}
.featured:hover .post-meta,.featured:hover p{color:rgba(255,255,255,.7)}
.post-text{padding:36px;display:flex;flex-direction:column;gap:18px}
.post-meta{display:flex;flex-wrap:wrap;gap:18px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pdim)}
.post h3{font-family:var(--disp);font-weight:400;line-height:1.02}
.featured h3{font-size:clamp(34px,4vw,64px)}
.post p{font-size:16px;line-height:1.6;color:rgba(0,0,0,.7);max-width:52ch}
.read{margin-top:auto;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.post-visual{display:grid;grid-template-rows:repeat(3,1fr);border-left:1px solid currentColor}
.pv{display:flex;justify-content:space-between;align-items:center;padding:0 32px;border-bottom:1px solid currentColor;min-height:110px}
.pv:last-child{border-bottom:0}
.pv span{font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.pv b{font-family:var(--disp);font-weight:400;font-size:clamp(48px,5vw,80px);line-height:1;opacity:.25}
.pv.on b{opacity:1}
.postlist{list-style:none;margin-top:20px;border-top:1px solid #000}
.postlist li{display:grid;grid-template-columns:150px 1.2fr 1.4fr 110px;gap:24px;align-items:baseline;padding:26px 4px;border-bottom:1px solid #000}
.pl-date{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pdim)}
.pl-title{font-family:var(--disp);font-size:clamp(20px,1.9vw,28px);line-height:1.1}
.pl-sum{font-size:15px;line-height:1.5;color:rgba(0,0,0,.65)}
.pl-num{font-family:var(--disp);font-size:clamp(26px,2.4vw,36px);text-align:right}
.soon-row{opacity:.55}
.status{display:inline-flex;align-items:center;gap:8px}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;animation:blink 1.2s steps(1) infinite}

/* ---------- story ---------- */
.letter{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,380px);gap:6vw;align-items:start}
.portrait{position:sticky;top:10vh;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;background:#000;color:#fff}
.portrait{order:2}
.portrait img{box-sizing:border-box;border:1px solid #000;width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:grayscale(1) sepia(.22) contrast(1.1)}
.portrait .ph{font-size:10px;letter-spacing:.2em;color:var(--dim)}
.corners{position:absolute;inset:14px;pointer-events:none;mix-blend-mode:difference}
.corners::before,.corners::after,.corners i::before,.corners i::after{content:"";position:absolute;width:12px;height:12px;border:1px solid #fff}
.corners::before{left:0;top:0;border-right:0;border-bottom:0}
.corners::after{right:0;top:0;border-left:0;border-bottom:0}
.corners i::before{left:0;bottom:0;border-right:0;border-top:0}
.corners i::after{right:0;bottom:0;border-left:0;border-top:0}
.story{max-width:640px;min-width:0;overflow-wrap:break-word}
.story p{font-size:clamp(18px,1.4vw,21px);line-height:1.62;margin-bottom:1.2em}
.story .first{font-family:var(--disp);font-size:clamp(28px,2.8vw,42px);line-height:1.12;margin-bottom:6vh}
.beat{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:24px 0;border-top:1px solid #000}
.beat:last-of-type{border-bottom:1px solid #000;margin-bottom:6vh}
.beat .age{font-family:var(--disp);font-size:24px;line-height:1.2}
.beat p{margin:0}
.sign{font-family:var(--disp);font-size:44px!important;margin-top:4vh}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#000;border:1px solid #000;margin-top:6vh}
.nums div{background:#fff;padding:18px 16px}
.nums b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(26px,2.4vw,36px);line-height:1;margin-bottom:10px}
.nums span{font-size:13px;line-height:1.4;color:var(--pdim)}

/* ---------- hire ---------- */
.hire{margin-top:10vh;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;border:1px solid #000;padding:36px}
.hire h3{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3.2vw,48px);line-height:1.05}
.hire p{margin-top:12px;font-size:16px;line-height:1.55;max-width:60ch;opacity:.75}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips span{border:1px solid #000;padding:6px 10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}

/* ---------- contact ---------- */
.contact-title{font-family:var(--disp);font-weight:400;font-size:clamp(54px,10.5vw,176px);line-height:.92;margin-top:18px}
.form{margin-top:8vh;display:grid;grid-template-columns:1.5fr 1fr 1fr;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.form label,.form .pick{display:block;padding:18px;border-right:1px solid var(--hair)}
.form > :first-child{padding-left:0}
.form > :last-child{border-right:0}
.form .tag{display:block;margin-bottom:10px}
.choices{position:relative;display:flex;flex-direction:column}
.choices button{all:unset;cursor:pointer;position:relative;z-index:1;padding:7px 10px;font-size:18px;line-height:1.3;color:rgba(255,255,255,.45);transition:color .25s}
.choices button:hover{color:#fff}
.choices button[aria-checked="true"]{color:#000}
.choices button:focus-visible{outline:1px dashed #fff;outline-offset:2px}
.choices .slider{position:absolute;left:0;right:0;top:0;height:0;background:#fff;transition:transform .35s cubic-bezier(.2,.8,.2,1),height .35s}
.form textarea,.form input,.form select{width:100%;border:0;outline:0;background:transparent;font:18px/1.4 var(--sans);color:#fff;resize:none;-webkit-appearance:none;appearance:none}
.form select option{color:#000}
.form ::placeholder{color:rgba(255,255,255,.3)}
.contact-note{margin-top:22px;font-size:17px;line-height:1.5;color:var(--dim)}
.contact-note a{color:#fff}
.form-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:22px}
.form-foot .tag a{color:#fff}
footer.site{border-top:1px solid var(--hair);margin-top:16vh;padding:22px 0 40px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--dim)}
footer.site a{text-decoration:none}
footer.site a:hover{color:#fff}

@media (max-width:900px){
  .offers,.letter,.featured{grid-template-columns:minmax(0,1fr)}
  .postlist li{grid-template-columns:1fr auto;gap:8px 16px}
  .pl-date,.pl-sum{grid-column:1/-1}
  .post-visual{border-left:0;border-top:1px solid currentColor}
  .steps{grid-template-columns:1fr 1fr;row-gap:18px}
  .portrait{position:relative;top:0;max-width:320px;order:0}
  .nums{grid-template-columns:1fr}
  .hire{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .form label,.form .pick{border-right:0;border-bottom:1px solid var(--hair);padding:16px 0}
}
@media (max-width:600px){
  .post-text,.small{padding:24px}
  .pv{padding:0 24px;min-height:84px}
  .beat{grid-template-columns:1fr;gap:6px}
  .offer{padding:24px}
  .hire{padding:24px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.wrap>.hire:first-child{margin-top:0}
.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-status{flex:1;text-align:right;color:#fff}
.btn:disabled{cursor:default}
