@font-face{font-family:"Space Grotesk";font-weight:500;font-display:swap;src:url(fonts/space-grotesk-500.ttf) format("truetype")}
@font-face{font-family:"Space Grotesk";font-weight:600;font-display:swap;src:url(fonts/space-grotesk-600.ttf) format("truetype")}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-400.ttf) format("truetype")}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/manrope-500.ttf) format("truetype")}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-600.ttf) format("truetype")}
@font-face{font-family:"Cormorant Garamond";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/cormorant-garamond-400.ttf) format("truetype")}

:root{
  --paper:#f1ede5;--paper2:#e8e2d7;--card:#f7f4ee;--ink:#1a1c1e;--ink2:#4b4f53;--muted:#7c7f80;
  --line:rgba(26,28,30,.13);--moss:#3d5a4b;--clay:#b5603b;
  --display:"Space Grotesk",system-ui,sans-serif;--body:Manrope,system-ui,sans-serif;--serif:"Cormorant Garamond",Georgia,serif;
  color-scheme:light
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--body);overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
:focus-visible{outline:2px solid var(--moss);outline-offset:4px}
.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}
.skip{position:absolute;left:16px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:10}
.skip:focus{top:12px}
.eyebrow,.label{font:600 12px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--moss)}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;height:96px}
.brand{display:flex;align-items:center;gap:12px;font:600 20px/1 var(--display);letter-spacing:-.02em;white-space:nowrap}
.mark{width:34px;height:34px;fill:var(--ink)}
.mark ellipse:nth-child(2){fill:var(--moss)}
.mark ellipse:nth-child(3){fill:var(--clay)}
.top nav{display:flex;gap:34px;font-size:14px;font-weight:500}
.top nav a{padding:8px 0;border-bottom:1px solid transparent;transition:border-color .2s}
.top nav a:hover{border-color:var(--ink)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center;padding:48px 0 96px;min-height:620px}
.hero h1{font:500 clamp(48px,6.6vw,96px)/.98 var(--display);letter-spacing:-.045em;margin-top:26px}
.hero h1 em{font-size:1.08em;color:var(--clay)}
.lede{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--ink2);max-width:520px;margin-top:30px}
.cta{display:inline-flex;align-items:center;gap:12px;margin-top:38px;height:54px;padding:0 26px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:600;font-size:15px;transition:transform .25s,background .25s}
.cta svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.cta:hover{transform:translateY(-2px);background:var(--moss)}

.cairn{position:relative;aspect-ratio:1/1.02;width:100%;max-width:520px;justify-self:end}
.stone{position:absolute;overflow:hidden;background:var(--paper2);box-shadow:0 30px 60px -30px rgba(26,28,30,.45),inset 0 0 0 1px rgba(255,255,255,.25);animation:drift 14s ease-in-out infinite alternate}
.stone img{width:100%;height:100%;object-fit:cover}
.s1{left:6%;bottom:2%;width:64%;height:44%;border-radius:58% 42% 50% 50%/55% 52% 48% 45%}
.s2{right:0;bottom:18%;width:44%;height:34%;border-radius:46% 54% 44% 56%/50% 44% 56% 50%;animation-delay:-4s}
.s3{left:14%;top:21%;width:44%;height:34%;border-radius:52% 48% 58% 42%/46% 56% 44% 54%;animation-delay:-8s}
.s4{right:6%;top:6%;width:38%;height:27%;border-radius:50% 50% 44% 56%/56% 48% 52% 44%;background:#0d1117;animation-delay:-2s}
.s5{left:32%;top:0;width:22%;height:17%;border-radius:55% 45% 50% 50%/50% 55% 45% 50%;background:#f3f2ed;display:grid;place-items:center;animation-delay:-6s}
.s5 img{width:62%;height:auto;object-fit:contain}
.chart svg{position:absolute;inset:18% 12% 22% 12%;width:76%;height:60%}
.chart .grid,.lab .grid{stroke:rgba(255,255,255,.08);stroke-width:1;fill:none}
.chart .hold,.lab .hold{stroke:#8b949e;stroke-width:2;stroke-dasharray:4 4;fill:none}
.chart .run,.lab .run{stroke:#3fb950;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.chart span{position:absolute;right:16%;top:16%;font:700 12px/1 var(--display);letter-spacing:.08em;color:#3fb950;border:2px solid #3fb950;padding:4px 6px;transform:rotate(-8deg)}
@keyframes drift{from{transform:translateY(0) rotate(0)}to{transform:translateY(-10px) rotate(1.2deg)}}

/* index */
.index{padding:24px 0 40px;border-top:1px solid var(--line)}
.index .label{display:block;margin:34px 0 10px}
.rows{list-style:none;margin:0;padding:0}
.rows li{border-bottom:1px solid var(--line)}
.rows a{display:grid;grid-template-columns:60px minmax(0,1.1fr) minmax(0,1.4fr) 140px 30px;align-items:baseline;gap:20px;padding:26px 0;transition:padding .3s,color .3s}
.rows a:hover{padding-left:12px;color:var(--moss)}
.rows .n{font:500 13px/1 var(--display);color:var(--muted)}
.rows .name{font:500 clamp(28px,3.2vw,44px)/1.05 var(--display);letter-spacing:-.03em}
.rows .what{color:var(--ink2);font-size:16px}
.rows .kind{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rows .go{font-size:22px;text-align:right}

/* groups */
.group{padding:96px 0 24px}
.group-head{display:grid;gap:16px;margin-bottom:36px}
.group-head h2,.approach h2{font:500 clamp(36px,4.4vw,60px)/1 var(--display);letter-spacing:-.04em}
.group-head h2 em,.approach h2 em{color:var(--clay);font-size:1.08em}
.cards.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.card{display:flex;flex-direction:column;background:var(--card);border-radius:28px;overflow:hidden;box-shadow:0 1px 0 var(--line),0 24px 48px -36px rgba(26,28,30,.5);transition:transform .35s,box-shadow .35s;min-width:0}
.card:hover{transform:translateY(-4px);box-shadow:0 1px 0 var(--line),0 36px 60px -36px rgba(26,28,30,.55)}
.card .art{position:relative;aspect-ratio:2/1;overflow:hidden;background:var(--paper2)}
.card .art>img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.card:hover .art>img{transform:scale(1.04)}
.card .art.paper svg{width:100%;height:100%}
.card .body{padding:28px 32px 34px;display:flex;flex-direction:column;gap:12px;flex:1}
.tag{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.card h3{font:500 32px/1.05 var(--display);letter-spacing:-.03em}
.card p:not(.tag){color:var(--ink2);font-size:16px;line-height:1.6}
.card .link{margin-top:auto;padding-top:8px;font-weight:600;font-size:15px;color:var(--moss)}

.card .art.lab{background:#0d1117;color:#e6edf3}
.lab-in{position:absolute;inset:0;padding:22px 26px;display:flex;flex-direction:column;gap:8px;font-family:var(--display)}
.lab-in p{font:500 11px/1 var(--display);letter-spacing:.12em;text-transform:uppercase;color:#8b949e}
.lab-in strong{font:600 clamp(16px,1.7vw,22px)/1.2 var(--display);max-width:80%}
.lab-in svg{flex:1;min-height:0;width:100%}
.lab-in em{font:500 10px/1 var(--display);color:#6e7681;letter-spacing:.08em;text-transform:uppercase}
.stamp{position:absolute;right:24px;top:40%;font:700 22px/1 var(--display);letter-spacing:.06em;color:#3fb950;border:3px solid #3fb950;padding:6px 10px;transform:rotate(-9deg)}

.card.wide{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.card.wide .art{aspect-ratio:auto;min-height:380px}
.card.wide .body{justify-content:center;padding:44px}
.card .art.hexart{background:#141a20}
.card .hexart>img.ground{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;filter:saturate(.9) brightness(.9)}
.card .hexart>img.hunter{position:absolute;left:12%;bottom:4%;width:42%;height:auto;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.6))}
.card .hexart>img.foe{position:absolute;right:6%;top:8%;width:38%;height:auto;object-fit:contain;opacity:.92;filter:drop-shadow(0 18px 18px rgba(0,0,0,.6))}
.hex .body{background:#171d24;color:#efe6d5}
.hex .body h3{font-family:"Hexwake Title",Georgia,serif;letter-spacing:.02em}
.hex .body p:not(.tag){color:#c9bfae}
.hex .tag{color:#a89a83}
.hex .link{color:#e8b86b}
@font-face{font-family:"Hexwake Title";font-display:swap;src:url(fonts/hexwake-title.ttf) format("truetype")}

/* approach */
.approach{margin-top:96px;padding:96px 0 104px;background:var(--ink);color:var(--paper)}
.approach .eyebrow{color:#9fb8a9}
.approach h2 em{color:#e39a74}
.tenets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:20px}
.tenets .num{font:400 italic 28px/1 var(--serif);color:#e39a74}
.tenets h3{font:500 24px/1.15 var(--display);letter-spacing:-.02em;margin:18px 0 12px}
.tenets p{color:#b9b6ae;font-size:16px;line-height:1.65}

/* footer */
.foot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;padding:48px 0 56px}
.brand.small{font-size:17px}
.brand.small .mark{width:28px;height:28px}
.sites{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:center;font-size:14px;color:var(--ink2)}
.sites a:hover{color:var(--moss)}
.fine{font-size:13px;color:var(--muted)}

@media (max-width:1000px){
  .wrap{width:calc(100% - 56px)}
  .hero{grid-template-columns:1fr;min-height:0;padding:24px 0 72px}
  .cairn{justify-self:center;max-width:460px;margin-top:8px}
  .rows a{grid-template-columns:44px minmax(0,1fr) 26px;row-gap:6px}
  .rows .what{grid-column:2;grid-row:2}
  .rows .kind{display:none}
  .rows .go{grid-column:3;grid-row:1}
  .card.wide{grid-template-columns:1fr}
  .card.wide .art{min-height:300px}
  .tenets{grid-template-columns:1fr;gap:36px}
  .foot{grid-template-columns:1fr;justify-items:start}
  .sites{justify-content:flex-start}
}
@media (max-width:720px){
  .wrap{width:calc(100% - 36px)}
  .top{height:76px}
  .top nav{gap:18px;font-size:13px}
  .top nav a:nth-child(4){display:none}
  .cards.two{grid-template-columns:1fr}
  .card .body{padding:24px 24px 28px}
  .card.wide .body{padding:28px 24px 32px}
  .group{padding-top:72px}
  .approach{margin-top:72px;padding:72px 0 80px}
}
@media (max-width:420px){
  .brand span{font-size:18px}
  .top nav{display:none}
  .hero h1{font-size:44px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
