
:root{
  --paper:#fbf4e7;--ink:#29221f;--soft:#5b4f49;--red:#c94328;--red-d:#a3361f;--ochre:#e8b64e;--ochre-l:#f5e2b3;
  --slate-d:#4a6370;--mat:#fffaf1;--wall:#f1ede6;--line:rgba(41,34,31,.18);--rule:rgba(41,34,31,.25);
  --serif:Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --wrap:min(1280px,100% - 2.5rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lock{overflow:hidden}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;color:var(--ink);font:400 1.0625rem/1.55 var(--sans);background:var(--paper) url("paper-grain.svg")}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.18em}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{width:var(--wrap);margin-inline:auto}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:.75rem;top:-4rem;z-index:99;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:4px}
.skip:focus{top:.5rem}

.banner{background:var(--ink);color:var(--paper);font-size:.8125rem}
.banner .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem 1rem;padding:.45rem 0}
.banner p{margin:0}
.banner b{color:var(--ochre);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.banner button{font:600 .8rem var(--sans);color:var(--ink);background:var(--ochre);border:0;border-radius:999px;padding:.38rem .85rem;cursor:pointer}
.banner :focus-visible{outline-color:var(--ochre)}

.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}
.mark{display:flex;align-items:baseline;flex-wrap:wrap;gap:.15rem .6rem;text-decoration:none}
.mark strong{font:700 1.65rem/1 var(--serif);letter-spacing:-.015em}
.mark span{font:italic .85rem var(--serif);color:var(--soft)}
.hdr-r{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.75rem}
nav ul{display:flex;flex-wrap:wrap;gap:.25rem 1.4rem;list-style:none;margin:0;padding:0}
nav a{display:inline-block;text-decoration:none;font-weight:600;font-size:.95rem;padding:.3rem 0;border-bottom:2px solid transparent}
nav a:hover{border-color:var(--red)}
.sel-btn{font:600 .875rem var(--sans);background:transparent;border:1.5px solid var(--ink);border-radius:999px;padding:.5rem 1rem;cursor:pointer}
.sel-btn:hover{background:var(--ink);color:var(--paper)}

.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5.5rem);align-items:center;padding:clamp(2.5rem,5vw,4.25rem) 0 clamp(3rem,5vw,4.5rem)}
.kicker{font:600 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red-d);margin:0 0 1.1rem}
h1{font:400 clamp(2.7rem,7vw,6.3rem)/.96 var(--serif);letter-spacing:-.028em;margin:0 0 1.5rem}
h1 em{color:var(--red);background:linear-gradient(transparent 78%,rgba(232,182,78,.6) 78% 92%,transparent 92%)}
.lede{font-size:clamp(1.1rem,1.45vw,1.3rem);line-height:1.5;max-width:34ch;margin:0}
.tag{display:inline-block;font:600 .64rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);border:1px dashed currentColor;border-radius:4px;padding:.28rem .45rem;vertical-align:middle}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--sans);color:var(--ink);background:transparent;border:2px solid var(--ink);border-radius:999px;padding:.95rem 1.4rem;text-decoration:none;cursor:pointer;transition:transform .15s,background-color .15s,color .15s}
.btn:hover{transform:translateY(-1px);background:var(--ink);color:var(--paper)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red-d);border-color:var(--red-d)}
.ctas .primary::after{content:"→";font-family:var(--serif)}
.btn.sm{font-size:.9rem;padding:.65rem 1.05rem}

.stage{position:relative;display:block;width:100%;aspect-ratio:4/5;margin:0;padding:0;border:0;background:var(--wall);transition:box-shadow .2s}
.stage img{position:absolute;left:10%;top:10%;width:80%;height:80%;object-fit:contain}
button.stage{cursor:pointer}
[data-mount=wall] .stage{background:linear-gradient(180deg,#f4f1eb,#e9e4db)}
[data-mount=wall] button.stage:hover{box-shadow:0 14px 30px -24px rgba(41,34,31,.55)}
[data-mount=paper] .stage{background:var(--mat);border:1px solid var(--line);box-shadow:0 1px 0 rgba(41,34,31,.06),0 20px 38px -24px rgba(41,34,31,.5)}
[data-mount=paper] .stage::after{content:"";position:absolute;inset:4.5%;border:1px solid rgba(41,34,31,.5);pointer-events:none}
.hero-fig{margin:0}
.hero-fig .stage{aspect-ratio:1/1;max-width:600px;margin-left:auto}
.cap-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;font-size:.84rem;color:var(--soft);margin:.85rem 0 0;max-width:600px;margin-left:auto}
.cap-line strong{color:var(--ink);font-weight:600}

#order>section,.news,.meet{scroll-margin-top:1rem}
h2{font:400 clamp(2.1rem,4.4vw,3.6rem)/1.02 var(--serif);letter-spacing:-.02em;margin:0 0 1.1rem}
h2:focus{outline:none}
h3{font:700 1.15rem/1.25 var(--serif);margin:0 0 .4rem}

.prints{padding:clamp(3.5rem,7vw,6rem) 0}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,27rem);gap:1rem 3rem;align-items:end;margin-bottom:clamp(2rem,4vw,3.25rem)}
.sec-head h2{margin:0}
.note{margin:0;color:var(--soft)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,3.5vw,3rem) clamp(1.25rem,2.5vw,2.25rem)}
.card{display:flex;flex-direction:column}
.cap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem 1rem;margin:1rem 0 .5rem}
.card h3{font-size:1.25rem;margin:0}
.card h3 .tag{margin-left:.4rem}
.price{margin:0;font-size:.9rem;color:var(--soft)}
.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}
.linkbtn{background:none;border:0;padding:.35rem 0;font-weight:600;font-size:.92rem;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.linkbtn:hover{color:var(--red-d)}

.save{display:inline-flex;align-items:center;gap:.55rem;font:600 .95rem/1 var(--sans);background:transparent;border:2px dashed var(--ink);border-radius:999px;padding:.85rem 1.2rem;cursor:pointer;transition:background-color .15s,color .15s}
.save.sm{font-size:.84rem;border-width:1.5px;padding:.5rem .85rem}
.save .ico{display:inline-grid;place-items:center;width:1.1em;height:1.1em;border:2px solid currentColor;border-radius:50%;font-size:.75em}
.save[aria-pressed="true"]{border-style:solid;background:var(--ink);color:var(--paper)}
.save[aria-pressed="true"] .ico::after{content:"✓"}

.club{position:relative;overflow:hidden;background:var(--ochre-l);border-block:1px solid var(--line);padding:clamp(3.5rem,7vw,6rem) 0}
.club::after{content:"";position:absolute;width:560px;height:560px;right:-200px;top:-260px;border:2px solid rgba(201,67,40,.22);border-radius:50%;box-shadow:0 0 0 40px rgba(201,67,40,.05);pointer-events:none}
.club .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.club .intro{font-size:1.15rem;max-width:38ch;margin:0}
.release{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;margin:2rem 0;padding:1.1rem 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.release .when{font:400 clamp(1.8rem,3vw,2.4rem)/1 var(--serif);color:var(--red-d)}
.release .what{font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}
.release small{flex-basis:100%;color:var(--soft);font-size:.85rem}
.tile{display:grid;place-items:center;aspect-ratio:3/2;margin:0 0 1.75rem;padding:1.25rem;background:linear-gradient(90deg,var(--mat) 49.7%,rgba(41,34,31,.16) 49.7% 50.3%,var(--mat) 50.3%);border:1px solid var(--line);box-shadow:0 18px 36px -26px rgba(41,34,31,.5);text-align:center}
.tile div{background:var(--mat);padding:.6rem 1rem}
.tile strong{display:block;font:italic 400 1.35rem var(--serif)}
.tile span{font-size:.86rem;color:var(--soft)}
.listhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .75rem}
.listhead h3{font-size:1.35rem;margin:0}
.parts{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.parts li{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.3rem 0;border-bottom:1px solid var(--rule)}
.parts .num{font:italic 400 2rem/1 var(--serif);color:var(--red-d)}
.parts h4{font:700 1.15rem/1.25 var(--serif);margin:0 0 .3rem}
.parts p{margin:0;color:var(--soft)}
.fine{font-size:.85rem;color:var(--soft);margin:.9rem 0 0}
.save-note{display:block;font-size:.8rem;color:var(--soft);margin-top:.55rem}
.acc{margin-top:2.25rem}
.acc details,.sec{border-bottom:1px solid var(--rule)}
.acc details:first-of-type,.sec:first-of-type{border-top:2px solid var(--ink)}
.acc summary,.sec summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;font-weight:600;cursor:pointer;list-style:none}
.acc summary::-webkit-details-marker,.sec summary::-webkit-details-marker{display:none}
.acc summary::after,.sec summary::after{content:"+";font:400 1.5rem/1 var(--serif);transition:transform .2s}
.acc details[open] summary::after,.sec[open] summary::after{transform:rotate(45deg)}
.acc details p{margin:0 0 1.1rem;max-width:58ch;color:var(--soft)}

.news{background:var(--red);color:#fff;padding:clamp(3.5rem,7vw,6rem) 0}
.news .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.news .kicker{color:var(--ochre-l)}
.news .copy p{color:#fff6ea;font-size:1.15rem;max-width:40ch;margin:0 0 1.75rem}
.news .copy .btn{border-color:#fff;color:#fff}
.news .copy .btn:hover{background:#fff;color:var(--red-d)}
.news .copy :focus-visible{outline-color:var(--ochre-l)}
.signup{background:var(--paper);color:var(--ink);border-radius:6px;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 26px 50px -30px rgba(0,0,0,.55)}
.signup h3{font-size:1.35rem}
.signup label{display:block;font-weight:600;margin:1rem 0 .45rem}
.inrow{display:flex;flex-wrap:wrap;gap:.6rem}
.inrow input{flex:1 1 13rem;min-width:0}
.nl-msg{margin:.75rem 0 0;font-size:.92rem}
.nl-msg.err{color:var(--red-d);font-weight:600}
.nl-msg.ok{padding:.7rem .85rem;background:var(--ochre-l);border-radius:4px}

.f{display:grid;gap:.35rem;margin:0 0 1rem}
.f label,.flabel{font-weight:600;font-size:.92rem}
.f input,.f textarea,.f select,.inrow input{width:100%;padding:.65rem .75rem;border:1.5px solid rgba(41,34,31,.4);border-radius:6px;background:#fff}
.f textarea{min-height:6.5rem;resize:vertical}
.f small{font-size:.8rem;color:var(--soft)}
input[aria-invalid=true]{border-color:var(--red-d)!important;box-shadow:0 0 0 1px var(--red-d)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}

.meet .wrap{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--line)}
.meet .mat{background:var(--mat);padding:.6rem;border:1px solid var(--line);box-shadow:0 18px 36px -24px rgba(41,34,31,.45)}
.meet img{width:100%;height:auto;object-fit:contain}
.meet h2{margin-bottom:.35rem}
.meet .role{font:italic 1.1rem var(--serif);margin:0 0 1rem}
.meet p{margin:0 0 .8rem}

footer{background:var(--ink);color:var(--paper);font-size:.85rem;padding:2.5rem 0}
footer .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem 3rem}
footer .fw{font:700 1.3rem var(--serif);margin:0 0 .5rem}
footer p{margin:0 0 .6rem;opacity:.88}
footer summary{cursor:pointer;font-weight:600}
footer ul{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.45rem}
footer :focus-visible{outline-color:var(--ochre)}

.x{flex:none;display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;font:400 1.4rem/1 var(--serif);background:transparent;border:1.5px solid var(--line);border-radius:50%;cursor:pointer}
.x:hover{border-color:var(--ink)}
dialog{border:0;padding:0;color:var(--ink);background:var(--paper);border-radius:6px;width:min(1000px,100% - 2rem);max-height:calc(100dvh - 2rem);overflow:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
dialog::backdrop{background:rgba(41,34,31,.64)}
.dlg-in{padding:clamp(1.1rem,3vw,2rem)}
.dlg-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.dlg-top .kicker{margin-bottom:.4rem}
.dlg-top h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:0}
.dlg-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,2.25rem);align-items:start}
.stage.big{aspect-ratio:auto;padding:7%}
.stage.big img{position:static;width:100%;height:auto;max-height:66vh}
.specs{display:grid;grid-template-columns:auto 1fr;margin:1.5rem 0;border-top:2px solid var(--ink)}
.specs dt,.specs dd{margin:0;padding:.7rem 0;border-bottom:1px solid var(--rule)}
.specs dt{font-weight:600;padding-right:1.5rem}
.specs dd{color:var(--soft)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.25rem}
#dlg-sel{width:min(560px,100% - 2rem)}
.sel-list{list-style:none;margin:1.25rem 0 0;padding:0;border-top:2px solid var(--ink)}
.sel-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule)}
.sel-list strong{display:block;font:700 1.1rem var(--serif)}
.sel-list span{font-size:.85rem;color:var(--soft)}
.rm{flex:none;font:600 .85rem var(--sans);color:var(--red-d);background:transparent;border:1.5px solid currentColor;border-radius:999px;padding:.45rem .85rem;cursor:pointer}
.rm:hover{background:var(--red-d);color:#fff}
.empty{margin:1.25rem 0 0;padding:1.25rem;border:1.5px dashed var(--line);border-radius:6px;color:var(--soft)}
.dlg-foot{display:flex;justify-content:flex-end;margin-top:1.5rem}

#dlg-news{width:min(720px,100% - 2rem);background:#ece4d6}
.meta{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0 auto 1rem;max-width:600px;font-size:.9rem}
.meta dt{font-weight:600}
.meta dd{margin:0;color:var(--soft)}
.email{max-width:600px;margin:0 auto;background:#fffdf8;border:1px solid var(--line)}
.em-head{background:var(--red);color:#fff;padding:1rem 1.5rem;font:700 1.35rem var(--serif)}
.em-head span{display:block;font:italic 400 .85rem var(--serif);opacity:.9}
.em-art{background:var(--wall);padding:6%}
.em-art img{width:100%;height:auto;max-height:420px;object-fit:contain}
.em-cap{font-size:.8rem;color:var(--soft);margin:.55rem 1.5rem 0}
.em-body{padding:1.25rem 1.5rem 1.5rem}
.em-body h3{font:400 1.8rem/1.1 var(--serif);margin:0 0 .9rem}
.em-body p{white-space:pre-line;margin:0 0 .9rem}
.em-btns{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.25rem 0}
.em-btn{font:600 .95rem var(--sans);background:var(--red);color:#fff;border:2px solid var(--red);border-radius:4px;padding:.7rem 1.1rem;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.em-btn.ghost{background:transparent;color:var(--red-d)}
.em-sign{font:italic 1.05rem/1.4 var(--serif);margin:1.25rem 0 0!important}
.em-foot{border-top:1px solid var(--line);padding:1rem 1.5rem;font-size:.78rem;color:var(--soft)}

#dlg-edit{width:min(760px,100% - 2rem)}
.filebar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.85rem 1rem;background:var(--ochre-l);border-radius:6px;margin:0 0 1rem}
.filebar p{flex:1 1 15rem;margin:0;font-size:.9rem}
.ed-msg{margin:0 0 1rem;font-size:.92rem}
.ed-msg:empty{margin:0}
.ed-msg[data-kind=err]{color:var(--red-d);font-weight:600}
.ed-msg[data-kind=warn]{padding:.7rem .85rem;border:1.5px solid var(--red-d);border-radius:6px}
.ed-msg[data-kind=ok]{color:var(--slate-d);font-weight:600}
.sec-in{padding:.25rem 0 .5rem}
.photo-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:1rem;align-items:start;margin-bottom:1rem}
.thumb{display:grid;place-items:center;aspect-ratio:1;padding:8px;background:var(--wall);border:1px solid var(--line)}
.thumb img{max-width:100%;max-height:92px;width:auto;height:auto;object-fit:contain}
.photo-row input[type=file]{max-width:100%;font-size:.88rem;margin:.35rem 0}
.photo-row .fine{margin:.25rem 0 0}
.opts{border:0;padding:0;margin:0 0 1rem}
.opts legend{font-weight:600;font-size:.92rem;margin-bottom:.5rem;padding:0}
.opt{display:grid;grid-template-columns:auto 1fr;gap:.15rem .7rem;padding:.75rem .9rem;margin-bottom:.5rem;border:1.5px solid var(--line);border-radius:6px;cursor:pointer}
.opt:has(input:checked){border-color:var(--red);background:#fff}
.opt input{accent-color:var(--red);margin:.2rem 0 0;width:1.05rem;height:1.05rem}
.opt b{font-size:.95rem}
.opt span{grid-column:2;font-size:.82rem;color:var(--soft)}
.ed-foot{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.9rem clamp(1.1rem,3vw,2rem);background:var(--paper);border-top:1px solid var(--line)}
.ed-foot .sp{flex:1}

@media (max-width:980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .hero .wrap,.club .wrap,.news .wrap,.dlg-grid,footer .wrap,.sec-head,.meet .wrap{grid-template-columns:minmax(0,1fr)}
  .hdr-r{width:100%;justify-content:space-between}
  .hero-fig .stage,.cap-line{margin-left:0}
  .meet .portrait{max-width:220px}
}
@media (max-width:560px){
  .grid{grid-template-columns:minmax(0,1fr)}
  .ctas .btn{flex:1 1 100%}
  .two{grid-template-columns:1fr}
  .photo-row{grid-template-columns:84px minmax(0,1fr)}
  .ed-foot .sp{display:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

.gallery-tools{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}
.gallery-filter{border:1px solid var(--rule);border-radius:999px;background:transparent;padding:.55rem 1rem;font:600 .88rem var(--sans);cursor:pointer}
.gallery-filter[aria-pressed=true]{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.gallery-count{font-size:.82rem;color:var(--soft);margin:0 0 0 auto}
@media(max-width:500px){.gallery-count{flex-basis:100%;margin:.35rem 0 0}}

[hidden] { display: none !important; }
.banner .case-links { display: flex; flex-wrap: wrap; gap: .35rem 1rem; }
.banner .case-links a { color: inherit; font-size: .875rem; }
.club-booklet { display: block; color: inherit; margin: 1.25rem 0; font-weight: 700; }
.club-booklet img { width: 100%; margin-bottom: .6rem; border: 1px solid var(--line); }
.demo-process { border-top: 1px solid var(--line); padding: clamp(2.5rem, 5vw, 4rem) 0; }
.demo-process .lede { max-width: 62ch; }
.demo-process .ctas { margin-top: 1.2rem; }
.club-explainer { display: inline-block; margin: 0 0 1rem; font-weight: 600; }
