:root{ --paper:#fbf8f6; --band:#f3ebe8; --ink:#2f2626; --muted:#66585a; --rule:#e2d4d0; --edge:#8b7778; --heart:#a8323c; --heart-soft:#f3e1df; --on-heart:#ffffff; --tile-a:#eadbd6; --tile-b:#dcc9c4; --ph-ink:#4c3f40; --heartmark:#c98a90;
  --photo-bg:#ffffff; --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif; --sans:"Montserrat","Helvetica Neue",Arial,sans-serif; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){color-scheme:dark; --paper:#1d1718; --band:#261f20; --ink:#f0e8e6; --muted:#bcadad; --rule:#3d3233; --edge:#8f7c7d; --heart:#e8818a; --heart-soft:#3a2427; --on-heart:#1d1718; --tile-a:#2e2526; --tile-b:#3a2f30; --ph-ink:#d2c4c4; --heartmark:#8a4a50; } }
:root[data-theme="dark"]{color-scheme:dark; --paper:#1d1718; --band:#261f20; --ink:#f0e8e6; --muted:#bcadad; --rule:#3d3233; --edge:#8f7c7d; --heart:#e8818a; --heart-soft:#3a2427; --on-heart:#1d1718; --tile-a:#2e2526; --tile-b:#3a2f30; --ph-ink:#d2c4c4; --heartmark:#8a4a50; }
/* high contrast */
:root[data-contrast="high"]{ --paper:#ffffff; --band:#ffffff; --ink:#000000; --muted:#1a1a1a; --rule:#000000; --edge:#000000; --heart:#8c0f1f; --heart-soft:#ffffff; --on-heart:#ffffff; --tile-a:#ffffff; --tile-b:#f0f0f0; --ph-ink:#000000; --heartmark:#8c0f1f; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"])[data-contrast="high"]{ --paper:#000000; --band:#000000; --ink:#ffffff; --muted:#f0f0f0; --rule:#ffffff; --edge:#ffffff; --heart:#ffa3ac; --heart-soft:#000000; --on-heart:#000000; --tile-a:#000000; --tile-b:#161616; --ph-ink:#ffffff; --heartmark:#ffa3ac; } }
:root[data-theme="dark"][data-contrast="high"]{ --paper:#000000; --band:#000000; --ink:#ffffff; --muted:#f0f0f0; --rule:#ffffff; --edge:#ffffff; --heart:#ffa3ac; --heart-soft:#000000; --on-heart:#000000; --tile-a:#000000; --tile-b:#161616; --ph-ink:#ffffff; --heartmark:#ffa3ac; }
/* color-vision friendly: red accent moves to blue */
:root[data-cvd="on"]{ --heart:#1f5aa6; --heart-soft:#e2ecf8; --heartmark:#7fa3d1; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"])[data-cvd="on"]{ --heart:#86b6ee; --heart-soft:#1c2a3b; --on-heart:#10161f; --heartmark:#3f6390; } }
:root[data-theme="dark"][data-cvd="on"]{ --heart:#86b6ee; --heart-soft:#1c2a3b; --on-heart:#10161f; --heartmark:#3f6390; }
:root[data-contrast="high"][data-cvd="on"]{ --heart:#0a3a8c; --heartmark:#0a3a8c; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"])[data-contrast="high"][data-cvd="on"]{ --paper:#000000; --band:#000000; --ink:#ffffff; --muted:#f0f0f0; --rule:#ffffff; --edge:#ffffff; --heart:#a9cdff; --heart-soft:#000000; --on-heart:#000000; --tile-a:#000000; --tile-b:#161616; --ph-ink:#ffffff; --heartmark:#a9cdff; } }
:root[data-theme="dark"][data-contrast="high"][data-cvd="on"]{ --paper:#000000; --band:#000000; --ink:#ffffff; --muted:#f0f0f0; --rule:#ffffff; --edge:#ffffff; --heart:#a9cdff; --heart-soft:#000000; --on-heart:#000000; --tile-a:#000000; --tile-b:#161616; --ph-ink:#ffffff; --heartmark:#a9cdff; }
:root[data-font="readable"]{--serif:"Atkinson Hyperlegible",Verdana,Arial,sans-serif;--sans:"Atkinson Hyperlegible",Verdana,Arial,sans-serif}
*{box-sizing:border-box}
@media (prefers-reduced-motion: no-preference){html:not([data-motion="reduce"]){scroll-behavior:smooth}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
:root[data-motion="reduce"] *,:root[data-motion="reduce"] *::before,:root[data-motion="reduce"] *::after{transition:none!important;animation:none!important}
:focus-visible{outline:3px solid var(--heart);outline-offset:3px}
:root[data-text="lg"] body{zoom:1.12}
:root[data-text="xl"] body{zoom:1.25}
:root[data-links="underline"] a{text-decoration:underline!important;text-underline-offset:.2em;text-decoration-thickness:1.5px}
:root[data-contrast="high"] .deck,:root[data-contrast="high"] .menu-card,:root[data-contrast="high"] .quote,:root[data-contrast="high"] .tile,:root[data-contrast="high"] .index .thumb,:root[data-contrast="high"] .dimg{outline:2px solid var(--edge);outline-offset:-2px}
:root[data-contrast="high"] .feature{outline:2px solid var(--edge)}
.skip{position:absolute;left:16px;top:-60px;z-index:50;background:var(--paper);color:var(--ink);border:2px solid var(--edge);border-radius:6px;padding:10px 14px;font:600 14px/1 var(--sans)}
.skip:focus{top:12px}
body{background:var(--paper);color:var(--ink);font:400 15px/1.7 var(--sans);margin:0}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px}
@media (max-width:480px){.wrap{padding-inline:16px}}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;padding-block:8px;flex-wrap:wrap}
nav{margin-left:auto}
.logo{display:block;height:34px;width:auto}
.logo.light{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo.dark{display:none}:root:not([data-theme="light"]) .logo.light{display:block}}
:root[data-theme="dark"] .logo.dark{display:none} :root[data-theme="dark"] .logo.light{display:block}
nav ul{display:flex;flex-wrap:wrap;gap:0 20px;list-style:none;margin:0;padding:0}
nav a{display:inline-block;font:500 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:15px 2px 13px;border-bottom:2px solid transparent}
nav a:hover{color:var(--heart);border-color:var(--heart)}
@media (max-width:980px){.bar{justify-content:space-between}nav{order:3;width:100%;margin-left:0}nav ul{justify-content:center;gap:0 16px}}
@media (max-width:980px){header{position:static}}

/* intro */
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding-block:72px 64px}
.eyebrow{font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--heart)}
h1{font:500 clamp(40px,6vw,68px)/1.02 var(--serif);margin:.35em 0 .3em;text-wrap:balance;letter-spacing:-.005em}
h1 em{font-style:italic;color:var(--heart)}
.lede{font:italic 400 clamp(19px,2vw,23px)/1.45 var(--serif);color:var(--muted);max-width:32em;margin:0}
.disciplines{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.disciplines a{display:inline-flex;align-items:center;min-height:44px;font:500 13px/1 var(--sans);letter-spacing:.04em;text-decoration:none;color:var(--heart);background:var(--heart-soft);border:1px solid var(--edge);border-radius:99px;padding:0 18px}
.disciplines a:hover{background:var(--heart);border-color:var(--heart);color:var(--on-heart)}
.feature{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:220px 220px 6px 6px;overflow:hidden;background:linear-gradient(160deg,var(--tile-a),var(--tile-b))}
.feature{margin:0}
.feature img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
@media (max-width:820px){.intro{grid-template-columns:1fr;gap:36px;padding-block:44px}.feature{max-width:420px;margin:0 auto;width:100%}}

/* gallery index */
.index{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;padding-block:8px 72px}
.index a{text-decoration:none;display:flex;flex-direction:column;gap:12px}
.index .thumb{aspect-ratio:3/4;border-radius:4px;background:linear-gradient(170deg,var(--tile-a),var(--tile-b));position:relative;overflow:hidden;transition:transform .35s ease}
.index a:hover .thumb,.index a:focus-visible .thumb{transform:translateY(-4px)}
.index a:focus-visible{outline-offset:4px;border-radius:4px}
.index .t{font:500 22px/1.1 var(--serif)}
.index .c{font:400 12.5px/1.4 var(--sans);color:var(--muted);margin-top:-6px}
@media (max-width:900px){.index{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.index{grid-template-columns:repeat(2,1fr)}}

/* gallery sections */
section.gallery{border-top:1px solid var(--rule);padding-block:64px;scroll-margin-top:80px}
.ghead{display:grid;grid-template-columns:1fr 1fr;gap:24px 56px;align-items:end;margin-bottom:28px}
h2{font:500 clamp(34px,4.4vw,50px)/1.05 var(--serif);margin:.25em 0 0;text-wrap:balance}
.gdesc{margin:0;color:var(--muted);max-width:36em}
@media (max-width:720px){.ghead{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.chips button{min-height:44px;font:500 13px/1 var(--sans);letter-spacing:.02em;color:var(--ink);background:var(--paper);border:1px solid var(--edge);border-radius:99px;padding:0 18px;cursor:pointer}
.chips button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chips button[aria-pressed="true"]::before{content:"✓";margin-right:7px;font-weight:600}
.grid{columns:4 200px;column-gap:14px}
.tile{break-inside:avoid;margin:0 0 14px;position:relative;border-radius:4px;overflow:hidden;background:linear-gradient(165deg,var(--tile-a),var(--tile-b))}
.tile .ph,.feature .ph,.index .ph,.dimg .ph,.menu-card .ph{font:500 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ph-ink)}
.tile .ph{position:absolute;left:14px;bottom:12px;right:14px}
.tile .ph b{display:block;font:italic 500 17px/1.2 var(--serif);letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:3px}
.index .ph{position:absolute;inset:auto 0 12px 0;text-align:center}
.heartmark{position:absolute;top:50%;left:50%;width:34px;height:30px;transform:translate(-50%,-60%)}
.heartmark path{fill:var(--heartmark)}

/* catering menu card */
.menu-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:0;border:1px solid var(--rule);border-radius:6px;overflow:hidden;margin-bottom:28px;background:var(--paper)}
.menu-card .img{background:linear-gradient(165deg,var(--tile-a),var(--tile-b));position:relative;min-height:260px}
.menu-card .img .ph{position:absolute;left:18px;bottom:14px}
.menu-card .body{padding:32px 36px}
.menu-card h3{font:500 32px/1.1 var(--serif);margin:.3em 0 .1em}
.menu-card .note{font:italic 400 17px/1.3 var(--serif);color:var(--muted);margin:0 0 14px}
.menu-card ul{list-style:none;margin:0;padding:0}
.menu-card li{padding:10px 0;border-top:1px solid var(--rule)}
.menu-card li b{display:block;font:600 18px/1.2 var(--serif)}
.menu-card li span{font-size:13px;color:var(--muted)}
@media (max-width:760px){.menu-card{grid-template-columns:1fr}.menu-card .body{padding:24px 20px}}


.decks{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.deck{border:1px solid var(--rule);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;background:var(--paper)}
.dimg{position:relative;aspect-ratio:3/2;background:linear-gradient(165deg,var(--tile-a),var(--tile-b))}
.dimg .ph{position:absolute;left:16px;bottom:12px}
.dbody{padding:24px 26px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.deck h3{font:500 30px/1.1 var(--serif);margin:0}
.dline{margin:0;color:var(--ink)}
.ship{margin:0;font:italic 400 17px/1.3 var(--serif);color:var(--muted)}
.btn{align-self:flex-start;margin-top:auto;font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;background:var(--heart);color:var(--on-heart);border:0;border-radius:99px;min-height:44px;padding:0 24px;cursor:pointer}
.deck .btn{margin-top:14px}
@media (max-width:720px){.decks{grid-template-columns:1fr}}
.cater{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;margin-bottom:32px}
.cater blockquote{margin:0;font:italic 500 clamp(26px,3vw,34px)/1.25 var(--serif);color:var(--heart);text-wrap:balance}
.cater p{margin:0 0 1em;max-width:62ch}
@media (max-width:760px){.cater{grid-template-columns:1fr;gap:16px}}
.quote{margin-top:36px;border:1px solid var(--rule);border-radius:6px;padding:32px 36px;background:var(--band)}
.qhead h3{font:500 30px/1.1 var(--serif);margin:.3em 0 .2em}
.qhead p{margin:0 0 20px;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px}
.fields label{display:flex;flex-direction:column;gap:6px;font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fields .wide{grid-column:1/-1}
.fields input,.fields select,.fields textarea{font:400 15px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);background:var(--paper);border:1px solid var(--edge);border-radius:4px;min-height:44px;padding:10px 12px;width:100%}
.fields input:focus-visible,.fields select:focus-visible,.fields textarea:focus-visible{outline:3px solid var(--heart);outline-offset:1px}
.fields .req{font-weight:500;letter-spacing:0;text-transform:none}
.fields [aria-invalid="true"]{border:2px solid var(--heart)}
.qmsg.err{color:var(--heart);font-weight:500}
.qfoot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
.qfoot .btn{margin-top:0}
.qmsg{font-size:13px;color:var(--muted)}
@media (max-width:760px){.fields{grid-template-columns:1fr}.quote{padding:24px 18px}}
/* about + contact */
.about{border-top:1px solid var(--rule);padding-block:72px;display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;scroll-margin-top:80px}
.about blockquote{margin:0;font:italic 500 clamp(24px,3vw,32px)/1.3 var(--serif);text-wrap:balance}
.about p{margin:0 0 1em;max-width:62ch}
@media (max-width:760px){.about{grid-template-columns:1fr;gap:28px}}
footer{background:var(--band);padding-block:56px 40px;scroll-margin-top:80px}
.contact{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:28px}
.contact h2{margin:0}
.email{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.email code{font:500 16px/1 var(--sans);background:transparent;user-select:all}
.email button{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--edge);background:var(--paper);color:var(--ink);border-radius:99px;min-height:44px;padding:0 16px;cursor:pointer}
.social{display:flex;gap:18px}
.social a{display:inline-block;padding:15px 2px;font:500 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.fine{margin-top:40px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.draft{background:var(--heart);color:var(--on-heart);text-align:center;font:500 11.5px/1.4 var(--sans);letter-spacing:.08em;padding:8px 16px}
/* artwork tiles + lightbox */
.tile.art{background:var(--photo-bg)}
.tile.art.cut{background:var(--paper)}
.dimg.photo{background:var(--photo-bg)}
.dimg.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12px}
.tile.art .open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.tile.art img{display:block;width:100%;height:auto}
.tile.art .cap{padding:8px 2px 2px;font:500 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
.tile.art .open:focus-visible{outline-offset:-3px}
.tile.art .open:hover img{filter:brightness(1.04)}
.index .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lb{width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 32px);border:1px solid var(--edge);border-radius:10px;padding:14px;background:var(--paper);color:var(--ink)}
.lb::backdrop{background:rgba(20,12,13,.82)}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.lb-cap{font:500 12px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lb img{display:block;max-width:100%;max-height:calc(100vh - 190px);margin:0 auto;object-fit:contain}
.lb-nav{display:flex;justify-content:space-between;gap:12px}
/* display settings */
.bar-right{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center}
.disp-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;font:600 11.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--edge);border-radius:99px;cursor:pointer}
.disp-btn svg{width:18px;height:18px}
.disp-btn svg *{stroke:currentColor;fill:none;stroke-width:1.6}
.disp-btn[aria-expanded="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.panel{position:fixed;z-index:40;top:calc(env(safe-area-inset-top,0px) + 76px);right:max(16px,calc((100vw - 1120px)/2 + 24px));width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 100px);overflow:auto;background:var(--paper);color:var(--ink);border:1px solid var(--edge);border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.18);padding:20px 20px 16px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.panel h2{font:600 15px/1.2 var(--sans);letter-spacing:.02em;margin:0}
.panel p.hint{font-size:13px;color:var(--muted);margin:0 0 14px;line-height:1.45}
.x{width:44px;height:44px;display:grid;place-items:center;background:transparent;border:1px solid var(--edge);border-radius:50%;color:var(--ink);font:400 22px/1 var(--sans);cursor:pointer}
.panel fieldset{border:0;margin:0 0 6px;padding:0}
.panel legend{font:600 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--edge);border-radius:8px;overflow:hidden}
.seg label{position:relative;display:grid;place-items:center;min-height:44px;cursor:pointer;font:500 14px/1 var(--sans);border-left:1px solid var(--edge)}
.seg label:first-child{border-left:0}
.seg label:nth-child(2){font-size:16px}.seg label:nth-child(3){font-size:18px}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg label:has(input:checked){background:var(--ink);color:var(--paper)}
.seg label:has(input:focus-visible){outline:3px solid var(--heart);outline-offset:-3px}
.toggles{list-style:none;margin:14px 0 0;padding:0}
.toggles li{border-top:1px solid var(--rule)}
.sw{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:8px 0;background:transparent;border:0;color:var(--ink);font:500 15px/1.3 var(--sans);text-align:left;cursor:pointer}
.sw small{display:block;font-size:12.5px;font-weight:400;color:var(--muted);margin-top:2px}
.sw .track{flex:none;position:relative;width:46px;height:28px;border-radius:99px;border:1.5px solid var(--edge);background:var(--paper)}
.sw .track::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:var(--edge);transition:transform .2s ease}
.sw[aria-checked="true"] .track{background:var(--heart);border-color:var(--heart)}
.sw[aria-checked="true"] .track::after{transform:translateX(18px);background:var(--on-heart)}
.sw .state{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-width:24px;text-align:right}
.sw-right{display:flex;align-items:center;gap:10px}
.reset{margin-top:12px;min-height:44px;padding:0 16px;background:transparent;border:1px solid var(--edge);border-radius:99px;color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer}
@media (max-width:860px){.panel{top:calc(env(safe-area-inset-top,0px) + 16px)}}
.num-badge{position:absolute;top:8px;left:8px;z-index:2;background:var(--ink);color:var(--paper);font:600 12px/1 var(--sans);letter-spacing:.04em;padding:6px 8px;border-radius:99px}

/* multi-page */
nav a[aria-current="page"]{color:var(--heart);border-color:var(--heart)}
.ghead h1{font:500 clamp(40px,5.6vw,64px)/1.02 var(--serif);margin:.25em 0 0;text-wrap:balance}
.crumb{font:500 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding-top:28px}
.crumb a{color:var(--muted);text-decoration:none;display:inline-block;padding:14px 0}
.crumb a:hover{color:var(--heart)}
section.gallery.solo{border-top:0;padding-top:16px}
.teasers{padding-block:8px 24px}
.teaser{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px 48px;align-items:center;border-top:1px solid var(--rule);padding-block:56px}
.teaser:nth-child(even) .t-text{order:2}
.teaser h2{margin:.2em 0 .25em}
.teaser p{margin:0 0 22px;color:var(--muted);max-width:36em}
.more{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 22px;border-radius:99px;background:var(--heart);color:var(--on-heart);text-decoration:none;font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.more:hover{filter:brightness(1.08)}
.t-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-decoration:none}
.t-strip.two{grid-template-columns:repeat(2,1fr)}
.t-strip figure{margin:0;aspect-ratio:3/4;border-radius:4px;overflow:hidden;background:var(--photo-bg);transition:transform .35s ease}
.t-strip.two figure{aspect-ratio:4/3}
.t-strip figure.cut{background:var(--paper)}
.t-strip img{display:block;width:100%;height:100%;object-fit:cover}
.t-strip.two img{object-fit:contain;padding:6px}
.t-strip:hover figure{transform:translateY(-3px)}
.t-quote{margin:0;padding:40px 36px;border-radius:6px;background:var(--band);font:italic 500 clamp(26px,3vw,36px)/1.25 var(--serif);color:var(--heart);text-wrap:balance}
@media (max-width:820px){.teaser{grid-template-columns:1fr;padding-block:40px}.teaser:nth-child(even) .t-text{order:0}.t-strip{grid-template-columns:repeat(2,1fr)}}

/* preorder dialog */
.po{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--edge);border-radius:10px;padding:24px 26px;background:var(--paper);color:var(--ink)}
.po::backdrop{background:rgba(20,12,13,.6)}
.po h2{font:500 30px/1.1 var(--serif);margin:.2em 0 .3em}
.po .fields{grid-template-columns:1fr 1fr}
.po .total{margin:14px 0 0;font-size:14px;color:var(--muted)}
.po .venmo{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:99px;background:#008cff;color:#fff;text-decoration:none;font:600 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;margin:18px 0 10px}
.po .venmo:hover{filter:brightness(1.08)}
.po .notebox{font:500 13px/1.4 var(--sans);background:var(--band);border-radius:6px;padding:10px 12px;margin:6px 0 12px;word-break:break-word}
.po .small{font-size:13px;color:var(--muted);margin:0 0 8px}
@media (max-width:560px){.po .fields{grid-template-columns:1fr}.po{padding:20px 18px}}

/* header: centered logo, compact mobile menu */
header .bar{display:flex;flex-direction:column;align-items:center;gap:2px;padding-block:16px 0;flex-wrap:nowrap}
header .brand{display:block}
header .logo{height:40px}
header nav{margin:0;order:0;width:auto}
header nav ul{justify-content:center;gap:0 22px}
.menu-btn{display:none}
@media (max-width:820px){
  header{position:sticky}
  header .bar{flex-direction:row;justify-content:center;position:relative;padding-block:12px;min-height:64px}
  header .logo{height:32px}
  .menu-btn{display:inline-flex;align-items:center;gap:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);min-height:44px;min-width:44px;padding:0 10px;background:none;border:0;color:var(--ink);font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
  .menu-btn .bars,.menu-btn .bars::before,.menu-btn .bars::after{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .2s ease,opacity .2s ease}
  .menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0}
  .menu-btn .bars::before{top:-6px}.menu-btn .bars::after{top:6px}
  .menu-btn[aria-expanded="true"] .bars{background:transparent}
  .menu-btn[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
  .menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  header nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule);box-shadow:0 14px 30px rgba(0,0,0,.08)}
  header.open nav{display:block}
  header nav ul{flex-direction:column;align-items:center;gap:0;padding:8px 0 14px}
  header nav a{padding:14px 8px;font-size:13px}
}

.disp-btn[hidden]{display:none!important}
/* galleries: 2-column masonry on phones */
@media (max-width:820px){.grid{columns:2;column-gap:10px}.tile{margin-bottom:10px}.tile.art .cap{font-size:10px;letter-spacing:.08em}}

/* 10/7 updates */
.contact .offer{margin:10px 0 0;color:var(--muted);max-width:40em}
.love{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-block:44px}
.love p{margin:0;font:400 clamp(20px,2.4vw,26px)/1.35 var(--serif);max-width:34em}
.love p em{color:var(--heart)}
.love a:not(.more){color:var(--heart)}
.wholesale{margin:28px 0 0;padding:20px 24px;border-radius:6px;background:var(--band)}
.wholesale a{color:var(--heart);font-weight:600}
.po .deliv{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.po .deliv legend{font:500 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.po .deliv .opt{flex-direction:row;align-items:center;gap:10px;font:400 15px/1.3 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);min-height:36px}
.po .deliv input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--heart)}
.po [hidden],.fields [hidden]{display:none!important}
/* desktop: keep the footer at the bottom of the window on short pages */
@media (min-width:1025px){
  body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
  body>main{flex:1 0 auto}
  body>footer{flex-shrink:0}
}

/* deck fans */
.dimg.fan{background:transparent;overflow:visible;aspect-ratio:3/2}
.fan .fcard{position:absolute;padding:0;border:0;background:none;cursor:zoom-in;transition:transform .35s ease;filter:drop-shadow(0 6px 10px rgba(40,20,20,.28))}
.fan .fcard img{display:block;width:100%;height:auto}
.fan .fcard:focus-visible{outline:3px solid var(--heart);outline-offset:3px;border-radius:12px}
.fan-rect .fcard{width:27%;left:36.5%;bottom:14%;transform-origin:50% 150%}
.fan-rect .fcard:nth-child(1){transform:rotate(-22deg)}
.fan-rect .fcard:nth-child(2){transform:rotate(-11deg)}
.fan-rect .fcard:nth-child(3){transform:rotate(0)}
.fan-rect .fcard:nth-child(4){transform:rotate(11deg)}
.fan-rect .fcard:nth-child(5){transform:rotate(22deg)}
.fan-rect:hover .fcard:nth-child(1){transform:rotate(-30deg)}
.fan-rect:hover .fcard:nth-child(2){transform:rotate(-15deg)}
.fan-rect:hover .fcard:nth-child(4){transform:rotate(15deg)}
.fan-rect:hover .fcard:nth-child(5){transform:rotate(30deg)}
.fan-round .fcard{width:40%;top:56%;left:30%;border-radius:50%}
.fan-round .fcard:focus-visible{border-radius:50%}
.fan-round .fcard:nth-child(1){transform:translate(-62%,-50%) rotate(-14deg)}
.fan-round .fcard:nth-child(2){transform:translate(-31%,-50%) rotate(-7deg)}
.fan-round .fcard:nth-child(3){transform:translate(0,-50%)}
.fan-round .fcard:nth-child(4){transform:translate(31%,-50%) rotate(7deg)}
.fan-round .fcard:nth-child(5){transform:translate(62%,-50%) rotate(14deg)}
.fan-round:hover .fcard:nth-child(1){transform:translate(-74%,-50%) rotate(-16deg)}
.fan-round:hover .fcard:nth-child(2){transform:translate(-37%,-50%) rotate(-8deg)}
.fan-round:hover .fcard:nth-child(4){transform:translate(37%,-50%) rotate(8deg)}
.fan-round:hover .fcard:nth-child(5){transform:translate(74%,-50%) rotate(16deg)}
.deck .dimg.fan .num-badge{z-index:6}

/* about page */
.about .more{margin-top:8px}
.about-page{padding-block:8px 80px}
.ap-quote{max-width:820px}
.ap-head h1{font:500 clamp(40px,5.6vw,64px)/1.02 var(--serif);margin:.25em 0 0}
.ap-quote{margin:36px 0 40px;padding:0 0 0 24px;border-left:2px solid var(--heart);font:italic 500 clamp(26px,3.2vw,36px)/1.3 var(--serif);color:var(--heart);text-wrap:balance}
.ap-body p{font-size:17px;line-height:1.8;margin:0 0 1.2em;max-width:62ch}

/* catering media */
.menu-card .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cvids{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:640px;margin:0 auto 32px}
.cvids figure{margin:0}
.cvids video{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:6px;background:var(--band)}
.cvids figcaption{padding:8px 2px 0;font:500 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media (prefers-reduced-motion: reduce){.cvids video[autoplay]{animation:none}}

/* static figures + numbers */
.sfig{position:relative;margin:0}
.sfig img{display:block;width:100%;height:100%;object-fit:cover}
/* home slideshow */
.ss{padding-block:8px 48px}
.ss-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.ss-ctrl{display:flex;gap:8px}
.ss-btn{min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--edge);border-radius:99px;background:var(--paper);color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer}
.ss-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/3.2);column-gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:6px}
.ss-track::-webkit-scrollbar{display:none}
.ss-track:focus-visible{outline:3px solid var(--heart);outline-offset:4px}
.ss-slide{aspect-ratio:4/5;scroll-snap-align:start;border-radius:6px;overflow:hidden;background:var(--band)}
@media (max-width:820px){.ss-track{grid-auto-columns:78%}}
/* about images */
.ap-top{display:grid;grid-template-columns:1fr 300px;gap:24px 48px;align-items:end}
.ap-portrait{aspect-ratio:4/5;border-radius:160px 160px 6px 6px;overflow:hidden}
.ap-studio{margin-top:32px;border-top:1px solid var(--rule);padding-top:28px}
.ap-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.ap-strip .sfig{aspect-ratio:3/4;border-radius:4px;overflow:hidden}
@media (max-width:820px){.ap-top{grid-template-columns:1fr}.ap-portrait{max-width:280px}.ap-strip{grid-template-columns:repeat(2,1fr)}}
/* gatherings */
.jump{display:flex;flex-wrap:wrap;gap:8px}
.jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--edge);border-radius:99px;text-decoration:none;font:500 13px/1 var(--sans);color:var(--heart);background:var(--heart-soft)}
.gsec{border-top:1px solid var(--rule);padding-block:56px;scroll-margin-top:80px}
.gsec-head{display:grid;grid-template-columns:1fr 1fr;gap:16px 56px;align-items:end;margin-bottom:24px}
.gsec-head h2{margin:0}
.gsec-head p{margin:0;color:var(--muted);max-width:40em}
.gsec-head a{color:var(--heart)}
.grid.ws{columns:3 200px}
.byl-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 56px;align-items:start}
.byl h2{font:500 clamp(30px,3.6vw,42px)/1.1 var(--serif);margin:.3em 0 .4em}
.byl-next{font-size:16px;margin:0 0 20px}
.byl-img{aspect-ratio:4/5;border-radius:6px;overflow:hidden;max-width:420px}
.byl .quote{margin-top:0}
.fields.one{grid-template-columns:1fr}
@media (max-width:820px){.gsec-head,.byl-grid{grid-template-columns:1fr}}

/* BackyardLands */
.byl-hero{position:relative;border-radius:8px;overflow:hidden;margin-bottom:32px;min-height:420px;display:grid;place-items:center;background:#0d0a12}
.byl-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.byl-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,6,16,.55),rgba(10,6,16,.15) 45%,rgba(10,6,16,.7))}
.byl-over{position:relative;z-index:1;text-align:center;padding:40px 24px;color:#fff}
.byl-over h2{margin:0}
.byl-logo{display:block;width:min(620px,84vw);height:auto;margin:0 auto;filter:drop-shadow(0 4px 18px rgba(0,0,0,.5))}
.byl-tag{font:italic 400 clamp(18px,2vw,22px)/1.4 var(--serif);margin:18px 0 16px}
.byl-next{display:inline-flex;align-items:center;gap:10px;margin:0;padding:10px 20px;border-radius:99px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.35);font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.byl-next span{opacity:.75;font-weight:500}
.byl-posters{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
.byl-posters .tile{margin:0}
.byl-note{margin:16px 0 0;color:var(--muted)}
.byl-note a{color:var(--heart)}

/* curatorial */
.ap-cur{margin-top:40px;border-top:1px solid var(--rule);padding-top:32px}
.cur-head{display:grid;grid-template-columns:1fr 140px;gap:24px 40px;align-items:center;margin-bottom:24px}
.cur-head h2{font:500 clamp(28px,3.2vw,38px)/1.1 var(--serif);margin:.3em 0 .4em}
.cur-head p{margin:0;color:var(--muted);max-width:60ch}
.cur-logo{background:#2f2626;border-radius:8px;padding:18px;display:grid;place-items:center}
.cur-logo img{width:100%;height:auto}
.cur-grid{columns:4 180px}
@media (max-width:820px){.cur-head{grid-template-columns:1fr}.cur-logo{width:120px}}
/* teaser photo pair */
.t-strip.pair{grid-template-columns:1fr 1fr}
.t-strip.pair figure{aspect-ratio:3/4}

.gsec .cvids{max-width:none;margin:24px 0 0;grid-template-columns:repeat(2,minmax(0,300px))}
.gsec .cvids.one{grid-template-columns:minmax(0,300px)}
.grid.ws{columns:3 220px}

/* home teaser tweaks */
.t-strip.three{grid-template-columns:repeat(3,1fr)}
.t-fans{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-decoration:none}
.t-fans .dimg.fan{display:block;position:relative;aspect-ratio:4/3}
.t-fans .fcard{display:block;cursor:pointer}
@media (max-width:820px){.t-strip.three{grid-template-columns:repeat(3,1fr)}}
.t-fans{gap:0}
.t-fans .dimg.fan{aspect-ratio:1/1}
.t-fans .fan-round .fcard{width:50%;left:25%}
.t-fans .fan-rect .fcard{width:38%;left:31%;bottom:22%}
.t-fans{gap:16px;padding-inline:4%}
.t-fans .fan-round .fcard{width:42%;left:29%}
.t-fans .fan-rect .fcard{width:34%;left:33%;bottom:24%}
.byl-posters{align-items:start}
.byl-posters .tile.art{background:transparent}
