:root {
  color-scheme: light dark;
  --bg: #f6f4ef;
  --fg: #1d1d1b;
  --mut: #6b6a66;
  --card: #fff;
  --line: #dedad0;
  --acc: #b4411f;
  --warn: #9a6700;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #161614;
    --fg: #ecebe6;
    --mut: #9a988f;
    --card: #201f1c;
    --line: #34322d;
    --acc: #e0704a;
    --warn: #e3b341;
  }
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 16px/1.5 system-ui, sans-serif; }
main { max-width: 980px; margin: 0 auto; padding: 24px 16px 64px; }
h1 { font-size: 1.8rem; margin: 0 0 4px; letter-spacing: -.03em; }
h2 { font-size: 1.1rem; margin: 28px 0 8px; }
a { color: var(--acc); }
small, .mut, .sub { color: var(--mut); }
.sub { margin: 0 0 20px; }
.eyebrow { margin: 0 0 4px; color: var(--acc); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.page-header { margin: 20px 0 24px; }
.card { margin-bottom: 16px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); }
.upload-form { box-shadow: 0 12px 36px #0000000a; }
label { display: block; margin: 12px 0 4px; font-weight: 600; }
input[type=text], input[type=number], select, input[type=file] {
  width: 100%; padding: 9px 10px; border: 1px solid var(--line); border-radius: 7px;
  background: var(--bg); color: var(--fg); font: inherit;
}
.row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.category-list { display: flex; flex-wrap: wrap; gap: 2px 12px; }
.chk { display: inline-flex; gap: 6px; align-items: center; margin: 4px 0; font-weight: 400; }
button, .btn {
  display: inline-block; padding: 10px 18px; border: 0; border-radius: 7px;
  background: var(--acc); color: #fff; font: inherit; font-weight: 600;
  text-decoration: none; cursor: pointer;
}
.btn.sec { border: 1px solid var(--line); background: transparent; color: var(--fg); }
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { padding: 7px 8px; border-bottom: 1px solid var(--line); text-align: left; }
th { color: var(--mut); font-weight: 600; }
.chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0; }
.chips span { padding: 3px 12px; border: 1px solid var(--line); border-radius: 99px; background: var(--card); }
.warn { margin: 6px 0; padding: 8px 12px; border-left: 4px solid var(--warn); background: var(--card); }
.err { padding: 8px 12px; border-left: 4px solid var(--acc); background: var(--card); white-space: pre-wrap; font: .85rem monospace; }
img.prev { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; }

.viewer-page { background: #eae7df; font-size: 15px; }
.viewer-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px; }
.viewer-controls select { flex: 1; min-width: 220px; }
.viewer-controls button, .viewer-controls select { width: auto; background: #fff; color: #1d1d1b; }
.viewer-canvas { position: relative; height: min(70vh, 680px); min-height: 360px; }
.viewer-canvas canvas { display: block; width: 100%; height: 100%; }
#status { color: var(--mut); font-size: .9rem; }

.workshop-page {
  --paper: #f6efdf;
  --parchment: #eee3cc;
  --ink: #283128;
  --forest: #344a37;
  --cocoa: #675b43;
  --rule: #d9c9a8;
  --rust: #9c4f35;
  color-scheme: light;
  background: var(--paper);
  color: var(--ink);
  font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
}

.workshop-page, .workshop-viewer {
  --paper: #f6efdf;
  --parchment: #eee3cc;
  --ink: #283128;
  --forest: #344a37;
  --cocoa: #675b43;
  --rule: #d9c9a8;
  --rust: #9c4f35;
}
.workshop-page button, .workshop-page .btn { background: var(--forest); color: var(--paper); }
.workshop-page .btn.sec { border-color: var(--rule); background: transparent; color: var(--forest); }
.workshop-page .btn:hover, .workshop-page button:hover { background: #26392b; color: var(--paper); }
.workshop-page a { color: inherit; }
.workshop-main { max-width: none; padding: 0; overflow: hidden; }
.workshop-nav {
  position: sticky;
  z-index: 5;
  top: 0;
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 12px max(5vw, calc((100vw - 1320px) / 2));
  border-bottom: 1px solid var(--rule);
  background: rgb(246 239 223 / 94%);
  backdrop-filter: blur(12px);
}
.workshop-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-content: center;
  border: 1px solid var(--cocoa);
  border-radius: 50%;
  color: var(--forest);
  font: 700 10px/1.05 ui-monospace, monospace;
  text-align: center;
}
.workshop-brand strong { display: block; font-size: 18px; letter-spacing: -.04em; }
.workshop-brand small { display: block; margin-top: 2px; color: var(--cocoa); font-size: 10px; letter-spacing: .04em; }
.workshop-nav nav { display: flex; gap: clamp(16px, 3vw, 42px); }
.workshop-nav nav a, .nav-cta, .workshop-footer > a:last-of-type {
  font: 600 10px/1.2 ui-monospace, monospace;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}
.workshop-nav nav a { color: var(--cocoa); }
.nav-cta { padding: 12px 16px; border: 1px solid var(--forest); border-radius: 2px; }
.nav-cta span { margin-left: 12px; color: var(--rust); }

.workshop-hero {
  display: grid;
  max-width: 1320px;
  min-height: 540px;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(36px, 7vw, 100px);
  margin: 0 auto;
  padding: 70px 5vw 78px;
}
.hero-copy { max-width: 610px; }
.workshop-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--cocoa);
  font: 600 10px/1.4 ui-monospace, monospace;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.workshop-kicker > span { width: 7px; height: 7px; border-radius: 50%; background: var(--rust); }
.workshop-hero h1 {
  margin: 0;
  color: var(--forest);
  font-size: clamp(42px, 6vw, 76px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .99;
}
.workshop-hero h1 em { color: var(--rust); font-weight: 400; }
.hero-intro { max-width: 470px; margin: 24px 0 24px; color: #5e5b4d; font-size: 17px; line-height: 1.75; }
.hero-link { display: inline-flex; align-items: center; gap: 28px; padding-bottom: 8px; border-bottom: 1px solid var(--rust); color: var(--forest) !important; font-size: 16px; text-decoration: none; }
.hero-link span { color: var(--rust); }
.hero-note { margin: 22px 0 0; color: #8b806a; font: 10px/1.5 ui-monospace, monospace; letter-spacing: .11em; }
.hero-art {
  position: relative;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid #dacbad;
  background: linear-gradient(145deg, #eee5d3, #e7dcc6 65%, #d8c8a9);
  box-shadow: 16px 18px 0 #e9dfcc;
}
.art-grid {
  position: absolute;
  inset: 0;
  opacity: .28;
  background-image: linear-gradient(#a99a7d 1px, transparent 1px), linear-gradient(90deg, #a99a7d 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(130deg, transparent 15%, #000 100%);
}
.art-sun { position: absolute; top: 42px; right: 62px; width: 94px; height: 94px; border-radius: 50%; background: #c9825d; opacity: .88; }
.model {
  position: absolute;
  width: 43%;
  height: 40%;
  border: 2px solid #52634b;
  background: repeating-linear-gradient(90deg, #d9c9a8 0 19px, #54644c 20px 22px, #e7dcc6 23px 36px);
  box-shadow: 8px 10px 0 rgb(72 74 54 / 14%);
  transform: skewY(-25deg) rotate(0deg);
}
.model::after {
  position: absolute;
  right: -2px;
  bottom: -26px;
  left: -2px;
  height: 24px;
  border: 2px solid #52634b;
  border-top: 0;
  background: repeating-linear-gradient(90deg, #b9a77f 0 19px, #52634b 20px 22px, #d8c8a9 23px 36px);
  content: "";
  transform: skewX(-46deg);
  transform-origin: top;
}
.model-back { top: 25%; left: 17%; width: 46%; height: 32%; opacity: .7; transform: skewY(-25deg) translate(20px, -25px); }
.model-middle { top: 36%; left: 26%; width: 49%; height: 37%; }
.model-front { top: 51%; left: 15%; width: 51%; height: 24%; opacity: .85; transform: skewY(-25deg) translate(-4px, 22px); }
.art-caption { position: absolute; right: 18px; bottom: 14px; left: 18px; display: flex; justify-content: space-between; color: #5c604e; font: 9px/1.3 ui-monospace, monospace; letter-spacing: .1em; }

.workshop-ribbon { overflow: hidden; padding: 14px 0; border-block: 1px solid #263b2d; background: var(--forest); color: var(--paper); }
.workshop-ribbon div { width: max-content; font: 10px/1.2 ui-monospace, monospace; letter-spacing: .19em; white-space: nowrap; }
.workshop-ribbon span { padding: 0 20px; color: #d18d69; }
.workshop-section { max-width: 1320px; margin: 0 auto; padding: 78px 5vw; scroll-margin-top: 90px; }
.section-heading { max-width: 660px; margin-bottom: 34px; }
.section-heading .workshop-kicker { margin-bottom: 10px; color: var(--rust); }
.section-heading h2 { margin: 0 0 10px; color: var(--forest); font-size: clamp(36px, 4vw, 52px); font-weight: 500; letter-spacing: -.045em; }
.section-heading > p:last-child { margin: 0; color: #6d6758; font-size: 16px; line-height: 1.65; }
.workshop-form { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.65fr); gap: 20px; padding: 18px; border: 1px solid var(--rule); background: #fbf7ed; box-shadow: 10px 12px 0 #eadfca; }
.upload-drop {
  position: relative;
  display: flex;
  min-height: 260px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 24px;
  border: 1px dashed #a89878;
  background: #f3ead8;
  color: var(--forest);
  cursor: pointer;
  text-align: center;
  transition: background .2s, border-color .2s;
}
.upload-drop.is-dragging, .upload-drop.has-file { border-color: var(--forest); background: #e9e7d8; }
.upload-icon { display: grid; width: 44px; height: 44px; place-items: center; margin-bottom: 8px; border: 1px solid #bba98a; border-radius: 50%; color: var(--rust); font-size: 24px; }
.upload-drop strong { font-size: 19px; font-weight: 500; }
.upload-drop > span:not(.upload-icon):not(.selected-file) { color: #7e7664; font-size: 13px; }
.upload-drop > small { color: #8d826d; font: 9px/1.5 ui-monospace, monospace; letter-spacing: .06em; }
.selected-file { max-width: 100%; overflow: hidden; color: var(--rust); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.upload-drop input[type=file] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.form-fields { min-width: 0; }
.field-grid { display: grid; gap: 12px; }
.field-grid-primary { grid-template-columns: 1.2fr 1.2fr .75fr; }
.field-grid-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; }
.workshop-field { min-width: 0; }
.workshop-field label, .category-fieldset legend, .options-fieldset legend { display: block; margin: 8px 0 6px; color: var(--forest); font-size: 13px; font-weight: 600; }
.field-hint { display: block; margin-top: 3px; color: #8b806b; font-size: 10px; font-weight: 400; }
.workshop-field input, .workshop-field select {
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid #ddd1b8;
  border-radius: 0;
  background: #fffdf7;
  color: var(--ink);
  font: 13px/1.4 system-ui, sans-serif;
}
.category-fieldset, .options-fieldset { min-width: 0; margin: 13px 0 0; padding: 10px 0 0; border: 0; border-top: 1px solid #e4dac6; }
.category-fieldset legend, .options-fieldset legend { float: left; width: 100%; margin: 0 0 8px; }
.category-fieldset legend + * { clear: both; }
.category-list { display: flex; gap: 4px 12px; }
.category-list .chk { display: inline-flex; align-items: center; gap: 5px; margin: 0; color: #555a4c; font-size: 12px; }
.category-list input { accent-color: var(--forest); }
#category-help { display: block; margin-top: 6px; color: #877c68; font-size: 10px; }
.options-fieldset { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.options-fieldset legend { float: none; }
.workshop-check { display: inline-flex; align-items: center; gap: 7px; margin: 0; color: #565b4d; font-size: 12px; font-weight: 400; }
.workshop-check input { accent-color: var(--forest); }
.workshop-check small { color: #877c68; font-size: 10px; }
.workshop-submit { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-top: 16px; padding: 14px 18px; border-radius: 0; background: var(--forest); color: var(--paper); font-size: 14px; font-weight: 500; }
.workshop-submit span { color: #d69a77; font-size: 18px; }
.workshop-submit:hover { background: #26392b; }
.recent-section { margin-top: 44px; }
.recent-section h2 { color: var(--forest); font-size: 25px; font-weight: 500; }
.recent-section .card { border-color: var(--rule); border-radius: 0; background: #fbf7ed; box-shadow: none; }
.recent-section table { font-family: system-ui, sans-serif; }
.workflow-section { max-width: none; padding-inline: max(5vw, calc((100vw - 1320px) / 2)); background: var(--parchment); }
.workflow-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #cfc09f; }
.workflow-step { min-height: 195px; padding: 24px 24px 20px 0; }
.workflow-step + .workflow-step { padding-left: 24px; border-left: 1px solid #cfc09f; }
.workflow-step > span { color: var(--rust); font: 11px/1 ui-monospace, monospace; letter-spacing: .1em; }
.workflow-step h3 { margin: 18px 0 8px; color: var(--forest); font-size: 25px; font-weight: 500; }
.workflow-step p { max-width: 340px; margin: 0; color: #6d6758; font-size: 14px; line-height: 1.7; }
.workshop-footer { display: grid; grid-template-columns: 1fr 1.5fr 1fr; align-items: center; gap: 20px; padding: 30px max(5vw, calc((100vw - 1320px) / 2)); border-top: 1px solid var(--rule); background: var(--paper); }
.workshop-footer > p { color: #6d6758; font-size: 13px; }
.workshop-footer > a:last-of-type { justify-self: end; color: var(--forest); }
.workshop-footer > small { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid #e4dac6; color: #8b806b; font: 9px/1.5 ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; }

.job-main { min-height: calc(100vh - 76px); }
.job-heading, .job-content { max-width: 1160px; margin-inline: auto; padding-inline: 5vw; }
.job-heading { padding-top: 48px; padding-bottom: 24px; }
.back-link { display: inline-block; margin-bottom: 28px; color: var(--cocoa) !important; font: 600 10px/1.4 ui-monospace, monospace; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.job-heading .workshop-kicker { margin-bottom: 10px; }
.job-heading h1 { margin: 0; color: var(--forest); font-size: clamp(34px, 5vw, 58px); font-weight: 500; letter-spacing: -.045em; line-height: 1.05; overflow-wrap: anywhere; }
.job-description { margin: 12px 0 0; color: var(--cocoa); font-size: 14px; }
.job-content { padding-bottom: 48px; }
.job-content > h2 { margin: 34px 0 12px; color: var(--forest); font-size: 27px; font-weight: 500; letter-spacing: -.025em; }
.job-content .card { margin: 0 0 16px; padding: 18px; border: 1px solid var(--rule); border-radius: 0; background: #fbf7ed; box-shadow: 6px 7px 0 #eadfca; }
.job-content .chips { margin: 0 0 20px; }
.job-content .chips span { border-color: var(--rule); border-radius: 2px; background: var(--parchment); color: var(--forest); font: 10px/1.7 ui-monospace, monospace; letter-spacing: .04em; }
.job-content > .btn { margin-bottom: 18px; }
.job-content .warn { margin: 8px 0; padding: 12px 15px; border: 1px solid #e2d1ae; border-left: 3px solid #a57636; background: #f8efd9; color: #655535; }
.job-content .err { margin-top: 8px; border-left-color: var(--rust); background: #f4e5d9; color: #623a2c; }
.job-content .mut { color: #827863; }
.job-content img.prev { display: block; width: 100%; margin: 15px 0; border-color: var(--rule); border-radius: 0; }
.job-content table { font: 12px/1.5 system-ui, sans-serif; }
.job-content th { color: var(--cocoa); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }
.job-content td { color: var(--ink); }
.job-content .model-embed { display: block; width: 100%; height: min(70vh, 680px); min-height: 380px; margin: 12px 0 18px; border: 1px solid var(--rule); background: var(--parchment); }
.job-footer { margin-top: 0; }

.workshop-viewer { min-height: 100vh; background: var(--paper); color: var(--ink); font: 16px/1.5 "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; }
.workshop-viewer .viewer-edition { color: var(--cocoa); font: 600 10px/1.3 ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; }
.viewer-main { max-width: 1320px; margin: 0 auto; padding: 48px 5vw 72px; }
.viewer-heading { max-width: 720px; margin-bottom: 28px; }
.viewer-heading .workshop-kicker { margin-bottom: 10px; }
.viewer-heading h1 { margin: 0; color: var(--forest); font-size: clamp(36px, 5vw, 58px); font-weight: 500; letter-spacing: -.045em; line-height: 1.05; }
.viewer-heading > p:last-child { margin: 12px 0 0; color: #6d6758; font-size: 15px; line-height: 1.7; }
.viewer-panel { padding: 16px; border: 1px solid var(--rule); background: #fbf7ed; box-shadow: 10px 12px 0 #eadfca; }
.workshop-viewer .viewer-controls { display: grid; grid-template-columns: minmax(160px, auto) minmax(180px, 1fr) auto; gap: 10px 14px; align-items: center; padding: 2px 0 14px; }
.workshop-viewer .viewer-controls label { margin: 0; color: var(--forest); font-size: 13px; font-weight: 600; }
.workshop-viewer .viewer-controls select { width: 100%; min-width: 0; padding: 10px; border: 1px solid var(--rule); border-radius: 0; background: #fffdf7; color: var(--ink); font: 13px/1.4 system-ui, sans-serif; }
.workshop-viewer .viewer-controls button { width: auto; padding: 10px 14px; border: 1px solid var(--forest); border-radius: 0; background: var(--forest); color: var(--paper); font-size: 12px; }
.workshop-viewer .viewer-controls button span { margin-left: 9px; color: #d69a77; }
.workshop-viewer #status { grid-column: 1 / -1; min-height: 20px; color: var(--cocoa); font-size: 12px; }
.workshop-viewer .viewer-canvas { height: min(68vh, 720px); min-height: 380px; border: 1px solid #dacbad; background: var(--parchment); }
.workshop-viewer .viewer-canvas canvas { cursor: grab; }
.workshop-viewer .viewer-canvas canvas:active { cursor: grabbing; }
.viewer-caption { display: flex; justify-content: space-between; gap: 15px; margin: 12px 0 0; color: #8b806b; font: 9px/1.4 ui-monospace, monospace; letter-spacing: .1em; }
.viewer-back { margin: 30px 0 0; }

@media (max-width: 820px) {
  .workshop-nav { padding-inline: 20px; }
  .workshop-nav nav { gap: 15px; }
  .nav-cta { display: none; }
  .workshop-hero { min-height: 0; grid-template-columns: 1fr; gap: 38px; padding: 58px 24px; }
  .hero-art { min-height: 350px; }
  .workshop-section { padding: 58px 24px; }
  .workshop-form { grid-template-columns: 1fr; }
  .upload-drop { min-height: 200px; }
  .workflow-section { padding-inline: 24px; }
  .workshop-footer { padding-inline: 24px; }
  .job-heading, .job-content { padding-inline: 24px; }
  .viewer-main { padding-inline: 24px; }
  .workshop-viewer .viewer-controls { grid-template-columns: 1fr auto; }
  .workshop-viewer .viewer-controls label { grid-column: 1 / -1; }
  .workshop-viewer .viewer-controls select { grid-column: 1; }
  .workshop-viewer #status { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .workshop-nav { min-height: 64px; gap: 10px; padding-inline: 15px; }
  .brand-mark { width: 36px; height: 36px; }
  .workshop-brand small { max-width: 150px; font-size: 9px; }
  .workshop-nav nav { gap: 10px; }
  .workshop-nav nav a { font-size: 8px; letter-spacing: .04em; }
  .workshop-hero { padding: 48px 18px; }
  .workshop-hero h1 { font-size: clamp(38px, 11vw, 54px); }
  .hero-intro { font-size: 15px; }
  .hero-art { min-height: 285px; }
  .art-caption { font-size: 7px; }
  .workshop-section, .workflow-section { padding: 48px 18px; }
  .workshop-form { padding: 12px; }
  .field-grid-primary, .field-grid-secondary { grid-template-columns: 1fr 1fr; }
  .field-grid-primary > :first-child, .field-grid-primary > :nth-child(2) { grid-column: 1 / -1; }
  .workflow-grid { grid-template-columns: 1fr; }
  .workflow-step { min-height: 0; padding: 20px 0; }
  .workflow-step + .workflow-step { padding-left: 0; border-top: 1px solid #cfc09f; border-left: 0; }
  .workshop-footer { grid-template-columns: 1fr auto; gap: 12px; padding: 24px 18px; }
  .workshop-footer > p { grid-row: 2; grid-column: 1 / -1; margin: 0; }
  .workshop-footer > a:last-of-type { grid-row: 1; grid-column: 2; }
  .job-heading, .job-content { padding-inline: 18px; }
  .job-heading { padding-top: 32px; }
  .job-content .card { padding: 12px; }
  .job-content .model-embed { min-height: 320px; }
  .viewer-main { padding: 32px 18px 48px; }
  .workshop-viewer .workshop-nav { padding-inline: 15px; }
  .workshop-viewer .viewer-edition { display: none; }
  .viewer-panel { padding: 10px; }
  .workshop-viewer .viewer-controls { grid-template-columns: 1fr; }
  .workshop-viewer .viewer-controls label, .workshop-viewer .viewer-controls select,
  .workshop-viewer .viewer-controls button, .workshop-viewer #status { grid-column: 1; }
  .workshop-viewer .viewer-controls button { justify-self: start; }
  .workshop-viewer .viewer-canvas { min-height: 320px; }
  .viewer-caption { font-size: 7px; }
}
