:root {
  --cream:#ede9df;
  --burgundy:#7f2823;
  --charcoal:#1c1c1c;
  --muted:#5d574e;
  --line:#c9c0b3;
  --paper:#fffdf8;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--charcoal);
  background:var(--cream);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6
}
* {
  box-sizing:border-box
}
body {
  margin:0
}
a {
  color:var(--burgundy);
  text-underline-offset:4px
}
button,input,select {
  font:inherit
}
button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:default
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid var(--burgundy);
  outline-offset:5px
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.035em
}
h1 {
  font-size:clamp(2.5rem,6vw,4.7rem)
}
h2 {
  font-size:clamp(2rem,4vw,3.3rem)
}
h3 {
  line-height:1.3;
  font-size:1.15rem
}
p {
  margin-bottom:1.2rem
}
ul {
  padding-left:1.4rem
}
li {
  margin-bottom:.6rem
}
.wrap {
  max-width:1160px;
  margin:0 auto;
  padding:0 40px
}
.skip {
  position:absolute;
  left:20px;
  top:-100px;
  background:var(--paper);
  padding:12px;
  z-index:10
}
.skip:focus {
  top:10px
}
.site-header {
  border-bottom:1px solid var(--line)
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:76px;
  padding-top:10px;
  padding-bottom:10px
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--charcoal)
}
.brand img {
  width:56px;
  height:56px;
  object-fit:contain;
  border-radius:50%
}
.brand span {
  font-size:13px;
  font-weight:650;
  letter-spacing:.18em
}
.site-header nav {
  display:flex;
  gap:28px
}
.site-header nav a {
  color:var(--charcoal);
  font-size:.88rem;
  text-decoration:none
}
.site-header nav a:hover {
  text-decoration:underline
}
.hero {
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:65px;
  align-items:center;
  padding:85px 0 68px
}
.eyebrow {
  display:block;
  text-transform:uppercase;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--burgundy);
  margin-bottom:18px
}
.hero h1 {
  max-width:720px;
  margin-bottom:26px
}
.lead {
  font-size:1.14rem;
  color:var(--muted);
  max-width:620px
}
.button {
  border:1px solid var(--burgundy);
  border-radius:5px;
  color:white;
  background:var(--burgundy);
  padding:13px 23px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  font-weight:600;
  font-size:.94rem;
  min-height:50px
}
.button:hover {
  background:#66201c
}
.button.secondary {
  background:transparent;
  color:var(--burgundy)
}
.button.secondary:hover {
  background:#e4dbd0
}
.hero-note {
  background:var(--paper);
  padding:34px;
  border:1px solid var(--line);
  border-radius:8px;
  position:relative
}
.hero-note:before {
  content:'';
  display:block;
  background:var(--burgundy);
  width:40px;
  height:3px;
  margin-bottom:26px
}
.hero-note h2 {
  font-size:2.15rem
}
.hero-note p:last-child {
  margin:0
}
.small {
  font-size:.85rem;
  color:var(--muted)
}
.catalog {
  border-top:1px solid var(--line);
  padding:46px 0 70px;
  scroll-margin-top:30px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:28px
}
.section-heading h2 {
  margin:0;
  font-size:2.6rem
}
.section-heading p {
  margin:0;
  color:var(--muted);
  font-size:.9rem
}
.tool-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px
}
.tool-card {
  background:var(--paper);
  padding:34px;
  border:1px solid var(--line);
  border-radius:7px;
  color:var(--charcoal);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  min-height:332px;
  transition:border-color .15s,transform .15s
}
.tool-card:hover {
  border-color:var(--burgundy);
  transform:translateY(-3px)
}
.tool-card .number {
  font-family:var(--serif);
  font-size:1.65rem;
  color:var(--burgundy);
  margin-bottom:30px
}
.tool-card h3 {
  font-family:var(--serif);
  font-size:2rem;
  font-weight:400;
  letter-spacing:-.02em;
  margin-bottom:18px
}
.tool-card p {
  color:var(--muted)
}
.tool-card .card-link {
  margin-top:auto;
  font-weight:600;
  color:var(--burgundy);
  display:flex;
  justify-content:space-between
}
.principles {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px;
  border-top:1px solid var(--line);
  padding:40px 0 60px
}
.principles p {
  color:var(--muted);
  font-size:.94rem
}
.site-footer {
  border-top:1px solid var(--line);
  padding:28px 0;
  font-size:.8rem;
  color:var(--muted)
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center
}
.footer-inner p {
  margin:0
}
.footer-links {
  display:flex;
  gap:24px
}
.tool-page {
  max-width:870px;
  padding-top:52px;
  padding-bottom:70px
}
.breadcrumb {
  font-size:.8rem;
  margin-bottom:30px;
  display:inline-block
}
.tool-intro h1 {
  font-size:clamp(2.4rem,5vw,3.8rem);
  max-width:790px;
  margin-bottom:22px
}
.tool-intro {
  border-bottom:1px solid var(--line);
  padding-bottom:20px;
  margin-bottom:30px
}
.tool-intro .lead {
  font-size:1rem
}
.stage-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:30px;
  font-size:.75rem;
  color:var(--muted)
}
.stage-row .eyebrow {
  margin:0
}
.stage-row span:last-child {
  text-align:right
}
fieldset {
  border:0;
  padding:0;
  margin:0;
  min-width:0
}
legend {
  font-family:var(--serif);
  font-size:clamp(1.6rem,3vw,2.05rem);
  line-height:1.25;
  margin-bottom:24px;
  letter-spacing:-.02em;
  width:100%
}
legend:focus,h2[data-focus]:focus {
  outline:none
}
.help {
  font-size:.9rem;
  color:var(--muted);
  margin-top:-8px
}
.choices {
  display:grid;
  gap:10px
}
.choice {
  display:flex;
  gap:15px;
  align-items:center;
  background:var(--paper);
  border:1px solid var(--line);
  padding:17px 20px;
  border-radius:5px;
  cursor:pointer;
  min-height:62px
}
.choice:hover {
  border-color:var(--burgundy)
}
.choice:has(input:checked) {
  border:2px solid var(--burgundy);
  padding:16px 19px;
  background:#f6ede8
}
.choice input {
  appearance:auto;
  accent-color:var(--burgundy);
  width:19px;
  height:19px;
  flex:0 0 19px;
  margin:0
}
.choice span {
  font-size:.94rem
}
.actions {
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-top:28px
}
.privacy-note {
  font-size:.77rem;
  color:var(--muted);
  margin-top:26px
}
.error {
  color:var(--burgundy);
  font-size:.9rem
}
.error:empty {
  display:none
}
.action-card {
  padding:34px;
  background:var(--paper);
  border-radius:6px;
  border:1px solid var(--line);
  border-top:4px solid var(--burgundy)
}
.action-card h2 {
  font-size:clamp(2.05rem,4vw,3rem);
  margin-bottom:24px
}
.instruction {
  font-size:1.12rem;
  line-height:1.55
}
.reason {
  font-size:.92rem;
  color:var(--muted);
  margin:0
}
.restriction {
  margin:20px 0 0;
  border-top:1px solid var(--line);
  padding-top:18px;
  font-size:.9rem;
  font-weight:600
}
.example {
  border-left:2px solid var(--burgundy);
  padding:7px 0 0 24px;
  margin:30px 0
}
.example .eyebrow {
  margin-bottom:12px
}
.example blockquote {
  margin:0;
  font-family:var(--serif);
  font-size:1.5rem;
  line-height:1.45
}
.example p {
  font-size:.8rem;
  color:var(--muted);
  margin:14px 0 0
}
.uncertainty {
  font-size:.82rem;
  color:var(--muted);
  margin:24px 0
}
.reasoning {
  border-block:1px solid var(--line);
  padding:18px 0
}
.reasoning summary {
  font-weight:600;
  color:var(--burgundy);
  cursor:pointer
}
.reasoning>div {
  padding:24px 4px 0;
  font-size:.92rem
}
.reasoning h3 {
  margin-top:24px
}
.depth {
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--line)
}
.depth h3 {
  margin-bottom:9px
}
.depth p {
  font-size:.85rem;
  color:var(--muted);
  margin:0
}
.depth .button {
  flex-shrink:0
}
.feedback {
  padding:28px 0
}
.feedback h3 {
  margin-bottom:14px
}
.feedback-buttons {
  display:flex;
  gap:10px
}
.chip {
  background:transparent;
  border:1px solid var(--line);
  border-radius:30px;
  padding:9px 20px;
  font-size:.85rem;
  color:var(--charcoal)
}
.chip[aria-pressed=true],.chip:hover {
  border-color:var(--burgundy);
  background:var(--paper);
  color:var(--burgundy)
}
.feedback p {
  font-size:.77rem;
  color:var(--muted);
  margin:12px 0 0
}
.feedback label {
  display:block;
  font-size:.85rem;
  margin-top:16px
}
.feedback select {
  max-width:100%;
  padding:10px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px
}
.resources {
  padding:25px;
  background:#e5ded3;
  border-radius:6px
}
.resources .eyebrow {
  margin-bottom:14px
}
.resources a {
  text-decoration:none;
  display:block
}
.resources a strong {
  display:block;
  font-size:1rem
}
.resources a span {
  display:block;
  color:var(--muted);
  font-size:.82rem
}
.answer-list {
  display:grid;
  gap:10px
}
.answer-edit {
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:5px;
  text-align:left;
  padding:15px;
  color:var(--charcoal)
}
.answer-edit>span {
  display:block;
  font-size:.82rem;
  margin-bottom:8px
}
.answer-edit strong {
  color:var(--burgundy);
  font-size:.9rem
}
#answer-editor:not(:empty) {
  margin-top:35px;
  border-top:1px solid var(--line);
  padding-top:25px
}
.prose {
  max-width:790px;
  padding-top:65px;
  padding-bottom:80px
}
.prose h1 {
  font-size:3.4rem
}
.prose h2 {
  font-size:1.8rem;
  margin-top:35px
}
.prose p,.prose li {
  color:var(--muted)
}
.noscript {
  padding:20px;
  border:1px solid var(--burgundy)
}
@media(max-width:760px) {
  .wrap {
    padding:0 22px
  }
  .header-inner {
    min-height:64px;
    padding-top:8px;
    padding-bottom:8px
  }
  .brand img {
    width:46px;
    height:46px
  }
  .brand span {
    font-size:10px
  }
  .site-header nav {
    gap:18px
  }
  .site-header nav a {
    font-size:.78rem
  }
  .hero {
    grid-template-columns:1fr;
    gap:34px;
    padding:52px 0 42px
  }
  .hero h1 {
    font-size:3.3rem
  }
  .hero-note {
    padding:26px
  }
  .hero-note h2 {
    font-size:1.8rem
  }
  .section-heading {
    display:block
  }
  .section-heading p {
    margin-top:14px
  }
  .tool-grid {
    grid-template-columns:1fr
  }
  .tool-card {
    padding:28px;
    min-height:300px
  }
  .tool-card h3 {
    font-size:1.85rem
  }
  .principles {
    grid-template-columns:1fr;
    gap:15px;
    padding-top:32px
  }
  .catalog {
    padding-bottom:42px
  }
  .footer-inner {
    display:block
  }
  .footer-links {
    margin-top:16px
  }
  .tool-page {
    padding-top:30px;
    padding-bottom:45px
  }
  .tool-intro h1 {
    font-size:2.65rem
  }
  .stage-row {
    align-items:start;
    gap:12px
  }
  .stage-row span:last-child {
    font-size:.69rem;
    max-width:145px
  }
  .choice {
    padding:15px 14px
  }
  .choice:has(input:checked) {
    padding:14px 13px
  }
  .choice span {
    font-size:.89rem
  }
  .action-card {
    padding:25px
  }
  .instruction {
    font-size:1rem
  }
  .depth {
    display:block
  }
  .depth .button {
    margin-top:18px;
    width:100%
  }
  .actions .button {
    padding:12px 17px
  }
  .prose {
    padding-top:42px;
    padding-bottom:55px
  }
  .prose h1 {
    font-size:2.6rem
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}
@media print {
  .site-header,.site-footer,.feedback,.depth,.actions,.resources,#answer-editor {
    display:none
  }
  .action-card {
    border:1px solid #999
  }
  body {
    background:white
  }
  .reasoning>div {
    display:block
  }
  details {
    content-visibility:visible
  }
}
.resources a strong span {
  display:inline;
  color:var(--burgundy)
}
.finish-link {
  display:block;
  background:transparent;
  border:0;
  padding:0;
  color:var(--burgundy);
  text-decoration:underline;
  text-underline-offset:4px;
  font-size:.85rem;
  margin-top:24px
}

/* Stable, in-flow header. Native mobile disclosure also works without JavaScript. */
:root{--header-offset:93px;scroll-padding-top:var(--header-offset)}
.site-header{position:sticky;top:0;z-index:20;background:var(--cream)}
.skip{position:fixed;z-index:30}
[hidden]{display:none!important}
.desktop-links{display:flex;align-items:center;gap:24px}
.site-header nav a{display:inline-flex;align-items:center;min-height:44px}
.site-header nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}
.mobile-menu{display:none}
.mobile-menu summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;color:var(--burgundy);font-weight:600}
.mobile-menu summary::after{content:'+';font-size:1.2rem}
.mobile-menu[open] summary::after{content:'−'}
.mobile-links{display:flex;flex-direction:column;gap:4px;padding:4px 0 12px}
.mobile-links a{padding:6px 12px;min-width:100px}
#main,#tools,[data-focus],[data-editor-focus],#measurement-panel{scroll-margin-top:var(--header-offset)}
.catalog{scroll-margin-top:var(--header-offset)}
.footer-links{flex-wrap:wrap;gap:12px 22px}
.settings-button{background:transparent;border:0;color:var(--burgundy);text-decoration:underline;text-underline-offset:4px;padding:0;font:inherit;min-height:44px;text-align:left}
.measurement-panel{border-bottom:1px solid var(--line);padding:22px 0;background:var(--paper)}
.measurement-panel h2{font-family:var(--sans);font-size:1rem;letter-spacing:0;line-height:1.4;margin-bottom:8px}
.measurement-panel p{font-size:.85rem;max-width:850px;margin-bottom:14px;color:var(--muted)}
.measurement-actions{display:flex;flex-wrap:wrap;gap:12px}
.measurement-actions .button{background:transparent;color:var(--burgundy);font-size:.85rem;padding:10px 16px;min-height:46px}
.measurement-actions .button:hover{background:var(--cream)}
.measurement-note:empty{display:none}
.measurement-note{margin:12px 0 0;font-size:.78rem;color:var(--muted)}
.assessment-steps{list-style:none;display:flex;gap:10px;flex-wrap:wrap;padding:0;margin:0 0 22px;font-size:.75rem;color:var(--muted)}
.assessment-steps li{margin:0;padding:4px 10px;border:1px solid var(--line);border-radius:4px}
.assessment-steps [aria-current=step]{color:var(--burgundy);border-color:var(--burgundy);background:var(--paper);font-weight:650}
.question-count{font-size:.78rem;color:var(--muted);margin-bottom:18px}
.answer-editor-actions{display:flex;justify-content:flex-end;margin-bottom:16px}
.answer-edit{min-height:64px}
.feedback-send{margin-top:18px}
.chip{min-height:44px}
button:disabled{opacity:.6}
@media(max-width:560px){
  :root{--header-offset:81px}
  .header-inner{min-height:64px;align-items:flex-start;padding-top:8px;padding-bottom:8px}
  .brand{min-height:48px}
  .site-header nav{display:block;padding-top:2px}
  .desktop-links{display:none}
  .mobile-menu{display:block}
  .site-header .mobile-links a{font-size:.88rem}
  .measurement-actions{display:grid;grid-template-columns:1fr}
  .measurement-actions .button{width:100%}
  .measurement-panel{padding:18px 0}
  .hero h1{font-size:clamp(2.4rem,10vw,3.3rem)}
  .tool-intro h1{font-size:clamp(2.1rem,9vw,2.65rem)}
  .actions{flex-wrap:wrap}
  .actions .button{flex:1;gap:10px}
  .footer-links{gap:8px 18px}
  .depth,.feedback{padding:24px 0}
  .assessment-steps{gap:7px;font-size:.7rem}
}
@media print{.measurement-panel,.settings-button,.measurement-note,.assessment-steps,.question-count{display:none}}
