:root {
  color-scheme:light;
  --paper:#f3f1eb;
  --surface:#fffefa;
  --ink:#263b39;
  --muted:#69736d;
  --line:#dadfd5;
  --green:#285d50;
  --coral:#be5134;
  --blue:#447ab0;
  --initial:#919b94;
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
}
button,input,select {
  font:inherit;
}
button,select {
  cursor:pointer;
}
button,a,input,select {
  touch-action:manipulation;
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #e5a43c;
  outline-offset:3px;
}
button {
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink);
  padding:9px 14px;
  border-radius:5px;
  font-weight:550;
  transition:background .15s;
}
button:hover {
  background:#e8eee6;
}
button:disabled {
  opacity:.5;
  cursor:default;
}
a {
  color:inherit;
}
select {
  width:100%;
  border:1px solid #cbd2c8;
  border-radius:5px;
  padding:10px 30px 10px 10px;
  background:var(--surface);
  color:var(--ink);
}
input[type=range] {
  accent-color:var(--green);
  width:100%;
  cursor:pointer;
}
input[type=number] {
  width:83px;
  min-width:0;
  border:1px solid var(--line);
  border-radius:4px;
  padding:6px 5px;
  background:var(--surface);
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
input:invalid {
  border-color:var(--coral);
}
.masthead,main,footer {
  max-width:1320px;
  margin:auto;
  padding-left:44px;
  padding-right:44px;
}
.masthead {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:92px;
  border-bottom:1px solid var(--line);
}
.wordmark {
  text-decoration:none;
  font-size:18px;
  letter-spacing:.13em;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:13px;
}
.brand-symbol {
  font:44px Georgia,serif;
  color:var(--green);
  line-height:1;
}
.wordmark-sub {
  font-size:13px;
  letter-spacing:.02em;
  font-weight:400;
  color:var(--muted);
}
.text-link {
  text-decoration:none;
  font-size:13px;
}
.text-link span {
  margin-left:12px;
}
.top-links {
  display:flex;
  gap:24px;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.intro {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:60px;
  padding:48px 0 42px;
  align-items:end;
}
.eyebrow {
  font-size:10px;
  letter-spacing:.16em;
  font-weight:700;
  margin:0 0 13px;
  color:var(--muted);
}
h1 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(36px,4.3vw,57px);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1.05;
  margin:0;
}
.intro-copy {
  max-width:450px;
  padding-bottom:4px;
}
.intro-copy p {
  font-size:16px;
  line-height:1.6;
  margin:0 0 12px;
}
.intro-copy .quiet {
  font-size:14px;
  color:var(--muted);
  margin:0;
}
.lab-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:26px;
  align-items:start;
}
.lab-orientation {
  max-width:850px;
  margin:0 0 22px;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.measurement-guide {
  font-size:11px;
  line-height:1.65;
  color:var(--muted);
  margin:0 0 22px;
}
.workspace {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  padding:25px 26px 18px;
  min-width:0;
  overflow:hidden;
}
.plot-header,.probe-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.plot-header .eyebrow,.probe-heading .eyebrow {
  margin-bottom:7px;
}
h2 {
  font-size:19px;
  font-weight:550;
  letter-spacing:-.025em;
  margin:0;
}
.iteration {
  text-align:right;
  min-width:68px;
}
.iteration span {
  display:block;
  font-size:9px;
  letter-spacing:.12em;
  color:var(--muted);
}
.iteration output {
  font-size:28px;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.04em;
}
.legend {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  padding-top:20px;
  font-size:11px;
  color:var(--muted);
}
.legend span {
  display:flex;
  align-items:center;
  gap:6px;
}
.legend i {
  width:18px;
  height:0;
  display:inline-block;
  border-top:2px solid;
}
.initial-key {
  color:var(--initial);
  border-top-style:dashed!important;
}
.current-key {
  color:var(--coral);
}
.comparison-key {
  color:var(--blue);
  border-top-style:dotted!important;
}
.wave-canvas-wrap {
  margin-top:4px;
}
canvas {
  display:block;
  width:100%;
}
#wave-chart {
  height:300px;
  cursor:crosshair;
}
#history-chart {
  height:180px;
}
.transport {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:8px 0 24px;
  border-bottom:1px solid var(--line);
}
.transport-actions {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.transport button {
  font-size:12px;
  padding:9px 11px;
}
.primary {
  background:var(--green);
  border-color:var(--green);
  color:white;
  min-width:70px;
}
.primary:hover {
  background:#204c42;
}
.subtle {
  background:transparent;
  border-color:transparent;
}
.speed-label {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:11px;
}
.speed-label select {
  width:96px;
  padding:7px;
  font-size:11px;
}
.metrics {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  padding:23px 0 26px;
}
.metrics>div {
  min-width:0;
}
.metrics span {
  display:block;
  font-size:11px;
  color:var(--muted);
  line-height:1.5;
}
.metrics output {
  display:block;
  font-size:24px;
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
  margin:7px 0;
}
.metrics small {
  font-size:9px;
  color:var(--muted);
  line-height:1.5;
  display:block;
}
.probe-heading {
  border-top:1px solid var(--line);
  padding-top:22px;
}
.probe-heading output {
  font-family:ui-monospace,monospace;
  font-size:12px;
}
.probe-controls {
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:14px;
}
.probe-controls label {
  font-size:11px;
  white-space:nowrap;
  color:var(--muted);
}
.probe-controls button {
  white-space:nowrap;
  font-size:11px;
  padding:5px 8px;
}
.chart-note {
  font-size:10px;
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:space-between;
  margin:4px 0;
  line-height:1.6;
}
.settings {
  padding:4px 0;
}
.settings h2 {
  font-size:20px;
  line-height:1.2;
}
.equation {
  font-family:Georgia,serif;
  font-size:24px;
  line-height:1.65;
  letter-spacing:-.02em;
  margin:21px 0 26px;
}
.equation span {
  font-size:21px;
}
.equation strong {
  color:var(--coral);
  font-weight:400;
}
.equation sub {
  font-size:12px;
}
.field-label {
  display:block;
  font-size:11px;
  font-weight:550;
  margin-bottom:8px;
}
.setting-description {
  font-size:12px;
  color:var(--muted);
  line-height:1.65;
  margin:11px 0 20px;
}
.control {
  padding:18px 0 10px;
  border-top:1px solid var(--line);
}
.control-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:9px;
  gap:10px;
}
.control-heading label {
  font-size:13px;
}
.control-heading label span {
  font:italic 17px Georgia,serif;
  color:var(--coral);
  margin-left:8px;
}
.control p {
  font-size:10px;
  color:var(--muted);
  line-height:1.6;
  margin:5px 0;
}
.paired-fields {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:20px 0;
}
.paired-fields select {
  font-size:11px;
  padding:9px 5px;
}
.comparison-control {
  border-top:1px solid var(--line);
  padding-top:18px;
  margin-top:10px;
  grid-column:1/-1;
}
.comparison-control select {
  font-size:12px;
}
.comparison-control p {
  font-size:11px;
  line-height:1.6;
  color:var(--muted);
  margin-bottom:0;
}
select:disabled {
  opacity:.5;
  cursor:default;
}
.stability {
  border-left:3px solid var(--green);
  background:#e7ece2;
  padding:13px 15px;
  margin:25px 0 14px;
}
.stability>div {
  display:flex;
  justify-content:space-between;
  margin-bottom:10px;
}
.stability output {
  font-variant-numeric:tabular-nums;
}
.stability strong {
  font-size:12px;
  font-weight:600;
  display:block;
}
.stability p {
  font-size:11px;
  line-height:1.65;
  margin:7px 0 0;
  color:#506256;
}
.export-button {
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12px;
}
.status {
  min-height:20px;
  font-size:11px;
  color:var(--green);
  line-height:1.5;
}
.study-section {
  margin-top:56px;
  padding:34px 36px 18px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  scroll-margin-top:24px;
}
.study-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.study-heading h2 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:32px;
}
.study-time {
  flex:0 0 170px;
  font-size:11px;
  color:var(--muted);
}
.study-time select {
  margin-top:8px;
  font-size:13px;
}
.study-intro,.memory-study>p:not(.eyebrow) {
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
  max-width:860px;
}
.study-table-wrap {
  overflow-x:auto;
  margin:22px 0 14px;
}
.study-table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:13px;
  font-variant-numeric:tabular-nums;
}
.study-table th,.study-table td {
  border-bottom:1px solid var(--line);
  padding:12px 16px;
  white-space:nowrap;
}
.study-table th:first-child,.study-table td:first-child {
  padding-left:0;
}
.study-table th:last-child,.study-table td:last-child {
  text-align:right;
  padding-right:0;
}
.study-table thead th {
  font-weight:500;
  color:var(--muted);
  font-size:11px;
  padding-top:0;
}
.study-table tbody th {
  font-weight:550;
}
.study-table small {
  display:block;
  font-size:10px;
  font-weight:400;
  color:var(--muted);
  margin-top:4px;
}
.study-table button {
  font-size:11px;
  padding:6px 12px;
}
.study-table .outcome-fixed-like {
  color:var(--green);
}
.study-table .outcome-two-cycle-like {
  color:var(--coral);
}
.study-table .outcome-unresolved {
  color:var(--muted);
}
.study-method,.study-definition {
  font-size:11px;
  line-height:1.75;
  color:var(--muted);
}
.study-definition {
  margin-top:18px;
}
.study-definition summary {
  color:var(--green);
  cursor:pointer;
}
.study-definition p {
  max-width:920px;
  padding-left:15px;
}
.memory-study {
  border-top:1px solid var(--line);
  margin-top:30px;
  padding-top:30px;
}
.memory-study h3 {
  font-family:Georgia,serif;
  font-size:27px;
  font-weight:400;
  letter-spacing:-.02em;
  margin:0;
}
.memory-study .study-method {
  font-size:11px;
}
.study-status {
  font-size:11px;
  color:var(--green);
  line-height:1.6;
}
.idea {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:85px;
  padding:65px 0 52px;
}
.idea h2 {
  font-family:Georgia,serif;
  font-size:34px;
  font-weight:400;
}
.idea p {
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
}
.idea-points article {
  margin-bottom:24px;
}
.idea h3 {
  font-size:14px;
  font-weight:600;
  margin:0 0 5px;
}
.idea-points p {
  font-size:12px;
  margin:0;
}
footer {
  border-top:1px solid var(--line);
  padding-top:24px;
  padding-bottom:30px;
  display:flex;
  justify-content:space-between;
  gap:15px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.02em;
}
@media(min-width:1500px) {
  .intro {
    padding-top:58px;
  }
}
@media(max-width:1020px) {
  .masthead,main,footer {
    padding-left:24px;
    padding-right:24px;
  }
  .lab-layout {
    gap:20px;
    grid-template-columns:minmax(0,1fr) 270px;
  }
  .workspace {
    padding:21px 18px 16px;
  }
  .intro {
    gap:35px;
  }
  .metrics output {
    font-size:21px;
  }
  .transport {
    gap:14px;
  }
  #wave-chart {
    height:275px;
  }
  .idea {
    gap:45px;
  }
  .equation {
    font-size:22px;
  }
}
@media(max-width:760px) {
  .study-section {
    padding:24px 20px 15px;
    margin-top:32px;
  }
  .study-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
  }
  .study-heading h2 {
    font-size:29px;
  }
  .study-time {
    flex:auto;
    width:100%;
  }
  .study-table th,.study-table td {
    padding-left:12px;
    padding-right:12px;
  }
  .masthead {
    height:72px;
  }
  .intro {
    gap:22px;
    grid-template-columns:1fr;
    padding:32px 0;
  }
  .intro-copy {
    max-width:none;
  }
  .intro h1 br {
    display:none;
  }
  .intro-copy p {
    font-size:14px;
  }
  .lab-layout {
    grid-template-columns:1fr;
  }
  .settings {
    background:#ecefe6;
    padding:22px;
    border-radius:8px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 24px;
  }
  .settings>.eyebrow,.settings>h2,.settings>.equation,.settings>#parameters,.settings>.stability,.settings>.setting-description,.settings>.export-button,.settings>.status {
    grid-column:1/-1;
  }
  .settings>.field-label,.settings>#preset,.settings>#preset-description {
    grid-column:1/-1;
  }
  .settings .equation {
    margin:15px 0;
  }
  .settings .equation br {
    display:none;
  }
  .settings .equation span {
    margin-right:6px;
  }
  #parameters {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 18px;
  }
  .paired-fields {
    grid-column:1/-1;
  }
  .stability {
    margin-top:10px;
  }
  .idea {
    grid-template-columns:1fr;
    gap:20px;
    padding:40px 0 22px;
  }
  .idea h2 {
    font-size:29px;
  }
  .wordmark-sub {
    font-size:11px;
  }
  .wordmark {
    font-size:16px;
    gap:8px;
  }
  footer {
    flex-wrap:wrap;
  }
  button {
    min-height:38px;
  }
}
@media(max-width:420px) {
  .masthead {
    height:auto;
    min-height:72px;
    flex-wrap:wrap;
    gap:10px;
    padding-top:12px;
    padding-bottom:12px;
  }
  .masthead .top-links {
    flex:1 0 100%;
    justify-content:space-between;
  }
  .top-links {
    gap:16px;
  }
  .text-link {
    font-size:11px;
    white-space:nowrap;
  }
  .text-link span {
    display:none;
  }
  .study-section {
    padding-left:16px;
    padding-right:16px;
  }
  .masthead,main,footer {
    padding-left:16px;
    padding-right:16px;
  }
  .wordmark-sub {
    display:none;
  }
  .workspace {
    padding:17px 12px 13px;
  }
  .metrics {
    gap:7px;
  }
  .metrics span {
    font-size:10px;
  }
  .metrics output {
    font-size:18px;
  }
  .metrics small {
    font-size:9px;
  }
  .legend {
    gap:12px;
  }
  .transport button {
    padding:8px 10px;
  }
  #wave-chart {
    height:240px;
  }
  .settings {
    padding:20px 16px;
  }
  #parameters {
    grid-template-columns:1fr;
  }
  .paired-fields {
    grid-column:auto;
  }
  .chart-note {
    font-size:10px;
  }
  .probe-heading h2 {
    font-size:18px;
  }
  .equation {
    font-size:21px;
  }
}
.history-range-label {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  font-size:10px;
  color:var(--muted);
  margin-top:7px;
}
.history-range-label select {
  width:auto;
  font-size:11px;
  padding:5px 8px;
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}
