/* Next Move / the same workshop, with continuous state and responsive reading. */
.brass-counter{display:block;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#f8e7be 0 13%,#d4af75 32%,#947044 73%);border:1px solid #e8c895;box-shadow:0 3px 0 #4e2c17,0 5px 6px #18080666;flex:none}
.piece-grid{isolation:isolate}
.service-note{scroll-margin-block:28px}
.piece[aria-pressed=true] .piece-plaque{box-shadow:0 3px 0 #774923,0 6px 9px #21090644,inset 0 0 0 2px #9c794d50,inset 0 1px 0 #fff5d0}
.piece:focus-visible{outline-offset:-5px;z-index:4}
.note-list li{overflow-wrap:anywhere}
.photo-stack{position:relative;aspect-ratio:1.3;background:#362017;overflow:hidden}
.workshop-photo .approach-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.015);transition:opacity .35s ease,transform 1s cubic-bezier(.18,.75,.2,1),visibility .35s}
.workshop-photo .approach-frame.is-current{opacity:1;visibility:visible;transform:scale(1)}
.workshop-photo .approach-frame[data-photo="0"]{object-position:62% 52%}
.workshop-photo .approach-frame.is-failed{opacity:0;visibility:hidden}
.photo-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:28px;color:var(--cream);font-family:WorkshopSerif,Georgia,serif;font-style:italic;font-size:22px;text-align:center;border:1px solid #b38e5866;margin:15px}
.workshop-photo figcaption{min-height:85px}
.step-tabs button{min-height:66px}
.step-tabs button:focus-visible{outline-offset:5px}
.step-panel h3{overflow-wrap:break-word}
.step-panel .handwritten{max-width:100%}
.visit-choice{display:flex;align-items:center;gap:11px;margin:18px 0 0;border-bottom:1px solid #a7804d44;padding-bottom:15px;font-family:WorkshopMono,monospace;font-size:11px;line-height:1.5;letter-spacing:.15px;color:#785436}
.choice-counter{width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#e88b70,#b62921 36%,#630c11 85%);border:1px solid #b78a52;box-shadow:0 2px 2px #39150640;flex:none}
.visit-choice.is-chosen{color:var(--red)}
.field{position:relative}
.field label{transition:color .2s}
.field:focus-within label{color:var(--red)}
.field:focus-within:before{content:'';position:absolute;left:-12px;top:27px;bottom:0;width:3px;background:var(--red);box-shadow:1px 0 #e8c18b}
.field input,.field select,.field textarea{transition:background-color .2s,border-color .2s,box-shadow .2s}
.field:focus-within input,.field:focus-within select,.field:focus-within textarea{background:#fff5df;border-color:#ad6b41;box-shadow:inset 0 1px 3px #5b300d12,0 0 0 3px #d7b77e2e}
.field [aria-invalid=true]{border-color:var(--red);background-color:#fff0df}
.receipt h3{padding-right:0;max-width:100%}
.receipt-stamp{top:auto;right:22px;bottom:34px;width:55px;height:55px;opacity:.45;font-size:10px;pointer-events:none}
.receipt-actions{padding-right:14px}
.receipt-notice{max-width:100%}
.receipt dl>div{break-inside:avoid}
.copy-card,.footer-bottom button,.footer-bottom a{min-height:36px;display:inline-flex;align-items:center}
.faq summary{min-height:52px}
.faq p{overflow-wrap:break-word}
.footer-bottom>p{max-width:70%}

@media(max-width:920px) and (min-width:681px){
  .photo-stack{aspect-ratio:1.05}
  .workshop-photo .approach-frame{object-position:42% 50%}
  .visit-choice{font-size:10px}
  .visit-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .booking-card .submit-button{white-space:normal;font-size:11px;letter-spacing:1px;line-height:1.4;gap:12px;min-height:56px}
  .booking-card .submit-button svg{flex:none}
}

@media(max-width:680px){
  .brass-counter{width:8px;height:8px;box-shadow:0 2px 0 #4e2c17,0 3px 4px #18080666}
  .service-board{border-width:7px;border-bottom-width:0}
  .board-coordinate{justify-content:space-between;padding:0 6px}
  .piece-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
  .piece{display:grid;grid-template-columns:92px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:13px 13px 15px 8px;text-align:left;min-height:126px}
  .piece .piece-art{grid-column:1;grid-row:1 / 3;width:92px;margin:0;aspect-ratio:1}
  .piece .piece-plaque{grid-column:2;grid-row:1;align-self:end;width:100%;margin:0;font-size:11px;min-height:34px;letter-spacing:.25px;justify-content:space-between;padding:9px 9px 7px;gap:5px}
  .piece .piece-caption{grid-column:2;grid-row:2;align-self:start;margin-top:9px;font-size:11px;line-height:1.4}
  .piece-number{top:8px;left:9px;font-size:8px;z-index:3}
  .piece:before{inset:5px}
  .piece:after{bottom:13px;left:10px;width:8px;height:8px}
  .piece.selected:after{opacity:1}
  .piece-grid>.service-note{grid-column:1;width:100%;margin:0;padding:27px 23px 23px;transform:none;min-height:0;border-top:1px solid #aa804b;border-bottom:5px solid #492213;box-shadow:inset 0 8px 14px -12px #39150699,0 4px 7px #39150640}
  .piece-grid>.service-note:before{inset:9px}
  .piece-grid>.service-note .pin-head{display:none}
  .service-note .ticket-top{font-size:9px;letter-spacing:.2px;padding-bottom:12px}
  .service-note .note-heading{padding-top:18px}
  .service-note .note-italics{font-size:21px}
  .service-note .note-heading h3{font-size:29px;line-height:1.05;letter-spacing:-.8px;margin-top:10px}
  .service-note>p:not(.note-promise){font-size:14px;margin-top:17px}
  .note-list{margin:16px 0;font-size:12px}
  .note-list li{padding:8px 0}
  .note-promise{margin:16px 0;font-size:12px}
  .service-note .text-link{font-size:12px;min-height:43px}
  .note-footer{margin-top:21px;letter-spacing:.5px}
  .board-edge{font-size:7px;letter-spacing:.2px;line-height:1.5;padding:14px 7px 12px}
  .approach-layout>.workshop-photo{margin-bottom:30px}
  .approach-notebook{width:100%;padding:28px 23px;transform:none}
  .approach-notebook>.workshop-photo{width:100%;margin:29px 0 29px;transform:rotate(-1.3deg);padding:6px 6px 0;box-shadow:2px 5px 9px #3915063d}
  .approach-notebook .photo-stack{aspect-ratio:1.3}
  .approach-notebook .workshop-photo:before,.approach-notebook .workshop-photo:after{width:46px;height:18px;top:-6px}
  .approach-notebook .workshop-photo figcaption{min-height:62px;padding:13px 7px;gap:10px}
  .approach-notebook .workshop-photo figcaption span{font-size:19px}
  .approach-notebook .workshop-photo figcaption small{font-size:7px;letter-spacing:.9px}
  .step-tabs{margin-bottom:0;gap:16px}
  .step-tabs button{min-height:71px}
  .step-tabs button span{font-size:10px}
  .step-panel{min-height:0;padding-top:0}
  .step-panel h3{font-size:29px;margin-bottom:16px}
  .step-panel p{font-size:14px;line-height:1.6}
  .step-panel .handwritten{font-size:21px;margin-top:18px}
  .visit-choice{font-size:10px;margin-top:15px}
  .booking-card .submit-button{white-space:normal;line-height:1.4;min-height:56px;gap:12px;font-size:11px;letter-spacing:1px}
  .receipt-stamp{bottom:40px;right:15px;width:48px;height:48px;font-size:9px}
  .receipt h3{font-size:29px}
  .receipt .receipt-actions{padding:0;gap:13px}
  .receipt-actions .text-link{min-height:44px}
  .copy-card{min-height:44px}
  .footer-bottom>p{max-width:100%}
  .footer-bottom>div{gap:18px;justify-content:space-between}
  .footer-bottom button,.footer-bottom a{min-height:44px;font-size:10px}
}

@media(max-width:360px){
  .piece{grid-template-columns:75px minmax(0,1fr);column-gap:5px;padding-right:10px;min-height:112px}
  .piece .piece-art{width:75px}
  .piece .piece-plaque{font-size:10px;padding-left:7px;padding-right:7px}
  .piece .piece-caption{font-size:10px}
  .piece-grid>.service-note{padding-left:20px;padding-right:20px}
  .service-note .note-heading h3{font-size:26px}
  .board-edge{font-size:6px}
}

@media(prefers-reduced-motion:reduce){
  .workshop-photo .approach-frame{transform:none;transition:none}
}
html[data-motion=off] .workshop-photo .approach-frame{transform:none;transition:none}
@media(forced-colors:active){
  .piece.selected{outline:3px solid Highlight;outline-offset:-4px}
  .step-tabs button[aria-selected=true]{border-color:Highlight}
  .choice-counter,.brass-counter{background:ButtonText;border-color:ButtonText}
}
