/* Layout concept: warm, airy editorial. Ivory page, sand panels, Playfair headings with small tracked Jost labels, soft pill buttons, warm-dark street band. */
:root{
  --paper:#fffcf7; --paper-2:#f8f2e9; --panel:#f3eadd; --ink:#2d2622; --ink-2:#6a5e55; --line:#e8ded0;
  --accent:#7a5638; --accent-ink:#fffcf7; --btn:#33281f; --btn-ink:#fffcf7;
  --night:#1c1714; --night-2:#262019; --night-ink:#f3ebe0; --night-ink-2:#b9ab9b; --night-line:#3a3029;
  --f-display:"Neue Haas Grotesk Display Pro","Neue Haas Grotesk Display","Neue Haas Grotesk Text Pro","Neue Haas Grotesk",Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-body:"Neue Haas Grotesk Text Pro","Neue Haas Grotesk Text","Neue Haas Grotesk Display Pro","Neue Haas Grotesk",Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-mono:var(--f-body);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--paper:#1a1613;--paper-2:#221d19;--panel:#2a231e;--ink:#f3ebe0;--ink-2:#b9ab9b;--line:#3a3029;--accent:#d8aa75;--accent-ink:#1a1613;--btn:#f3ebe0;--btn-ink:#1a1613;--night:#110e0c;--night-2:#1c1714;color-scheme:dark}
}
:root[data-theme="dark"]{--paper:#1a1613;--paper-2:#221d19;--panel:#2a231e;--ink:#f3ebe0;--ink-2:#b9ab9b;--line:#3a3029;--accent:#d8aa75;--accent-ink:#1a1613;--btn:#f3ebe0;--btn-ink:#1a1613;--night:#110e0c;--night-2:#1c1714;color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:20px;line-height:1.55;font-weight:500}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:500;line-height:1.12;letter-spacing:.01em;text-wrap:balance;margin:0}
h1{font-size:clamp(2rem,4.6vw,3.7rem);font-weight:400;text-transform:uppercase;letter-spacing:.07em}
h2{font-size:clamp(1.5rem,2.8vw,2.3rem);font-weight:400;text-transform:uppercase;letter-spacing:.09em}
h3{font-size:1.5rem}
p{margin:0 0 1em;max-width:65ch}
.mono,.kicker,figcaption,.meta{font-family:var(--f-mono);font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.kicker{color:var(--ink-2);margin:0 0 1.1rem;display:block}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:50}
.skip:focus{left:0}

.wrap{max-width:1280px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
section{padding-block:clamp(3.5rem,8vw,7rem)}
.rule{border-top:1px solid var(--line)}

/* header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--paper);z-index:40}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}
.bar{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding-block:1.6rem 1.2rem}
.logo{font-family:var(--f-display);font-weight:500;font-size:1.5rem;letter-spacing:.32em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a,.nav summary{text-decoration:none;font-size:1.15rem;font-weight:500;cursor:pointer;list-style:none}
.nav summary::-webkit-details-marker{display:none}
.nav a:hover,.nav summary:hover{color:var(--accent)}
.nav .book{background:var(--ink);color:var(--paper);padding:.45rem 1.2rem;border-radius:10px}
.nav .book:hover{background:var(--accent);color:var(--accent-ink)}
.dd{position:relative}
.dd summary::after{content:" ▾";font-size:.7em}
.dd-list{position:absolute;top:calc(100% + .8rem);left:50%;transform:translateX(-50%);min-width:270px;background:var(--paper);border:1px solid var(--line);padding:.6rem;display:grid;gap:.1rem;box-shadow:0 18px 40px -20px rgba(0,0,0,.35)}
.dd-list a{padding:.5rem .7rem;display:block;border-radius:6px}
.dd-list a:hover{background:var(--paper-2)}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:.4rem 1rem;border-radius:10px;font:inherit;font-size:1rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
@media (max-width:980px){
  .bar{flex-direction:row;justify-content:space-between;padding-block:.9rem}
  .logo{font-size:1.15rem;letter-spacing:.24em}
  .menu-btn{display:block}
  .dd-list{transform:none}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.2rem;padding:1rem max(16px,env(safe-area-inset-left,0px)) 1.4rem}
  .nav.open{display:flex}
  .nav a,.nav summary{padding:.55rem 0;font-size:1.05rem}
  .dd-list{position:static;box-shadow:none;border:0;padding:.2rem 0 .4rem 1rem;min-width:0}
  .dd-list a{padding:.4rem 0}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--accent);color:var(--accent-ink);padding:.85rem 1.8rem;border-radius:10px;text-transform:uppercase;letter-spacing:.16em;font-size:.95rem;text-decoration:none;font-weight:600;border:0;font-family:inherit;font-size:1rem;cursor:pointer}
.btn:hover{filter:brightness(1.12)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper);filter:none}
.row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}

/* hero */
.hero{padding-block:clamp(2.5rem,5vw,4.5rem) clamp(3rem,6vw,5rem)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,4rem);align-items:end}
.hero-grid>*{min-width:0}
.lede{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-2);max-width:52ch;margin:1.4rem 0 2rem}
.hero .frame img{aspect-ratio:4/5;object-fit:cover;width:100%}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}

/* frames */
.frame{margin:0;position:relative}
.frame img{width:100%;background:var(--paper-2)}
.frame figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:.55rem;color:var(--ink-2)}
.frame figcaption b{font-weight:400;color:var(--ink)}
.sheet{columns:3 260px;column-gap:clamp(.8rem,1.6vw,1.4rem)}
.sheet .frame{break-inside:avoid;margin-bottom:clamp(.8rem,1.6vw,1.4rem)}
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;background:var(--night);padding:.9rem;border-radius:2px}
.strip img{aspect-ratio:3/4;object-fit:cover}
@media (max-width:760px){.strip{grid-template-columns:repeat(3,1fr)}}

/* service index */
.index{border-top:1px solid var(--ink)}
.index a{display:grid;grid-template-columns:3.2rem 1fr minmax(0,1.1fr) 2rem;gap:1.2rem;align-items:baseline;padding:1.25rem 0;border-bottom:1px solid var(--line);text-decoration:none}
.index a:hover{background:var(--paper-2)}
.index a:hover .arrow{transform:translateX(6px);color:var(--accent)}
.index .n{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-2)}
.index .t{font-family:var(--f-display);font-size:clamp(1.4rem,3vw,2.1rem);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.index .d{color:var(--ink-2);font-size:.98rem}
.arrow{transition:transform .2s}
@media (max-width:760px){.index a{grid-template-columns:2.4rem 1fr 1.5rem}.index .d{display:none}}

.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,3vw,3rem)}
.cols>*{min-width:0}
.cols.two{grid-template-columns:1fr 1fr}
@media (max-width:860px){.cols,.cols.two{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,4vw,4rem)}
.split>*{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.list li{padding:.85rem 0;border-bottom:1px solid var(--line)}
.list b{font-weight:600}
.list span{color:var(--ink-2)}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,3vw,3rem)}
.steps>div{border-top:1px solid var(--ink);padding-top:1rem}
.steps>div::before{counter-increment:s;content:"Step " counter(s);font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* night band: street photography */
.night{background:var(--night);color:var(--night-ink)}
.night .kicker{color:var(--night-ink-2)}
.night p,.night .lede{color:var(--night-ink-2)}
.night .btn.ghost{color:var(--night-ink);border-color:var(--night-ink)}
.night .btn.ghost:hover{background:var(--night-ink);color:var(--night)}
.night .frame figcaption{color:var(--night-ink-2)}
.night .frame figcaption b{color:var(--night-ink)}
.night .frame img{background:var(--night-2);filter:contrast(1.04)}
.night .list{border-color:var(--night-line)}
.night .list li{border-color:var(--night-line)}
.night .list span{color:var(--night-ink-2)}
.night a{color:var(--night-ink)}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq details:first-of-type{border-top:1px solid var(--ink)}
.faq summary{cursor:pointer;font-family:var(--f-display);font-size:1.35rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:.8rem 0 0;color:var(--ink-2)}

/* cta */
.cta{background:var(--panel);color:var(--ink)}
.cta h2{max-width:20ch}
.cta p{color:inherit;opacity:.85}
.cta .btn{background:var(--accent);color:var(--accent-ink)}
.crumbs{padding-top:1.4rem}
.crumbs a{text-decoration:none;color:var(--ink-2)}
.crumbs a:hover{color:var(--accent)}

/* posts */
.post-list a{display:grid;grid-template-columns:8rem 1fr;gap:1.2rem;padding:1.3rem 0;border-bottom:1px solid var(--line);text-decoration:none}
.post-list a:hover h3{color:var(--accent)}
.post-list p{color:var(--ink-2);margin:.4rem 0 0}
@media (max-width:600px){.post-list a{grid-template-columns:1fr;gap:.3rem}}
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,2.6vw,2.1rem);margin:2.4rem 0 1rem}
.prose li{margin-bottom:.5rem}

/* form */
form.book{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem}
form.book .full{grid-column:1/-1}
form.book>*{min-width:0}
@media (max-width:640px){form.book{grid-template-columns:1fr}}
label{display:block;font-family:var(--f-mono);font-size:.9rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.4rem;color:var(--ink-2)}
input,select,textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--paper);border:1px solid var(--ink-2);border-radius:2px;padding:.8rem .9rem}
textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px}
.note{font-size:.9rem;color:var(--ink-2)}

/* footer */
footer{background:var(--night);color:var(--night-ink);padding-block:4rem 2.5rem}
footer .cols{grid-template-columns:1.4fr 1fr 1fr 1fr}
@media (max-width:860px){footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer .cols{grid-template-columns:1fr}}
footer h3{font-family:var(--f-mono);font-size:.9rem;text-transform:uppercase;letter-spacing:.18em;font-weight:400;color:var(--night-ink-2);margin-bottom:1rem}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
footer a{text-decoration:none;color:var(--night-ink)}
footer a:hover{color:var(--night-ink-2)}
footer .fine{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--night-line);color:var(--night-ink-2);font-size:.85rem}
footer p{color:var(--night-ink-2)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* band + tiles + about panel */
.band{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.band .frame img{aspect-ratio:2/3;object-fit:cover;height:auto}
.band .frame figcaption{display:none}
@media (max-width:700px){.band{grid-template-columns:1fr 1fr}.band .frame:nth-child(3){display:none}}
.intro{text-align:center;padding-block:clamp(3rem,6vw,5.5rem)}
.intro .lede,.intro p{margin-inline:auto}
.intro .row{justify-content:center}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,2.8rem) clamp(1rem,2vw,2rem)}
.tiles>*{min-width:0}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.tile{text-decoration:none;text-align:center;display:block}
.tile img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;background:var(--paper-2)}
.tile h3{margin-top:1.1rem;font-size:1.2rem;text-transform:uppercase;letter-spacing:.16em;font-weight:500}
.tile span{display:block;margin-top:.3rem;color:var(--ink-2)}
.tile:hover h3{text-decoration:underline;text-underline-offset:6px}
.overlap{display:grid;grid-template-columns:1.15fr 1fr;align-items:center}
.overlap>*{min-width:0}
.overlap .frame img{aspect-ratio:1/1;object-fit:cover}
.overlap .panel{background:var(--panel);padding:clamp(1.6rem,4vw,3.4rem);margin-left:-12%;position:relative;z-index:1}
.overlap .panel p{font-style:italic;font-size:1.25rem;max-width:34ch}
@media (max-width:760px){.overlap{grid-template-columns:1fr}.overlap .panel{margin:-3rem 1rem 0}}
.panel.plain{background:var(--panel);padding:clamp(1.6rem,4vw,3rem)}

/* ---- warm editorial theme (overrides) ---- */
body{font-size:18px;line-height:1.7;font-weight:400}
h1,h2,h3{font-weight:400;text-transform:none;letter-spacing:-.01em;line-height:1.15}
h1{font-size:clamp(2.3rem,5vw,4rem)}
h2{font-size:clamp(1.8rem,3.2vw,2.7rem)}
h3{font-size:1.35rem}
.mono,.kicker,figcaption,.meta{font-size:.76rem;letter-spacing:.2em;font-weight:500}
.kicker{color:var(--accent)}
.logo{font-size:1.35rem;letter-spacing:.26em;font-weight:400}
.nav a,.nav summary{font-size:.95rem;letter-spacing:.05em;font-weight:400}
.nav .book,.btn{border-radius:999px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500}
.nav .book{padding:.55rem 1.3rem;background:var(--btn);color:var(--btn-ink)}
.nav .book:hover{background:var(--accent);color:var(--accent-ink)}
.btn{padding:.95rem 2.1rem;background:var(--btn);color:var(--btn-ink)}
.btn:hover{background:var(--accent);color:var(--accent-ink);filter:none}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.cta .btn{background:var(--btn);color:var(--btn-ink)}
.menu-btn{border-radius:999px;font-size:.78rem}
.tile h3{text-transform:none;letter-spacing:0;font-size:1.45rem}
.tile span{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.index .t{text-transform:none;letter-spacing:-.01em}
label,footer h3{font-size:.76rem;letter-spacing:.18em}
.steps>div::before{font-size:.76rem;color:var(--accent)}
.faq summary{font-size:1.25rem;font-weight:400}
.lede{font-size:1.2rem;color:var(--ink-2)}
.overlap .panel p{font-size:1.4rem;font-family:var(--f-display)}
.night .btn.ghost{color:var(--night-ink);border-color:var(--night-ink)}
.night .btn.ghost:hover{background:var(--night-ink);color:var(--night)}
.night .kicker{color:var(--night-ink-2)}
input,select,textarea{border-radius:8px;border:1px solid var(--line);background:var(--paper-2)}
.post-list h3{font-weight:400}
footer .logo{color:var(--night-ink)}
em,.it{font-family:var(--f-display);font-style:italic}

/* packages */
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.8rem);align-items:stretch}
.pkgs>*{min-width:0}
@media (max-width:860px){.pkgs{grid-template-columns:1fr}}
.pkg{background:var(--paper-2);border:1px solid var(--line);border-radius:18px;padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-direction:column;gap:.9rem;position:relative}
.pkg.feat{background:var(--panel);border-color:var(--accent)}
.pkg .tag{position:absolute;top:-.8rem;left:1.6rem;background:var(--accent);color:var(--accent-ink);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:.25rem .8rem;border-radius:999px}
.pkg .mins{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:500}
.pkg h3{font-size:1.6rem}
.pkg .price{font-family:var(--f-display);font-size:3.2rem;line-height:1;letter-spacing:-.02em}
.pkg .price sup{font-size:1.2rem;vertical-align:top;margin-right:.1rem;position:relative;top:.45rem}
.pkg p{margin:0;color:var(--ink-2);font-size:1rem}
.pkg ul{list-style:none;margin:.3rem 0 .6rem;padding:0;display:grid;gap:.5rem;font-size:1rem}
.pkg li{padding-left:1.4rem;position:relative}
.pkg li::before{content:"";position:absolute;left:0;top:.7em;width:.7rem;height:1px;background:var(--accent)}
.pkg .btn{margin-top:auto;justify-content:center}
.pnote{margin-top:1.4rem;color:var(--ink-2);font-size:.95rem}
.quote{background:var(--panel);border-radius:18px;padding:clamp(1.6rem,4vw,3rem)}

.tile img{object-position:center 30%}

/* Neue Haas Grotesk: sans headings, no italics */
h1,h2,h3{letter-spacing:-.025em;font-weight:400}
.logo{font-weight:500}
em,.it,.overlap .panel p,.quote{font-style:normal}
.overlap .panel p{font-family:var(--f-body);font-size:1.25rem;line-height:1.55}
.faq summary{font-weight:500}
.pkg .price{font-weight:300;letter-spacing:-.04em}
.pol{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem;margin-top:1rem}
.pol>div{background:var(--sand);border-radius:14px;padding:1.6rem}
.pol h3{font-size:1.15rem;margin-bottom:.6rem}
.pol p{margin:0;color:var(--ink-2);font-size:.97rem}

/* thinner, lighter weights */
body{font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3{font-weight:200;letter-spacing:-.02em}
h1{letter-spacing:-.03em}
.logo{font-weight:300;letter-spacing:.34em}
.nav a,.nav summary{font-weight:300}
.nav .book,.btn{font-weight:400;letter-spacing:.18em}
.mono,.kicker,figcaption,.meta,label,footer h3,.pkg .mins,.steps>div::before{font-weight:400}
.faq summary,.tile h3,.index .t,.pkg h3,.pol h3,.list b,.pkg b{font-weight:300}
.pkg .price{font-weight:200}
b,strong,th{font-weight:400}
.pkg .tag{font-weight:400}
p,li,.lede{font-weight:300}

/* smaller type */
html{font-size:14.5px}
body{font-size:1.1rem}
h1{font-size:clamp(1.8rem,3.8vw,3rem)}
h2{font-size:clamp(1.35rem,2.3vw,1.9rem)}

/* classic elegance: light serif display, quiet sans body */
:root{--f-display:"Cormorant Garamond","Neue Haas Grotesk Display Pro",Georgia,"Times New Roman",serif}
h1,h2,h3,.tile h3,.index .t,.faq summary,.pkg h3,.pol h3,.pkg .price,.overlap .panel p{font-family:var(--f-display);font-weight:300;letter-spacing:0;text-transform:none}
h1{font-size:clamp(2.3rem,4.8vw,3.9rem);line-height:1.08;letter-spacing:-.005em}
h2{font-size:clamp(1.7rem,2.9vw,2.4rem);line-height:1.12}
h3{font-size:1.5rem}
.tile h3{font-size:1.6rem}
.faq summary{font-size:1.4rem;font-weight:400}
.pkg .price{font-size:3.4rem;font-weight:300}
.overlap .panel p{font-size:1.45rem;font-style:italic;line-height:1.5}
.logo{font-family:var(--f-display);font-weight:400;font-size:1.5rem;letter-spacing:.38em}
.kicker,label,footer h3,.pkg .mins{letter-spacing:.24em;font-size:.68rem}
.btn,.nav .book{letter-spacing:.2em;font-size:.7rem}
.nav a,.nav summary{font-size:.9rem;letter-spacing:.06em}
figcaption{display:none}

.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2rem}
.rev{margin:0}
.rev blockquote{margin:0 0 1rem;font-family:var(--f-display);font-size:1.45rem;line-height:1.4;font-weight:300;font-style:italic}
.rev figcaption{display:block!important;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.rev figcaption span{display:block;color:var(--ink-2);margin-top:.2rem}
.revs{display:block;column-count:2;column-gap:4rem}
.rev{break-inside:avoid;margin:0 0 2.8rem}
.rev blockquote{font-size:1.28rem;line-height:1.5}
@media(max-width:760px){.revs{column-count:1}}

/* home hero: single elegant image with overlapping intro panel */
.hero-img{margin:0;line-height:0}
.hero-img img{width:100%;height:min(74vh,46vw);min-height:20rem;object-fit:cover;object-position:50% 62%;display:block}
.intro{position:relative;max-width:50rem;margin:clamp(-5rem,-6vw,-2.5rem) auto 0;background:var(--paper);padding:clamp(2.2rem,4.5vw,3.8rem) clamp(1.2rem,4vw,3.5rem) clamp(2.5rem,5vw,4.5rem)}
.intro h1{font-size:clamp(2rem,4.2vw,3.2rem)}
/* reviews: easier to read */
.rev{border-top:1px solid var(--line);padding-top:1.4rem}
.rev blockquote{font-family:var(--f-body);font-style:normal;font-weight:500;font-size:1.08rem;line-height:1.7;color:var(--ink);letter-spacing:.005em}
.rev figcaption{font-weight:600;color:var(--ink);font-size:.76rem;letter-spacing:.18em}
.rev figcaption span{font-weight:400;color:var(--ink-2);letter-spacing:.14em}
.revs{column-gap:4.5rem}
@media(max-width:700px){.hero-img img{height:62vw;min-height:15rem}}

/* header pair */
.hero-img{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.4rem,.8vw,.8rem);padding-inline:clamp(.4rem,.8vw,.8rem)}
.hero-img img{width:100%;height:min(70vh,44vw);min-height:18rem;object-fit:cover;object-position:50% 55%}
@media(max-width:700px){.hero-img img{height:70vw}}
/* about panel, bigger */
.overlap{grid-template-columns:1.2fr 1fr}
.overlap .frame img{aspect-ratio:4/5}
.overlap .panel{padding:clamp(2rem,5.5vw,5.5rem) clamp(1.8rem,5vw,5rem)}
.overlap .panel .kicker{font-size:.8rem}
.overlap .panel p{font-size:clamp(1.35rem,1.9vw,1.75rem);line-height:1.5;max-width:36ch;margin-block:1.2rem}
.overlap .panel p a{font-size:1rem}
/* reviews: regular weight, bold section title only */
.rev blockquote{font-weight:400}
.rev figcaption{font-weight:400}
h2.strong{font-weight:600}

.intro .hi{font-family:var(--f-display);font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:400;margin:1.4rem auto .6rem;color:var(--accent)}
.intro .lede{max-width:40rem;margin-inline:auto;line-height:1.75}

/* compact intro */
.intro{padding-block:clamp(1.8rem,3vw,2.6rem) clamp(2rem,3.5vw,3rem)}
.intro h1{font-size:clamp(1.5rem,2.2vw,1.9rem)}
.intro .hi{font-size:clamp(1.05rem,1.4vw,1.25rem);margin:.9rem auto .5rem}
.intro .lede{font-size:.92rem;line-height:1.7;max-width:34rem;margin-block:0 .8rem}
.intro .row{margin-top:1.2rem}
/* intro headline and greeting, doubled */
.intro h1{font-size:clamp(2.2rem,4.2vw,3.6rem)}
.intro .hi{font-size:clamp(1.6rem,2.6vw,2.3rem);margin:1.1rem auto .7rem}

.custom{text-align:center;margin:2.4rem auto 0;font-family:var(--f-display);font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:400;color:var(--ink)}
.custom a{color:var(--accent);text-underline-offset:.25em}
/* street page: accent background */
.stl{background:var(--accent);color:#fffcf7}
.stl h1,.stl h2{color:#fffcf7}
.stl .kicker{color:#f3e3cf}
.stl p,.stl .lede,.stl .note{color:#f7ebdb}
.stl .btn.ghost{color:#fffcf7;border-color:#fffcf7}
.stl .btn.ghost:hover{background:#fffcf7;color:var(--accent)}
.stl .frame img{background:#694730;filter:none}
.stl .list,.stl .list li{border-color:rgba(255,252,247,.35)}
.stl .list span{color:#f3e3cf}
.stl a{color:#fffcf7}
.stl .wrap.split{border-top-color:rgba(255,252,247,.35)!important}
/* reviews: same type as the pricing note */
.rev blockquote{font-family:var(--f-body);font-style:normal;font-weight:inherit;font-size:.95rem;line-height:1.7;color:var(--ink-2);letter-spacing:normal}
h2.strong{font-weight:400;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(1.3rem,2vw,1.7rem)}
.rev blockquote{color:var(--accent)}
/* home tiles: six in 3x2, street photography set apart below a line */
.tiles{grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.street-row{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.street-row .kicker{display:block;margin-bottom:1.4rem}
.pkgsec{padding-block:clamp(2.2rem,4.5vw,3.6rem)}
.pkgsec .split{align-items:end}
.pkgsec h2{margin-bottom:0}
.pkgsec .lede{margin-bottom:0}
.pnote{text-align:center}
.street-row{margin-top:2.2rem}
.pnote,p.note{max-width:none;margin-inline:auto}
.pnote{text-align:center}
.street-row .tiles{grid-template-columns:repeat(3,1fr)}
/* home: Bench Project band in accent bronze */
.night.bench{background:var(--accent);color:#fffcf7}
.night.bench h2{color:#fffcf7}
.night.bench .kicker{color:#f3e3cf}
.night.bench p,.night.bench .lede{color:#f7ebdb}
.night.bench .btn.ghost{color:#fffcf7;border-color:#fffcf7}
.night.bench .btn.ghost:hover{background:#fffcf7;color:var(--accent)}
.night.bench .frame img{background:#694730;filter:none}
/* Bench Project band: darker, centered text, three equal images */
.night.bench{background:#4f3b2c}
.night.bench .frame img{background:#3f2f23}
.bench-head{text-align:center;max-width:44rem;margin-inline:auto}
.bench-head .lede{margin-inline:auto}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,2vw,1.6rem);margin-top:clamp(2rem,4vw,3.2rem)}
.trio .frame{margin:0}
.trio img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:700px){.trio{grid-template-columns:1fr}}
/* about panel on home: smaller image */
.overlap{max-width:980px;margin-inline:auto;grid-template-columns:.8fr 1fr}
.overlap .frame img{aspect-ratio:4/5}
.overlap .panel{padding:clamp(1.6rem,3.5vw,3.2rem) clamp(1.4rem,3.5vw,3.2rem);margin-left:-14%}
.overlap .panel p{font-size:clamp(1.1rem,1.5vw,1.3rem);max-width:30ch;margin-block:1rem}
@media (max-width:760px){.overlap{grid-template-columns:1fr}.overlap .panel{margin:-3rem 1rem 0}}
/* packages header stacked */
.pkghead{margin-bottom:1.6rem}
.pkghead .lede{margin:.7rem 0 0;max-width:60ch}
/* home reviews: three calm columns */
.revs.row{display:grid;grid-template-columns:repeat(3,1fr);column-count:auto;gap:clamp(1.6rem,4vw,4rem)}
.revs.row .rev{margin:0}
.revs.row .rev blockquote{font-size:1.05rem;line-height:1.75}
@media (max-width:860px){.revs.row{grid-template-columns:1fr}}
.revs.row{align-items:start}
.revs.row .rev figcaption span{letter-spacing:.08em;font-size:.68rem}
/* wider text lines */
.lede{max-width:min(100%,92ch)}
.pkghead .lede{max-width:none;white-space:nowrap}
@media (max-width:1000px){.pkghead .lede{white-space:normal}}
.intro{max-width:66rem}
.intro .lede{max-width:58rem}
.bench-head{max-width:72rem}
.bench-head .lede{max-width:none}
.section-wide p{max-width:none}
.intro{max-width:74rem}
.intro .lede{max-width:68rem}
.bench-head{max-width:100%}
.bench-head .lede{font-size:1.02rem}
/* smooth, quiet page transitions */
html{scroll-behavior:smooth}
@keyframes pagein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
body{animation:pagein .55s cubic-bezier(.2,.7,.2,1) backwards}
html.leaving body{opacity:0;transform:translateY(-6px);transition:opacity .26s ease,transform .26s ease}
footer .fine .totop{display:inline-block;margin-bottom:.9rem;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;text-decoration:none;color:var(--night-ink-2)}
footer .fine .totop:hover{color:var(--night-ink)}
footer a{transition:color .25s ease,opacity .25s ease}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body{animation:none}}
footer .fine{max-width:none}
html.leaving body{transition:opacity .2s ease,transform .2s ease}
/* Apple-style quiet reveal */
@keyframes pagein{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body{animation:pagein .9s cubic-bezier(.16,1,.3,1) backwards}
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

footer .connect{display:flex;gap:2rem;flex-wrap:wrap;margin-top:2.5rem;padding-top:1.4rem;border-top:1px solid var(--night-line)}
footer .connect a{display:inline-flex;align-items:center;gap:.6rem;color:var(--night-ink-2);text-decoration:none;font-size:.92rem}
footer .connect a:hover{color:var(--night-ink)}
footer .fine{margin-top:1.4rem;border-top:0;padding-top:0}

footer .connect{justify-content:center;border-top:0;padding-top:0;margin-top:3rem;gap:0}
footer .connect-pill{display:inline-flex;align-items:center;background:#fff;border-radius:999px;padding:.35rem .5rem;box-shadow:0 1px 0 rgba(0,0,0,.04)}
footer .connect-pill a{color:var(--ink);padding:.7rem 1.4rem;min-height:44px;border-radius:999px;font-size:.9rem;white-space:nowrap}
footer .connect-pill a:hover{background:var(--paper);color:var(--ink)}
footer .connect-pill i{width:1px;height:1.4rem;background:rgba(0,0,0,.14)}
@media (max-width:520px){footer .connect-pill a{padding:.7rem .9rem;font-size:.82rem}footer .connect-pill a span{max-width:140px;overflow:hidden;text-overflow:ellipsis}}
footer .fine{text-align:center;margin-top:1.8rem}

.rev figcaption{display:flex!important;align-items:center;gap:.9rem}
.rev figcaption .who{min-width:0}
.rev .av{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px var(--paper),0 0 0 3px rgba(0,0,0,.12)}

.rev .mono-av{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-family:var(--f-display);font-size:1.4rem;letter-spacing:0;text-transform:none;box-shadow:none}

/* Journal: list rows with thumbnails, contained post photo */
.post-list a{grid-template-columns:11rem 1fr;gap:1.6rem;align-items:center;padding:1.4rem 0}
.post-list .thumb{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--paper-2)}
.post-list .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.post-list a:hover .thumb img{transform:scale(1.03)}
.post-list .meta{display:block;margin-bottom:.4rem;font-size:.72rem;letter-spacing:.16em;color:var(--ink-2)}
.post-list h3{font-size:1.35rem;line-height:1.25;margin:0}
.post-list p{max-width:52ch;font-size:.98rem;line-height:1.6}
@media (max-width:600px){.post-list a{grid-template-columns:6.5rem 1fr;gap:1rem;padding:1.1rem 0;align-items:start}.post-list h3{font-size:1.1rem}.post-list p{font-size:.9rem;line-height:1.5}}
.post-title{font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.12;max-width:24ch}
.post-hero .frame{max-width:56rem;margin:0 0 2.5rem}
.post-hero .frame img{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto}
@media (max-width:600px){.post-hero .frame{margin-bottom:1.6rem}.post-hero .frame img{aspect-ratio:4/3}}

/* ---- Touch devices and small screens: readable type, comfortable tap targets, no iOS input zoom ---- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:6rem}
a,button,summary,select,label{touch-action:manipulation;-webkit-tap-highlight-color:rgba(122,86,56,.14)}
input,select,textarea{font-size:16px}
.site-header{padding-top:env(safe-area-inset-top)}
.wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
footer{padding-bottom:env(safe-area-inset-bottom)}
.logo{display:inline-flex;align-items:center;min-height:44px}
.menu-btn{min-height:44px;min-width:76px;padding:.55rem 1.15rem}
.btn,.nav .book{min-height:44px}
.faq summary{min-height:48px;align-items:center;padding-block:.5rem}
.crumbs a{display:inline-block;padding:.75rem .1rem}
.crumbs{padding-top:.6rem}
footer .totop{padding:.9rem .5rem .9rem 0;min-height:44px}
footer li a{display:inline-block;padding:.45rem 0}
.index a,.post-list a,.dd-list a{min-height:44px}
.pkg .btn,.cta .btn,form .btn{min-height:48px}
@media (max-width:860px){
 .kicker,.mono,.meta,label,footer h3,.pkg .mins,.rev figcaption span,.crumbs,.tile span,.pkg .tag,.steps>div::before,.post-list .meta{font-size:12px}
 .btn,.nav .book,.menu-btn{font-size:12.5px}
 .kicker{letter-spacing:.2em}
 .nav a,.nav summary{min-height:44px;display:flex;align-items:center}
 .nav .book{justify-content:center;max-width:max-content}
}
@media (max-width:380px){
 .logo{font-size:1.02rem;letter-spacing:.2em}
 .wrap{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
}
@media (hover:none){.tile:hover h3{text-decoration:none}.post-list a:hover .thumb img{transform:none}.btn:hover{filter:none}}
@media (prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important}html{scroll-behavior:auto}}

.rev figcaption span,.revs.row .rev figcaption span{font-size:max(12px,.68rem)}
footer .fine .totop{font-size:12px}
.row-head a,.view-all{display:inline-flex;align-items:center;min-height:44px}
.rev figcaption,.rev figcaption .who{font-size:max(12px,.76rem)}
/* Minimum sizes for small uppercase labels on every screen */
.kicker,.mono,.meta,label,footer h3,.pkg .mins,.crumbs,.tile span,.pkg .tag,.steps>div::before{font-size:max(12px,.7rem)}
.btn,.nav .book,.menu-btn{font-size:max(12px,.74rem)}
.crumbs,.crumbs a{font-size:12px}
.post-list .meta{font-size:12px}

/* Journal posts: one centered column (title, photo, article) */
.post>section .wrap{text-align:center}
.post .post-title{margin-inline:auto;max-width:26ch}
.post .post-hero .frame{margin:0 auto 2.5rem}
.post>.wrap:last-child .prose{margin-inline:auto}
.post .prose h2{margin-top:2.4rem}
@media (max-width:600px){.post .post-hero .frame{margin-bottom:1.6rem}}

/* home hero + meet section */
.home-hero h1{font-size:clamp(2.1rem,4vw,3.4rem);max-width:15em}
.home-hero .hero-grid{align-items:center}
.meet{text-align:center;padding-block:clamp(3rem,6vw,5rem);border-top:1px solid var(--line)}
.meet .hi{font-family:var(--f-display);font-size:clamp(1.3rem,2vw,1.7rem);font-weight:400;margin:1rem auto .6rem;color:var(--accent)}
.meet .lede{max-width:40rem;margin-inline:auto;line-height:1.75}
.meet .row{justify-content:center;margin-top:1.4rem}
.panel.bio p{font-family:var(--f-body);font-style:normal;font-size:1rem;line-height:1.75;max-width:none;margin-block:.9rem 0}
.panel.bio h2{margin:.5rem 0 .2rem}
.panel.bio .btn{margin-top:.6rem;font-style:normal}

/* horizontal service covers */
.hero:not(.home-hero) .hero-grid{grid-template-columns:1fr 1.1fr;align-items:center}
.hero:not(.home-hero) .frame img{aspect-ratio:4/3}
@media (max-width:860px){.hero:not(.home-hero) .hero-grid{grid-template-columns:1fr}}

/* slideshow hero */
.show-hero{padding-block:clamp(1rem,2.5vw,2rem) clamp(2rem,4vw,3.5rem)}
.show{position:relative;overflow:hidden;background:#1c1714;aspect-ratio:2.6/1;width:100%;max-height:30rem}
.show .slides,.show .slide{position:absolute;inset:0;width:100%;height:100%}
.show .slide{object-fit:cover;opacity:0;transition:opacity 1.2s ease,transform 7s ease-out;transform:scale(1.04)}
.show .slide.on{opacity:1;transform:scale(1)}
.show-text{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:start;padding-top:clamp(1.4rem,2.5vw,2.2rem)}
.show-text h1,.show-text h2{font-size:clamp(1.9rem,3.4vw,3rem);margin:.5rem 0 0}
.show-text .lede{margin:0 0 1.3rem}
.dots{position:absolute;z-index:3;right:clamp(.8rem,2vw,1.4rem);bottom:clamp(.6rem,1.5vw,1rem);display:flex;gap:.1rem}
.dot{width:2.2rem;height:2.2rem;padding:0;background:none;border:0;cursor:pointer;position:relative}
.dot::after{content:"";position:absolute;left:.35rem;right:.35rem;top:50%;height:2px;background:rgba(255,252,247,.55);transition:background .3s;box-shadow:0 0 4px rgba(0,0,0,.35)}
.dot.on::after{background:#fffcf7}
.dot:focus-visible{outline:2px solid #fffcf7;outline-offset:-4px}
@media (max-width:760px){
 .show{aspect-ratio:4/3;max-height:none}
 .show-text{grid-template-columns:1fr;gap:.8rem}
}
@media (prefers-reduced-motion:reduce){.show .slide{transition:none;transform:none}}

/* ---------- editorial header + homepage hero ---------- */
.site-header{border-bottom:1px solid var(--line)}
.site-header .bar{flex-direction:row;justify-content:space-between;align-items:center;gap:2rem;padding-block:.7rem}
.site-header .logo{font-family:var(--f-display);font-weight:400;font-size:1.65rem;letter-spacing:.005em;text-transform:none;min-height:0;line-height:1}
.site-header .nav{gap:1.6rem}
.site-header .nav a,.site-header .nav summary{font-size:.92rem;letter-spacing:0;font-weight:400}
.site-header .nav .book{font-size:.88rem;letter-spacing:.01em;text-transform:none;font-weight:400;padding:.5rem 1.15rem;min-height:0}
.site-header .dd-list{left:auto;right:0;transform:none}
@media (max-width:980px){.site-header .bar{padding-block:.6rem}.site-header .logo{font-size:1.45rem}.site-header .menu-btn{letter-spacing:0;text-transform:none;font-size:.9rem}}

.ed-hero{padding-block:clamp(1.2rem,3vw,2.4rem) clamp(2.5rem,5vw,4.5rem)}
.ed-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:stretch}
.ed-photo{margin:0;display:flex;flex-direction:column;gap:.8rem;order:2}
.ed-frame{position:relative;aspect-ratio:5/4;overflow:hidden;background:#e9dfd1}
.ed-frame .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.045);transition:opacity 1.4s cubic-bezier(.4,0,.2,1),transform 9s cubic-bezier(.2,0,.2,1)}
.ed-frame .slide.on{opacity:1;transform:scale(1)}
.ed-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.82rem;color:var(--ink-2)}
.ed-meta .caps{position:relative;display:inline-grid}
.ed-meta .cap{grid-area:1/1;opacity:0;transition:opacity .8s ease}
.ed-meta .cap.on{opacity:1}
.pbars{display:flex;gap:.35rem}
.pbar{position:relative;width:2.6rem;height:2.75rem;background:none;border:0;padding:0;cursor:pointer}
.pbar::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line);background:rgba(45,38,34,.22)}
.pbar i{position:absolute;left:0;top:50%;height:1px;width:0;background:var(--ink);margin-top:0}
.pbar.on i{animation:pfill 4.5s linear forwards}
[data-hero]:hover .pbar.on i,[data-hero]:focus-within .pbar.on i{animation-play-state:paused}
@keyframes pfill{to{width:100%}}
.pbar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ed-text{display:flex;flex-direction:column;justify-content:space-between;gap:2.5rem;order:1;padding-bottom:3.2rem}
.ed-eyebrow{font-size:.92rem;color:var(--accent);margin:0;display:flex;align-items:center;gap:.8rem}
.ed-eyebrow::before{content:"";width:2rem;height:1px;background:var(--accent)}
.ed-body h1{font-family:var(--f-display);font-weight:400;font-size:clamp(2.6rem,4.6vw,4.4rem);line-height:1.03;letter-spacing:-.012em;margin:0 0 1.4rem;max-width:11em}
.ed-lede{font-size:1.02rem;line-height:1.7;color:var(--ink-2);max-width:25rem;margin:0 0 2rem}
.ed-cta{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.ed-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.7rem;border-radius:999px;background:var(--btn);color:var(--btn-ink);text-decoration:none;font-size:.95rem;letter-spacing:.01em;transition:background .25s}
.ed-btn:hover{background:var(--accent)}
.ed-link{font-size:.95rem;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.15rem;color:var(--ink)}
.ed-link:hover{color:var(--accent)}
@media (max-width:860px){
 .ed-grid{grid-template-columns:1fr;gap:1.4rem}
 .ed-photo{order:1}.ed-text{order:2;padding-bottom:0;gap:1rem}
 .ed-body h1{font-size:clamp(2.1rem,8vw,2.8rem);margin-bottom:.9rem}.ed-lede{margin-bottom:1.4rem}
 .ed-frame{aspect-ratio:4/3.4}
}
@media (prefers-reduced-motion:reduce){.ed-frame .slide,.ed-meta .cap{transition:none;transform:none}.pbar.on i{animation:none;width:100%}}
.ed-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.ed-meta,.ed-meta .cap,.ed-meta .caps{text-transform:none;letter-spacing:0;font-family:var(--f-body);font-size:.85rem}
.ed-body h1{font-size:clamp(2.5rem,4.2vw,3.9rem)}
@media (max-width:860px){.ed-grid{grid-template-columns:1fr}}
@media (min-width:561px) and (max-width:860px){.ed-frame{aspect-ratio:3/2}}
@media (max-width:980px){.site-header .nav{gap:0;padding-block:.6rem}.site-header .nav a,.site-header .nav summary{padding:.2rem 0;min-height:44px}.site-header .nav .book{margin-top:.6rem}}

/* ---------- refinement pass: restraint, rhythm, motion ---------- */
:root{--ease:cubic-bezier(.4,0,.2,1);--s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2.5rem}
a,button,summary,.btn,.ed-btn,.nav .book{transition:color .25s var(--ease),background-color .25s var(--ease),border-color .25s var(--ease),opacity .25s var(--ease)}
.site-header .nav a:hover,.site-header .nav summary:hover{color:var(--ink);opacity:.6}
.site-header .nav .book:hover{opacity:1}
.dd-list{box-shadow:none}
/* hero: compact, calm, one idea */
.ed-hero{padding-block:var(--s3) var(--s4)}
.ed-grid{gap:clamp(1.5rem,4vw,4rem);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.ed-frame{aspect-ratio:3/2}
.ed-frame .slide{transform:none;transition:opacity 1.2s var(--ease)}
.ed-frame .slide.on{transform:none}
.ed-eyebrow::before{display:none}
.ed-eyebrow{font-size:.88rem;color:var(--ink-2)}
.ed-meta{justify-content:flex-start}
.pbar{height:2rem;width:2.4rem}
.ed-text{padding-bottom:2rem;gap:var(--s3)}
.ed-body h1{margin-bottom:var(--s2);font-size:clamp(2.4rem,4vw,3.6rem)}
.ed-lede{margin-bottom:var(--s3);max-width:24rem}
.ed-cta{gap:var(--s3)}
.ed-link{border-bottom-color:rgba(45,38,34,.35)}
.ed-link:hover{border-bottom-color:currentColor}
@media (max-width:860px){
 .ed-hero{padding-block:var(--s2) var(--s3)}
 .ed-grid{gap:var(--s2);grid-template-columns:1fr}
 .ed-frame{aspect-ratio:3/2}
 .ed-text{padding-bottom:0;gap:var(--s2)}
 .ed-eyebrow{order:0}
 .pbar{height:2.75rem}
}
@media (max-width:560px){.ed-frame{aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}

/* rounded hero, gliding slides, seamless header fade */
.ed-frame{border-radius:18px;isolation:isolate;transform:translateZ(0)}
.ed-frame .slide{transform:translate3d(100%,0,0);opacity:1;z-index:1;transition:transform 1.25s cubic-bezier(.65,0,.2,1);will-change:transform}
.ed-frame .slide.out{transform:translate3d(-22%,0,0);z-index:1}
.ed-frame .slide.on{transform:translate3d(0,0,0);z-index:2}
.site-header{border-bottom:0}
.site-header::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(to bottom,var(--paper),transparent);pointer-events:none;z-index:-1}
@media (max-width:980px){.site-header .nav{border-bottom:1px solid var(--line)}}
@media (prefers-reduced-motion:reduce){.ed-frame .slide{transform:none;opacity:0}.ed-frame .slide.on{opacity:1}}

/* ---------- full-bleed hero ---------- */
.ed-hero{padding:0}
.ed-hero+.rule{border-top:0}
.ed-stage{position:relative;height:clamp(30rem,72vh,41rem);overflow:hidden;background:#d9cdbd}
.ed-stage .ed-frame{position:absolute;inset:0;aspect-ratio:auto;border-radius:0;transform:none;isolation:isolate}
.ed-stage .slide{position:absolute;top:0;left:0;width:116%;height:100%;max-width:none;object-fit:cover;object-position:var(--pd)}
.ed-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(24,18,14,.58) 0%,rgba(24,18,14,.34) 34%,rgba(24,18,14,0) 62%),linear-gradient(0deg,rgba(24,18,14,.16),rgba(24,18,14,0) 40%)}
.ed-stage::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:10rem;z-index:4;pointer-events:none;background:linear-gradient(to top,var(--paper) 0%,color-mix(in srgb,var(--paper) 88%,transparent) 22%,color-mix(in srgb,var(--paper) 60%,transparent) 48%,color-mix(in srgb,var(--paper) 22%,transparent) 74%,transparent 100%)}
.ed-over{position:absolute;inset:0;z-index:5;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding-bottom:6.5rem;pointer-events:none}
.ed-over>*{pointer-events:auto}
.ed-over .ed-text{display:block;padding:0;max-width:30rem;color:#fffcf7}
.ed-over .ed-eyebrow{color:#f3e7d8;margin:0 0 1rem}
.ed-over h1{color:#fffcf7;font-size:clamp(2.3rem,3.8vw,3.5rem);margin:0 0 1rem;max-width:11em}
.ed-over .ed-lede{color:#f6eee4;margin:0 0 1.5rem;max-width:25rem}
.ed-over .ed-btn{background:#fffcf7;color:#2d2622}
.ed-over .ed-btn:hover{background:#f0e3d2}
.ed-over .ed-link{color:#fffcf7;border-bottom-color:rgba(255,252,247,.5)}
.ed-over .ed-link:hover{color:#fffcf7;border-bottom-color:#fffcf7}
.ed-over .pbars{align-self:flex-end;margin-bottom:-.4rem}
.ed-over .pbar::before{background:rgba(255,252,247,.45)}
.ed-over .pbar i{background:#fffcf7}
.ed-over .pbar:focus-visible{outline-color:#fffcf7}
@media (max-width:860px){
 .ed-stage{height:clamp(31rem,82svh,40rem)}
 .ed-stage .slide{width:100%;object-position:var(--pm)}
 .ed-shade{background:linear-gradient(0deg,rgba(24,18,14,.62) 0%,rgba(24,18,14,.4) 38%,rgba(24,18,14,0) 68%)}
 .ed-over{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:.4rem;padding-bottom:4.5rem}
 .ed-over .pbars{align-self:flex-start;margin:0}
 .ed-over h1{font-size:clamp(2.1rem,8.4vw,2.7rem)}
}
.ed-over .ed-text{order:0}.ed-over .pbars{order:1}
.ed-stage{height:clamp(32rem,80vh,45rem)}
.ed-stage .slide{width:100%}
.ed-stage::after{height:7.5rem}
.ed-over{padding-bottom:5rem}
@media (max-width:860px){.ed-stage{height:clamp(31rem,82svh,40rem)}.ed-over{padding-bottom:3.5rem}.ed-stage::after{height:6rem}}
@media (max-width:860px){.ed-over .ed-lede{display:none}.ed-stage{height:clamp(34rem,86svh,40rem)}.ed-over .ed-eyebrow{margin-bottom:.6rem}.ed-over h1{margin-bottom:1.2rem}}

/* centered masthead, softer fade, lifted copy */
@media (min-width:981px){
 .site-header .bar{flex-direction:column;justify-content:center;gap:.55rem;padding-block:.9rem .7rem}
 .site-header .logo{font-size:1.7rem}
 .site-header .nav{justify-content:center}
 .site-header .dd-list{left:50%;right:auto;transform:translateX(-50%)}
}
.ed-stage::after{height:4rem;background:linear-gradient(to top,var(--paper) 0%,color-mix(in srgb,var(--paper) 55%,transparent) 40%,transparent 100%)}
.ed-over{padding-bottom:8rem}
@media (max-width:860px){.ed-stage::after{height:3.5rem}.ed-over{padding-bottom:5.5rem}}

/* subtler fades; copy on the right (desktop) */
.site-header::after{height:7px}
.ed-stage::after{height:1.1rem;background:linear-gradient(to top,var(--paper) 0%,color-mix(in srgb,var(--paper) 40%,transparent) 50%,transparent 100%)}
@media (min-width:861px){
 .ed-stage .slide{left:auto;right:0;width:112%}
 .ed-shade{background:linear-gradient(270deg,rgba(24,18,14,.58) 0%,rgba(24,18,14,.34) 34%,rgba(24,18,14,0) 62%),linear-gradient(0deg,rgba(24,18,14,.16),rgba(24,18,14,0) 40%)}
 .ed-over .pbars{order:0}
 .ed-over .ed-text{order:1}
}
@media (max-width:860px){.ed-stage::after{height:1rem}}

/* half-height hero, same composition */
.ed-stage{height:clamp(21rem,42vh,25rem)}
.ed-over{padding-bottom:2.2rem}
.ed-over .ed-text{max-width:34rem}
.ed-over .ed-eyebrow{margin-bottom:.6rem}
.ed-over h1{font-size:clamp(1.9rem,2.9vw,2.6rem);line-height:1.06;margin-bottom:.7rem;max-width:none}
.ed-over .ed-lede{margin-bottom:1.1rem;line-height:1.55;font-size:.95rem;max-width:26rem}
.ed-stage::after{height:.9rem}
@media (max-width:860px){
 .ed-stage{height:clamp(22rem,52svh,26rem)}
 .ed-over{padding-bottom:1.8rem}
 .ed-over h1{font-size:clamp(1.8rem,7.6vw,2.2rem);margin-bottom:.9rem}
 .ed-over .ed-eyebrow{margin-bottom:.4rem}
}
.ed-stage{height:clamp(23rem,47vh,28rem)}
@media (max-width:860px){.ed-stage{height:clamp(23rem,54svh,27rem)}}

/* crossfade (replaces the glide) and proportional hero height */
.ed-stage{height:clamp(21rem,29vw,30rem)}
.ed-stage .slide{transform:none!important;opacity:0;z-index:0;transition:opacity 1.9s cubic-bezier(.45,0,.25,1)}
.ed-stage .slide.out{opacity:1;z-index:1;transition:none}
.ed-stage .slide.on{opacity:1;z-index:2}
@media (max-width:860px){.ed-stage{height:clamp(23rem,54svh,27rem)}}
@media (prefers-reduced-motion:reduce){.ed-stage .slide{transition:none}}

/* ---------- cinematic full-bleed hero (option J) ---------- */
.site-header.over{position:absolute;left:0;right:0;top:0;background:transparent;border:0;color:#fffaf2}
.site-header.over::after{display:none}
.site-header.over .logo,.site-header.over .nav a,.site-header.over .nav summary,.site-header.over .menu-btn{color:#fffaf2}
.site-header.over .nav a:hover,.site-header.over .nav summary:hover{color:#fffaf2;opacity:.72}
.site-header.over .nav .book{background:#fffaf2;color:#24211e}
.site-header.over .nav .book:hover{background:#fffaf2;color:#24211e;opacity:.88}
.site-header.over .dd-list{color:var(--ink)}
.site-header.over .dd-list a{color:var(--ink)}
@media (min-width:981px){
 .site-header.over .bar{flex-direction:row;justify-content:space-between;align-items:center;gap:2rem;padding-block:1.7rem}
 .site-header.over .logo{font-size:1.9rem}
 .site-header.over .nav{justify-content:flex-end;gap:2rem}
 .site-header.over .dd-list{left:auto;right:0;transform:none}
}
@media (max-width:980px){
 .site-header.over .menu-btn{border:1px solid rgba(255,250,242,.6);border-radius:999px;padding:.35rem 1rem;background:transparent}
 .site-header.over .nav{background:var(--paper);color:var(--ink)}
 .site-header.over .nav a,.site-header.over .nav summary{color:var(--ink)}
 .site-header.over .nav .book{background:var(--ink);color:var(--paper)}
}
.jh{position:relative;padding:0}
.jh+.rule{border-top:0}
.jh-stage{position:relative;height:min(62.5vw,100svh);min-height:34rem;overflow:hidden;background:#3a3228;color:#fffaf2}
.jh-frame{position:absolute;inset:0}
.jh .slide{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--pd);opacity:0;z-index:0;transform:none;transition:opacity 1.9s cubic-bezier(.45,0,.25,1)}
.jh .slide.out{opacity:1;z-index:1;transition:none}
.jh .slide.on{opacity:1;z-index:2}
.jh-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(270deg,rgba(26,22,18,.62) 0%,rgba(26,22,18,.26) 40%,rgba(26,22,18,0) 64%),linear-gradient(180deg,rgba(26,22,18,.3) 0%,rgba(26,22,18,0) 18%),linear-gradient(0deg,rgba(26,22,18,.62) 0%,rgba(26,22,18,.3) 14%,rgba(26,22,18,0) 30%)}
.jh-over{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;padding-bottom:8.5rem;pointer-events:none}
.jh-over>*{pointer-events:auto}
.jh-text{width:min(32.5rem,100%);color:#fffaf2}
.jh-eyebrow{font-size:.9rem;color:#efe3d3;margin:0 0 1.2rem}
.jh-text h1{font-family:var(--f-display);font-weight:300;font-size:clamp(3rem,6vw,5.4rem);line-height:.98;letter-spacing:-.01em;color:#fffaf2;margin:0 0 2.1rem}
.jh-cta{display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap}
.jh-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.9rem 2rem;border-radius:999px;background:#fffaf2;color:#24211e;font-size:.95rem;font-weight:500;text-decoration:none}
.jh-btn:hover{background:#f0e3d2}
.jh-link{color:#fffaf2;font-size:.95rem;text-decoration:none;border-bottom:1px solid rgba(255,250,242,.6);padding-bottom:.15rem}
.jh-count-row{position:absolute;left:16px;bottom:5.6rem;display:flex;align-items:center;gap:1rem;font-size:.82rem;color:#fffaf2}
.jh-count-row .pbars{gap:.35rem}
.jh .pbar{width:2.1rem;height:1.5rem}
.jh .pbar::before{background:rgba(255,250,242,.4);height:2px}
.jh .pbar i{background:#fffaf2;height:2px}
.jh .pbar:focus-visible{outline-color:#fffaf2}
.jh-strip{position:absolute;left:0;right:0;margin-inline:auto;width:100%;bottom:2rem;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;font-size:.85rem;color:#fffaf2;padding-top:1.1rem}
.jh-strip::before{content:"";position:absolute;left:16px;right:16px;top:0;height:1px;background:rgba(255,250,242,.4)}
.jh-strip a{color:#fffaf2;text-decoration:none}
.jh-strip a:hover{opacity:.7}
.jh-types{display:flex;gap:1.1rem;flex-wrap:wrap}
.jh-types a+a::before{content:"·";margin-right:1.1rem;display:inline-block;opacity:.8}
.jh-pers em{font-family:var(--f-display);font-size:1.1rem}
@media (max-width:860px){
 .jh-stage{height:min(100svh,50rem);min-height:36rem}
 .jh .slide{object-position:var(--pm);transform:var(--mt,none);transform-origin:var(--mo,50% 50%)}
 .jh-shade{background:linear-gradient(0deg,rgba(26,22,18,.7) 0%,rgba(26,22,18,.3) 42%,rgba(26,22,18,0) 62%),linear-gradient(180deg,rgba(26,22,18,.34) 0%,rgba(26,22,18,0) 18%)}
 .jh-over{align-items:stretch;padding-bottom:6.2rem}
 .jh-text h1{font-size:clamp(2.6rem,13vw,3.4rem);margin-bottom:1.5rem}
 .jh-eyebrow{font-size:.8rem}
 .jh-cta{flex-direction:column;align-items:stretch;gap:1rem;text-align:center}
 .jh-text{width:100%}
 .jh-link{align-self:center}
 .jh-count-row{left:0;right:0;justify-content:center;bottom:4.1rem;padding-inline:16px}
 .jh-count{display:none}
 .jh-strip{justify-content:center;bottom:1rem;font-size:.8rem}
 .jh-types a:nth-child(n+4),.jh-pers{display:none}
}
@media (prefers-reduced-motion:reduce){.jh .slide{transition:none}}

/* sessions intro */
.sess-head{text-align:center;max-width:36rem;margin:0 auto clamp(2rem,4vw,3.2rem)}
.sess-head h2{font-family:var(--f-display);font-weight:400;font-size:clamp(2rem,4vw,3rem);line-height:1.08;letter-spacing:-.01em;margin:0 0 .9rem}
.sess-head .lede{text-wrap:balance;margin:0 auto;color:var(--ink-2);font-size:1.05rem;line-height:1.6}

.sess-head{max-width:40rem;margin-bottom:clamp(2.4rem,5vw,4rem);padding-top:clamp(.5rem,2vw,1.5rem)}
.sess-eyebrow{font-size:.9rem;color:var(--accent);margin:0 0 1rem;display:flex;align-items:center;justify-content:center;gap:.9rem}
.sess-eyebrow::before,.sess-eyebrow::after{content:"";width:2.2rem;height:1px;background:currentColor;opacity:.5}
.sess-head h2{font-weight:300;font-size:clamp(2.3rem,4.6vw,3.6rem);line-height:1.02;letter-spacing:-.012em;margin-bottom:1.1rem}
.sess-head .lede{font-size:1rem;line-height:1.7;max-width:30rem}
/* tighter sessions intro */
#sessions{padding-top:clamp(1.8rem,3.5vw,2.8rem)}
.sess-head{margin-bottom:clamp(1.2rem,2.4vw,1.8rem);padding-top:0}
.sess-eyebrow{margin-bottom:.45rem;font-size:.82rem}
.sess-head h2{font-size:clamp(1.8rem,3.2vw,2.5rem);margin-bottom:.45rem}
.sess-head .lede{font-size:.95rem;line-height:1.55}
/* sessions block spacing */
.sess-head{margin-bottom:clamp(1.6rem,3vw,2.2rem)}
.sess-head{text-align:center}
.sess-head>*{margin-inline:auto}
.sess-eyebrow{max-width:none;width:100%;justify-content:center}

/* ---------- alignment system: centered section heads, readable left-aligned text in a centered column ---------- */
section.rule .split:not(.hero .split){grid-template-columns:1fr;gap:clamp(1.4rem,3vw,2.2rem);justify-items:center}
section.rule .split>:first-child{text-align:center;max-width:44rem}
section.rule .split>:first-child .lede,section.rule .split>:first-child p{margin-inline:auto}
section.rule .split>:nth-child(2){width:100%;max-width:50rem;margin-inline:auto}
.pkghead{text-align:center;max-width:40rem;margin:0 auto clamp(1.6rem,3vw,2.4rem)}
.pkghead>*{margin-inline:auto}
section.rule>.wrap>.kicker,section.rule>.wrap>h2.strong{text-align:center;display:block}
section.rule>.wrap>.kicker+h2{text-align:center}
section.rule>.wrap>.revs+p,section.rule>.wrap>.revs~p{text-align:center}
.cta{text-align:left}
section.rule>.wrap>.revs~p{text-align:center;max-width:none;margin-inline:auto}

.sess-head h1{font-family:var(--f-display);font-weight:300;font-size:clamp(2.3rem,4.6vw,3.6rem);line-height:1.02;letter-spacing:-.012em;margin:0 0 .6rem}
.faq-more{text-align:center;margin:1.6rem 0 0}
.faq-page{max-width:50rem;margin:0 auto}
section.rule .faq-more{text-align:center;max-width:none;margin:1.6rem auto 0}

/* compact note under the packages */
.custom{margin:1.2rem auto 0;font-size:1.05rem}
.pkgsec .pnote{margin-top:.35rem;font-size:.82rem}
.pkgsec{padding-bottom:clamp(1.4rem,3vw,2.2rem)}

/* compact journal teaser */
.jsec{padding-block:clamp(1.6rem,3.2vw,2.6rem)}
.jsec .split{gap:1rem}
.jsec .split>:first-child .lede{margin:.4rem auto .5rem}
.jsec .split>:first-child h2{margin-bottom:.3rem}
.jsec .post-list a{grid-template-columns:8rem 1fr;gap:1.2rem;padding:.8rem 0}
.jsec .post-list .meta{margin-bottom:.2rem}
.jsec .post-list p{margin-top:.2rem;font-size:.9rem}
.jsec .post-list h3{font-size:1.1rem;margin:0}
@media (max-width:600px){.jsec .post-list a{grid-template-columns:5.5rem 1fr;gap:.9rem}}
.jsec .split>:first-child{max-width:52rem}
.jsec .split>:first-child p{margin-bottom:.3rem}
.jsec .split>:first-child p:last-child{margin-bottom:0}
.jsec .post-list{margin:0}
section.rule.jsec .split{gap:.5rem}
.jsec .split>:first-child .lede{max-width:none}
.jsec .split>:nth-child(2){margin-top:-.9rem}
section.rule:has(+ .jsec){padding-bottom:clamp(1.6rem,3.2vw,2.6rem)}

/* journal teaser: two columns, two rows */
.jsec .split>:nth-child(2){max-width:none}
.jsec .post-list{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(1.6rem,4vw,3.5rem)}
.jsec .post-list a{grid-template-columns:7.5rem 1fr;border-bottom:1px solid var(--line)}
.jsec .post-list a:nth-child(-n+2){border-top:1px solid var(--line)}
@media (max-width:860px){.jsec .post-list{grid-template-columns:1fr}.jsec .post-list a:nth-child(2){border-top:0}}
section.rule.jsec .split>:nth-child(2){max-width:none}
.jsec .post-list{align-items:stretch}

/* ---------- editorial service pages ---------- */
.svc-title{padding:clamp(7rem,10vw,9rem) 0 clamp(1.6rem,3vw,2.4rem);text-align:center}
.svc-eyebrow{font-size:.85rem;letter-spacing:.02em;color:var(--accent);margin:0 0 .9rem}
.svc-title h1{font-family:var(--f-display);font-weight:300;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.02;letter-spacing:-.012em;margin:0 auto .9rem;max-width:18ch}
.svc-lede{max-width:34rem;margin:0 auto;color:var(--ink-2);font-size:1.02rem;line-height:1.65}
.svc-gallery{padding:clamp(1rem,2vw,1.6rem) 0 clamp(2.4rem,5vw,4rem)}
.ed-gallery{display:grid;gap:clamp(.6rem,1.4vw,1.2rem)}
.ed-row{display:flex;gap:clamp(.6rem,1.4vw,1.2rem);align-items:flex-start}
.ed-row .edf{margin:0;flex:var(--r,1) 1 0;min-width:0}
.ed-row.one .edf{flex:1 1 100%}
.ed-row.solo-row{justify-content:center}
.ed-row.solo-row .edf{flex:none}
.edf img{display:block;width:100%;height:auto;background:var(--paper-2)}
@media (max-width:700px){.ed-row{flex-direction:column}.ed-row .edf{flex:none;width:100%!important}}
.book-band{text-align:center;padding:clamp(2.4rem,5vw,4rem) 0}
.book-band .svc-eyebrow{color:var(--accent)}
.book-band h2{font-family:var(--f-display);font-weight:300;font-size:clamp(2rem,3.6vw,3rem);margin:0 auto .8rem;max-width:none}
.book-band p{max-width:32rem;margin-inline:auto}
.book-band .row{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}

.svc-title{padding-top:clamp(3rem,5vw,4.2rem)}
.svc-title .wrap>p{margin-inline:auto;text-align:center;max-width:none}
.svc-title .svc-lede{max-width:34rem}
.ed-row.one{max-width:min(100%,64rem);margin-inline:auto}
.svc-title .wrap>p.svc-lede{max-width:34rem}
.wrap.cols.two{grid-template-columns:minmax(0,50rem);justify-content:center}
.wrap.cols.two>div>.kicker,.wrap.cols.two>div>h2{text-align:center;display:block}
/* compact service titles */
.svc-title{padding:clamp(1.6rem,3vw,2.4rem) 0 clamp(1rem,2vw,1.4rem)}
.svc-title h1{font-size:clamp(1.3rem,1.9vw,1.65rem);font-weight:400;line-height:1.2;letter-spacing:0;max-width:none;margin:0 auto .5rem}
.svc-title .svc-eyebrow{margin-bottom:.4rem;font-size:.8rem}
.svc-title .wrap>p.svc-lede{max-width:44rem;font-size:.92rem;line-height:1.55}

/* logo sub-line */
.logo{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
.logo-sub{display:block;font-family:var(--f-display);font-weight:400;font-size:.46em;letter-spacing:.5em;text-transform:none;margin-top:.45em;opacity:.9}
@media (min-width:981px){.site-header:not(.over) .logo{align-items:center}.site-header:not(.over) .logo-sub{padding-left:.5em}}
.site-header .logo{min-height:0}
footer .logo-sub{font-size:.5em}

/* photo protection (deterrent): no drag, no long-press save, clicks pass through to the link */
img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
main img,.jh img{pointer-events:none}
/* "Photography" centered under the name everywhere */
.logo,.site-header .logo,.site-header.over .logo,footer .logo{align-items:center}
.logo-sub{padding-left:.5em;text-align:center}

/* ---------- cohesive page system ---------- */
.pf-sec{padding:clamp(.8rem,1.6vw,1.2rem) 0 clamp(1.4rem,3vw,2.2rem)}
.pf-head{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin-bottom:clamp(.8rem,1.6vw,1.2rem);text-align:center}
.pf-head h2{font-family:var(--f-display);font-weight:400;font-size:clamp(1.4rem,2.2vw,1.9rem);margin:0}
.pf-head .view-all{font-size:.85rem}
.faq-sec{padding-top:0;border-top:0}
.street-top .svc-title{padding-bottom:1.2rem}
.street-top .svc-eyebrow{color:#f3e3cf}
.street-top .svc-lede{color:var(--night-ink-2,#e7dccb)}
.street-top .svc-title h1{color:var(--night-ink,#fffaf2)}
.street-top .ed-gallery{padding-bottom:clamp(2rem,4vw,3rem)}
.hero h1{font-size:clamp(1.9rem,3.4vw,2.7rem)}
.hero{padding-top:clamp(1.4rem,3vw,2.4rem)!important}
.street-top{padding-top:0!important}
.street-top .svc-title h1,.street-top .svc-title .svc-eyebrow,.street-top .svc-title .svc-lede{color:#fffaf2!important;opacity:1}
.street-top .svc-title .svc-lede{opacity:.82}
.hero.hero-grid{padding-top:clamp(1rem,2vw,1.6rem)!important;padding-bottom:clamp(1.4rem,3vw,2.4rem)!important}
.hero.hero-grid .lede{font-size:1rem;line-height:1.6}

/* journal feed */
.jfeed{padding:0 0 clamp(2rem,4vw,3rem)}
.jfeed .chips{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;padding:.2rem 0 1.4rem}
.jfeed .chip{font:inherit;font-size:.8rem;padding:.4rem 1rem;border:1px solid var(--line,#d9cfc0);border-radius:99px;background:none;color:inherit;cursor:pointer}
.jfeed .chip.on{background:#2a2420;color:#fffaf2;border-color:#2a2420}
.mas{columns:3;column-gap:1.2rem}
.mas .card{display:block;break-inside:avoid;margin:0 0 1.4rem}
.mas .card[hidden]{display:none}
.mas .ph{position:relative;overflow:hidden}
.mas .ph img{width:100%;height:100%;object-fit:cover;display:block}
.mas .cap{position:absolute;left:.7rem;bottom:.7rem;font-size:.72rem;color:#fffaf2;background:rgba(26,22,18,.55);padding:.2rem .7rem;border-radius:99px}
.mas .meta{display:flex;justify-content:space-between;margin-top:.6rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.mas h3{font-weight:400;font-size:1.3rem;line-height:1.15;margin:.3rem 0 .25rem}
.mas p{font-size:.85rem;line-height:1.5;opacity:.75;margin:0}
.kr{padding-top:clamp(1.5rem,3vw,2.4rem)}
.kr .sess-eyebrow{text-align:center;margin-bottom:1.2rem}
.kr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;max-width:760px;margin:0 auto}
.kr-grid .card{display:block}.kr-grid .meta{display:flex;justify-content:space-between;margin-top:.6rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.kr-grid h3{font-weight:400;font-size:1.25rem;margin:.3rem 0}.kr-grid p{font-size:.85rem;opacity:.75;margin:0}
.kr-grid .ph img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:900px){.mas{columns:2}}
@media(max-width:560px){.mas{column-gap:.7rem}.kr-grid{grid-template-columns:1fr}}
.mas a.card,.kr-grid a.card{text-decoration:none;color:inherit}.mas a.card:hover h3{text-decoration:underline}

/* post figures */
.pfig{margin:1.8rem 0}.pfig img{display:block;width:100%;height:auto;border-radius:2px}
.pfig figcaption{font-size:.78rem;opacity:.65;margin-top:.45rem}
.pfig-pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.8rem 0;align-items:start}
.pfig-pair .pfig{margin:0}
@media(max-width:560px){.pfig-pair{grid-template-columns:1fr}}
.prose>.pfig{max-width:min(100%,520px);margin-inline:auto}.prose>.pfig img{max-height:78vh;width:100%;object-fit:cover}

/* smart grid: equal-height justified rows, centred when under-filled */
.ed-row{align-items:stretch;margin-inline:auto;width:100%}
.ed-row .edf{flex:var(--r,1) 1 0}
.ed-row .edf img{height:100%;object-fit:cover}
@media (max-width:700px){
.ed-gallery{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center}
.ed-row{display:contents}
.ed-row .edf{flex:none!important;width:100%!important}
.ed-row .edf.v,.ed-row .edf.s{width:calc(50% - .275rem)!important}
.ed-row .edf.v img,.ed-row .edf.s img{aspect-ratio:4/5;height:auto;object-position:50% 30%}
.ed-row .edf.h img{height:auto}
}

/* street: edge to edge */
.bleed{width:100%;padding:0 clamp(4px,.5vw,8px)}
.bleed .ed-gallery{gap:clamp(4px,.5vw,8px);padding-bottom:clamp(2rem,4vw,3rem)}
.bleed .ed-row{gap:clamp(4px,.5vw,8px);max-width:none!important}
@media (max-width:700px){.bleed .ed-gallery{gap:4px}.bleed .ed-row .edf.v,.bleed .ed-row .edf.s{width:calc(50% - 2px)!important}}

/* photo viewer */
.ed-gallery figure,.frame,.pfig,.sheet figure,.trio figure,.prose figure{cursor:zoom-in}
a figure,.jh-frame{cursor:inherit}
.lb{position:fixed;inset:0;z-index:300;background:rgba(20,15,11,.9);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s}
.lb.on{opacity:1;visibility:visible}
.lb-img{max-width:min(92vw,1500px);max-height:88vh;width:auto;height:auto;object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.45);opacity:0;transform:scale(.985);transition:opacity .25s ease,transform .25s ease;cursor:default;background:#2a211a}
.lb-img.in{opacity:1;transform:none}
.lb button{position:absolute;border:0;background:rgba(255,250,242,.14);color:#fffaf2;font:300 2rem/1 var(--f-display,serif);width:2.9rem;height:2.9rem;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.lb button:hover,.lb button:focus-visible{background:rgba(255,250,242,.3)}
.lb-x{top:1rem;right:1rem}
.lb-n{top:50%;transform:translateY(-50%)}
.lb-p{left:1rem}.lb-f{right:1rem}
.lb.one .lb-n{display:none}
.lb-c{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);color:rgba(255,250,242,.75);font:400 .8rem/1 var(--f-body,sans-serif);letter-spacing:.14em}
.lb-open{overflow:hidden}
@media (max-width:700px){.lb-n{top:auto;bottom:.8rem;transform:none}.lb-p{left:1rem}.lb-f{right:1rem}.lb-img{max-width:96vw;max-height:80vh}}
@media (prefers-reduced-motion:reduce){.lb,.lb-img{transition:none}}

/* instagram carousel */
.ig-sec{padding:clamp(2.4rem,5vw,4rem) 0 clamp(2.6rem,5vw,4.2rem)}
.ig-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.2rem;flex-wrap:wrap;margin-bottom:1.4rem}
.ig-head h2{margin:.2rem 0 0;font-size:clamp(1.7rem,3vw,2.4rem)}
.ig-side{display:flex;align-items:center;gap:.8rem}
.ig-follow{display:inline-flex;align-items:center;gap:.55rem}
.ig-ctl{display:flex;gap:.5rem}
.ig-ctl button{width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;font:300 1.5rem/1 var(--f-display,serif);cursor:pointer;opacity:.75;transition:opacity .15s,background .15s}
.ig-ctl button:hover{opacity:1}
.ig-wrap{padding-left:max(16px,calc((100vw - 1248px)/2))}
.ig-track{display:flex;gap:.7rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 16px 4px 0;-webkit-overflow-scrolling:touch;outline:none}
.ig-track::-webkit-scrollbar{display:none}
.ig-tile{position:relative;flex:0 0 clamp(11rem,21vw,16rem);aspect-ratio:4/5;overflow:hidden;scroll-snap-align:start;background:var(--paper-2,#eee);text-decoration:none}
.ig-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ig-tile:hover img{transform:scale(1.04)}
.ig-ico{position:absolute;right:.6rem;bottom:.6rem;color:#fff;background:rgba(20,15,11,.45);width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;opacity:0;transition:opacity .2s}
.ig-tile:hover .ig-ico,.ig-tile:focus-visible .ig-ico{opacity:1}
.ig-e{flex:0 0 min(86vw,330px);scroll-snap-align:start}
.ig-e .instagram-media{margin:0!important;min-width:0!important;width:100%!important}
.ig-live{padding-right:16px}
@media (max-width:700px){.ig-ctl{display:none}.ig-tile{flex-basis:62vw}.ig-ico{opacity:1}}

/* heart cursor: couples and family galleries */
[data-heart] figure{cursor:none!important}
.hc{position:fixed;left:0;top:0;width:20px;height:20px;pointer-events:none;z-index:250;opacity:0;transform:translate(-50%,-50%) scale(1.18);transition:opacity .15s}
.hc.on{opacity:1}.hc svg{display:block;width:100%;height:100%}
.lb-open .hc{display:none}
@media (pointer:coarse){.hc{display:none}[data-heart] figure{cursor:auto!important}}
@media (prefers-reduced-motion:reduce){.hc{transition:none}}

/* mini sessions */
.nav .mini{background:#a3162e;color:#fff;padding:.55rem 1.1rem;border-radius:999px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.nav .mini:hover{background:#7d0f26;color:#fff}
.mini-band{background:#a3162e;color:#fff6f0;padding:clamp(2.2rem,5vw,3.6rem) 0}
.mini-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.4rem,4vw,3.5rem);align-items:center}
.mini-k{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.mini-band h2{font-family:var(--f-display);font-weight:300;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.08;margin:.5rem 0 .9rem;color:#fff;max-width:none;text-wrap:balance}
.mini-band p{margin:0 0 1.4rem;max-width:34rem;opacity:.92}
.mini-btn{display:inline-flex;gap:.6rem;align-items:center;background:#fff6f0;color:#7d0f26;padding:.8rem 1.6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:600;text-decoration:none}
.mini-btn:hover{background:#fff}
.mini-band figure{margin:0}.mini-band img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:800px){.mini-grid{grid-template-columns:1fr}}
.mf{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem;text-align:center;border-top:1px solid var(--line,#e5dccd);border-bottom:1px solid var(--line,#e5dccd);padding:1.3rem 0}
.mf li{display:grid;gap:.2rem}.mf b{font-family:var(--f-display);font-weight:300;font-size:clamp(1.8rem,3.4vw,2.5rem);line-height:1;color:#a3162e}.mf span{font-size:.82rem;color:var(--ink-2);letter-spacing:.04em}
.mini-facts{padding:clamp(1rem,2vw,1.6rem) 0 clamp(1.2rem,2vw,1.8rem)}
.slots{border:0;padding:0;margin:0;display:grid;gap:1.1rem}
.slots legend{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem;padding:0}
.slot-day b{display:block;font-weight:500;margin-bottom:.45rem;font-size:.95rem}
.slot-row{display:flex;flex-wrap:wrap;gap:.5rem}
.slot{position:relative;cursor:pointer}
.slot input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.slot span{display:inline-flex;flex-direction:column;align-items:center;min-width:5.6rem;padding:.65rem .9rem;border:1px solid var(--ink);border-radius:10px;font-size:.9rem;background:transparent;transition:background .15s,color .15s,border-color .15s}
.slot:hover span{border-color:#a3162e}
.slot input:checked+span{background:#a3162e;color:#fff;border-color:#a3162e}
.slot input:focus-visible+span{outline:2px solid #a3162e;outline-offset:2px}
.slot.taken{cursor:not-allowed}.slot.taken span{opacity:.45;text-decoration:line-through;border-style:dashed}.slot.taken em{font-style:normal;font-size:.68rem;text-decoration:none;display:block;letter-spacing:.08em}
.agree{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;line-height:1.45;text-transform:none;letter-spacing:0}
.agree input{margin-top:.25rem;flex:0 0 auto;width:auto}
.mini-submit{background:#a3162e;color:#fff}.mini-submit:hover{background:#7d0f26;filter:none}
.mini-steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:ms}
.mini-steps li{display:grid;gap:.2rem;padding:1rem 0 1rem 3rem;border-bottom:1px solid var(--line,#e5dccd);position:relative;counter-increment:ms}
.mini-steps li::before{content:counter(ms);position:absolute;left:0;top:1rem;width:2rem;height:2rem;border-radius:50%;background:#a3162e;color:#fff;display:grid;place-items:center;font-size:.85rem}
.mini-steps b{font-weight:500}.mini-steps span{color:var(--ink-2)}
/* mini band: quieter version */
.mini-band{background:var(--paper-2,#f4ede2);color:var(--ink);padding:clamp(1.6rem,3.4vw,2.6rem) 0;border-top:1px solid var(--line,#e5dccd);border-bottom:1px solid var(--line,#e5dccd)}
.mini-grid{grid-template-columns:1.3fr 1fr;gap:clamp(1.2rem,3vw,2.6rem)}
.mini-k{color:#a3162e;opacity:1;font-weight:500}
.mini-band h2{color:var(--ink);font-size:clamp(1.4rem,2.4vw,1.95rem);margin:.4rem 0 .6rem}
.mini-band p{opacity:1;color:var(--ink-2);margin-bottom:1.1rem;font-size:.95rem}
.mini-btn{background:#a3162e;color:#fff;padding:.7rem 1.4rem}
.mini-btn:hover{background:#7d0f26;color:#fff}
.mini-band img{aspect-ratio:16/9}
@media (max-width:800px){.mini-grid{grid-template-columns:1fr}.mini-band img{aspect-ratio:3/2}}
.prop-note{margin-top:.4rem}.prop-note a{font-weight:600;color:#a3162e;border-bottom-color:#a3162e}

/* ---------- Journal readability pass ---------- */
.jfeed .chips{display:none}
.jfeat{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.4rem,4vw,3.5rem);align-items:center;text-decoration:none;color:inherit;padding-bottom:clamp(2rem,4vw,3.2rem);border-bottom:1px solid var(--line)}
.jfeat .frame{margin:0}.jfeat .frame img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}
.jf-tx{display:flex;flex-direction:column;gap:.9rem}
.jf-tx .meta{color:var(--accent);font-size:max(12px,.72rem)}
.jf-tx h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.12;text-transform:none;letter-spacing:0}
.jf-p{font-size:1.02rem;line-height:1.7;color:var(--ink-2);max-width:44ch}
.jf-more{font-size:.95rem;min-height:44px;display:inline-flex;align-items:center;border-bottom:0}
.jfeat:hover h2{color:var(--accent)}
.jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.8rem,3vw,2.6rem) clamp(1.2rem,2.4vw,2rem);padding-top:clamp(2rem,4vw,3rem)}
.jgrid .card,.kr-grid .card{display:flex;flex-direction:column;gap:.7rem;text-decoration:none;color:inherit}
.jgrid .ph,.kr-grid .ph{aspect-ratio:3/2!important;overflow:hidden;border-radius:4px;background:var(--paper-2)}
.jgrid .ph img,.kr-grid .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.jgrid .card:hover .ph img{transform:scale(1.03)}
.jgrid .meta,.kr-grid .meta{display:flex;justify-content:space-between;gap:1rem;font-size:max(12px,.7rem);letter-spacing:.14em;text-transform:uppercase;opacity:1;color:var(--ink-2);margin:0}
.jgrid h3,.kr-grid h3{font-size:1.45rem;line-height:1.2;margin:0}
.jgrid p,.kr-grid p{font-size:1rem;line-height:1.6;color:var(--ink-2);opacity:1;margin:0}
.jgrid .card:hover h3{color:var(--accent)}
@media(max-width:980px){.jgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.jfeat{grid-template-columns:1fr}}
@media(max-width:600px){.jgrid{grid-template-columns:1fr}.jgrid h3{font-size:1.3rem}}
@media(hover:none){.jgrid .card:hover .ph img{transform:none}}

/* article pages: one left-aligned reading column */
.post>section .wrap{text-align:left}
.post>section .wrap,.post-hero,.post>.wrap:last-child{max-width:46rem;margin-inline:auto}
.post .post-title{margin:0;max-width:none;font-size:clamp(2rem,5vw,3.1rem);line-height:1.1}
.post .post-hero .frame{max-width:none;margin:0 0 2rem}
.post-hero .frame img{border-radius:4px}
.post .prose{max-width:none;margin:0;font-size:1.12rem;line-height:1.75}
.post .prose p{max-width:none;margin:0 0 1.2em}
.post .prose h2{font-size:clamp(1.55rem,3vw,2rem);line-height:1.2;margin:2.6rem 0 .9rem}
.post .prose ul{padding-left:1.3rem;margin:0 0 1.4em}
.post .prose li{margin-bottom:.6rem;line-height:1.65}
.post .prose a{text-underline-offset:.2em}
.post .prose .pfig{margin:1.8rem 0}
.post .prose>.pfig{max-width:none}
.post .prose>.pfig img{max-height:none;object-fit:initial;width:100%;height:auto}
.post .prose>.pfig.pt{max-width:min(100%,25rem);margin-inline:auto}
.post .pfig img{border-radius:4px}
.pfig-pair{display:flex;gap:.8rem;align-items:flex-start;margin:1.8rem 0}
.pfig-pair .pfig{min-width:0;margin:0}
.pfig-pair .pfig img{width:100%;height:auto}
@media(max-width:600px){.pfig-pair{flex-direction:column}.pfig-pair .pfig{flex:none!important;width:100%}.pfig-pair .pfig.pt{max-width:20rem;margin-inline:auto}.post .prose{font-size:1.06rem}}
.kr-grid{max-width:46rem}
@media(max-width:600px){.kr-grid{grid-template-columns:1fr}}

/* ---------- phone polish ---------- */
@media (max-width:520px){.street-row .tiles{grid-template-columns:1fr}}
.mbook{display:none}
@media (max-width:760px){
 .mbook{display:flex;opacity:0;pointer-events:none;transition:opacity .25s;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(.8rem + env(safe-area-inset-bottom,0px));z-index:40;align-items:center;justify-content:center;min-height:3rem;padding:0 1.6rem;border-radius:999px;background:var(--ink);color:var(--paper);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;box-shadow:0 6px 22px rgba(0,0,0,.28)}
 .mbook.on{opacity:1;pointer-events:auto}
 body{padding-bottom:4.5rem}
 a,button,summary{-webkit-tap-highlight-color:transparent}
 .faq summary,.nav a,footer a{min-height:44px}
}
@media print{.mbook{display:none}}

/* phone hero: shorter, faces up top, text on the dark lower band */
@media (max-width:760px){
 .jh-stage{height:74svh;min-height:30rem;max-height:40rem}
 .jh .slide{object-position:var(--pmo,50% 22%)}
 .jh-shade{background:linear-gradient(0deg,rgba(26,22,18,.78) 0%,rgba(26,22,18,.45) 34%,rgba(26,22,18,0) 56%),linear-gradient(180deg,rgba(26,22,18,.3) 0%,rgba(26,22,18,0) 16%)}
 .jh-over{padding-bottom:3.6rem}
 .jh-text h1{font-size:clamp(2.2rem,10.5vw,2.8rem);margin-bottom:1.1rem}
 .jh-eyebrow{margin-bottom:.7rem}
 .jh-cta{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}
 .jh-btn{flex:1;min-height:48px;padding:.7rem 1rem}
 .jh-strip{display:none}
 .jh-count-row{bottom:1.4rem}
}

/* tighter rhythm between packages and reviews */
.pkgsec{padding-bottom:clamp(1.8rem,3vw,2.6rem)!important}
.pkgsec + .rule{padding-top:clamp(2.2rem,4vw,3.2rem)!important;padding-bottom:clamp(2.6rem,5vw,4rem)!important}
