@font-face{font-family:"Instrument Serif";src:url(/fonts/serif-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/fonts/serif-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(/fonts/hanken.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --paper:#f4efe6;--paper-2:#ece5d8;--ink:#1b1916;--muted:#675f54;--rule:#d6ccba;--accent:#bf3a24;--on-ink:#f4efe6;
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gut:clamp(20px,5vw,56px);
}
@media (prefers-color-scheme:dark){
  :root{--paper:#151412;--paper-2:#1d1b18;--ink:#ece6da;--muted:#a39a8b;--rule:#34302a;--accent:#ee6045;--on-ink:#151412}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
a:hover{text-decoration-color:var(--accent);color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--gut)}
.label{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* masthead */
.mast{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:400 26px/1 var(--serif);letter-spacing:.01em}
.brand img{width:34px;height:34px;border-radius:8px}
.mast nav{display:flex;gap:28px;font-size:15px}
.mast nav a{text-decoration:none;color:var(--muted)}
.mast nav a:hover{color:var(--ink)}

/* hero */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,80px);align-items:center;padding:clamp(40px,7vw,96px) 0 clamp(32px,5vw,64px)}
.hero .label{margin:0 0 28px}
h1{margin:0;font:400 clamp(52px,8.6vw,124px)/.94 var(--serif);letter-spacing:-.02em}
h1 em{font-style:italic;color:var(--accent)}
.lede{max-width:34em;margin:32px 0 36px;font-size:clamp(18px,1.6vw,21px);line-height:1.6;color:var(--muted)}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 22px;background:var(--ink);color:var(--on-ink);border-radius:2px;text-decoration:none;font:600 15px/1 var(--sans);letter-spacing:.02em;transition:background .2s,transform .2s}
.btn:hover{background:var(--accent);color:#fff}
.btn svg{transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.link{font-size:15px}
.hero figure{margin:0;justify-self:center;position:relative}
.hero figure img{width:min(330px,70vw);border:1px solid var(--rule);border-radius:34px;box-shadow:0 1px 0 var(--rule),0 30px 60px -30px rgba(27,25,22,.35)}
.hero figcaption{margin-top:14px;font:italic 400 17px/1.3 var(--serif);color:var(--muted);text-align:center}

/* the route, drawn between sections */
.route{margin:8px 0 0}
.route svg{width:100%;height:clamp(84px,11vw,130px);display:block;overflow:visible}
.route .line{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:6 9}
.route .tick{stroke:var(--rule);stroke-width:1}
.route text{font:600 11px var(--sans);letter-spacing:.14em;fill:var(--muted);text-transform:uppercase}
.route .line,.route .dot,.route .tick{vector-effect:non-scaling-stroke}
.route .dot{fill:none;stroke-linecap:round;stroke-width:16}
.route .end{stroke:var(--accent)}
.route .start{stroke:var(--ink)}

/* log entry strip */
.entry{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);margin-top:clamp(24px,4vw,48px)}
.entry div{padding:20px 20px 22px 0}
.entry div+div{padding-left:20px;border-left:1px solid var(--rule)}
.entry b{display:block;font:400 clamp(34px,4.4vw,56px)/1 var(--serif);letter-spacing:-.01em;margin-top:10px}
.entry small{font:400 .42em var(--sans);color:var(--muted);margin-left:5px;letter-spacing:0}
.entry-note{margin:12px 0 0;font-size:13px;color:var(--muted)}

/* sections */
section{padding:clamp(56px,9vw,120px) 0 0}
.sec{display:grid;grid-template-columns:minmax(150px,.7fr) 3fr;gap:clamp(24px,5vw,72px)}
.sec>h2{margin:0;font:400 14px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:.7em;border-top:1px solid var(--ink)}
.sec>h2 span{display:block;color:var(--accent);margin-bottom:6px}

.points{list-style:none;margin:0;padding:0}
.points li{display:grid;grid-template-columns:minmax(170px,1fr) 2fr;gap:8px 40px;padding:28px 0;border-top:1px solid var(--rule)}
.points li:first-child{border-top:1px solid var(--ink)}
.points h3{margin:0;font:400 clamp(26px,3vw,36px)/1.1 var(--serif);letter-spacing:-.005em}
.points p{margin:0;color:var(--muted);max-width:34em}

/* screens */
.shots{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(12px,2vw,28px);align-items:start}
.shots figure{margin:0}
.shots figure:nth-child(even){margin-top:clamp(24px,5vw,64px)}
.shots a{display:block;border:1px solid var(--rule);border-radius:clamp(14px,2vw,22px);overflow:hidden;transition:transform .25s,border-color .25s}
.shots a:hover{transform:translateY(-4px);border-color:var(--accent)}
.shots figcaption{margin-top:10px;font:italic 400 18px/1.2 var(--serif);color:var(--muted)}

/* privacy statement band */
.band{margin-top:clamp(56px,9vw,120px);background:var(--ink);color:var(--on-ink)}
.band .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,5vw,80px);padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(48px,7vw,88px);align-items:end}
.band h2{margin:0;font:400 clamp(36px,5.4vw,72px)/1 var(--serif);letter-spacing:-.015em}
.band h2 em{color:var(--accent);font-style:italic}
.band p{margin:0;opacity:.78;max-width:30em}
.band a{color:inherit}

footer{padding:36px 0 56px;display:flex;flex-wrap:wrap;gap:10px 32px;justify-content:space-between;font-size:14px;color:var(--muted)}
footer a{color:var(--ink)}

/* lightbox */
dialog{border:0;padding:0;background:transparent;color:#fff;max-width:100vw;max-height:100vh;width:100%;height:100%}
dialog::backdrop{background:rgba(12,11,10,.9)}
dialog[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
dialog img{max-height:82vh;max-width:min(92vw,460px);width:auto;border-radius:22px}
dialog p{margin:0;font:italic 400 20px/1.3 var(--serif)}
dialog button{position:absolute;background:none;border:1px solid rgba(255,255,255,.35);color:#fff;width:44px;height:44px;border-radius:2px;font-size:24px;cursor:pointer}
dialog button:hover{background:#fff;color:#111}
dialog .x{top:18px;right:18px}dialog .prev{left:18px;top:50%}dialog .next{right:18px;top:50%}

/* long-form (privacy) */
.doc{max-width:720px;padding:clamp(40px,7vw,88px) 0 24px}
.doc h1{font-size:clamp(44px,7vw,80px);margin-bottom:10px}
.doc .when{color:var(--muted);margin:0 0 40px}
.doc h2{font:400 30px/1.15 var(--serif);margin:44px 0 10px;padding-top:22px;border-top:1px solid var(--rule)}
.doc p{margin:0 0 16px}

/* motion */
@media (prefers-reduced-motion:no-preference){
  .route .line{animation:dash 38s linear infinite}
  @keyframes dash{to{stroke-dashoffset:-600}}
  .rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}}
}

@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .hero figure{order:-1;justify-self:start}
  .hero figure img{width:min(240px,64vw)}
  .sec{grid-template-columns:1fr;gap:20px}
  .points li{grid-template-columns:1fr}
  .shots{grid-template-columns:repeat(3,1fr)}
  .shots figure:nth-child(even){margin-top:0}
  .shots figure:nth-child(3n+2){margin-top:28px}
  .entry{grid-template-columns:repeat(2,1fr)}
  .entry div:nth-child(3){border-left:0;padding-left:0}
  .entry div:nth-child(n+3){border-top:1px solid var(--rule)}
  .band .wrap{grid-template-columns:1fr;align-items:start}
  .mast nav{gap:18px}
}
@media (max-width:520px){
  .shots{grid-template-columns:repeat(2,1fr)}
  .shots figure:nth-child(3n+2){margin-top:0}
  .shots figure:nth-child(even){margin-top:28px}
  .mast nav a:first-child{display:none}
}
