
/* Warm paper ground, deep forest blocks carrying the weight.
   Contour lines in the opener echo the A-frame contour mapping done on the land. */
:root{
  --paper:#FBF8F1; --paper-2:#F3EEE2; --paper-3:#EAE3D3;
  --forest:#2C3A21; --forest-2:#3B4B2C;
  --ink:#1F2518; --ink-dim:#636955;
  --moss:#5F6E38; --coral:#B2663C; --gold:#A98C3F;
  --line:#E1DACA; --on-forest:#F2EDE0; --on-forest-dim:#B9BFA4;
  --shadow:0 1px 2px rgba(44,58,33,.05), 0 8px 24px -10px rgba(44,58,33,.16);
  --maxw:70rem; --measure:36rem;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#15190F; --paper-2:#1D2216; --paper-3:#252B1C;
    --forest:#1B2413; --forest-2:#27331C;
    --ink:#ECE8DB; --ink-dim:#A6A391;
    --moss:#9AAA63; --coral:#DB8F62; --gold:#CDB069;
    --line:#2E3524; --on-forest:#EDE8DA; --on-forest-dim:#A9B093;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 28px -12px rgba(0,0,0,.55);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#15190F; --paper-2:#1D2216; --paper-3:#252B1C;
  --forest:#1B2413; --forest-2:#27331C;
  --ink:#ECE8DB; --ink-dim:#A6A391;
  --moss:#9AAA63; --coral:#DB8F62; --gold:#CDB069;
  --line:#2E3524; --on-forest:#EDE8DA; --on-forest-dim:#A9B093;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 28px -12px rgba(0,0,0,.55);
  color-scheme:dark;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:1.0625rem; line-height:1.68; -webkit-font-smoothing:antialiased}
img{max-width:100%; height:auto; display:block}
a{color:var(--moss); text-decoration:none; border-bottom:1px solid rgba(95,110,56,.35)}
a:hover{color:var(--ink); border-bottom-color:currentColor}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--moss); outline-offset:3px; border-radius:2px}

.band{background:var(--paper); position:relative}
.band--soft{background:var(--paper-2)}
.band--forest{background:var(--forest); color:var(--on-forest)}
.band--forest h1,.band--forest h2,.band--forest h3{color:var(--on-forest)}
.band--forest .dim,.band--forest figcaption{color:var(--on-forest-dim)}
.band--forest a{color:var(--on-forest); border-bottom-color:rgba(242,237,224,.4)}
.wrap{max-width:var(--maxw); margin-inline:auto;
  padding-left:max(1.4rem,env(safe-area-inset-left,0px));
  padding-right:max(1.4rem,env(safe-area-inset-right,0px));
  padding-block:clamp(3.4rem,8vw,6.5rem)}
.wrap--tight{padding-block:1.5rem}

.eyebrow{display:flex; align-items:center; gap:.95rem; margin:0 0 1.9rem}
.eyebrow span{font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--moss); white-space:nowrap}
.eyebrow::after{content:""; flex:1; height:1px; background:var(--line)}
.band--forest .eyebrow span{color:var(--on-forest-dim)}
.band--forest .eyebrow::after{background:rgba(242,237,224,.18)}

h1,h2,h3{font-family:var(--serif); font-weight:400; text-wrap:balance; margin:0; letter-spacing:-.012em}
h1{font-size:clamp(2.3rem,6.4vw,4.1rem); line-height:1.06}
h2{font-size:clamp(1.7rem,3.8vw,2.6rem); line-height:1.16; margin-bottom:1rem}
h3{font-size:1.16rem; line-height:1.32; margin-bottom:.45rem}
p{margin:0 0 1.1rem; max-width:var(--measure)}
.lede{font-size:clamp(1.1rem,2.1vw,1.34rem); line-height:1.56; max-width:34rem}
.dim{color:var(--ink-dim)}
.small{font-size:.9rem; line-height:1.6}
.wide{max-width:50rem}

.mast{display:flex; align-items:center; gap:.85rem; flex-wrap:wrap}
.mast .brand{display:flex; align-items:center; gap:.7rem; border:0}
.mast img{width:30px; height:auto}
.mast b{font-family:var(--serif); font-weight:400; font-size:1.04rem; color:var(--on-forest)}
.nav{margin-left:auto; display:flex; align-items:center; gap:1.15rem; flex-wrap:wrap}
.nav a{font-size:.86rem; color:var(--on-forest-dim); border:0}
.nav a:hover{color:var(--on-forest)}
.tt{background:none; border:1px solid rgba(242,237,224,.26); color:var(--on-forest-dim); cursor:pointer;
  font:inherit; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.32rem .66rem; border-radius:999px; line-height:1.4}
.tt:hover{color:var(--on-forest); border-color:rgba(242,237,224,.6)}

.hero{overflow:hidden}
.hero .wrap{position:relative; z-index:1; padding-block:clamp(3.2rem,7vw,5.6rem) clamp(3.6rem,8vw,6rem)}
.contours{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; opacity:.34}
.contours path{fill:none; stroke:var(--on-forest); stroke-width:1; vector-effect:non-scaling-stroke}
.thesis{border-left:2px solid rgba(242,237,224,.3); padding-left:1.15rem; margin:2.2rem 0 0;
  max-width:32rem; font-family:var(--serif); font-size:1.06rem; line-height:1.56; color:var(--on-forest-dim)}

.impact{display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); margin-top:.4rem}
.stat{min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:4px;
  padding:1.35rem 1.3rem; box-shadow:var(--shadow)}
.stat .n{font-family:var(--serif); font-size:clamp(1.9rem,4vw,2.5rem); line-height:1; color:var(--moss);
  font-variant-numeric:tabular-nums; display:block; margin-bottom:.5rem}
.stat .n small{font-size:.9rem; letter-spacing:.04em}
.stat .l{font-size:.9rem; line-height:1.45; color:var(--ink-dim); margin:0; max-width:none}
.verify{margin-top:1.6rem; font-size:.86rem; color:var(--ink-dim); max-width:46rem}

.wings{display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); margin-top:.4rem}
.wing{min-width:0; border-top:2px solid var(--line); padding-top:1.3rem}
.wing .cap{display:flex; align-items:center; gap:.7rem; margin-bottom:.9rem; min-height:40px}
.wing .cap img{height:34px; width:auto}
.wing .cap .name{font-family:var(--serif); font-size:1.3rem; line-height:1}
.wing .cap .name--art{color:var(--coral)}
.wing .cap .name--biz{color:var(--gold)}
.wing p{margin-bottom:.6rem; font-size:.99rem}
.wing .meta{font-size:.86rem; color:var(--ink-dim); margin:0}


/* the SAMAM wordmark is drawn in white: invert it on the light paper ground */
.mark-adapt{filter:invert(1)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .mark-adapt{filter:none} }
:root[data-theme="dark"] .mark-adapt{filter:none}

.land{display:grid; gap:clamp(1.8rem,4vw,3.2rem); grid-template-columns:1fr; align-items:start}
@media (min-width:54rem){.land{grid-template-columns:1.08fr .92fr}}
.land figure{margin:0; min-width:0}
figcaption{font-size:.84rem; color:var(--ink-dim); margin-top:.6rem; line-height:1.5}
.ba{position:relative; --pos:52%; border-radius:4px; overflow:hidden; line-height:0;
  touch-action:none; box-shadow:var(--shadow)}
.ba img{width:100%}
.ba__after{position:absolute; inset:0; clip-path:inset(0 0 0 var(--pos))}
.ba__range{position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; z-index:3}
.ba__bar{position:absolute; top:0; bottom:0; left:var(--pos); width:2px; background:#fff;
  transform:translateX(-1px); pointer-events:none; z-index:2; box-shadow:0 0 0 1px rgba(0,0,0,.2)}
.ba__grip{position:absolute; top:50%; left:var(--pos); width:36px; height:36px; margin:-18px 0 0 -18px;
  border-radius:50%; background:#fff; pointer-events:none; z-index:2; display:grid; place-items:center;
  box-shadow:0 2px 10px rgba(0,0,0,.3)}
.ba__grip::before{content:"\2039\00a0\203a"; color:var(--forest); font-size:1rem; letter-spacing:-.05em}
.ba__tag{position:absolute; bottom:.7rem; z-index:2; font-size:.64rem; letter-spacing:.2em;
  text-transform:uppercase; color:#fff; background:rgba(20,26,14,.6); padding:.28rem .55rem;
  border-radius:3px; line-height:1.3}
.ba__tag--b{left:.7rem} .ba__tag--a{right:.7rem}
.ba__range:focus-visible ~ .ba__grip{outline:2px solid var(--moss); outline-offset:3px}

.strata{list-style:none; margin:1.5rem 0 0; padding:0}
.strata li{display:grid; grid-template-columns:5.6rem 1fr; gap:1rem; padding:.68rem 0;
  border-top:1px solid var(--line); min-width:0}
.strata li:last-child{border-bottom:1px solid var(--line)}
.strata .yr{font-size:.78rem; color:var(--moss); font-variant-numeric:tabular-nums; padding-top:.14rem}
.strata .ev{font-size:.95rem; line-height:1.5; min-width:0}

.work{display:grid; gap:2rem 1.8rem; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.work article{min-width:0}
.work img{margin-bottom:.95rem; border-radius:4px; box-shadow:var(--shadow)}
.work p{font-size:.95rem; margin-bottom:0}

.quotes{display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); margin-top:.4rem}
.quote{min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:4px;
  padding:1.4rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.9rem}
.quote p{font-family:var(--serif); font-size:1.02rem; line-height:1.55; margin:0; max-width:none}
.quote .who{font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--moss); margin-top:auto}

.panel{background:var(--paper-3); border-radius:4px; padding:clamp(1.6rem,3.5vw,2.4rem); margin-top:1.6rem}
.panel h3{font-family:var(--serif); font-size:1.3rem; margin-bottom:.7rem}
.panel p{margin-bottom:.9rem; max-width:44rem}
.panel ul{margin:0 0 .4rem; padding-left:1.15rem; max-width:44rem}
.panel li{font-size:.96rem; margin-bottom:.5rem}

.cols{display:grid; gap:1.5rem 2.2rem; grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr)); margin-top:.4rem}
.cols > div{min-width:0; border-top:1px solid var(--line); padding-top:1.1rem}
.cols h3{font-size:1rem; font-family:var(--sans); font-weight:600}
.cols p{font-size:.93rem; margin-bottom:0}

.contact{display:grid; gap:1.3rem 2.5rem; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); margin-top:1.6rem}
.contact div{min-width:0}
.contact .k{font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:.35rem}
.contact .v{font-size:.99rem; word-break:break-word}

.doc{max-width:44rem}
.doc h2{font-size:1.32rem; margin:2.3rem 0 .7rem}
.doc h2:first-of-type{margin-top:1rem}
.doc p,.doc li{max-width:44rem; font-size:1rem}
.doc ul{padding-left:1.2rem}
.doc li{margin-bottom:.5rem}
.updated{font-size:.85rem; color:var(--ink-dim); border-bottom:1px solid var(--line); padding-bottom:1.2rem}
.note{border-left:2px solid var(--coral); padding-left:1.1rem; color:var(--ink-dim); font-size:.94rem; margin:1.6rem 0}

footer .wrap{padding-block:2.6rem 3rem}
.foot-grid{display:grid; gap:1.6rem 2.5rem; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.foot-grid p{font-size:.85rem; line-height:1.65; color:var(--on-forest-dim); margin-bottom:0; max-width:none}
.foot-grid strong{color:var(--on-forest); font-weight:600}
.leaf{width:24px; opacity:.7; margin-bottom:1rem}
.policy-links{display:flex; gap:1rem; flex-wrap:wrap; margin-top:.6rem}

.curtain{position:fixed; inset:0; z-index:99; background:var(--forest); display:grid; place-items:center;
  animation:curtain-lift .85s 2.05s cubic-bezier(.6,0,.3,1) forwards}
.curtain__in{display:grid; justify-items:center; gap:1.15rem; text-align:center; padding-inline:1.4rem;
  animation:card-in .85s cubic-bezier(.22,.7,.3,1) both}
.curtain__mark{width:52px}
.curtain__name{font-family:var(--serif); font-size:1.3rem; color:var(--on-forest)}
.curtain__rule{width:52px; height:1px; background:rgba(242,237,224,.4)}
.curtain__pair{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1.5rem;
  font-size:.8rem; letter-spacing:.32em; text-transform:uppercase; color:var(--on-forest)}
.curtain__pair i{font-style:normal; color:var(--on-forest-dim)}
.curtain__pair span:first-child{text-align:right}
.curtain__pair span:last-child{text-align:left}
.curtain__marks{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1.5rem;
  animation:marks-in .65s .8s both}
.curtain__marks img{height:24px; width:auto}
.curtain__marks .l{justify-self:end} .curtain__marks .r{justify-self:start}
.curtain__marks .sp{width:1px}
@keyframes card-in{from{opacity:0; transform:translateY(10px) scale(.986)}to{opacity:1; transform:none}}
@keyframes marks-in{from{opacity:0; transform:translateY(5px)}to{opacity:1; transform:none}}
@keyframes curtain-lift{to{opacity:0; visibility:hidden; transform:translateY(-1.4rem)}}
html.no-intro .curtain{display:none}

@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .75s cubic-bezier(.22,.7,.3,1) both}
  .rise-2{animation-delay:.09s} .rise-3{animation-delay:.18s}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .contours path{stroke-dasharray:2400; stroke-dashoffset:2400; animation:draw 3.2s .3s ease-out forwards}
  .contours path:nth-child(2){animation-delay:.48s} .contours path:nth-child(3){animation-delay:.66s}
  .contours path:nth-child(4){animation-delay:.84s} .contours path:nth-child(5){animation-delay:1.02s}
  @keyframes draw{to{stroke-dashoffset:0}}
  a,.tt{transition:color .16s ease,border-color .16s ease}
}
@media (prefers-reduced-motion:reduce){ .curtain{display:none} }

/* ---- integrated version: wing pages, photo stories ---- */
.crumbs{font-size:.8rem; color:var(--on-forest-dim); margin:0 0 1.5rem}
.crumbs a{color:var(--on-forest-dim); border:0} .crumbs a:hover{color:var(--on-forest)}
.pagehead .wrap{padding-block:clamp(2.6rem,6vw,4.4rem) clamp(2.8rem,6vw,4.6rem); position:relative; z-index:1}
.pagehead .brandmark{display:block; margin:0 0 1.6rem}
.pagehead .brandmark img{height:46px; width:auto}
.pagehead .brandmark img.tall{height:92px}
.pagehead h1{font-size:clamp(2rem,5vw,3.2rem)}
.lede--on{color:var(--on-forest)}
.since{font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--on-forest-dim); margin:0 0 1.2rem}

.gal{display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(15rem,1fr)); margin:1.4rem 0 0}
.gal--2{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.gal--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:46rem){.gal--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:28rem){.gal--3{grid-template-columns:1fr}}
.gal.gal--natural img{aspect-ratio:auto; object-fit:contain}
.hero h1{margin-bottom:1.1rem}
.gal figure{margin:0; min-width:0}
.gal img{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:4px; box-shadow:var(--shadow); background:var(--paper-3)}
.gal figcaption{font-size:.82rem}
.work figure{margin:0}
.work img{width:100%; aspect-ratio:16/10; object-fit:cover}
.figwide{margin:1.4rem 0 0}
.figwide img{width:100%; border-radius:4px; box-shadow:var(--shadow)}

.wingcards{display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); margin-top:.6rem}
.wingcard{display:flex; flex-direction:column; gap:.7rem; min-width:0; background:var(--paper); border:1px solid var(--line);
  border-radius:4px; padding:1.5rem 1.4rem 1.3rem; box-shadow:var(--shadow); color:var(--ink)}
.wingcard:hover{border-color:var(--moss); color:var(--ink)}
.wingcard .cap{min-height:44px; display:flex; align-items:center}
.wingcard .cap img{height:44px; width:auto}
.wingcard p{margin:0; font-size:.97rem}
.wingcard .go{margin-top:auto; font-size:.84rem; letter-spacing:.06em; color:var(--moss)}

.loop{display:grid; gap:1.4rem 1.8rem; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); margin-top:1.6rem; counter-reset:s}
.loop > div{counter-increment:s; border-top:2px solid var(--moss); padding-top:.9rem; min-width:0}
.loop > div::before{content:counter(s,decimal-leading-zero); display:block; font-size:.72rem; letter-spacing:.22em; color:var(--moss); margin-bottom:.35rem}
.loop h3{font-size:1.08rem} .loop p{font-size:.95rem; margin:0}

.btnrow{display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.4rem}
.btn{display:inline-block; padding:.68rem 1.25rem; border-radius:999px; background:var(--moss); color:#fff; border:1px solid var(--moss);
  font-size:.9rem; line-height:1.3}
.btn:hover{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.btn--ghost{background:transparent; color:var(--moss)} .btn--ghost:hover{background:var(--moss); color:#fff; border-color:var(--moss)}
.band--forest .btn{background:var(--on-forest); color:var(--forest); border-color:var(--on-forest)}
.band--forest .btn:hover{background:transparent; color:var(--on-forest)}
.band--forest .btn--ghost{background:transparent; color:var(--on-forest); border-color:rgba(242,237,224,.5)}
.band--forest .btn--ghost:hover{background:var(--on-forest); color:var(--forest)}

.stage{display:grid; gap:1rem; margin-top:1.4rem}
.stage h3{font-family:var(--serif); font-size:1.25rem; margin:2.4rem 0 .2rem}
.stage h3:first-child{margin-top:0}
.sub{margin:0 0 .4rem; color:var(--ink-dim); font-size:.95rem}
.logorow{display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap}
