@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-ExtraLight.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Geist";src:url("/assets/fonts/Geist-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* 1:1 One to One Workshop — site styles. Layout reads like a drawing sheet: white paper, ink type, grey stone panels for drawings. */
:root{
  --ink:#1E1E1E; --paper:#FFFFFF; --grey:#8C8C8C; --stone:#F1F1EF; --dim:#BDBDBD;
  --sans:"Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --m:clamp(16px,3vw,42px);
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.wrap{padding-left:max(var(--m),env(safe-area-inset-left,0px));padding-right:max(var(--m),env(safe-area-inset-right,0px))}
.lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:500}
h1,h2,h3{font-weight:500;text-transform:uppercase;letter-spacing:.01em;margin:0;text-wrap:balance}
p{margin:0;max-width:64ch}
.t-ink{background:var(--ink);color:var(--paper)} .t-ink .lbl,.t-ink .cap2,.t-ink .muted{color:var(--dim)}
.t-stone{background:var(--paper)}
.t-paper{background:var(--paper)}
.pad{padding-block:clamp(56px,8vw,120px)}
.muted{color:var(--grey)}

body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--paper)}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--paper);border-bottom:.75px solid var(--ink)}
.bar{display:flex;align-items:center;gap:24px;padding-block:18px}
.logo{height:30px;width:auto;color:var(--ink);display:block}
nav{margin-left:auto;display:flex;gap:clamp(14px,2.4vw,34px);flex-wrap:wrap}
nav a{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:500;padding-block:4px;border-bottom:1px solid transparent}
nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
nav a:hover{color:var(--ink)}
.sheet{font-size:11px;letter-spacing:.16em;font-weight:600;min-width:48px;text-align:right}

.intro{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding-block:clamp(56px,8vw,120px) clamp(36px,4vw,60px)}
.intro .lbl{grid-column:1/-1}
.intro h1{grid-column:1/11;font-weight:200;letter-spacing:.06em;font-size:clamp(30px,5.4vw,78px);line-height:1.08}
.intro .sub{grid-column:1/6;color:var(--grey)}

.filters{display:flex;gap:6px 22px;flex-wrap:wrap;padding-block:0 18px}
.filters button{all:unset;cursor:pointer;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:500}
.filters button[aria-pressed="true"]{color:var(--ink)}
.filters .count{margin-left:auto;font-size:11px;letter-spacing:.16em;color:var(--grey);font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 6px;padding-bottom:80px}
.card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.card img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .45s ease,transform .8s ease;display:block}
.card:hover img,.card:focus-visible img{filter:none;transform:scale(1.02)}
.cap{display:flex;justify-content:space-between;gap:12px;padding-top:10px}
.ct{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.cm{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);text-align:right}
.card[data-feat]{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}
.card[data-feat] figure{aspect-ratio:auto;flex:1}
.card.hide{display:none}

.band .in{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.band .lbl{grid-column:1/-1}
.band h2{grid-column:1/10;font-weight:200;letter-spacing:.05em;font-size:clamp(28px,4.6vw,66px);line-height:1.08}
.band p{grid-column:1/7;color:var(--dim)}
.band a.more{grid-column:1/-1;justify-self:start;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:3px}

footer.tb{border-top:.75px solid var(--ink);display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr;gap:16px;padding-block:14px 28px;background:var(--paper)}
footer.tb div{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;min-width:0;overflow-wrap:anywhere}
footer.tb span{display:block;color:var(--grey);font-weight:400;font-size:10px;margin-bottom:4px}

.ptitle{padding-block:clamp(48px,7vw,100px) 26px}
.ptitle h1{font-weight:200;letter-spacing:.05em;font-size:clamp(34px,6vw,88px);line-height:1.04}
.prow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding-bottom:34px}
.prow div{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.prow span{display:block;font-size:10px;color:var(--grey);font-weight:400;margin-bottom:4px}
.bleed{width:100%;display:block;max-width:100%;object-fit:cover}
.story{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.story .h{grid-column:1/6}
.story .h h2{font-size:clamp(24px,2.8vw,38px);line-height:1.12}
.story .b{grid-column:7/13;display:grid;gap:14px}
.chap{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:500;margin-bottom:14px;display:block}
.t-ink .chap{color:var(--dim)}
.cap2{display:flex;justify-content:space-between;gap:12px;padding-top:9px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey)}
.cap2 b{font-weight:600}
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.g2 img,.g3 img{width:100%;display:block;object-fit:cover}
.mt{margin-top:clamp(28px,4vw,56px)}
.sheetcard{background:var(--stone);padding:clamp(14px,2vw,26px);display:flex;flex-direction:column;gap:10px;min-width:0}
.sheetcard img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block}
.sheetcard .sh{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.sheetcard .sh span:last-child{color:var(--grey)}
.sheetcard.tall img{aspect-ratio:3/4}
.drawset{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:6px}
.pairdb{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:6px;background:var(--stone)}
.pairdb .sheetcard{background:var(--stone)}
.pairdb .sheetcard img{aspect-ratio:4/3}
.pairdb>img{width:100%;height:100%;object-fit:cover;display:block;min-height:300px}
.client{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.client figure{grid-column:1/6;margin:0}.client figure img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.client .txt{grid-column:7/13;display:grid;gap:16px}
.q{font-weight:300;font-size:clamp(28px,4vw,58px);line-height:1.08;letter-spacing:-.02em}
.qa{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.t-ink .qa{color:var(--dim)}
table.rec{width:100%;border-collapse:collapse;font-size:13px}
table.rec td{padding:8px 0;vertical-align:top}
table.rec td:first-child{width:34%;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.next{display:flex;justify-content:space-between;align-items:end;gap:16px;padding-block:36px 64px}
.next b{font-weight:200;font-size:clamp(26px,4vw,54px);letter-spacing:.05em;text-transform:uppercase}

.means{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.means div{display:grid;gap:12px;align-content:start}
.means b{font-size:clamp(20px,2.2vw,30px);font-weight:500;text-transform:uppercase;letter-spacing:.02em;line-height:1.15}
.vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.vals div{display:grid;gap:8px;align-content:start}
.vals b{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.vals small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey)}
.svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.svc div{display:grid;gap:6px}
.svc b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.team{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.team b{display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.team span{font-size:12px;color:var(--grey)}
.secl{margin-bottom:26px;display:block}

.phase .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}
.phase .num{font-size:clamp(52px,8vw,120px);font-weight:700;letter-spacing:-.05em;line-height:.9}
.phase b{font-size:15px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}

.ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ways div{display:grid;gap:8px;align-content:start}
.ways b{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.ways .v{font-weight:300;font-size:clamp(18px,2vw,26px);letter-spacing:.02em;overflow-wrap:anywhere}
.ct-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.ct-grid .l{grid-column:1/6}
.ct-grid form{grid-column:7/13;display:grid;gap:18px}
label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);display:grid;gap:6px}
input,textarea{font:inherit;font-size:15px;color:var(--ink);background:transparent;border:0;border-bottom:.75px solid var(--ink);border-radius:0;padding:8px 0}
textarea{min-height:110px;resize:vertical}
fieldset{border:0;padding:0;margin:0}
legend{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);padding:0;margin-bottom:10px}
.radio{display:flex;gap:18px;flex-wrap:wrap}
.radio label{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--ink)}
.radio input{accent-color:var(--ink)}
button.send{justify-self:start;font:inherit;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;background:var(--ink);color:var(--paper);border:0;border-radius:0;padding:14px 22px;cursor:pointer}
.sent{font-size:12px;letter-spacing:.1em;text-transform:uppercase}

@media (max-width:860px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vals,.team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svc,.means,.ways,.drawset,.g3{grid-template-columns:1fr}
  .story .h,.story .b,.client figure,.client .txt,.ct-grid .l,.ct-grid form,.band h2,.band p,.intro h1,.intro .sub{grid-column:1/-1}
  .phase .in{grid-template-columns:1fr}
  .pairdb{grid-template-columns:1fr}
  footer.tb{grid-template-columns:1fr 1fr}
  .prow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){.grid{grid-template-columns:1fr}.card[data-feat]{grid-column:auto;grid-row:auto}.card[data-feat] figure{aspect-ratio:4/3;flex:none}.g2{grid-template-columns:1fr}.bar{flex-wrap:wrap}nav{margin-left:0;width:100%}.sheet{display:none}}
@media (prefers-reduced-motion:reduce){.card img{transition:none}.card:hover img{transform:none}}

body{margin:0}
img{max-width:100%}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:20;background:var(--paper);padding:8px 12px}
.richtext p+p{margin-top:14px}
.richtext a,.ways a{border-bottom:1px solid currentColor}
.ways a{border-bottom-width:.75px}
.pending{color:var(--grey);font-size:13px}
.card .cm:empty{display:none}
.hp{position:absolute;left:-9999px}
