@font-face{font-family:"Fraunces";src:url(fonts/fraunces.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Karla";src:url(fonts/karla.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}

:root{
  --navy:#16324F; --sea:#2E7A8C; --brass:#B98A47; --sand:#E9DFCD; --paper:#FDFBF7;
  --ink:#1C1C1C; --grey:#6E6E6E; --line:#E9DFCD;
  --disp:"Fraunces",Georgia,serif; --body:"Karla",-apple-system,BlinkMacSystemFont,sans-serif;
  --wonk:"SOFT" 70,"WONK" 1,"opsz" 144;
  --pad:34px;
}
@media(min-width:900px){:root{--pad:46px}}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.68;
  -webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit}

.stripe{height:13px;background:repeating-linear-gradient(90deg,var(--navy) 0 20px,var(--sand) 20px 40px)}
.pin{height:7px;background:repeating-linear-gradient(90deg,var(--brass) 0 2px,var(--paper) 2px 8px)}

/* masthead */
.mast{padding:calc(var(--pad)*.9) var(--pad) 0}
.mast .rowtop{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;
  font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);font-weight:700;padding-bottom:8px}
.mast .rule{border-top:2px solid var(--navy);margin-bottom:10px}
.mast .name{display:block;text-decoration:none}
.mast h1,.mast .h1{font-family:var(--disp);font-weight:500;color:var(--navy);
  font-size:clamp(26px,4.6vw,44px);line-height:1;letter-spacing:-.012em;font-variation-settings:var(--wonk)}
.mast nav{display:flex;gap:20px;flex-wrap:wrap;padding:13px 0 0;font-size:10.5px;
  letter-spacing:.17em;text-transform:uppercase;color:var(--navy);font-weight:600}
.mast nav a{text-decoration:none;padding-bottom:2px;border-bottom:1.5px solid transparent}
.mast nav a:hover,.mast nav a[aria-current]{border-bottom-color:var(--brass);color:var(--sea)}
.mast nav i{font-style:normal;color:var(--brass);margin-right:5px}

.kick{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);font-weight:700}

/* hero */
.hero{display:grid;margin-top:calc(var(--pad)*.65)}
@media(min-width:860px){.hero{grid-template-columns:1.55fr 1fr}}
.hero .shot{min-height:min(64vh,520px);background:
  repeating-linear-gradient(45deg,rgba(0,0,0,.045) 0 11px,rgba(0,0,0,.015) 11px 22px),var(--sand);
  display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.3);
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:16px}
.hero .shot img,.hero .shot video{width:100%;height:100%;object-fit:cover}
.hero .txt{background:var(--navy);color:#fff;padding:var(--pad);display:flex;flex-direction:column;justify-content:flex-end}
.hero .txt h2{font-family:var(--disp);font-weight:500;font-size:clamp(26px,3.2vw,40px);line-height:1.06;
  margin:10px 0 12px;font-variation-settings:var(--wonk);letter-spacing:-.01em}
.hero .txt h2 a{text-decoration:none}
.hero .txt p{color:rgba(255,255,255,.8);font-size:15px}
.hero .txt .more{margin-top:16px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass);font-weight:700;text-decoration:none}

/* pillars */
.pillars{padding:calc(var(--pad)*1.1) var(--pad) 0}
.p3{display:grid;border-top:1px solid var(--line)}
@media(min-width:780px){.p3{grid-template-columns:repeat(3,1fr)}}
.p3>div{padding:calc(var(--pad)*.7) 0;border-bottom:1px solid var(--line)}
@media(min-width:780px){.p3>div{border-right:1px solid var(--line);padding:calc(var(--pad)*.7) calc(var(--pad)*.6)}
  .p3>div:first-child{padding-left:0}.p3>div:last-child{border-right:0;padding-right:0}}
.p3 .n{font-family:var(--disp);font-size:34px;color:var(--sand);line-height:1;font-weight:500}
.p3 h3{font-family:var(--disp);font-size:23px;color:var(--navy);margin:2px 0 8px;font-weight:500;
  font-variation-settings:var(--wonk)}
.p3 p{font-size:14px;color:#4d4d4d}

/* index */
.idx{padding:calc(var(--pad)*1.05) var(--pad) 0}
.idx .hd{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:2px solid var(--navy);padding-bottom:8px}
.idx .hd h3{font-family:var(--disp);font-size:25px;color:var(--navy);font-weight:500}
.idx .hd span{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:700}
.entry{display:grid;gap:18px;padding:calc(var(--pad)*.6) 0;border-bottom:1px solid var(--line);align-items:start}
@media(min-width:700px){.entry{grid-template-columns:52px 1fr 200px}}
.entry .no{font-family:var(--disp);font-size:26px;color:var(--sand);line-height:1;font-weight:500}
.entry h4{font-family:var(--disp);font-size:clamp(20px,2.1vw,27px);color:var(--navy);line-height:1.14;
  font-weight:500;margin:4px 0 7px;font-variation-settings:var(--wonk)}
.entry h4 a{text-decoration:none}
.entry h4 a:hover{color:var(--sea)}
.entry p{font-size:14px;color:#4d4d4d}
.entry .meta{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a;margin-top:8px}
.entry .thumb{height:130px;background:
  repeating-linear-gradient(45deg,rgba(0,0,0,.045) 0 11px,rgba(0,0,0,.015) 11px 22px),var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(0,0,0,.3);text-align:center;padding:10px}
.entry .thumb img{width:100%;height:100%;object-fit:cover}

/* signup */
.signup{margin-top:calc(var(--pad)*1.1);background:var(--sand);padding:calc(var(--pad)*.95) var(--pad)}
.signup .in{max-width:560px}
.signup h3{font-family:var(--disp);font-size:26px;color:var(--navy);font-weight:500;
  font-variation-settings:var(--wonk);margin-bottom:8px}
.signup p{font-size:14.5px;color:#41403c;margin-bottom:16px}
.signup form{display:flex;gap:8px;flex-wrap:wrap}
.signup input{flex:1;min-width:210px;padding:12px 14px;border:1px solid rgba(0,0,0,.18);
  background:var(--paper);font:inherit;font-size:15px}
.signup button{background:var(--navy);color:#fff;border:0;padding:12px 24px;font:inherit;
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;cursor:pointer}

/* article */
.art .lead{min-height:min(60vh,480px);background:
  repeating-linear-gradient(45deg,rgba(0,0,0,.045) 0 11px,rgba(0,0,0,.015) 11px 22px),var(--sand);
  display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.3);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;margin-top:calc(var(--pad)*.65)}
.art .lead img{width:100%;height:100%;object-fit:cover}
.art .head{max-width:760px;margin:0 auto;padding:calc(var(--pad)*.9) var(--pad) 0}
.art .head h1{font-family:var(--disp);font-size:clamp(30px,4.4vw,50px);color:var(--navy);font-weight:500;
  line-height:1.08;margin:12px 0;font-variation-settings:var(--wonk);letter-spacing:-.012em}
.art .head .meta{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a8a8a}
.art .body{max-width:660px;margin:0 auto;padding:calc(var(--pad)*.8) var(--pad) 0;font-size:17.5px;line-height:1.8}
.art .body p{margin-bottom:22px}
.art .body p.first::first-letter{font-family:var(--disp);font-size:60px;float:left;line-height:.82;
  padding:5px 10px 0 0;color:var(--sea);font-weight:500}
.art .body h2{font-family:var(--disp);font-size:28px;color:var(--navy);font-weight:500;margin:38px 0 14px;
  font-variation-settings:var(--wonk)}
.art .body blockquote{border-left:3px solid var(--brass);padding-left:20px;margin:30px 0;
  font-family:var(--disp);font-size:22px;line-height:1.45;color:var(--navy);font-style:italic;font-weight:400}
.factbox{background:var(--sand);padding:24px 26px;margin:32px 0;font-size:15px;line-height:1.6}
.factbox h4{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);
  margin-bottom:13px;font-weight:700}
.factbox dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px}
.factbox dt{color:var(--navy);font-weight:700}
.gal{max-width:1000px;margin:36px auto;padding:0 var(--pad);display:grid;gap:12px}
@media(min-width:700px){.gal{grid-template-columns:1fr 1fr}}
.gal div{height:270px;background:repeating-linear-gradient(45deg,rgba(0,0,0,.045) 0 11px,rgba(0,0,0,.015) 11px 22px),var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(0,0,0,.3)}
.gal div.wide{grid-column:1/-1;height:380px}

/* work with me */
.wtop{background:var(--navy);color:#fff;padding:calc(var(--pad)*1.2) var(--pad)}
.wtop h1{font-family:var(--disp);font-size:clamp(30px,4.8vw,52px);font-weight:500;line-height:1.06;
  max-width:760px;font-variation-settings:var(--wonk);margin-top:10px}
.wtop p{color:rgba(255,255,255,.78);font-size:17px;max-width:600px;margin-top:18px}
.nums{display:grid;border-bottom:1px solid var(--line)}
@media(min-width:700px){.nums{grid-template-columns:repeat(4,1fr)}}
.nums>div{padding:24px var(--pad);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.nums .big{font-family:var(--disp);font-size:36px;color:var(--sea);line-height:1;font-weight:500}
.nums .lbl{font-size:12.5px;color:var(--grey);margin-top:7px}
.svcs{display:grid;gap:0;padding:0 var(--pad)}
@media(min-width:820px){.svcs{grid-template-columns:1fr 1fr}}
.svc{padding:calc(var(--pad)*.7) 0;border-bottom:1px solid var(--line)}
@media(min-width:820px){.svc{padding-right:calc(var(--pad)*.8)}
  .svc:nth-child(even){padding-right:0;padding-left:calc(var(--pad)*.8);border-left:1px solid var(--line)}}
.svc h3{font-family:var(--disp);font-size:22px;color:var(--navy);font-weight:500;margin-bottom:8px;
  font-variation-settings:var(--wonk)}
.svc p{font-size:14.5px;color:#4d4d4d}
.tags{display:flex;flex-wrap:wrap;gap:8px;padding:calc(var(--pad)*.7) var(--pad) 0}
.tags span{border:1px solid var(--line);padding:7px 14px;font-size:13px;color:#4d4d4d}

/* footer */
footer{margin-top:calc(var(--pad)*1.2);background:var(--navy);color:rgba(255,255,255,.6);
  padding:calc(var(--pad)*.95) var(--pad)}
footer .cols{display:grid;gap:26px}
@media(min-width:760px){footer .cols{grid-template-columns:2fr 1fr 1fr}}
footer b{display:block;font-family:var(--disp);color:#fff;font-size:21px;font-weight:500;
  margin-bottom:5px;font-variation-settings:var(--wonk)}
footer .tl{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
footer p{font-size:13.5px;margin-top:10px;max-width:380px}
footer h5{color:#fff;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:9px}
footer ul{list-style:none;font-size:13.5px}
footer li{padding:3px 0}
footer a{text-decoration:none}
footer a:hover{color:var(--brass)}
footer .base{border-top:1px solid rgba(255,255,255,.14);margin-top:30px;padding-top:18px;font-size:12px;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ---------- media slots ---------- */
.slot{
  background-size:cover;background-position:center;background-repeat:no-repeat;
  background-color:var(--sand);
  position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;text-align:center;padding:18px;min-height:120px;
  font-family:var(--body);color:#8A7B60;
}
.slot::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,rgba(0,0,0,.05) 0 11px,rgba(0,0,0,.015) 11px 22px);
  z-index:0;
}
.slot > span{position:relative;z-index:1}
.slot .s-id{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--brass)}
.slot .s-what{font-family:var(--disp);font-size:17px;color:var(--navy);font-weight:500;line-height:1.25;max-width:26ch}
.slot .s-spec{font-size:11.5px;color:#7E7156;max-width:34ch;line-height:1.4}
.slot .s-file{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;color:#9A8B70;
  background:rgba(255,255,255,.65);padding:2px 7px;margin-top:2px}
/* once a real image is set, hide the labels */
.slot[style*="url"]:not([style*="url()"]) { }

.hero .shot.slot{min-height:min(64vh,520px)}
.entry .thumb.slot{height:130px;padding:10px}
.entry .thumb.slot .s-what{font-size:12px}
.entry .thumb.slot .s-spec{display:none}
.art .lead.slot{min-height:min(60vh,480px)}
.gal .slot{height:270px}
.gal .slot.wide{grid-column:1/-1;height:380px}
.slot.vid{min-height:300px;margin:30px 0;border:2px dashed var(--brass);background-color:#FFF9EE}
.slot.vid .s-what{color:var(--brass)}
.slot.wwm-portrait{max-width:420px;min-height:420px;margin:calc(var(--pad)*.7) var(--pad) 0}
