:root {
  --ink:#29243e;
  --muted:#68617b;
  --ivory:#f6f3fc;
  --paper:#fdfbff;
  --gold:#6650a4;
  --line:#ded7ee;
  --dark:#261b43;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:35px
}
body {
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.65
}
a {
  color:inherit;
  text-underline-offset:5px
}
button,input,select,textarea {
  font:inherit
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:4px
}
img {
  display:block;
  max-width:100%;
  height:auto
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.12
}
h1 {
  font-size:clamp(2.8rem,5.3vw,5.6rem);
  letter-spacing:-.045em
}
h2 {
  font-size:clamp(2rem,3.4vw,3.6rem);
  letter-spacing:-.035em
}
h3 {
  font-size:1.4rem
}
em {
  font-weight:400;
  color:#6750a4
}
p {
  margin-bottom:1.2rem
}
small {
  font-size:.78rem
}
button {
  border:0
}
.announcement {
  background:var(--dark);
  color:#f4efff;
  text-align:center;
  font-size:9px;
  letter-spacing:2px;
  padding:10px 20px
}
.announcement span {
  margin-left:35px;
  color:#cec0ee
}
.site-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:28px 5.2%;
  border-bottom:1px solid var(--line);
  gap:24px
}
.wordmark {
  display:inline-flex;
  gap:13px;
  align-items:center;
  text-decoration:none;
  font-family:var(--serif);
  font-size:25px;
  letter-spacing:3px;
  white-space:nowrap;
  line-height:1.05
}
.wordmark b {
  font-weight:400
}
.wordmark small {
  display:block;
  font-family:var(--sans);
  font-size:7px;
  letter-spacing:2px;
  margin-top:9px
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:27px;
  font-size:11px
}
.site-header nav a {
  text-decoration:none
}
.site-header nav a:hover,.site-header nav a[aria-current] {
  color:#614494
}
.nav-cta {
  border:1px solid #8265b4;
  padding:12px 19px
}
.nav-cta span {
  margin-left:22px
}
.menu-toggle {
  display:none
}
.hero {
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:610px;
  padding:32px 5.2% 40px;
  gap:3.5%;
  align-items:stretch
}
.hero-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:35px 0 5px;
  max-width:540px
}
.eyebrow {
  font-family:var(--sans);
  font-size:9px;
  font-weight:600;
  letter-spacing:2px;
  line-height:1.8;
  margin-bottom:24px;
  color:#706480
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:9px
}
.hero .eyebrow span {
  width:19px;
  height:1px;
  background:var(--gold)
}
.hero h1 {
  margin-bottom:25px;
  font-size:clamp(3.8rem,6.5vw,7rem);
  line-height:1.02
}
.hero-description {
  max-width:380px;
  font-size:14px;
  line-height:1.9;
  color:var(--muted)
}
.hero-actions {
  display:flex;
  gap:25px;
  align-items:center;
  margin-top:14px;
  flex-wrap:wrap
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:25px;
  text-decoration:none;
  background:#544080;
  color:#fdfaff;
  min-height:49px;
  padding:13px 24px;
  font-family:var(--sans);
  font-size:12px;
  line-height:1.5;
  border:1px solid #544080;
  transition:background .15s
}
.button:hover {
  background:#433064
}
.button.secondary {
  background:transparent;
  color:var(--ink);
  border-color:var(--line)
}
.button.secondary:hover {
  background:#ede6f7
}
.subtle-link {
  font-size:11px;
  text-decoration:none;
  border-bottom:1px solid #aa99c5;
  padding-bottom:7px;
  display:inline-flex;
  gap:19px;
  align-items:center;
  width:fit-content
}
.subtle-link:hover {
  border-color:var(--ink)
}
.hero-foot {
  margin-top:43px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:10px;
  letter-spacing:.2px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:10px
}
.small-star {
  color:var(--gold);
  font-size:22px
}
.hero-art {
  position:relative;
  overflow:hidden;
  background:#e9e0f4;
  display:flex;
  align-items:center
}
.hero-art>img {
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:520px
}
.art-label {
  position:absolute;
  bottom:28px;
  left:25px;
  right:25px;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:1.5px;
  color:#564768
}
.image-caption {
  position:absolute;
  right:20px;
  top:18px;
  font-size:8px;
  color:#736282
}
.vertical-note {
  position:absolute;
  right:1.6%;
  top:50%;
  writing-mode:vertical-rl;
  font-size:8px;
  letter-spacing:2.5px;
  color:#68617b
}
.trust-strip {
  border-block:1px solid var(--line);
  display:flex;
  justify-content:space-around;
  padding:22px 5%;
  gap:20px;
  font-size:10px
}
.trust-strip span {
  display:flex;
  align-items:center;
  gap:10px
}
.trust-strip i {
  font-style:normal;
  color:#7355a4;
  font-size:19px
}
.section {
  padding:85px 5.2%;
  max-width:1600px;
  margin:auto
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:25px;
  margin-bottom:35px
}
.section-heading .eyebrow {
  margin-bottom:13px
}
.section-heading h2 {
  margin-bottom:0
}
.section-heading>p {
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
  margin:0 0 5px
}
.category-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px 25px
}
.category-card {
  text-decoration:none;
  display:block
}
.category-art {
  background:#f0eaf8;
  position:relative;
  overflow:hidden;
  margin-bottom:18px
}
.category-art img {
  width:100%;
  aspect-ratio:1.15;
  height:auto;
  object-fit:cover;
  transition:transform .3s
}
.category-card:hover .category-art img {
  transform:scale(1.045)
}
.category-art>span {
  position:absolute;
  bottom:15px;
  right:18px;
  font-size:20px
}
.category-card h3 {
  font-size:23px;
  margin-bottom:7px
}
.category-card p {
  font-size:11px;
  color:var(--muted);
  margin:0
}
.collection-note {
  font-size:10px;
  color:var(--muted);
  margin:25px 0 0
}
.process {
  background:#ebe5f5;
  max-width:none
}
.process .section-heading {
  margin-bottom:50px
}
.process-grid {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:35px
}
.process-grid li {
  border-top:1px solid #d0c3e4;
  padding-top:22px
}
.process-grid li>span {
  display:block;
  font-size:11px;
  color:#65507c;
  margin-bottom:24px
}
.process-grid h3 {
  font-size:22px;
  line-height:1.25;
  max-width:230px
}
.process-grid p {
  font-size:12px;
  color:#6a5c7b;
  max-width:250px;
  line-height:1.8
}
.payment-note {
  display:flex;
  align-items:center;
  gap:18px;
  border-top:1px solid #d5c9e7;
  margin-top:35px;
  padding-top:24px
}
.payment-note>span {
  font-size:30px;
  color:#7858a6
}
.payment-note p {
  font-size:11px;
  margin:0
}
.payment-note strong {
  display:block;
  font-size:12px;
  font-weight:500;
  margin-bottom:3px
}
.story-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:80px 5.2%;
  gap:8%;
  align-items:center
}
.story-art {
  background:#e9e0f4
}
.story-art img {
  width:100%
}
.story-copy p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  max-width:380px
}
.story-copy h2 {
  margin-bottom:25px
}
.story-copy .subtle-link {
  margin-top:10px
}
.closing-cta {
  text-align:center;
  padding:70px 20px 85px;
  border-top:1px solid var(--line)
}
.closing-cta h2 {
  font-size:clamp(2rem,3.5vw,3.8rem)
}
.closing-cta p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  margin-bottom:28px
}
footer {
  background:var(--dark);
  color:#f0eafa;
  padding:55px 5.2% 22px
}
.footer-top {
  display:grid;
  grid-template-columns:1.2fr .75fr 1.3fr 1fr;
  gap:35px;
  padding-bottom:45px
}
.footer-brand {
  font-size:23px;
  letter-spacing:3px
}
.footer-top p {
  font-size:11px;
  color:#c9bddd;
  margin:18px 0 0
}
.footer-top h2 {
  font-size:10px;
  text-transform:uppercase;
  font-family:var(--sans);
  letter-spacing:1.3px;
  color:#dbcfed;
  margin-bottom:18px
}
.footer-top a:not(.wordmark) {
  display:block;
  font-size:11px;
  text-decoration:none;
  margin:9px 0
}
.footer-promise {
  border-left:1px solid #59476f;
  padding-left:30px
}
.footer-promise>span {
  font-size:35px;
  color:#cbb2ec
}
.footer-promise p {
  margin-top:6px
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:15px;
  flex-wrap:wrap;
  padding-top:20px;
  border-top:1px solid #514064;
  font-size:9px;
  color:#c8b9db
}
.footer-bottom>div {
  display:flex;
  gap:20px
}
.footer-bottom a {
  text-decoration:none
}
.page-heading {
  margin-bottom:35px
}
.page-heading h1 {
  font-size:clamp(2.5rem,4vw,4.5rem)
}
.page-heading>p:last-child:not(.eyebrow) {
  color:var(--muted);
  max-width:650px
}
.narrow {
  max-width:1040px
}
.compact {
  max-width:780px;
  min-height:60vh
}
.prose {
  max-width:900px
}
.prose h2 {
  font-size:27px;
  margin:40px 0 15px
}
.prose p {
  line-height:1.9
}
.lead {
  font-size:20px;
  font-family:var(--serif)
}
.notice {
  padding:17px 22px;
  background:#eee7f8;
  border:1px solid #d4c6e8;
  margin-bottom:25px;
  font-size:13px
}
.notice.error {
  background:#fff2ee;
  border-color:#b78877;
  color:#792d21
}
.form-intro,.muted {
  font-size:13px;
  color:var(--muted)
}
fieldset {
  border:0;
  padding:0;
  margin:40px 0
}
legend {
  font-family:var(--serif);
  font-size:26px;
  margin-bottom:24px;
  padding:0
}
legend>span {
  font-size:11px;
  color:#674595;
  font-family:var(--sans);
  margin-right:15px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:23px
}
.field {
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
  margin-bottom:20px
}
.form-grid .field {
  margin-bottom:0
}
.field.full {
  grid-column:1/-1
}
.field label,.plain-text label {
  font-size:12px;
  font-weight:600
}
.optional {
  font-weight:400;
  color:var(--muted);
  font-size:11px
}
input,textarea,select {
  width:100%;
  padding:13px 14px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid #9783b0;
  border-radius:0;
  min-height:48px
}
input:disabled {
  color:#6b587f;
  background:#eee8f7
}
textarea {
  resize:vertical;
  line-height:1.65
}
input[type=file] {
  font-size:12px;
  padding:12px
}
input[type=checkbox] {
  width:18px;
  height:18px;
  min-height:18px;
  margin:4px 0 0;
  accent-color:#62478e;
  flex-shrink:0
}
.field small {
  font-size:11px;
  color:var(--muted);
  line-height:1.6
}
.checkbox {
  display:flex;
  gap:12px;
  font-size:13px;
  align-items:flex-start
}
.order-form>.button {
  margin-top:10px
}
.order-form>.muted {
  margin-top:20px
}
.panel {
  padding:28px;
  background:#fdfaff;
  border:1px solid var(--line);
  margin-bottom:25px
}
.panel h2 {
  font-size:27px
}
.reference-box {
  border:1px solid #c8b3e2;
  text-align:center;
  padding:35px;
  margin:30px 0 40px;
  background:#efe7f8
}
.reference-box>span {
  display:block;
  font-size:10px;
  letter-spacing:2px
}
.reference-box strong {
  display:block;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(25px,5vw,36px);
  margin:15px 0
}
.reference-box a {
  font-size:12px
}
.compact>h2 {
  font-size:28px
}
.status-badge {
  display:inline-block;
  border:1px solid #d4c7e7;
  background:#f0eaf8;
  border-radius:20px;
  padding:4px 12px;
  font-size:11px;
  white-space:nowrap
}
.status-summary {
  display:flex;
  align-items:center;
  gap:25px;
  margin:25px 0
}
.status-summary p {
  margin:0
}
.timeline {
  list-style:none;
  padding:0;
  margin:35px 0
}
.timeline li {
  display:flex;
  gap:20px;
  padding:0 0 26px;
  position:relative;
  color:#796a88
}
.timeline li:before {
  content:'';
  position:absolute;
  left:17px;
  top:35px;
  width:1px;
  height:calc(100% - 35px);
  background:#d6c8e8
}
.timeline li:last-child:before {
  display:none
}
.timeline li>span {
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #cdbdde;
  border-radius:50%;
  width:35px;
  height:35px;
  flex-shrink:0;
  font-size:12px
}
.timeline .reached {
  color:var(--ink)
}
.timeline .reached>span {
  background:#62478e;
  color:#fff
}
.timeline small {
  display:block;
  margin-top:3px;
  font-size:11px
}
.text-button {
  background:transparent;
  color:inherit;
  padding:0;
  font-size:11px
}
.site-header nav form {
  margin:0
}
.count-grid {
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:10px;
  margin:30px 0
}
.count-grid a {
  background:#efe9f8;
  border:1px solid var(--line);
  padding:15px;
  text-decoration:none
}
.count-grid a[aria-current] {
  border-color:#7853a4
}
.count-grid strong {
  display:block;
  font:28px var(--serif);
  margin-bottom:8px
}
.count-grid span {
  font-size:11px
}
.filter-bar {
  display:flex;
  align-items:flex-end;
  gap:18px;
  background:#efe9f8;
  padding:20px
}
.filter-bar .field {
  margin:0
}
.filter-bar .grow {
  flex:1
}
.filter-bar>a {
  font-size:12px;
  margin-bottom:13px
}
.table-wrap {
  overflow-x:auto;
  background:var(--paper);
  border:1px solid var(--line)
}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  white-space:nowrap;
  font-size:12px
}
th {
  background:#ece5f6;
  font-weight:500;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase
}
th,td {
  padding:18px 20px;
  border-bottom:1px solid var(--line)
}
td small {
  display:block;
  color:var(--muted);
  margin-top:5px;
  font-size:10px
}
td a {
  text-decoration:none
}
.empty-state {
  text-align:center;
  padding:60px 20px;
  background:#f2edf9
}
.empty-state>span {
  font-size:45px;
  color:var(--gold)
}
.empty-state h2 {
  font-size:28px
}
.admin-detail-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:30px
}
.detail-list {
  margin:0
}
.detail-list>div {
  display:grid;
  grid-template-columns:135px 1fr;
  gap:15px;
  border-bottom:1px solid var(--line);
  padding:14px 0;
  font-size:13px
}
.detail-list dt {
  color:var(--muted)
}
.detail-list dd {
  margin:0;
  overflow-wrap:anywhere
}
.preserve {
  white-space:pre-wrap
}
.reference-image {
  max-height:420px;
  object-fit:contain;
  margin-top:20px;
  object-position:left;
  width:auto
}
.history {
  padding-left:20px
}
.history li {
  padding:7px 0;
  font-size:12px
}
.history time {
  display:block;
  font-size:11px;
  color:var(--muted)
}
address {
  font-style:normal
}
.back-link {
  display:inline-block;
  font-size:12px;
  margin-bottom:30px
}
.job-sheet {
  max-width:1000px
}
.job-sheet h1 {
  font-size:42px
}
.print-controls {
  margin-bottom:35px
}
.print-controls>div {
  display:flex;
  gap:10px;
  margin-top:20px
}
.plain-text {
  margin-top:40px
}
.plain-text textarea {
  margin-top:12px;
  font-family:monospace;
  font-size:12px
}
.skip-link {
  position:fixed;
  top:-100px;
  left:15px;
  background:#fff;
  z-index:100;
  padding:12px
}
.skip-link:focus {
  top:10px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}

@media(min-width:1600px) {
  .hero {
  padding-inline:max(5.2%,calc((100vw - 1450px)/2))
}
.story-section {
  padding-inline:max(5.2%,calc((100vw - 1450px)/2))
}

}

@media(max-width:1050px) {
  .site-header nav {
  gap:17px
}
.wordmark {
  font-size:21px
}
.site-header {
  padding-block:24px
}
.hero {
  min-height:530px
}
.hero-art>img {
  min-height:460px
}
.hero h1 {
  font-size:75px
}
.hero-actions {
  gap:20px
}
.hero-actions .subtle-link {
  font-size:10px
}
.hero-foot {
  margin-top:30px
}
.trust-strip {
  flex-wrap:wrap;
  gap:15px
}
.count-grid {
  grid-template-columns:repeat(4,1fr)
}
.footer-top {
  grid-template-columns:1fr 1fr;
  gap:35px
}
.footer-promise {
  padding-left:0;
  border:0
}
.process-grid {
  gap:22px
}
.process-grid h3 {
  font-size:19px
}

}

@media(max-width:760px) {
  .announcement {
  font-size:8px;
  letter-spacing:1.3px;
  padding:9px 12px
}
.announcement span {
  display:none
}
.site-header {
  padding:22px 6%;
  flex-wrap:wrap
}
.wordmark {
  font-size:22px
}
.js-enabled .menu-toggle {
  display:block;
  background:none;
  font-size:11px;
  padding:8px 0 8px 14px;
  color:var(--ink)
}
.menu-toggle span {
  margin-left:12px
}
.site-header nav {
  display:flex;
  flex-wrap:wrap;
  gap:13px 20px;
  width:100%;
  padding-top:12px
}
.site-header nav .nav-cta {
  padding:7px 12px
}
.js-enabled .site-header:has(.menu-toggle[aria-expanded=false]) nav {
  display:none
}
.hero {
  grid-template-columns:1fr;
  padding:30px 6% 26px;
  gap:30px;
  min-height:auto
}
.hero-copy {
  padding:15px 0 0;
  max-width:none
}
.hero .eyebrow {
  font-size:8px;
  letter-spacing:1.5px;
  margin-bottom:20px
}
.hero h1 {
  font-size:clamp(62px,13vw,86px);
  margin-bottom:20px
}
.hero-description {
  max-width:440px;
  font-size:13px
}
.hero-actions {
  gap:24px
}
.hero-foot {
  margin-top:28px;
  padding-top:14px
}
.hero-art {
  max-height:440px
}
.hero-art>img {
  height:410px;
  min-height:0;
  object-position:center 48%
}
.vertical-note {
  display:none
}
.trust-strip {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:19px 6%;
  gap:13px 18px;
  font-size:9px
}
.trust-strip span {
  gap:8px
}
.section {
  padding:55px 6%
}
.section-heading {
  align-items:flex-start;
  gap:18px;
  flex-direction:column;
  margin-bottom:28px
}
.section-heading>p {
  font-size:12px
}
.eyebrow {
  font-size:8px;
  letter-spacing:1.5px
}
h2 {
  font-size:36px
}
.category-grid {
  grid-template-columns:1fr 1fr;
  gap:27px 17px
}
.category-card h3 {
  font-size:21px
}
.category-card p {
  font-size:10px
}
.category-art {
  margin-bottom:14px
}
.category-art img {
  aspect-ratio:.95
}
.category-art>span {
  bottom:10px;
  right:12px;
  font-size:17px
}
.process-grid {
  grid-template-columns:1fr 1fr;
  gap:25px
}
.process-grid h3 {
  font-size:21px
}
.process-grid li>span {
  margin-bottom:15px
}
.process .section-heading {
  margin-bottom:30px
}
.process-grid p {
  font-size:11px
}
.payment-note {
  align-items:flex-start
}
.story-section {
  grid-template-columns:1fr;
  padding:55px 6%;
  gap:35px
}
.story-art {
  max-height:400px;
  overflow:hidden
}
.story-art img {
  max-height:400px;
  object-fit:cover
}
.story-copy p:not(.eyebrow) {
  max-width:none
}
.closing-cta {
  padding:45px 6% 55px
}
.closing-cta h2 {
  font-size:35px
}
.footer-top {
  gap:30px 20px
}
.footer-top>div:nth-child(3) {
  grid-column:1/-1
}
.footer-top>div:last-child {
  grid-column:1/-1;
  border-top:1px solid #56416e;
  padding-top:18px;
  display:flex;
  gap:20px;
  align-items:center
}
.footer-promise p {
  margin:0
}
.footer-bottom {
  flex-direction:column;
  gap:20px
}
.footer-bottom>div {
  flex-wrap:wrap
}
.form-grid {
  grid-template-columns:1fr;
  gap:20px
}
.field.full {
  grid-column:auto
}
fieldset {
  margin:30px 0
}
.panel {
  padding:22px
}
.page-heading h1 {
  font-size:43px
}
.status-summary {
  flex-wrap:wrap;
  gap:14px
}
.filter-bar {
  align-items:stretch;
  flex-direction:column;
  padding:18px
}
.filter-bar>a {
  margin:0
}
.count-grid {
  grid-template-columns:repeat(4,1fr);
  gap:6px
}
.count-grid a {
  padding:10px
}
.count-grid span {
  font-size:9px
}
.count-grid strong {
  font-size:24px
}
.admin-detail-grid {
  grid-template-columns:1fr
}
.detail-list>div {
  grid-template-columns:110px 1fr;
  gap:10px;
  font-size:12px
}
.print-controls>div {
  flex-wrap:wrap
}
.job-sheet h1 {
  font-size:34px
}
.prose .notice {
  font-size:12px
}

}

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

}

@media print {
  @page {
  size:A4;
  margin:18mm
}
.announcement,.site-header,footer,.skip-link,.print-controls,.plain-text {
  display:none!important
}
body {
  background:#fff;
  color:#000;
  font-size:11pt
}
.job-sheet {
  padding:0;
  max-width:none
}
.job-sheet h1 {
  font-size:26pt;
  margin-bottom:12pt
}
.job-sheet .eyebrow {
  color:#000
}
.detail-list>div {
  padding:8pt 0;
  font-size:10pt;
  grid-template-columns:115pt 1fr;
  break-inside:avoid
}
.detail-list dt,.muted {
  color:#333
}
.reference-image {
  max-height:80mm;
  max-width:100%;
  break-inside:avoid
}
a {
  text-decoration:none
}
h2 {
  font-size:18pt
}

}

/* Shared mobile defaults: intrinsic sizing and wrapping prevent long customer
   content from expanding grid tracks or the page. */
:root { --sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; --gold:#674595; }
body { font-size:16px; overflow-wrap:anywhere; }
main, section, .panel, .hero-copy, .admin-detail-grid>div, .footer-top>div,
.form-grid>*, .category-grid>*, .process-grid>* { min-width:0; }
input, select, textarea, input[type=file], .plain-text textarea { font-size:16px; min-width:0; max-width:100%; }
a, button { touch-action:manipulation; }
button, .button, .text-button, .subtle-link, .back-link,
.site-header a, footer a, .print-controls>a, td a { min-height:44px; }
.text-button, .subtle-link, .back-link, .print-controls>a, td a { display:inline-flex; align-items:center; }
footer a { align-content:center; }
footer .footer-top a:not(.wordmark) { margin:0; }
.footer-bottom>div { flex-wrap:wrap; }
.field-error, .field small.field-error { display:block; color:#792d21; font-size:14px; line-height:1.5; }
[aria-invalid=true] { border-color:#9d3628; }
[hidden] { display:none!important; }
#image-status:empty { display:none; }
#image-status { margin:0; font-size:14px; }
#image-preview { width:240px; height:180px; object-fit:contain; background:#f0eaf8; }
input[type=file]::file-selector-button { min-height:44px; margin-right:12px; padding:8px 12px; border:1px solid #9783b0; background:#f0eaf8; color:var(--ink); font:inherit; }
.checkbox { min-height:44px; padding-block:10px; }
.prose { max-width:78ch; }
.status-badge { white-space:normal; }
table { white-space:normal; table-layout:fixed; }
.table-wrap { overflow:visible; }
th,td { overflow-wrap:anywhere; padding:16px 12px; }
@media screen and (max-width:760px) {
  .announcement { padding-top:max(10px,env(safe-area-inset-top)); font-size:10px; letter-spacing:1px; }
  .site-header { position:relative; flex-wrap:nowrap; gap:12px; padding:12px max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left)); }
  .wordmark { font-size:19px; letter-spacing:2px; gap:8px; }
  .wordmark small { letter-spacing:1px; font-size:7px; margin-top:6px; }
    .js-enabled .menu-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:76px; min-height:44px; font-size:14px; padding:8px; border:1px solid var(--line); }
  .menu-toggle span { margin-left:8px; }
  .site-header nav { flex-direction:column; align-items:stretch; gap:4px; padding:16px; background:var(--paper); border:1px solid var(--line); }
  .js-enabled .site-header nav { position:absolute; top:100%; left:max(16px,env(safe-area-inset-left)); right:max(16px,env(safe-area-inset-right)); width:auto; z-index:20; box-shadow:0 12px 24px #261b4320; max-height:70svh; overflow-y:auto; }
  .site-header nav a, .site-header nav button { display:flex; align-items:center; padding:12px; font-size:16px; width:100%; }
  html:not(.js-enabled) .site-header { flex-wrap:wrap; }
  .hero, .section, .story-section, .closing-cta { padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right)); }
  .hero h1 { font-size:clamp(3.5rem,13vw,5.3rem); }
  .page-heading h1 { font-size:clamp(2.2rem,9vw,3.2rem); }
  h2, .closing-cta h2 { font-size:clamp(1.9rem,7.5vw,2.5rem); }
  .hero-description, .story-copy p:not(.eyebrow), .closing-cta p:not(.eyebrow),
  .section-heading>p, .process-grid p, .category-card p, .payment-note p,
  .form-intro, .muted, .notice, .prose .notice { font-size:15px; }
  .eyebrow, .hero .eyebrow, .collection-note { font-size:11px; letter-spacing:1px; }
  .hero-foot, .trust-strip { font-size:12px; }
  .hero-actions { width:100%; gap:12px; }
  .button { width:100%; font-size:15px; padding:14px 16px; gap:12px; }
  .hero-actions .subtle-link, .subtle-link { font-size:14px; }
  .hero-art { height:360px; }
  .hero-art>img { height:360px; }
  .art-label { left:16px; right:16px; gap:16px; }
  .category-grid { gap:24px 16px; }
  .category-card h3 { font-size:clamp(1.2rem,5vw,1.6rem); }
  .process-grid { grid-template-columns:1fr; gap:24px; }
  .process-grid h3,.process-grid p { max-width:65ch; }
  .process-grid li>span { margin-bottom:12px; }
  .field label,.plain-text label,.checkbox { font-size:15px; }
  .field small,.optional { font-size:13px; }
  legend { font-size:clamp(1.4rem,6vw,1.8rem); }
  fieldset { min-width:0; }
  .panel { padding:20px; }
  .count-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .count-grid span { font-size:13px; }
  .count-grid a { padding:14px; }
  .detail-list>div { grid-template-columns:1fr; gap:4px; font-size:15px; }
  .admin-detail-grid { gap:0; }
  .filter-bar { gap:16px; }
  .filter-bar>a { display:flex; align-items:center; min-height:44px; }
  .table-wrap { border:0; background:transparent; }
  table,tbody { display:block; width:100%; }
  thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  tr { display:block; background:var(--paper); border:1px solid var(--line); padding:16px; margin-bottom:16px; }
  td { display:block; padding:10px 0; border:0; font-size:15px; }
  td::before { content:attr(data-label); display:block; color:var(--muted); font-size:12px; font-weight:600; margin-bottom:4px; }
  td small { font-size:13px; }
  td:last-child a { display:flex; justify-content:center; border:1px solid var(--line); }
  .print-controls>div { flex-direction:column; }
  .plain-text textarea { line-height:1.6; }
  .reference-box { padding:24px 16px; }
  .footer-top a:not(.wordmark), .footer-top p, .footer-bottom { font-size:14px; }
  .footer-top h2 { font-size:12px; }
  footer { padding:40px max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
  .footer-bottom>div { gap:8px 20px; }
}
em { color:#674595; }
.image-caption { color:#564768; }
.footer-bottom a { display:inline-flex; align-items:center; }
@media screen and (max-width:760px) {
  .checkbox { position:relative; }
  .checkbox input { margin-top:13px; }
  p a:not(.button), .checkbox a, .reference-box a { display:inline-flex; align-items:center; min-height:44px; }
  .process-grid li>span { color:#65507c; }
}
/* Avoid a pre-script flash of the expanded fallback navigation. */
@media screen and (max-width:760px) and (scripting:enabled) {
  .site-header:has(.menu-toggle[aria-expanded=false]) nav { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:76px; min-height:44px; padding:8px; border:1px solid var(--line); font-size:14px; background:transparent; color:var(--ink); }
}
.timeline li { color:#6c5d7c; }
@media screen and (max-width:760px) {
  main a:not(.button):not(.category-card):not(.count-grid a) { min-height:44px; display:inline-flex; align-items:center; }
}
