:root {
  --paper:#f5f3ec;
  --surface:#fffdf7;
  --ink:#253d33;
  --text:#2c3731;
  --muted:#616b63;
  --accent:#965939;
  --rule:#d6d8cc;
  --sage:#e8ece2;
  --error:#9b3e35;
  --error-bg:#fff0e9;
  --success:#2d6248;
  --serif:"Songti SC","STSong","Noto Serif CJK SC","SimSun",Georgia,serif;
  --sans:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,sans-serif;
  --fast:160ms;
  --normal:280ms;
  --ease:cubic-bezier(.2,.7,.2,1);
  --content:1240px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--text);
  font:16px/1.8 var(--sans);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
button,a,input,textarea,summary {
  touch-action:manipulation
}
button,summary {
  cursor:pointer
}
button:disabled {
  cursor:not-allowed;
  opacity:.48
}
a,button {
  transition:color var(--fast),background var(--fast),border-color var(--fast),box-shadow var(--fast)
}
a:hover {
  color:var(--accent)
}
button:active,.btn:active {
  filter:brightness(.94)
}
:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
input:focus-visible,textarea:focus-visible {
  outline-offset:2px
}
svg {
  width:22px;
  height:22px;
  flex-shrink:0;
  vertical-align:middle
}
p {
  margin:0 0 1em
}
h1,h2,h3,h4 {
  color:var(--ink);
  line-height:1.4;
  margin:0;
  font-weight:500
}
h1,h2 {
  font-family:var(--serif);
  text-wrap:balance
}
h1 {
  font-size:clamp(34px,4.1vw,58px);
  letter-spacing:-.03em
}
h2 {
  font-size:clamp(29px,3vw,40px);
  letter-spacing:-.025em
}
h3 {
  font-size:21px
}
h4 {
  font-size:17px
}
img {
  max-width:100%;
  display:block
}
figure {
  margin:0
}
ul {
  padding:0;
  list-style:none
}
dl {
  margin:0
}
dd {
  margin:0
}
button {
  border:0
}
input,textarea {
  width:100%;
  border:1px solid #7e8979;
  border-radius:3px;
  background:var(--surface);
  color:var(--text);
  padding:13px 16px;
  transition:border-color var(--fast),box-shadow var(--fast)
}
textarea {
  min-height:178px;
  resize:vertical
}
input:hover,textarea:hover {
  border-color:var(--ink)
}
input:focus,textarea:focus {
  border-color:var(--ink);
  box-shadow:0 0 0 3px #253d3310
}
input::placeholder,textarea::placeholder {
  color:#767d72
}
input[aria-invalid=true],textarea[aria-invalid=true] {
  border-color:var(--error)
}
[hidden] {
  display:none!important
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  top:-80px;
  left:16px;
  background:var(--ink);
  color:white;
  z-index:100;
  padding:12px
}
.skip-link:focus {
  top:12px
}
.wrap {
  max-width:var(--content);
  margin:0 auto;
  padding:0 32px
}
.eyebrow {
  font-size:11px;
  font-weight:500;
  letter-spacing:.15em;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:22px
}
.serif-accent {
  color:var(--accent)
}
.muted,.hint {
  color:var(--muted)
}
.hint {
  font-size:13px;
  line-height:1.8;
  margin:8px 0 0
}
.text-link {
  display:inline-flex;
  gap:16px;
  align-items:center;
  min-height:44px;
  font-size:14px;
  color:var(--ink)
}
.text-link svg {
  width:18px
}
.btn,button.primary-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  min-height:50px;
  padding:12px 24px;
  background:var(--ink);
  border:1px solid var(--ink);
  color:var(--surface);
  font-size:14px;
  letter-spacing:.02em;
  border-radius:3px;
  cursor:pointer
}
.btn:hover,button.primary-action:hover:not(:disabled) {
  background:#3d5343;
  color:var(--surface);
  border-color:#3d5343
}
.btn svg {
  width:18px
}
.btn.secondary,button.secondary {
  background:transparent;
  color:var(--ink);
  border:1px solid #aeb9ab;
  min-height:46px;
  padding:10px 20px;
  border-radius:3px
}
.btn.secondary:hover,button.secondary:hover:not(:disabled) {
  background:var(--sage)
}
.btn.light {
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper)
}
.btn.light:hover {
  background:#e6eadb
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  border-bottom:1px solid var(--rule);
  background:#f5f3ecf5;
  backdrop-filter:blur(12px)
}
.header-inner {
  max-width:var(--content);
  padding:0 32px;
  margin:auto;
  min-height:95px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.brand {
  display:flex;
  gap:13px;
  align-items:center;
  color:var(--ink)
}
.brand-symbol {
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:44px
}
.brand-symbol svg {
  width:35px;
  height:35px;
  stroke-width:1.2
}
.brand-name {
  font-family:Georgia,var(--serif);
  font-size:26px;
  line-height:1.15;
  letter-spacing:-1px
}
.brand-descriptor {
  display:block;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.19em;
  margin-top:8px;
  font-weight:400
}
.site-nav {
  display:flex;
  gap:28px;
  align-items:center
}
.site-nav>a {
  font-size:13px;
  min-height:44px;
  display:flex;
  align-items:center;
  position:relative;
  white-space:nowrap
}
.site-nav>a[aria-current=page]:not(.nav-action):after {
  content:"";
  height:2px;
  left:0;
  right:0;
  bottom:1px;
  position:absolute;
  background:var(--accent)
}
.site-nav .nav-action {
  border:1px solid var(--ink);
  border-radius:3px;
  padding:6px 17px;
  gap:22px;
  color:var(--ink);
  margin-left:6px
}
.site-nav .nav-action:hover,.site-nav .nav-action[aria-current=page] {
  background:var(--ink);
  color:var(--paper)
}
.nav-action svg {
  width:17px
}
.menu-toggle {
  display:none;
  background:transparent;
  color:var(--ink);
  width:44px;
  height:44px
}
.hero {
  display:grid;
  grid-template-columns:1.03fr 1fr;
  gap:44px;
  align-items:center;
  padding:60px 0 53px
}
.hero-copy {
  padding:18px 0 12px
}
.hero .eyebrow {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:11px;
  letter-spacing:.12em;
  margin-bottom:27px
}
.tiny-line {
  display:block;
  background:var(--accent);
  height:1px;
  width:28px
}
.hero h1 {
  font-size:clamp(37px,3.75vw,53px);
  line-height:1.5;
  letter-spacing:-.035em
}
.hero-deck {
  font-size:15px;
  color:var(--muted);
  line-height:2.05;
  margin:25px 0 29px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:wrap
}
.hero-meta {
  display:flex;
  gap:23px;
  margin-top:29px;
  font-size:11px;
  color:var(--muted)
}
.hero-meta span {
  display:flex;
  gap:6px;
  align-items:center
}
.hero-meta svg {
  width:13px;
  height:13px
}
.hero-demo {
  display:flex;
  gap:7px;
  align-items:center;
  color:var(--muted);
  font-size:11px;
  margin:14px 0 0
}
.mode-dot {
  height:6px;
  width:6px;
  border-radius:100%;
  background:var(--accent);
  display:inline-block;
  flex-shrink:0
}
.hero-art {
  position:relative;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0
}
.hero-art img {
  aspect-ratio:1.18;
  object-fit:cover;
  width:100%;
  border-radius:150px 150px 3px 3px;
  filter:saturate(.8)
}
.art-topline {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font:10px/1.5 Georgia,serif;
  letter-spacing:.14em;
  padding:0 2px 15px
}
.hero-art figcaption {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  font-size:10px;
  letter-spacing:.02em;
  padding:16px 0 0;
  color:var(--muted)
}
.hero-art figcaption span:last-child {
  font:9px/1.5 Georgia,serif;
  letter-spacing:.07em
}
.editorial-strip {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  padding:23px 0;
  font-size:12px;
  color:var(--muted)
}
.editorial-strip>span {
  color:var(--ink);
  font-family:var(--serif);
  font-size:16px
}
.editorial-strip p {
  margin:0
}
.editorial-strip i {
  font-style:normal;
  color:#a5ada0;
  padding:0 20px
}
.editorial-strip>a {
  display:flex;
  align-items:center;
  gap:16px;
  min-height:44px
}
.editorial-strip svg {
  width:16px
}
.section-space {
  padding:84px 0
}
.heading-split {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:36px;
  margin-bottom:40px
}
.heading-split>p,.heading-split>div>p:not(.eyebrow) {
  font-size:14px;
  line-height:1.95;
  color:var(--muted);
  max-width:370px;
  margin-bottom:6px
}
.section-heading {
  margin-bottom:40px
}
.section-heading>p:not(.eyebrow) {
  font-size:15px;
  color:var(--muted);
  margin-top:18px;
  max-width:600px
}
.value-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--rule);
  border-radius:3px;
  background:#f8f7f1
}
.value-grid article {
  padding:30px;
  border-right:1px solid var(--rule)
}
.value-grid article:last-child {
  border:0
}
.card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--muted);
  font:10px Georgia,serif;
  letter-spacing:.06em;
  margin-bottom:31px
}
.card-top svg {
  color:var(--ink);
  width:27px;
  height:27px
}
.value-grid h3 {
  font-family:var(--serif);
  font-size:23px;
  margin-bottom:13px
}
.value-grid p {
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
  margin:0
}
.home-sample {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:84px;
  align-items:center;
  padding-top:12px
}
.sample-teaser {
  background:var(--sage);
  padding:40px 44px 28px;
  position:relative;
  border-radius:3px
}
.mini-paper {
  padding:30px;
  background:var(--surface);
  box-shadow:0 7px 25px #253d3310;
  transform:rotate(-2deg);
  border:1px solid var(--rule)
}
.paper-masthead {
  font-size:10px;
  letter-spacing:.1em;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding-bottom:14px;
  border-bottom:1px solid var(--rule);
  margin-bottom:26px;
  color:var(--muted)
}
.paper-masthead span:last-child {
  font-size:9px
}
.mini-paper>.eyebrow {
  font-size:10px;
  letter-spacing:.05em;
  margin-bottom:13px
}
.mini-paper .preview-title {
  font-family:var(--serif);
  font-size:27px;
  line-height:1.5
}
.mini-lead {
  font-size:12px;
  color:var(--muted);
  margin-top:15px
}
.paper-rule {
  border-top:1px solid var(--rule);
  margin:23px 0
}
.mini-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}
.mini-columns span {
  font-size:10px;
  color:var(--accent)
}
.mini-columns h3 {
  font-family:var(--serif);
  margin:4px 0
}
.mini-columns p {
  font-size:10px;
  color:var(--muted)
}
.mini-objection {
  background:#eff0e8;
  padding:11px;
  font-size:11px;
  margin:12px 0 18px;
  color:var(--ink)
}
.paper-disclaimer {
  font-size:10px;
  color:var(--muted);
  margin:20px 0 0
}
.sample-intro>p:not(.eyebrow):not(.hint) {
  margin:25px 0 20px;
  color:var(--muted);
  font-size:15px;
  line-height:2
}
.format-tags {
  display:flex;
  gap:10px;
  margin:24px 0
}
.format-tags span,.tag {
  border:1px solid var(--rule);
  border-radius:2px;
  padding:4px 10px;
  font-size:11px;
  color:var(--ink)
}
.sample-intro .hint {
  max-width:350px;
  font-size:11px
}
.home-process {
  border-top:1px solid var(--rule);
  padding-top:70px
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px
}
.process-grid article {
  border-top:1px solid var(--rule);
  padding-top:18px
}
.process-grid article>span {
  font:italic 26px Georgia,serif;
  color:var(--accent)
}
.process-grid h3 {
  font-family:var(--serif);
  font-size:21px;
  margin:22px 0 11px
}
.process-grid p {
  color:var(--muted);
  font-size:13px;
  line-height:1.9;
  margin:0
}
.method-boundary {
  font-size:12px;
  color:var(--muted);
  margin:33px 0 0;
  padding-top:17px;
  border-top:1px solid var(--rule)
}
.closing-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  background:var(--ink);
  color:var(--paper);
  padding:48px 58px;
  border-radius:3px;
  margin:0 0 80px;
  position:relative;
  overflow:hidden
}
.closing-cta:after {
  content:"";
  width:270px;
  height:270px;
  border:1px solid #f5f3ec18;
  border-radius:50%;
  position:absolute;
  right:20%;
  top:-40px;
  pointer-events:none
}
.closing-cta h2 {
  color:var(--paper);
  font-size:36px;
  line-height:1.5
}
.closing-cta .eyebrow {
  color:#c3caba;
  font-size:10px;
  margin-bottom:17px
}
.closing-cta .btn {
  z-index:1;
  flex-shrink:0
}
.closing-cta.compact {
  margin-top:65px;
  padding:35px 40px
}
.closing-cta.compact h2 {
  font-size:28px
}
.footer {
  border-top:1px solid var(--rule);
  background:#eeefe6
}
.footer-inner {
  max-width:var(--content);
  margin:auto;
  padding:44px 32px 24px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding-bottom:34px;
  border-bottom:1px solid var(--rule)
}
.footer-brand {
  font:27px Georgia,serif;
  letter-spacing:-.8px;
  color:var(--ink)
}
.footer-brand span {
  display:block;
  margin-top:12px;
  font:11px var(--sans);
  letter-spacing:.15em;
  color:var(--muted)
}
.footer-top>p {
  font-family:var(--serif);
  font-size:18px;
  margin:0
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:24px 0
}
.footer-bottom p {
  font-size:11px;
  color:var(--muted);
  margin:0 0 6px;
  line-height:1.8
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:23px;
  font-size:12px;
  align-items:flex-start;
  min-width:210px
}
.footer-links a {
  min-height:44px;
  display:flex;
  align-items:center
}
.footer-signoff {
  display:flex;
  justify-content:space-between;
  letter-spacing:.14em;
  font:9px Georgia,serif;
  color:var(--muted);
  padding-top:18px;
  border-top:1px solid var(--rule);
  margin:0
}
.footer-signoff span {
  font:10px var(--sans);
  letter-spacing:.02em
}
/* Publication pages */
.masthead {
  padding:56px 0 38px;
  max-width:900px
}
.masthead .eyebrow {
  margin-bottom:17px;
  font-size:10px
}
.masthead h1 {
  font-size:clamp(31px,3.5vw,46px);
  line-height:1.5
}
.masthead .deck {
  margin:19px 0 0;
  color:var(--muted);
  font-size:15px;
  line-height:1.95;
  max-width:730px
}
.demo-note {
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:15px 20px;
  background:var(--sage);
  border:1px solid var(--rule);
  border-radius:3px;
  font-size:12px;
  color:var(--muted);
  margin:0 0 27px
}
.demo-note strong {
  color:var(--ink);
  white-space:nowrap;
  font-weight:500
}
.demo-note .mode-dot {
  align-self:center
}
.service-overview {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:75px;
  padding:36px 0 56px;
  border-bottom:1px solid var(--rule)
}
.service-overview h2 {
  font-size:32px
}
.service-overview p:not(.eyebrow) {
  font-size:15px;
  color:var(--muted);
  margin:20px 0;
  max-width:510px
}
.service-facts {
  padding:12px 0
}
.service-facts>div {
  display:grid;
  grid-template-columns:90px 1fr;
  gap:25px;
  padding:17px 0;
  border-bottom:1px solid var(--rule);
  font-size:14px
}
.service-facts dt {
  color:var(--muted);
  font-size:12px
}
.method-section {
  padding-bottom:0
}
.method-list {
  padding:0;
  list-style:none
}
.method-list li {
  display:grid;
  grid-template-columns:72px 1fr 100px;
  gap:24px;
  align-items:start;
  border-top:1px solid var(--rule);
  padding:27px 0
}
.method-number {
  font:italic 27px Georgia,serif;
  color:var(--accent)
}
.method-list h3 {
  font-family:var(--serif);
  font-size:25px
}
.method-list p {
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
  margin:10px 0 0;
  max-width:680px
}
.method-output {
  color:var(--muted);
  font-size:12px;
  padding-top:7px;
  text-align:right
}
.source-section {
  padding-bottom:0
}
.source-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.source-options article {
  border:1px solid var(--rule);
  padding:30px;
  background:var(--surface);
  border-radius:3px
}
.source-tag {
  font-size:12px;
  color:var(--accent)
}
.source-options h3 {
  font-family:var(--serif);
  font-size:25px;
  margin:15px 0
}
.source-options p {
  font-size:14px;
  color:var(--muted)
}
.source-options .source-limit {
  font-size:12px;
  margin:20px 0 0;
  padding-top:16px;
  border-top:1px solid var(--rule)
}
.source-boundary {
  font-size:13px;
  color:var(--muted);
  margin:22px 0 0
}
.questions-section {
  padding:0!important
}
.question-list {
  border-top:1px solid var(--rule)
}
details>summary {
  min-height:52px;
  list-style:none;
  position:relative;
  padding-right:42px;
  display:flex;
  align-items:center;
  gap:15px
}
details>summary::-webkit-details-marker {
  display:none
}
details>summary:after {
  content:"+";
  position:absolute;
  right:12px;
  font:23px Georgia,serif;
  color:var(--accent)
}
details[open]>summary:after {
  content:"−"
}
.question-list details {
  border-bottom:1px solid var(--rule);
  padding:8px 0
}
.question-list summary {
  font-family:var(--serif);
  font-size:19px
}
.question-list details p {
  font-size:14px;
  line-height:2;
  max-width:840px;
  margin:4px 40px 22px 0;
  color:var(--muted)
}
.question-list a,.terms-short a,.hint a,.source-source a {
  border-bottom:1px solid currentColor
}
.sample-notice {
  padding:17px 20px;
  display:flex;
  align-items:center;
  gap:18px;
  background:var(--sage);
  margin:0 0 38px;
  border:1px solid var(--rule);
  border-radius:3px
}
.sample-notice p {
  font-size:12px;
  margin:0;
  color:var(--muted)
}
.sample-notice .tag {
  flex-shrink:0
}
.sample-layout {
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:60px;
  align-items:start
}
.sample-paper {
  background:var(--surface);
  padding:38px 42px;
  border:1px solid var(--rule);
  box-shadow:0 12px 30px #253d3306
}
.sample-label {
  font-size:11px;
  color:var(--muted)
}
.sample-paper>h2 {
  font-family:var(--serif);
  font-size:30px;
  line-height:1.6;
  margin:14px 0 24px
}
.sample-block {
  padding:17px 0;
  border-top:1px solid var(--rule)
}
.sample-block h3,.sample-source h3 {
  font-family:var(--serif);
  font-size:19px;
  margin:0 0 9px
}
.sample-block p,.sample-source p {
  font-size:14px;
  line-height:1.95;
  margin:0
}
.sample-challenge {
  background:var(--sage);
  padding:20px;
  margin:6px -12px 10px;
  border:0
}
.sample-block .sample-caveat {
  font-size:12px;
  color:var(--muted);
  margin:10px 0 0
}
.sample-source {
  border-top:1px solid var(--rule);
  padding-top:20px;
  color:var(--muted)
}
.sample-source p {
  font-size:12px
}
.sample-notes {
  position:sticky;
  top:136px;
  padding-top:10px
}
.sample-notes>h2 {
  font-family:var(--serif);
  font-size:32px;
  line-height:1.5;
  margin-bottom:30px
}
.sample-notes dl>div {
  border-top:1px solid var(--rule);
  padding:18px 0
}
.sample-notes dt {
  font-size:15px;
  color:var(--ink);
  margin-bottom:8px
}
.sample-notes dd {
  font-size:13px;
  color:var(--muted)
}
.sample-downloads {
  display:flex;
  flex-direction:column;
  gap:13px;
  align-items:flex-start;
  margin:20px 0
}
.sample-notes .hint {
  font-size:12px;
  max-width:350px
}
/* Research commission */
.commission-steps {
  display:flex;
  gap:28px;
  padding:0 0 22px;
  border-bottom:1px solid var(--rule);
  font-size:12px;
  color:var(--muted);
  margin-bottom:26px
}
.commission-steps .active {
  color:var(--ink)
}
.checkout-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:54px;
  align-items:start
}
.form-fields {
  min-width:0
}
.form-section {
  padding:22px 0 30px;
  border-bottom:1px solid var(--rule)
}
.form-section:first-child {
  padding-top:4px
}
.form-section h2 {
  display:flex;
  gap:12px;
  align-items:center;
  font-family:var(--serif);
  font-size:24px;
  margin:0 0 21px
}
.section-number {
  font:italic 18px Georgia,serif;
  color:var(--accent)
}
.optional {
  font:11px var(--sans);
  padding:4px 8px;
  border:1px solid var(--rule);
  color:var(--muted);
  margin-left:2px
}
.form-section label:not(.file-picker) {
  font-size:13px;
  display:block;
  margin-bottom:8px;
  color:var(--muted)
}
.field-meta {
  display:flex;
  gap:16px;
  justify-content:space-between;
  align-items:baseline
}
.field-meta .hint {
  font-size:12px
}
.char-count {
  font-size:11px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  color:var(--muted)
}
.field-error {
  color:var(--error);
  font-size:13px;
  margin:8px 0
}
.drop-zone {
  background:#fafaf5;
  border:1px dashed #a0ad9c;
  border-radius:3px;
  padding:25px 24px;
  text-align:center;
  transition:background var(--fast),border var(--fast)
}
.drop-zone.dragover {
  background:var(--sage);
  border-color:var(--ink)
}
.drop-zone:focus-within {
  border-style:solid;
  border-color:var(--accent);
  box-shadow:0 0 0 2px #96593915
}
.upload-icon {
  color:var(--muted);
  margin-bottom:10px
}
.upload-icon svg {
  width:28px;
  height:28px
}
.file-control {
  display:flex;
  gap:16px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap
}
.file-picker {
  color:var(--ink);
  background:var(--sage);
  border:1px solid #aeb9ab;
  cursor:pointer;
  padding:8px 18px;
  border-radius:3px;
  min-height:44px;
  font-size:13px
}
.file-picker:hover {
  background:#dce3d3
}
.file-picker-note {
  font-size:12px;
  color:var(--muted)
}
.drop-zone .hint {
  font-size:11px;
  max-width:520px;
  margin:15px auto 0;
  line-height:1.85
}
.file-list {
  margin:15px 0 0
}
.file-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:13px 15px;
  border:1px solid var(--rule);
  background:var(--surface);
  margin:8px 0;
  border-radius:3px
}
.file-row>div {
  min-width:0
}
.file-name {
  display:block;
  font-size:13px;
  overflow-wrap:anywhere
}
.file-detail {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:3px
}
.file-row.is-error {
  border-color:#cdada0;
  background:var(--error-bg)
}
.file-row .field-error {
  color:var(--error)
}
.linkish {
  color:var(--ink);
  background:transparent;
  font-size:12px;
  padding:10px;
  min-height:44px;
  white-space:nowrap
}
.linkish:hover {
  color:var(--accent);
  background:var(--sage)
}
.file-summary {
  display:flex;
  justify-content:space-between;
  align-items:center
}
.source-note {
  font-size:12px;
  color:var(--muted);
  padding:13px 0 0;
  margin:0
}
.order-summary {
  position:sticky;
  top:125px;
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:4px;
  padding:27px 25px
}
.order-summary .eyebrow {
  font-size:11px;
  margin-bottom:13px
}
.order-summary h2 {
  font-family:var(--serif);
  font-size:26px
}
.deliverables {
  margin:18px 0 23px;
  font-size:12px;
  color:var(--muted)
}
.deliverables li {
  padding:5px 0 5px 19px;
  position:relative
}
.deliverables li:before {
  content:"✓";
  position:absolute;
  left:0;
  color:var(--ink)
}
.price-card {
  padding:20px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  margin-bottom:22px;
  min-height:138px
}
.price-label {
  font-size:11px;
  color:var(--muted)
}
.amount {
  font:38px/1.5 Georgia,serif;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  margin:5px 0
}
.price-card .hint {
  font-size:11px;
  min-height:24px;
  margin:0
}
.primary-action {
  width:100%
}
.estimate-action {
  background:transparent;
  color:var(--ink);
  border:0;
  min-height:44px;
  width:100%;
  font-size:12px;
  margin-top:6px
}
.estimate-action:hover:not(:disabled) {
  background:var(--sage)
}
.terms-short {
  font-size:11px;
  color:var(--muted);
  line-height:1.85;
  margin:17px 0 0
}
.commission-footnote {
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:27px 0 40px;
  max-width:730px
}
.commission-footnote svg {
  color:var(--muted);
  width:18px
}
.commission-footnote p {
  color:var(--muted);
  font-size:12px;
  margin:0
}
.commission-footnote a {
  text-decoration:underline
}
.flash {
  padding:16px 20px;
  background:var(--sage);
  border:1px solid var(--rule);
  border-radius:3px;
  margin:18px 0;
  font-size:14px;
  color:var(--ink);
  overflow-wrap:anywhere
}
.flash.error {
  background:var(--error-bg);
  border-color:#cdada0;
  color:var(--error)
}
.flash h2 {
  font-size:23px;
  margin-bottom:10px
}
.flash a {
  text-decoration:underline
}
.resend-section {
  padding:18px 24px;
  background:#f0f1e8;
  border:1px solid var(--rule);
  margin:30px 0 65px;
  border-radius:3px
}
.resend-section>summary {
  font-family:var(--serif);
  font-size:21px
}
.resend-section>.hint {
  margin:7px 0 20px
}
.resend-row {
  display:flex;
  gap:13px;
  align-items:end
}
.resend-row input {
  flex:1;
  min-width:0
}
.resend-form label {
  display:block;
  font-size:13px;
  margin:12px 0 8px
}
.resend-form .sr-only {
  display:block
}
.resend-form button {
  white-space:nowrap
}
.resend-specific {
  margin-top:18px;
  border-top:1px solid var(--rule)
}
.resend-specific summary {
  font-size:13px
}
.resend-specific input {
  max-width:520px
}
/* Private research desk */
.progress-grid {
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:36px;
  align-items:start
}
.lookup-card {
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:3px;
  padding:33px 36px
}
.lookup-card h2 {
  font-size:31px;
  margin:0 0 17px
}
.lookup-card>.muted {
  font-size:14px;
  max-width:540px
}
.lookup-card label {
  display:block;
  font-size:13px;
  margin:23px 0 9px
}
.lookup-card .btn {
  margin-top:21px
}
.lookup-card .hint {
  font-size:12px
}
.lookup-aside {
  background:var(--sage);
  padding:32px;
  border-radius:3px
}
.lookup-aside>svg {
  width:28px;
  height:28px;
  color:var(--ink);
  margin-bottom:15px
}
.lookup-aside h2 {
  font-family:var(--serif);
  font-size:25px;
  margin:0 0 14px
}
.lookup-aside p {
  font-size:13px;
  color:var(--muted)
}
.lookup-aside dl {
  display:flex;
  gap:40px;
  border-top:1px solid #ccd3c3;
  border-bottom:1px solid #ccd3c3;
  padding:17px 0;
  margin:23px 0
}
.lookup-aside dt {
  font-size:11px;
  color:var(--muted)
}
.lookup-aside dd {
  font-family:var(--serif);
  font-size:26px;
  color:var(--ink);
  margin-top:4px
}
.progress-help {
  padding:0 0 65px
}
.progress-help h2 {
  font-family:var(--serif);
  font-size:23px
}
.progress-help p {
  font-size:13px;
  color:var(--muted);
  margin:12px 0
}
.progress-help .text-link {
  margin-right:30px
}
.status-toolbar {
  display:flex;
  gap:22px;
  align-items:center;
  border-bottom:1px solid var(--rule);
  padding-bottom:16px;
  margin-bottom:30px;
  font-size:12px
}
.status-toolbar .linkish {
  margin-left:auto
}
.status-toolbar #copy-feedback {
  color:var(--muted);
  font-size:11px
}
.status-page .masthead {
  padding-bottom:30px
}
.status-page #status-page {
  max-width:870px;
  margin:auto
}
.status-hero {
  background:var(--sage);
  padding:28px 32px;
  border-radius:3px;
  border:1px solid var(--rule);
  margin-bottom:28px
}
.status-hero .eyebrow {
  margin-bottom:9px
}
.status-hero h2 {
  font-size:31px;
  margin:0 0 15px
}
.status-description {
  color:var(--muted);
  font-size:14px;
  margin:0
}
.status-order {
  padding:17px 0 26px;
  border-bottom:1px solid var(--rule);
  margin-bottom:26px
}
.status-order h2 {
  font-size:14px;
  font-family:var(--sans);
  color:var(--muted);
  margin-bottom:15px
}
.order-topic {
  font-family:var(--serif);
  font-size:22px;
  line-height:1.7;
  overflow-wrap:anywhere;
  margin-bottom:18px
}
.order-facts {
  display:flex;
  gap:18px 48px;
  flex-wrap:wrap
}
.order-facts>div {
  min-width:0
}
.order-facts dt {
  font-size:11px;
  color:var(--muted);
  margin-bottom:4px
}
.order-facts dd {
  font-size:12px;
  overflow-wrap:anywhere
}
.download-box {
  background:var(--surface);
  border:1px solid var(--rule);
  padding:29px 32px;
  border-radius:3px;
  margin:24px 0
}
.download-box h2 {
  font-size:30px;
  margin-bottom:15px
}
.download-box p {
  font-size:14px;
  color:var(--muted)
}
.download-box .btn {
  margin:8px 8px 8px 0
}
.download-box .hint {
  font-size:12px
}
.connection-message {
  background:#f1e9d8;
  padding:20px 24px;
  border:1px solid #c7ba9b;
  border-radius:3px;
  margin-bottom:24px
}
.connection-message p {
  font-size:14px;
  margin-bottom:12px
}
.work-steps {
  border-bottom:1px solid var(--rule);
  padding-bottom:12px;
  margin-bottom:35px
}
.work-steps>summary {
  font-family:var(--serif);
  font-size:22px
}
.stage-list {
  list-style:none;
  padding:0;
  margin:12px 0 20px
}
.stage-list li {
  display:flex;
  align-items:center;
  gap:17px;
  padding:14px 18px;
  margin:4px 0;
  font-size:14px;
  color:var(--muted)
}
.stage-mark {
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #afb9a6;
  border-radius:50%;
  width:30px;
  height:30px;
  font:13px Georgia,serif;
  flex-shrink:0
}
.stage-state {
  font-size:12px;
  margin-left:auto
}
.stage-list .now {
  background:var(--sage);
  color:var(--ink);
  border-radius:3px
}
.stage-list .now .stage-mark {
  background:var(--ink);
  color:var(--surface);
  border-color:var(--ink)
}
.stage-list .done-mark {
  color:var(--ink)
}
.stage-list .done-mark .stage-mark {
  border-color:var(--ink)
}
.status-recovery {
  display:flex;
  gap:15px;
  flex-wrap:wrap;
  margin:22px 0
}
.section {
  padding:12px 0 45px;
  max-width:820px
}
.section>h2 {
  font-size:27px;
  margin:25px 0 15px
}
.section>p {
  font-size:15px;
  color:var(--muted);
  line-height:2
}
.section a {
  text-decoration:underline
}
@media(min-width:1440px) {
  .hero {
    padding:70px 0 64px;
    gap:62px
  }
  .hero h1 {
    font-size:56px
  }
  .hero-art img {
    aspect-ratio:1.18
  }
  .hero-deck {
    font-size:16px
  }
}
@media(max-width:1100px) {
  .site-nav {
    gap:19px
  }
  .brand-name {
    font-size:24px
  }
  .hero {
    gap:24px
  }
  .hero h1 {
    font-size:42px
  }
  .hero-deck {
    font-size:14px
  }
  .hero-actions {
    gap:12px
  }
  .hero-actions .btn {
    padding:12px 18px;
    gap:12px
  }
  .hero-meta {
    gap:13px
  }
  .home-sample {
    gap:50px
  }
  .sample-teaser {
    padding:32px 25px
  }
  .editorial-strip i {
    padding:0 10px
  }
  .checkout-layout {
    gap:32px;
    grid-template-columns:minmax(0,1fr) 300px
  }
  .value-grid article {
    padding:25px
  }
  .sample-layout {
    gap:35px
  }
  .sample-paper {
    padding:30px
  }
  .service-overview {
    gap:42px
  }
  .hero-art figcaption span:last-child {
    display:none
  }
}
@media(max-width:820px) {
  .header-inner {
    min-height:80px;
    padding:0 24px
  }
  .wrap {
    padding:0 24px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    justify-content:center
  }
  .site-nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:var(--paper);
    border-bottom:1px solid var(--rule);
    padding:18px 24px 25px;
    box-shadow:0 15px 20px #253d330a
  }
  .site-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:8px
  }
  .site-nav>a {
    padding:8px 12px;
    font-size:14px
  }
  .site-nav>a[aria-current=page]:not(.nav-action):after {
    display:none
  }
  .site-nav>a[aria-current=page]:not(.nav-action) {
    background:var(--sage);
    color:var(--ink);
    border-radius:3px
  }
  .site-nav .nav-action {
    margin:8px 0 0;
    justify-content:space-between;
    min-height:48px
  }
  .hero {
    padding:42px 0;
    gap:24px
  }
  .hero h1 {
    font-size:35px;
    line-height:1.6
  }
  .hero-deck {
    font-size:14px
  }
  .desktop-only {
    display:none
  }
  .hero-actions {
    display:flex;
    gap:16px;
    flex-wrap:wrap
  }
  .hero-actions>.text-link {
    margin-top:0
  }
  .hero-art img {
    aspect-ratio:.88;
    border-radius:90px 90px 3px 3px
  }
  .hero-meta {
    display:block
  }
  .hero-meta>span {
    margin:8px 0
  }
  .hero-demo {
    line-height:1.7;
    align-items:baseline
  }
  .hero-art figcaption {
    font-size:9px
  }
  .editorial-strip {
    flex-wrap:wrap;
    gap:8px;
    padding:17px 0
  }
  .editorial-strip p {
    order:3;
    width:100%;
    font-size:11px
  }
  .editorial-strip>span {
    font-size:15px
  }
  .section-space {
    padding:60px 0
  }
  .heading-split {
    gap:24px
  }
  .heading-split>p {
    font-size:13px;
    max-width:290px
  }
  .value-grid article {
    padding:21px
  }
  .value-grid h3 {
    font-size:21px
  }
  .value-grid p {
    font-size:13px
  }
  .card-top span {
    font-size:8px
  }
  .home-sample {
    gap:28px;
    padding-top:5px
  }
  .sample-teaser {
    padding:25px 19px
  }
  .mini-paper {
    padding:20px
  }
  .mini-paper .preview-title {
    font-size:22px
  }
  .paper-masthead span {
    display:none
  }
  .sample-intro h2 {
    font-size:29px
  }
  .sample-intro>p:not(.eyebrow):not(.hint) {
    font-size:14px
  }
  .process-grid {
    gap:24px
  }
  .process-grid h3 {
    font-size:19px
  }
  .closing-cta {
    padding:35px;
    margin-bottom:60px
  }
  .closing-cta h2 {
    font-size:29px
  }
  .closing-cta .btn {
    padding:12px 17px;
    gap:16px
  }
  .footer-inner {
    padding:35px 24px 20px
  }
  .footer-bottom {
    flex-direction:column;
    gap:12px
  }
  .footer-top>p {
    font-size:15px
  }
  .checkout-layout {
    grid-template-columns:1fr;
    gap:26px
  }
  .order-summary {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:28px;
    align-items:start
  }
  .order-summary>.eyebrow,.order-summary>h2,.order-summary>.deliverables {
    grid-column:1
  }
  .order-summary>.price-card {
    grid-column:2;
    grid-row:1 / 4;
    margin:0 0 16px;
    min-height:0
  }
  .order-summary>.primary-action,.order-summary>.estimate-action,.order-summary>.terms-short {
    grid-column:1 / 3
  }
  .deliverables {
    margin-bottom:10px
  }
  .sample-layout {
    grid-template-columns:1fr
  }
  .sample-notes {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:35px
  }
  .sample-notes>.eyebrow,.sample-notes>h2 {
    grid-column:1
  }
  .sample-notes>dl {
    grid-column:2;
    grid-row:1/5
  }
  .sample-notes>.sample-downloads,.sample-notes>.hint {
    grid-column:1
  }
  .service-overview {
    gap:25px
  }
  .service-overview h2 {
    font-size:29px
  }
  .source-options article {
    padding:24px
  }
  .source-options h3 {
    font-size:22px
  }
  .progress-grid {
    gap:24px;
    grid-template-columns:1.2fr .8fr
  }
  .lookup-card,.lookup-aside {
    padding:25px
  }
  .lookup-aside dl {
    gap:22px;
    flex-wrap:wrap
  }
  .masthead {
    padding-top:40px
  }
  .masthead h1 {
    font-size:37px
  }
  .closing-cta.compact {
    padding:30px
  }
  .closing-cta.compact h2 {
    font-size:25px
  }
}
@media(max-width:600px) {
  html {
    scroll-padding-top:90px
  }
  .wrap {
    padding:0 22px
  }
  .header-inner {
    padding:0 22px;
    min-height:77px
  }
  .brand-name {
    font-size:25px
  }
  .brand-descriptor {
    font-size:11px
  }
  .brand-symbol {
    width:30px
  }
  .brand-symbol svg {
    width:30px;
    height:30px
  }
  .brand {
    gap:10px
  }
  .hero {
    grid-template-columns:1fr;
    padding:37px 0 31px;
    gap:27px
  }
  .hero-copy {
    padding:0
  }
  .hero .eyebrow {
    font-size:9px;
    gap:9px;
    margin-bottom:24px
  }
  .hero h1 {
    font-size:38px;
    line-height:1.55
  }
  .hero-deck {
    font-size:15px;
    line-height:1.95;
    margin:21px 0 24px
  }
  .hero-actions {
    display:flex;
    gap:14px
  }
  .hero-actions .btn {
    min-height:49px;
    font-size:13px;
    padding:10px 16px
  }
  .hero-actions .text-link {
    font-size:12px;
    margin:0;
    gap:8px
  }
  .hero-meta {
    display:flex;
    gap:16px;
    margin-top:21px;
    font-size:10px
  }
  .hero-meta>span {
    margin:0
  }
  .hero-demo {
    font-size:10px;
    margin-top:12px
  }
  .hero-art {
    max-width:100%
  }
  .art-topline {
    font-size:9px;
    padding-bottom:11px
  }
  .hero-art img {
    aspect-ratio:1.3;
    border-radius:100px 100px 2px 2px
  }
  .hero-art figcaption {
    font-size:10px;
    padding-top:13px
  }
  .hero-art figcaption span:last-child {
    display:block;
    font-size:7px
  }
  .editorial-strip>span {
    font-size:14px
  }
  .editorial-strip>a {
    font-size:11px
  }
  .editorial-strip i {
    padding:0 9px
  }
  .editorial-strip p {
    font-size:10px
  }
  .section-space {
    padding:49px 0
  }
  .heading-split {
    display:block;
    margin-bottom:28px
  }
  .heading-split>p {
    margin:20px 0 0;
    max-width:100%;
    font-size:14px
  }
  .heading-split>.text-link {
    margin-top:18px
  }
  .eyebrow {
    font-size:10px;
    margin-bottom:16px
  }
  h2 {
    font-size:30px
  }
  .value-grid {
    grid-template-columns:1fr
  }
  .value-grid article {
    padding:25px;
    border-right:0;
    border-bottom:1px solid var(--rule)
  }
  .card-top {
    margin-bottom:18px
  }
  .card-top span {
    font-size:10px
  }
  .value-grid h3 {
    font-size:23px;
    margin-bottom:9px
  }
  .value-grid p {
    font-size:14px
  }
  .home-sample {
    grid-template-columns:1fr;
    gap:32px;
    padding-top:0
  }
  .sample-teaser {
    padding:31px
  }
  .mini-paper {
    padding:24px
  }
  .mini-paper .preview-title {
    font-size:26px
  }
  .sample-intro h2 {
    font-size:30px
  }
  .sample-intro>p:not(.eyebrow):not(.hint) {
    font-size:15px;
    margin:19px 0
  }
  .sample-intro .hint {
    font-size:12px
  }
  .format-tags {
    margin:20px 0
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:28px 23px
  }
  .process-grid h3 {
    font-size:21px;
    margin:15px 0 9px
  }
  .process-grid p {
    font-size:13px
  }
  .method-boundary {
    font-size:12px;
    line-height:1.85;
    margin-top:25px
  }
  .closing-cta {
    display:block;
    padding:32px 25px;
    margin-bottom:46px
  }
  .closing-cta h2 {
    font-size:29px
  }
  .closing-cta .eyebrow {
    font-size:8px
  }
  .closing-cta .btn {
    margin-top:27px
  }
  .footer-inner {
    padding:32px 22px 22px
  }
  .footer-top {
    display:block;
    padding-bottom:25px
  }
  .footer-brand {
    font-size:28px
  }
  .footer-top>p {
    margin-top:24px;
    font-size:16px
  }
  .footer-bottom p {
    font-size:11px
  }
  .footer-links {
    gap:28px
  }
  .footer-signoff span {
    font-size:9px
  }
  .masthead {
    padding:35px 0 26px
  }
  .masthead h1 {
    font-size:32px
  }
  .masthead .deck {
    font-size:15px;
    line-height:1.9;
    margin-top:15px
  }
  .masthead .eyebrow {
    font-size:8px;
    margin-bottom:16px
  }
  .demo-note {
    flex-wrap:wrap;
    gap:5px 10px;
    padding:14px 16px;
    line-height:1.85;
    margin-bottom:24px;
    font-size:12px
  }
  .demo-note>span:last-child {
    width:100%
  }
  .demo-note .mode-dot {
    align-self:center
  }
  .commission-steps {
    gap:15px;
    font-size:10px;
    line-height:1.9;
    padding-bottom:18px;
    align-items:start
  }
  .commission-steps span {
    max-width:95px
  }
  .form-section {
    padding:23px 0
  }
  .form-section h2 {
    font-size:24px;
    margin-bottom:17px
  }
  .form-section label:not(.file-picker) {
    font-size:14px
  }
  .form-section textarea {
    min-height:195px;
    font-size:16px
  }
  .field-meta {
    gap:12px
  }
  .field-meta .hint {
    font-size:12px
  }
  .char-count {
    font-size:10px
  }
  .drop-zone {
    padding:23px 18px
  }
  .drop-zone .hint {
    font-size:12px
  }
  .source-note {
    font-size:12px
  }
  .order-summary {
    display:block;
    padding:25px
  }
  .order-summary .eyebrow {
    font-size:11px
  }
  .order-summary .deliverables {
    font-size:13px;
    margin:20px 0
  }
  .price-card {
    margin:0 0 22px!important
  }
  .price-card .hint {
    font-size:12px
  }
  .primary-action {
    font-size:15px!important
  }
  .terms-short {
    font-size:12px
  }
  .commission-footnote p {
    font-size:12px
  }
  .resend-section {
    padding:14px 18px;
    margin-bottom:45px
  }
  .resend-section>summary {
    font-size:22px
  }
  .resend-section>.hint {
    font-size:13px
  }
  .resend-row {
    flex-direction:column;
    align-items:stretch
  }
  .resend-row input {
    flex:auto
  }
  .resend-row button {
    min-height:48px
  }
  .resend-specific .hint {
    font-size:12px
  }
  .sample-notice {
    display:block;
    padding:17px
  }
  .sample-notice p {
    margin-top:13px;
    font-size:12px
  }
  .sample-paper {
    padding:27px 23px
  }
  .sample-paper>h2 {
    font-size:28px
  }
  .sample-paper .paper-masthead {
    font-size:8px
  }
  .sample-label {
    font-size:11px
  }
  .sample-block p {
    font-size:15px
  }
  .sample-notes {
    display:block;
    padding-top:5px
  }
  .sample-notes>h2 {
    font-size:30px;
    margin-bottom:25px
  }
  .sample-notes dt {
    font-size:16px
  }
  .sample-notes dd {
    font-size:14px
  }
  .sample-notes .hint {
    font-size:13px
  }
  .sample-downloads .btn {
    width:100%
  }
  .closing-cta.compact {
    padding:29px 24px;
    margin-top:36px
  }
  .closing-cta.compact h2 {
    font-size:27px
  }
  .service-overview {
    display:block;
    padding:10px 0 35px
  }
  .service-overview h2 {
    font-size:30px
  }
  .service-facts {
    margin-top:27px
  }
  .service-facts>div {
    gap:18px;
    grid-template-columns:80px 1fr;
    font-size:14px
  }
  .service-facts dt {
    font-size:12px
  }
  .section-heading {
    margin-bottom:27px
  }
  .section-heading>p:not(.eyebrow) {
    font-size:14px
  }
  .method-list li {
    grid-template-columns:40px 1fr;
    gap:13px;
    padding:25px 0
  }
  .method-list h3 {
    font-size:25px
  }
  .method-output {
    grid-column:2;
    text-align:left;
    padding-top:0;
    font-size:11px
  }
  .method-list p {
    font-size:14px
  }
  .source-options {
    grid-template-columns:1fr;
    gap:17px
  }
  .source-options article {
    padding:26px
  }
  .source-options h3 {
    font-size:25px
  }
  .source-options p {
    font-size:14px
  }
  .source-options .source-limit {
    font-size:12px
  }
  .source-boundary {
    font-size:12px
  }
  .question-list summary {
    font-size:18px;
    line-height:1.7
  }
  .question-list details p {
    margin-right:0;
    font-size:14px
  }
  .progress-grid {
    grid-template-columns:1fr;
    gap:22px
  }
  .lookup-card {
    padding:26px 23px
  }
  .lookup-card h2 {
    font-size:30px
  }
  .lookup-card label {
    font-size:14px
  }
  .lookup-card .btn {
    width:100%
  }
  .lookup-aside {
    padding:25px
  }
  .lookup-aside p {
    font-size:14px
  }
  .lookup-aside dl {
    gap:48px
  }
  .lookup-aside dd {
    font-size:29px
  }
  .progress-help {
    padding-bottom:40px
  }
  .progress-help p {
    font-size:14px
  }
  .progress-help .text-link {
    margin-right:20px
  }
  .status-toolbar {
    gap:10px;
    flex-wrap:wrap;
    font-size:11px
  }
  .status-toolbar .text-link {
    font-size:12px
  }
  .status-toolbar .linkish {
    font-size:11px
  }
  .status-toolbar #copy-feedback {
    width:100%;
    text-align:right
  }
  .status-hero {
    padding:24px
  }
  .status-hero h2 {
    font-size:28px
  }
  .status-description {
    font-size:15px
  }
  .order-topic {
    font-size:21px
  }
  .order-facts {
    gap:20px
  }
  .order-facts dd {
    font-size:12px
  }
  .download-box {
    padding:26px 23px
  }
  .download-box h2 {
    font-size:28px
  }
  .download-box p {
    font-size:15px
  }
  .download-box .btn {
    width:100%;
    margin-right:0
  }
  .stage-list li {
    padding:13px 7px;
    gap:11px;
    font-size:14px
  }
  .stage-state {
    font-size:11px
  }
  .stage-mark {
    width:26px;
    height:26px
  }
  .section>p {
    font-size:15px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
/* Explicit HTML dimensions reserve space;
the rendered image follows the layout ratio. */
.hero-art img {
  height:auto
}
.resend-row {
  flex-wrap:wrap
}
.resend-row>label {
  width:100%;
  margin:0;
  font-size:13px;
  color:var(--muted)
}
.flash ul {
  margin:8px 0 0
}
.flash li {
  margin:4px 0
}
.flash li a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}
:where(input,textarea,button,a,[tabindex],summary) {
  scroll-margin-top:110px
}
.status-page .masthead {
  padding-top:32px;
  padding-bottom:24px
}
.status-page .status-hero {
  padding:23px 28px;
  margin-bottom:22px
}
.status-page .status-hero h2 {
  margin-bottom:10px
}
.status-page .download-box {
  margin-top:0
}
.status-page .status-toolbar {
  margin-bottom:24px
}
@media(max-width:600px) {
  :where(input,textarea,button,a,[tabindex],summary) {
    scroll-margin-top:94px
  }
  .status-page .masthead {
    padding-top:30px
  }
  .status-page .status-hero {
    padding:23px
  }
}
.menu-toggle[aria-expanded=true] svg {
  display:none
}
.menu-toggle[aria-expanded=true]:after {
  content:"×";
  font-size:29px;
  line-height:1
}
@keyframes tf-spin {
  to {
    transform:rotate(360deg)
  }
}
.price-card[data-state=loading] .amount:after,.file-row.is-uploading .file-detail:before,form[aria-busy=true] .primary-action:before {
  content:"";
  display:inline-block;
  width:14px;
  height:14px;
  border:1.5px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:tf-spin 1s linear infinite;
  vertical-align:middle
}
.price-card[data-state=loading] .amount:after {
  margin-left:12px;
  color:var(--muted)
}
.file-row.is-uploading .file-detail:before {
  width:10px;
  height:10px;
  margin-right:6px
}
.file-row.is-uploading {
  background:var(--sage)
}
form[aria-busy=true] .primary-action {
  gap:10px
}
@media(prefers-reduced-motion:reduce) {
  .price-card[data-state=loading] .amount:after,.file-row.is-uploading .file-detail:before,form[aria-busy=true] .primary-action:before {
    animation:none
  }
}
/* Local polish: reference materials, quieter copy, and explicit action feedback. */
::selection {
  background:var(--ink);
  color:var(--paper)
}
input,textarea {
  caret-color:var(--accent)
}
h1,h2,h3 {
  text-wrap:balance
}
.journal-covers {
  margin:0;
  flex-shrink:0
}
.journal-covers-row {
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:13px
}
.journal-covers .journal-cover {
  width:83px;
  height:auto;
  display:block;
  box-shadow:2px 5px 10px #253d3314
}
.material-reference {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0 0 18px
}
.material-reference>p {
  font:18px/1.7 var(--serif);
  color:var(--ink);
  max-width:13em;
  margin:0
}
.material-reference .journal-covers .journal-cover {
  width:44px;
  box-shadow:1px 3px 6px #253d3310
}
.material-reference .journal-covers-row {
  gap:8px
}
.material-details,.budget-details {
  color:var(--muted);
  font-size:12px;
  line-height:1.85
}
.material-details {
  padding:8px 0
}
.material-details summary,.budget-details summary {
  min-height:44px;
  padding:10px 0;
  color:var(--ink)
}
.material-details p,.budget-details p {
  margin:0 0 12px;
  max-width:65ch
}
.budget-details {
  border-top:1px solid var(--rule);
  margin-top:12px
}
.file-row {
  transition:background var(--fast),border-color var(--fast)
}
.drop-zone.is-locked {
  opacity:.65
}
#copy-status-link {
  min-width:108px;
  text-align:center
}
#copy-status-link[data-state=success] {
  background:var(--sage);
  color:var(--success)
}
#copy-status-link[data-state=error] {
  color:var(--error)
}
@media(max-width:600px) {
  .material-reference {
    display:block
  }
  .material-reference>p {
    max-width:none;
    font-size:17px;
    margin-bottom:14px
  }
  .material-reference .journal-covers-row {
    justify-content:flex-start
  }
  .material-details summary {
    font-size:12px
  }
  .file-row {
    align-items:flex-start
  }
  .hero-meta {
    flex-wrap:wrap;
    row-gap:8px
  }
}
/* Covers share the page material; slow movement replaces the dark display panel. */
.journal-exhibition {
  display:grid;
  grid-template-columns:minmax(215px,.75fr) minmax(0,2fr);
  align-items:center;
  gap:42px;
  padding:14px 0 18px;
  margin:0 0 12px
}
.journal-invitation-copy {
  min-width:0
}
.journal-invitation-copy h2 {
  color:var(--ink);
  font:32px/1.65 var(--serif);
  margin:0 0 18px;
  max-width:9em
}
.journal-invitation-copy>p {
  font-size:14px;
  line-height:1.95;
  color:var(--muted);
  max-width:20em;
  margin:0 0 21px
}
.journal-invitation-copy .text-link {
  font-size:13px
}
.journal-gallery {
  margin:0;
  min-width:0;
  position:relative
}
.journal-wall {
  height:350px;
  overflow:hidden;
  position:relative;
  padding:0 8px;
  scrollbar-color:var(--muted) var(--paper);
  scrollbar-width:thin;
  -webkit-mask-image:linear-gradient(transparent,#000 14%,#000 84%,transparent);
  mask-image:linear-gradient(transparent,#000 14%,#000 84%,transparent)
}
.journal-wall:before,.journal-wall:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:48px;
  z-index:2;
  pointer-events:none;
  -webkit-backdrop-filter:blur(1.5px);
  backdrop-filter:blur(1.5px)
}
.journal-wall:before {
  top:0;
  -webkit-mask-image:linear-gradient(#000,transparent);
  mask-image:linear-gradient(#000,transparent)
}
.journal-wall:after {
  bottom:0;
  -webkit-mask-image:linear-gradient(transparent,#000);
  mask-image:linear-gradient(transparent,#000)
}
.journal-wall-track {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:start;
  gap:13px
}
.journal-column {
  min-width:0
}
.journal-rail {
  animation:tf-journal-flow var(--journal-duration,38s) linear infinite;
  animation-delay:var(--journal-delay,-8s);
  animation-play-state:paused
}
.journal-sequence {
  display:grid;
  gap:14px;
  padding-bottom:14px
}
.journal-cover {
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:5/7;
  background:var(--paper);
  isolation:isolate;
  box-shadow:2px 5px 12px #253d3312
}
.journal-cover img,
.material-reference .journal-covers .journal-cover img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  mix-blend-mode:multiply
}
/* Only the external white side/bottom margins need a tighter presentation crop. */
.journal-cover[data-cover=sociology] img {
  transform:scale(1.13);
  transform-origin:50% 15%
}
.journal-column:nth-child(even) .journal-rail {
  animation-direction:reverse
}
.journal-column:nth-child(2) { --journal-duration:43s; --journal-delay:-22s }
.journal-column:nth-child(3) { --journal-duration:36s; --journal-delay:-15s }
.journal-column:nth-child(4) { --journal-duration:46s; --journal-delay:-29s }
.journal-column:nth-child(5) { --journal-duration:40s; --journal-delay:-11s }
.journal-column:nth-child(6) { --journal-duration:45s; --journal-delay:-25s }
.journal-column:nth-child(7) { --journal-duration:41s; --journal-delay:-18s }
.journal-wall[data-motion=running] .journal-rail {
  animation-play-state:running
}
.journal-wall:focus-visible {
  outline-offset:4px
}
.journal-wall:focus-visible .journal-rail {
  animation-play-state:paused
}
@media(hover:hover) {
  .journal-wall:hover .journal-rail { animation-play-state:paused }
}
@keyframes tf-journal-flow {
  from { transform:translateY(0) }
  to { transform:translateY(-50%) }
}
@media(max-width:820px) {
  .journal-exhibition {
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:16px 0
  }
  .journal-invitation-copy h2 {
    max-width:none;
    font-size:30px;
    margin-bottom:10px
  }
  .journal-invitation-copy>p {
    max-width:none;
    margin-bottom:10px
  }
  .journal-wall { height:320px }
}
@media(max-width:600px) {
  .journal-invitation-copy h2 { font-size:27px }
  .journal-wall {
    height:290px;
    overflow-x:auto;
    overscroll-behavior-x:contain
  }
  .journal-wall-track {
    min-width:660px;
    gap:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  .journal-rail { animation:none; transform:none }
}
/* Local preview: two calm conversational lanes, aligned spacing and restrained offsets. */
.feedback-strip {
  margin-top:38px;
  --feedback-card-width:340px;
  --feedback-gap:22px;
  --feedback-edge:38px
}
.feedback-heading {
  margin-bottom:12px
}
.feedback-heading h2 {
  font:25px/1.6 var(--serif);
  color:var(--ink);
  margin:0
}
.feedback-viewport {
  min-width:0;
  overflow:hidden;
  position:relative;
  margin:0 -4px;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 var(--feedback-edge),#000 calc(100% - var(--feedback-edge)),transparent);
  mask-image:linear-gradient(to right,transparent,#000 var(--feedback-edge),#000 calc(100% - var(--feedback-edge)),transparent)
}
.feedback-viewport:before,.feedback-viewport:after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:var(--feedback-edge);
  pointer-events:none;
  z-index:2;
  -webkit-backdrop-filter:blur(2.5px);
  backdrop-filter:blur(2.5px)
}
.feedback-viewport:before {
  left:0;
  -webkit-mask-image:linear-gradient(to right,#000,transparent);
  mask-image:linear-gradient(to right,#000,transparent)
}
.feedback-viewport:after {
  right:0;
  -webkit-mask-image:linear-gradient(to left,#000,transparent);
  mask-image:linear-gradient(to left,#000,transparent)
}
.feedback-viewport:focus-within {
  -webkit-mask-image:none;
  mask-image:none
}
.feedback-viewport:focus-within:before,.feedback-viewport:focus-within:after {
  display:none
}
.feedback-lane {
  overflow-x:auto;
  overflow-y:hidden;
  padding:8px 5px 24px;
  scrollbar-width:thin;
  scrollbar-color:var(--rule) var(--paper);
  overscroll-behavior-x:contain
}
.feedback-lane+.feedback-lane {
  margin-top:2px
}
.feedback-track {
  display:flex;
  width:max-content;
  animation:tf-feedback-flow 50s linear infinite;
  animation-play-state:paused
}
.feedback-lane--reverse .feedback-track {
  animation-duration:58s;
  animation-delay:-19s;
  animation-direction:reverse
}
.feedback-group {
  display:flex;
  align-items:flex-start;
  gap:var(--feedback-gap);
  padding-right:var(--feedback-gap);
  flex-shrink:0
}
.feedback-card {
  width:var(--feedback-card-width);
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:10px;
  align-items:end;
  transform:translateY(calc(var(--feedback-offset,0px)*.75));
  flex-shrink:0
}
.feedback-avatar {
  display:block;
  position:relative;
  overflow:hidden;
  width:48px;
  height:48px;
  margin-bottom:11px;
  border:1px solid var(--rule);
  border-radius:50%;
  background:var(--sage)
}
.feedback-avatar img {
  position:absolute;
  width:300%;
  height:200%;
  max-width:none;
  left:calc(var(--avatar-column)*-100%);
  top:calc(var(--avatar-row)*-100%);
  object-fit:fill
}
.feedback-bubble {
  position:relative;
  margin:0;
  padding:16px;
  border:1px solid var(--rule);
  border-radius:20px 20px 20px 7px;
  background:var(--surface);
  box-shadow:2px 5px 12px #253d3306
}
.feedback-bubble:after {
  content:"";
  position:absolute;
  width:7px;
  height:7px;
  left:-4px;
  bottom:22px;
  transform:rotate(45deg);
  background:var(--surface);
  border-left:1px solid var(--rule);
  border-bottom:1px solid var(--rule)
}
.feedback-bubble blockquote {
  margin:0 0 11px
}
.feedback-bubble blockquote p {
  margin:0;
  font:14.5px/1.8 var(--sans);
  color:var(--ink)
}
.feedback-name {
  display:block;
  font-size:13px;
  line-height:1.65;
  color:var(--ink);
  font-weight:500;
  margin-bottom:6px
}
.feedback-tags {
  display:flex;
  flex-wrap:wrap;
  gap:5px
}
.feedback-tags>span {
  font-size:12px;
  line-height:1.5;
  padding:2px 6px;
  color:var(--muted);
  background:var(--paper);
  border-radius:999px
}
.feedback-lane--reverse .feedback-card {
  grid-template-columns:minmax(0,1fr) 48px;
  align-items:start
}
.feedback-lane--reverse .feedback-avatar {
  order:2;
  margin-top:13px;
  margin-bottom:0;
  background:#eee5d9
}
.feedback-lane--reverse .feedback-bubble {
  border-radius:20px 7px 20px 20px
}
.feedback-lane--reverse .feedback-bubble:after {
  left:auto;
  right:-4px;
  top:22px;
  bottom:auto;
  border:0;
  border-right:1px solid var(--rule);
  border-top:1px solid var(--rule)
}
.feedback-viewport[data-motion=running] .feedback-track {
  animation-play-state:running
}
.feedback-viewport:focus-within .feedback-track {
  animation-play-state:paused
}
@media(hover:hover) {
  .feedback-viewport:hover .feedback-track { animation-play-state:paused }
}
@keyframes tf-feedback-flow {
  from { transform:translateX(0) }
  to { transform:translateX(-50%) }
}
@media(max-width:600px) {
  .feedback-strip {
    --feedback-card-width:min(90vw,330px);
    --feedback-gap:18px;
    --feedback-edge:22px
  }
  .feedback-heading h2 { font-size:23px }
  .feedback-card {
    grid-template-columns:44px minmax(0,1fr);
    gap:10px
  }
  .feedback-avatar { width:44px; height:44px }
  .feedback-bubble { padding:14px 15px }
  .feedback-lane--reverse .feedback-card {
    grid-template-columns:minmax(0,1fr) 44px
  }
}
@media(prefers-reduced-motion:reduce) {
  .feedback-track { animation:none; transform:none }
  .feedback-group[aria-hidden=true] { display:none }
}
/* Home report collection: compact excerpts from the same editorial source as /samples. */
.home-report-collection { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:72px }
.home-collection-teaser { padding:28px; min-width:0 }
.home-report-shelf { list-style:none; margin:0; padding:0; display:grid; gap:13px }
.home-report-shelf>li { margin:0; padding:0; min-width:0 }
.home-report-leaf {
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 18px;
  gap:14px;
  align-items:center;
  background:var(--surface);
  border:1px solid var(--rule);
  padding:22px 20px;
  box-shadow:0 4px 13px #253d3307;
  color:var(--ink);
  text-decoration:none
}
.home-report-number { align-self:start; padding-top:2px; font:italic 18px/1.7 var(--serif); color:var(--accent) }
.home-report-copy { min-width:0 }
.home-report-field { display:block; font-size:12px; line-height:1.6; color:var(--muted); margin-bottom:7px }
.home-report-copy h3 { font:23px/1.55 var(--serif); margin:0 0 7px; text-wrap:balance }
.home-report-copy p { font-size:13px; line-height:1.85; color:var(--muted); margin:0; text-wrap:pretty }
.home-report-arrow { color:var(--accent); display:flex }
.home-report-arrow svg { width:18px; height:18px }
.home-report-leaf:hover { color:var(--ink); border-color:var(--accent) }
.home-report-leaf:hover h3 { text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:1px; text-underline-offset:5px }
.home-report-leaf:focus-visible { outline-offset:4px }
@media(max-width:1050px) {
  .home-report-collection { gap:40px }
  .home-collection-teaser { padding:21px }
  .home-report-leaf { padding:20px 17px; grid-template-columns:22px minmax(0,1fr) 16px; gap:11px }
  .home-report-copy h3 { font-size:21px }
}
@media(max-width:820px) {
  .home-report-collection { grid-template-columns:minmax(0,1fr); gap:28px }
  .home-report-collection .sample-intro { order:-1 }
  .home-report-collection .format-tags { margin:16px 0 }
}
@media(max-width:600px) {
  .home-collection-teaser { padding:16px }
  .home-report-shelf { gap:11px }
  .home-report-leaf { padding:18px 14px; grid-template-columns:19px minmax(0,1fr) 16px; gap:9px }
  .home-report-number { font-size:16px }
  .home-report-field { font-size:12px; margin-bottom:5px }
  .home-report-copy h3 { font-size:21px; margin-bottom:6px }
  .home-report-copy p { font-size:13px; line-height:1.8 }
  .home-report-arrow svg { width:16px; height:16px }
}
/* Home narrative: outcome, materials, value, deliverable, method, commission. */
.home-page .hero-art figcaption { font-size:12px }
.home-page .hero-art figcaption span:last-child { font:inherit; letter-spacing:inherit }
.home-method-intro { margin:-16px 0 30px; color:var(--muted); font-size:14px; line-height:1.9; max-width:48em }
.home-start-note { font-size:14px; line-height:1.9; color:var(--paper); margin:13px 0 0; max-width:28em }
@media(max-width:600px) {
  .home-method-intro { font-size:13px; margin:-9px 0 25px }
  .home-start-note { font-size:13px; margin-top:10px }
}

/* Feedback follows the product explanation and precedes the final commission action. */
.home-feedback { padding-top:0; padding-bottom:64px }
.home-feedback .feedback-strip { margin-top:0 }
@media(max-width:600px) {
  .home-feedback { padding-bottom:40px }
}
