@font-face {
  font-family:Cormorant;
  src:url('../public/fonts/cormorant.woff2') format('woff2');
  font-style:normal;
  font-weight:400 600;
  font-display:swap
}
@font-face {
  font-family:Literata;
  src:url('../public/fonts/literata.woff2') format('woff2');
  font-style:normal;
  font-weight:400 600;
  font-display:swap
}
@font-face {
  font-family:DM;
  src:url('../public/fonts/sans.woff2') format('woff2');
  font-style:normal;
  font-weight:400 700;
  font-display:swap
}
:root {
  --night:#102727;
  --deep:#0c1f20;
  --panel:#173231;
  --panel-light:#1d3a37;
  --text:#e6e8d8;
  --muted:#acb9ac;
  --quiet:#819b90;
  --gold:#c9ad77;
  --line:rgba(202,219,194,.16);
  --paper:#e1e5da;
  --paper-ink:#263d36;
  --serif:Cormorant,Georgia,serif;
  --body:Literata,Georgia,serif;
  --sans:DM,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color-scheme:dark;
  font-family:var(--sans);
  background:var(--night);
  color:var(--text);
  font-synthesis:weight
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  min-width:320px
}
button,input,a,summary {
  -webkit-tap-highlight-color:transparent
}
button,input {
  font:inherit
}
button {
  cursor:pointer;
  color:inherit;
  border:0
}
button:disabled {
  cursor:not-allowed;
  opacity:.4
}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px
}
button:focus:not(:focus-visible) {
  outline:none
}
a {
  color:inherit
}
button,input {
  border-radius:0
}
img {
  display:block;
  max-width:100%
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-weight:400
}
button svg {
  flex-shrink:0
}
.icon {
  width:22px;
  height:22px;
  display:inline-block;
  vertical-align:middle;
  flex-shrink:0
}
button {
  transition:background .18s,color .18s,border-color .18s,transform .18s
}
::selection {
  background:#c9ad77;
  color:#102727
}
.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;
  left:18px;
  top:0;
  transform:translateY(-200%);
  padding:12px;
  background:var(--gold);
  color:var(--night);
  z-index:999
}
.skip-link:focus {
  transform:translateY(0)
}
.eyebrow {
  font-family:var(--sans);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.19em;
  font-weight:500;
  color:var(--gold)
}
.line-separator {
  display:inline-block;
  width:30px;
  height:1px;
  background:var(--gold);
  opacity:.5;
  vertical-align:middle;
  margin:0 14px
}
.tiny-line {
  width:36px;
  height:1px;
  background:var(--gold);
  display:inline-block;
  vertical-align:middle;
  margin-right:16px
}
.translation {
  font-family:var(--sans);
  font-size:13px!important;
  font-weight:400;
  line-height:1.85!important;
  letter-spacing:.02em;
  color:var(--muted);
  margin-top:13px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  min-height:48px;
  padding:14px 24px;
  font-size:12px;
  line-height:1.5;
  font-weight:500;
  border:1px solid transparent;
  background:transparent;
  text-decoration:none
}
.button.primary {
  background:var(--gold);
  color:var(--deep);
  border-color:var(--gold)
}
.button.primary:hover {
  background:#dfc596;
  border-color:#dfc596
}
.button.primary .icon {
  width:20px
}
.button.secondary {
  border-color:var(--line);
  color:var(--text)
}
.button.secondary:hover {
  background:var(--panel-light)
}
.text-button {
  padding:8px 0;
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:none;
  font-size:11px;
  line-height:1.5;
  color:var(--gold);
  text-align:left
}
.text-button:hover {
  color:#eed7ac
}
.text-button .icon {
  width:17px;
  height:17px
}
.icon-button {
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:none;
  color:var(--muted)
}
.icon-button:hover {
  color:var(--gold);
  background:var(--panel-light)
}
.topbar {
  height:82px;
  padding:0 42px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:5;
  background:var(--night)
}
.wordmark {
  display:flex;
  align-items:center;
  gap:15px;
  text-decoration:none;
  color:var(--text)
}
.wordmark>.icon {
  width:29px;
  height:35px;
  color:var(--gold)
}
.wordmark>span {
  font-family:var(--serif);
  font-size:18px;
  letter-spacing:.18em;
  line-height:1.05
}
.wordmark small {
  display:block;
  font-family:var(--sans);
  font-size:7px;
  letter-spacing:.26em;
  color:var(--quiet);
  margin-top:8px
}
.tools {
  display:flex;
  gap:14px;
  align-items:center
}
.language-button {
  background:transparent;
  font-size:12px;
  color:var(--gold);
  padding:10px
}
.language-button span {
  color:var(--quiet);
  font-size:10px;
  margin-left:2px
}
.language-button.active {
  background:var(--panel-light)
}
.notebook-button {
  border:1px solid var(--line);
  background:transparent;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 15px;
  margin-left:9px;
  font-size:11px;
  min-height:40px
}
.notebook-button .icon {
  color:var(--gold);
  width:18px;
  height:18px
}
.notebook-button b {
  font-weight:400;
  font-size:10px;
  background:var(--panel-light);
  color:var(--gold);
  padding:2px 6px;
  margin-left:6px
}
.notebook-button:hover {
  border-color:var(--gold)
}
.cover {
  min-height:calc(100svh - 82px);
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden
}
.cover-art {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:60% 50%;
  z-index:-3;
  animation:arrival 1.6s ease-out both
}
.cover-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(9,26,27,.97) 0%,rgba(9,26,27,.88) 26%,rgba(9,26,27,.21) 65%,rgba(9,26,27,.18) 100%),linear-gradient(0deg,rgba(9,26,27,.9) 0%,transparent 40%);
  z-index:-2
}
.cover-grain {
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.35' filter='url(%23n)'/%3E%3C/svg%3E");
  z-index:-1
}
.cover-content {
  margin:68px 0 40px 9.5%;
  max-width:620px;
  animation:rise .9s .1s both
}
.cover h1 {
  font-family:var(--serif);
  font-size:clamp(95px,10.5vw,166px);
  line-height:.8;
  letter-spacing:-.025em;
  margin:36px 0 34px;
  color:#e6e5d5;
  font-weight:400
}
.cover h1 em {
  font-style:italic;
  color:var(--gold);
  font-weight:400
}
.title-period {
  color:var(--gold)
}
.cover-subtitle {
  font-family:var(--body);
  font-size:17px;
  line-height:1.75;
  color:#cbd3c4;
  margin-top:22px
}
.cover-entry {
  margin-top:35px;
  display:flex;
  flex-direction:column;
  gap:17px;
  align-items:flex-start
}
.start-button {
  min-width:246px;
  justify-content:space-between;
  padding:16px 24px;
  font-size:13px
}
.play-length {
  font-size:8px;
  color:var(--muted);
  letter-spacing:.14em;
  display:flex;
  align-items:center;
  gap:10px
}
.play-length i {
  height:3px;
  width:3px;
  display:inline-block;
  background:var(--gold);
  border-radius:50%
}
.cover-colophon {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:26px;
  padding:28px 42px 30px;
  border-top:1px solid var(--line);
  margin-top:24px
}
.cover-colophon>p:first-child {
  font-size:8px;
  line-height:1.9;
  letter-spacing:.18em;
  color:var(--quiet)
}
.cover-colophon>p:first-child span {
  font-family:var(--serif);
  font-size:17px;
  letter-spacing:.01em;
  color:var(--muted)
}
.cover-invitation {
  font-family:var(--body);
  font-size:11px;
  line-height:1.9;
  color:var(--muted)
}
.cover-colophon>.text-button {
  font-size:10px
}
.chapter-stamp {
  position:absolute;
  right:42px;
  top:35px;
  letter-spacing:.15em;
  font-size:8px;
  line-height:1.9;
  color:#ccd5c9;
  text-align:center
}
.chapter-stamp>span {
  display:block;
  font-family:var(--serif);
  font-size:44px;
  color:var(--gold);
  line-height:1.2;
  margin-bottom:8px
}
.storage-warning {
  color:#dfb394;
  font-size:11px;
  line-height:1.6;
  margin-top:18px
}
.game {
  max-width:1580px;
  margin:auto;
  padding:0 42px
}
.chapter-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px 0 20px
}
.chapter-line>.eyebrow {
  font-size:9px;
  color:var(--quiet);
  letter-spacing:.15em
}
.save-status {
  font-size:9px;
  color:var(--quiet);
  display:flex;
  gap:8px;
  align-items:center
}
.save-status i {
  width:4px;
  height:4px;
  background:#7d9e85;
  border-radius:50%
}
.scene-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:22px
}
.scene-heading .eyebrow {
  font-size:9px;
  letter-spacing:.22em
}
.scene-heading h1 {
  font-family:var(--serif);
  font-size:47px;
  line-height:1.1;
  margin-top:4px;
  letter-spacing:-.015em
}
.time-caption {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--muted);
  font-family:var(--serif);
  font-size:21px;
  margin-right:6px
}
.time-caption>.icon {
  color:var(--gold);
  width:25px;
  height:25px
}
.time-caption small {
  font-family:var(--sans);
  display:block;
  font-size:9px;
  color:var(--quiet);
  letter-spacing:.02em;
  margin-top:4px
}
.game-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 258px;
  gap:30px;
  align-items:start
}
.exploration {
  min-width:0
}
.scene-stage {
  position:relative;
  aspect-ratio:1.598;
  overflow:hidden;
  background:var(--deep);
  border:1px solid var(--line);
  isolation:isolate
}
.scene-art {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  animation:scene-enter .7s both
}
.scene-vignette {
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 90px 10px rgba(0,12,13,.2);
  background:linear-gradient(0deg,rgba(1,13,14,.68),transparent 20%,transparent 83%,rgba(1,13,14,.55));
  pointer-events:none
}
.scene-top-caption {
  position:absolute;
  inset:16px 18px auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#e1e5d7;
  pointer-events:none
}
.scene-top-caption>span {
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--serif);
  font-size:17px;
  text-shadow:0 1px 5px black
}
.scene-top-caption>span .icon {
  width:14px;
  height:14px;
  color:var(--gold)
}
.stage-tool {
  pointer-events:auto;
  width:32px;
  height:32px;
  background:rgba(14,30,29,.76);
  border:1px solid rgba(201,173,119,.5);
  display:grid;
  place-content:center;
  color:var(--gold)
}
.stage-tool .icon {
  width:17px;
  height:17px
}
.stage-tool:hover,.stage-tool.active {
  background:var(--gold);
  color:var(--deep)
}
.scene-bottom-caption {
  position:absolute;
  inset:auto 20px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  pointer-events:none;
  font-size:8px;
  letter-spacing:.17em;
  color:#c5cec0
}
.scene-bottom-caption>span:first-child {
  display:flex;
  align-items:center;
  gap:5px
}
.scene-bottom-caption .icon {
  width:15px;
  height:15px
}
.hotspot {
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:44px;
  height:44px;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  background:transparent;
  z-index:2;
  padding:0
}
.hotspot-mark {
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(8,24,24,.65);
  border:1px solid rgba(240,224,188,.85);
  box-shadow:0 0 0 5px rgba(18,43,42,.22),0 2px 12px #0005;
  color:#f0dfb9;
  font-family:var(--sans);
  font-size:20px;
  line-height:1;
  transition:all .2s
}
.hotspot-mark::after {
  content:'';
  position:absolute;
  width:40px;
  height:40px;
  border:1px solid var(--gold);
  border-radius:50%;
  opacity:.3;
  animation:breathe 3.6s ease-in-out infinite
}
.hotspot:nth-of-type(2n) .hotspot-mark::after {
  animation-delay:1.3s
}
.hotspot-label {
  position:absolute;
  top:49px;
  left:50%;
  transform:translate(-50%, -3px);
  white-space:nowrap;
  background:rgba(9,26,26,.94);
  border:1px solid rgba(201,173,119,.55);
  padding:8px 12px;
  opacity:0;
  pointer-events:none;
  font-size:11px;
  transition:opacity .16s,transform .16s;
  color:#eceddf;
  box-shadow:0 2px 10px #0005
}
.hotspot:hover,.hotspot:focus-visible {
  z-index:4
}
.hotspot:hover .hotspot-mark,.hotspot:focus-visible .hotspot-mark {
  background:var(--gold);
  color:var(--deep);
  transform:scale(1.1)
}
.hotspot:hover .hotspot-label,.hotspot:focus-visible .hotspot-label,.show-labels .hotspot-label {
  opacity:1;
  transform:translate(-50%,0)
}
.hotspot.found .hotspot-mark {
  background:rgba(22,43,36,.85);
  color:#c4ccae;
  border-color:#aabb94;
  box-shadow:none
}
.hotspot.found .hotspot-mark .icon {
  width:14px;
  height:14px
}
.hotspot.found .hotspot-mark::after {
  display:none
}
.scene-narration {
  display:flex;
  gap:17px;
  padding:21px 5px 20px;
  min-height:100px
}
.narrator-mark {
  font-family:var(--serif);
  font-size:27px;
  font-style:italic;
  color:var(--gold);
  padding-top:0;
  flex-shrink:0
}
.scene-narration>div>p:first-child {
  font-family:var(--body);
  font-size:14px;
  line-height:1.95;
  color:#c2ccbd;
  max-width:880px
}
.scene-narration .translation {
  font-size:11px!important;
  margin-top:7px
}
.locations {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  padding-top:17px;
  border-top:1px solid var(--line)
}
.location {
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 10px;
  background:var(--deep);
  border:1px solid var(--line);
  text-align:left;
  min-height:70px
}
.location.selected {
  background:var(--panel-light);
  border-color:rgba(201,173,119,.5)
}
.location:hover {
  border-color:var(--gold)
}
.location>span:nth-child(2) {
  font-family:var(--serif);
  font-size:19px;
  white-space:nowrap;
  flex:1
}
.location small {
  display:block;
  font-family:var(--sans);
  font-size:6px;
  letter-spacing:.13em;
  color:var(--quiet);
  margin-bottom:5px
}
.location-thumb {
  width:43px;
  height:45px;
  background-size:cover;
  background-position:center;
  filter:saturate(.6);
  opacity:.7;
  flex-shrink:0
}
.location-thumb.grounds {
  background-image:url('../public/art/grounds.png')
}
.location-thumb.bedroom {
  background-image:url('../public/art/bedroom.png')
}
.location-thumb.study {
  background-image:url('../public/art/study.png')
}
.location.selected .location-thumb {
  opacity:1
}
.location>.icon {
  width:14px;
  height:14px;
  color:var(--quiet)
}
.case-sidebar {
  padding:0 0 0 3px
}
.assignment {
  border-top:1px solid var(--gold);
  padding-top:18px
}
.assignment>.eyebrow {
  font-size:8px;
  letter-spacing:.22em
}
.assignment h2 {
  font-family:var(--serif);
  font-size:34px;
  line-height:1.04;
  margin:12px 0 17px;
  letter-spacing:-.02em
}
.assignment>p:not(.eyebrow):not(.translation) {
  font-family:var(--body);
  font-size:11px;
  line-height:1.9;
  color:var(--muted)
}
.assignment .translation {
  font-size:11px!important
}
.progress-dots {
  display:flex;
  gap:5px;
  align-items:center;
  margin:22px 0 24px
}
.progress-dots>span {
  width:17px;
  height:3px;
  background:#36524a
}
.progress-dots>span.done {
  background:var(--gold)
}
.progress-dots>small {
  margin-left:5px;
  letter-spacing:.08em;
  font-size:7px;
  color:var(--quiet)
}
.witnesses {
  padding:20px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.witnesses>.eyebrow,.field-summary>.eyebrow {
  font-size:8px;
  color:var(--quiet);
  letter-spacing:.2em;
  margin-bottom:14px
}
.portrait {
  display:block;
  background-image:url('../public/art/portraits.png');
  background-size:200% 100%;
  background-repeat:no-repeat;
  background-position:left center;
  flex-shrink:0
}
.portrait.helen {
  background-position:right center
}
.person-card {
  display:flex;
  align-items:center;
  gap:11px;
  background:transparent;
  text-align:left;
  padding:5px 0;
  width:100%;
  margin:0 0 12px
}
.person-card:last-child {
  margin-bottom:0
}
.person-card>.portrait {
  width:49px;
  height:59px;
  background-size:290% 145%;
  border:1px solid var(--line)
}
.person-card>.portrait.holmes {
  background-position:9% 12%
}
.person-card>.portrait.helen {
  background-position:91% 12%
}
.person-card>span:nth-child(2) {
  font-family:var(--serif);
  font-size:22px;
  line-height:1.05;
  flex:1
}
.person-card small {
  display:block;
  font-family:var(--sans);
  font-size:8px;
  line-height:1.6;
  margin-top:8px;
  color:var(--quiet)
}
.person-card>.icon {
  width:14px;
  color:var(--quiet)
}
.person-card:hover {
  color:var(--gold)
}
.person-card:hover .portrait {
  border-color:var(--gold)
}
.field-summary {
  padding:23px 0 20px;
  border-bottom:1px solid var(--line)
}
.tally {
  display:flex;
  gap:32px;
  margin-top:-3px
}
.tally>span {
  font-family:var(--serif);
  font-size:38px;
  line-height:1;
  color:var(--text)
}
.tally small {
  display:block;
  font-family:var(--sans);
  font-size:9px;
  color:var(--quiet);
  margin-top:9px
}
.connect-button {
  margin-top:16px;
  font-size:10px;
  gap:20px
}
.night-invitation {
  margin-top:21px;
  padding:20px 15px;
  border:1px solid var(--line);
  background:rgba(5,18,20,.25)
}
.night-invitation>.icon {
  width:20px;
  color:var(--quiet);
  margin-bottom:10px
}
.night-invitation>p {
  font-family:var(--serif);
  font-size:21px;
  line-height:1.2;
  color:var(--muted)
}
.night-button {
  padding:13px 0 0;
  min-height:38px;
  gap:12px;
  font-size:9px;
  justify-content:space-between;
  width:100%;
  color:var(--gold)
}
.night-button .icon {
  width:16px;
  height:16px
}
.night-invitation.is-ready {
  border-color:var(--gold);
  background:var(--panel-light)
}
.night-invitation.is-ready>.icon {
  color:var(--gold)
}
.night-invitation.is-ready>p {
  color:var(--text)
}
.game-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-top:1px solid var(--line);
  margin-top:30px;
  padding:17px 0 20px;
  font-size:8px;
  color:var(--quiet);
  letter-spacing:.04em
}
.game-footer>span:last-child {
  font-size:7px;
  letter-spacing:.12em
}
.game-footer>.text-button {
  font-size:9px
}
.modal-open {
  overflow:hidden
}
.modal-backdrop {
  position:fixed;
  inset:0;
  background:rgba(2,13,15,.82);
  backdrop-filter:blur(9px);
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  overflow:auto
}
.modal {
  position:relative;
  background:var(--panel);
  width:min(100%,1020px);
  max-height:calc(100svh - 56px);
  border:1px solid rgba(201,173,119,.3);
  box-shadow:0 30px 100px rgba(0,0,0,.45);
  animation:modal-enter .25s ease-out both;
  overflow:auto;
  flex-shrink:0
}
.close-button {
  position:absolute;
  right:18px;
  top:18px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:var(--muted);
  border:1px solid var(--line);
  background:rgba(16,39,39,.55);
  z-index:10
}
.close-button>.icon {
  width:17px;
  height:17px
}
.close-button:hover {
  color:var(--gold);
  border-color:var(--gold)
}
.modal h2 {
  font-family:var(--serif);
  font-size:45px;
  line-height:1.05;
  letter-spacing:-.01em;
  margin-top:10px;
  margin-bottom:22px
}
.literary {
  font-family:var(--body);
  font-size:14px;
  line-height:1.95;
  color:#ccd5c6;
  margin-bottom:18px
}
.small-modal {
  max-width:600px;
  padding:50px
}
.small-modal h2 {
  margin-top:15px
}
.small-modal .button {
  margin-top:16px
}
.small-modal>.text-button {
  display:block;
  margin-top:14px
}
.readiness-list {
  list-style:none;
  padding:12px 0 0;
  margin:0
}
.readiness-list li {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 0;
  font-size:12px;
  color:var(--muted);
  border-bottom:1px solid var(--line)
}
.readiness-list li>.icon {
  width:16px;
  height:16px;
  color:var(--quiet)
}
.readiness-list li.done {
  color:var(--gold)
}
.readiness-list li.done>.icon {
  color:var(--gold)
}
.letter-modal {
  max-width:660px;
  padding:48px 58px;
  background:#19342f
}
.letter-seal {
  color:var(--gold);
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
  margin-bottom:25px
}
.letter-seal>.icon {
  width:34px;
  height:34px
}
.letter-modal h2 {
  font-size:53px
}
.letter-modal>.eyebrow {
  font-size:8px
}
.letter-modal>.literary {
  font-size:12px;
  line-height:1.95
}
.how-to {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  padding-top:21px;
  margin:23px 0 24px;
  color:var(--muted);
  font-size:9px
}
.how-to>span {
  display:flex;
  align-items:center;
  gap:7px
}
.how-to .icon {
  width:16px;
  height:16px;
  color:var(--gold)
}
.inspect-modal {
  max-width:920px;
  display:grid;
  grid-template-columns:36% 1fr;
  min-height:480px
}
.inspect-illustration {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:100%;
  background:#0b1e20
}
.inspect-illustration>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.3;
  filter:saturate(.7)
}
.inspect-illustration>div {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(7,20,20,.9),transparent)
}
.inspect-symbol {
  position:absolute;
  top:40%;
  left:50%;
  transform:translate(-50%,-50%);
  color:#e4cf9c;
  border:1px solid rgba(201,173,119,.3);
  width:110px;
  height:110px;
  display:grid;
  place-content:center;
  border-radius:50%;
  box-shadow:0 0 0 12px rgba(201,173,119,.04)
}
.inspect-symbol>.icon {
  width:56px;
  height:56px;
  stroke-width:.7
}
.inspect-illustration>p {
  position:absolute;
  bottom:60px;
  left:20px;
  right:20px;
  text-align:center;
  font-family:var(--serif);
  font-size:30px;
  line-height:1.1;
  color:var(--gold)
}
.inspect-copy {
  padding:53px 45px 38px
}
.inspect-copy h2 {
  font-size:39px;
  margin-bottom:22px
}
.inspect-copy>.literary {
  font-size:13px
}
.inspect-copy>.button {
  width:100%;
  gap:12px;
  justify-content:space-between;
  text-align:left;
  margin-top:13px;
  font-size:11px
}
.inspect-copy>.text-button {
  display:flex;
  margin-top:12px;
  font-size:10px
}
.recorded-note {
  border-left:1px solid var(--gold);
  padding:8px 0 8px 14px;
  color:var(--quiet);
  font-size:9px;
  line-height:1.7;
  margin:18px 0
}
.recorded-note>.icon {
  width:13px;
  height:13px;
  vertical-align:middle;
  margin-right:5px;
  color:var(--gold)
}
.recorded-note>strong {
  display:block;
  font-family:var(--serif);
  font-size:21px;
  font-weight:400;
  color:var(--gold);
  margin-top:4px
}
.dialogue-modal {
  display:grid;
  grid-template-columns:34% 1fr;
  max-width:1000px;
  min-height:620px;
  overflow:hidden
}
.dialogue-portrait {
  position:relative;
  background:var(--deep);
  overflow:hidden;
  min-height:620px
}
.dialogue-portrait>.portrait {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background-size:auto 100%
}
.dialogue-portrait.holmes>.portrait {
  background-position:14% 0
}
.dialogue-portrait.helen>.portrait {
  background-position:86% 0
}
.portrait-fade {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#0d2524 0%,rgba(13,37,36,.1) 60%)
}
.portrait-caption {
  position:absolute;
  bottom:35px;
  left:27px;
  right:20px
}
.portrait-caption>small {
  font-size:7px;
  letter-spacing:.17em;
  line-height:1.8;
  color:var(--gold)
}
.portrait-caption h2 {
  font-size:37px;
  margin:10px 0 0
}
.dialogue-copy {
  padding:39px 40px 30px;
  overflow:auto;
  max-height:calc(100svh - 56px);
  scrollbar-width:thin;
  scrollbar-color:var(--quiet) transparent
}
.dialogue-copy>.eyebrow {
  font-size:8px;
  padding-right:25px
}
.stage-direction {
  font-family:var(--serif);
  font-size:17px;
  line-height:1.5;
  font-style:italic;
  color:var(--quiet);
  padding-top:14px;
  margin-bottom:24px;
  max-width:460px
}
.spoken-response {
  position:relative;
  padding:0 0 0 25px;
  margin-bottom:24px
}
.quote-mark {
  position:absolute;
  top:-7px;
  left:-1px;
  font-family:var(--serif);
  font-size:43px;
  color:var(--gold);
  opacity:.8
}
.spoken-response>p:first-of-type {
  font-family:var(--body);
  font-size:14px;
  line-height:1.9;
  color:var(--text);
  animation:rise .3s ease-out
}
.spoken-response .translation {
  font-size:12px!important
}
.asked-question {
  font-family:var(--sans);
  font-size:10px;
  color:var(--gold);
  line-height:1.7;
  margin:10px 0 20px;
  padding:10px 12px;
  background:var(--deep);
  overflow-wrap:anywhere
}
.conversation-recorded {
  display:flex;
  align-items:center;
  gap:8px;
  margin:-8px 0 22px;
  color:var(--gold);
  font-size:9px
}
.conversation-recorded>.icon {
  width:14px;
  height:14px
}
.topic-list,.approach {
  padding-top:16px;
  border-top:1px solid var(--line)
}
.topic-list>.eyebrow,.approach>.eyebrow {
  color:var(--quiet);
  font-size:8px;
  margin-bottom:8px
}
.topic-button {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  width:100%;
  padding:11px 0;
  background:none;
  border-bottom:1px solid var(--line);
  text-align:left;
  font-size:11px;
  line-height:1.5;
  color:#cfdbca
}
.topic-button>.icon {
  width:13px;
  height:13px;
  color:var(--quiet)
}
.topic-button:hover,.topic-button.current {
  color:var(--gold)
}
.topic-button.current>.icon {
  color:var(--gold)
}
.approach>.topic-button {
  font-family:var(--body);
  font-size:13px;
  display:block;
  line-height:1.8;
  padding:14px 12px;
  margin-top:8px;
  border:1px solid var(--line)
}
.approach>.topic-button:hover {
  border-color:var(--gold);
  background:var(--panel-light)
}
.approach>.topic-button small {
  font-family:var(--sans);
  display:block;
  font-size:9px;
  color:var(--quiet);
  margin-top:3px
}
.question-form {
  margin-top:21px
}
.question-form>label {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:10px
}
.question-form>div {
  display:flex;
  border:1px solid var(--line);
  background:rgba(7,23,25,.5)
}
.question-form input {
  min-width:0;
  width:100%;
  padding:13px 12px;
  background:none;
  border:0;
  color:var(--text);
  font-family:var(--sans);
  font-size:11px
}
.question-form input::placeholder {
  color:var(--quiet)
}
.ask-button {
  width:47px;
  min-width:47px;
  display:grid;
  place-items:center;
  background:none;
  color:var(--gold);
  border-left:1px solid var(--line)
}
.ask-button:hover {
  background:var(--gold);
  color:var(--deep)
}
.ask-button>.icon {
  width:18px
}
.question-form>small {
  display:block;
  font-size:8px;
  color:var(--quiet);
  margin-top:9px;
  line-height:1.7
}
.notebook-modal {
  max-width:1080px;
  background:var(--paper);
  color:var(--paper-ink);
  border-color:#a9b69d;
  --gold:#7c663b;
  --line:rgba(38,61,54,.18);
  --quiet:#637e6c;
  --muted:#526c5f;
  color-scheme:light
}
.notebook-modal .close-button {
  background:transparent;
  border-color:rgba(38,61,54,.2);
  color:var(--paper-ink)
}
.notebook-header {
  display:flex;
  justify-content:space-between;
  padding:31px 42px 23px;
  border-bottom:1px solid var(--line);
  margin-right:10px
}
.notebook-header .eyebrow {
  font-size:8px;
  letter-spacing:.19em;
  color:var(--quiet)
}
.notebook-header h2 {
  font-family:var(--serif);
  font-size:38px;
  margin:6px 0 0;
  line-height:1.1
}
.notebook-header h2>span {
  font-family:var(--serif);
  font-size:15px;
  font-style:italic;
  color:var(--quiet);
  margin-left:22px
}
.notebook-header>.icon {
  color:var(--quiet);
  width:31px;
  height:31px;
  margin-top:14px;
  margin-right:52px;
  stroke-width:1
}
.notebook-tabs {
  display:flex;
  padding:0 42px;
  border-bottom:1px solid var(--line);
  gap:30px
}
.notebook-tab {
  font-size:11px;
  padding:16px 0 14px;
  background:transparent;
  color:var(--quiet);
  border-bottom:2px solid transparent;
  margin-bottom:-1px
}
.notebook-tab>span {
  font-size:9px;
  margin-left:8px
}
.notebook-tab.active {
  border-bottom-color:var(--paper-ink);
  color:var(--paper-ink)
}
.observations-body {
  padding:25px 42px
}
.observation-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}
.observation-card {
  display:block;
  padding:15px;
  background:rgba(255,255,255,.15);
  border:1px solid var(--line);
  text-align:left;
  color:var(--paper-ink)
}
.observation-card:hover,.observation-card.active {
  border-color:#627c65;
  background:rgba(255,255,255,.42)
}
.observation-card>small {
  display:block;
  font-family:var(--sans);
  font-size:8px;
  color:var(--quiet);
  font-weight:500;
  margin-bottom:12px
}
.observation-card>small>span {
  font-size:7px;
  margin-left:8px;
  font-weight:400
}
.note-heading {
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px
}
.note-heading>.icon {
  width:16px;
  height:16px;
  stroke-width:1.15;
  color:#7f733f
}
.note-heading>strong {
  font-family:var(--serif);
  font-size:22px;
  line-height:1.05;
  font-weight:500
}
.observation-card>p {
  font-family:var(--body);
  font-size:10px;
  line-height:1.8;
  color:#526456
}
.note-detail {
  margin-top:22px;
  border-top:1px solid var(--line);
  padding:22px 0 2px;
  max-width:760px;
  animation:rise .2s both
}
.note-detail>.eyebrow {
  font-size:8px;
  color:var(--quiet)
}
.note-detail>h3 {
  font-family:var(--serif);
  font-size:31px;
  margin:6px 0 12px
}
.note-detail>p:not(.eyebrow):not(.translation) {
  font-family:var(--body);
  font-size:12px;
  line-height:1.9;
  color:#405748
}
.note-detail>.translation {
  color:#536c5c
}
.notebook-footnote {
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  margin-top:22px;
  color:var(--quiet)
}
.notebook-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  padding:17px 42px;
  border-top:1px solid var(--line)
}
.notebook-bottom>span {
  font-size:7px;
  letter-spacing:.1em;
  color:var(--quiet)
}
.notebook-bottom>.text-button {
  color:var(--paper-ink);
  font-size:10px
}
.ink-button {
  background:var(--paper-ink);
  color:var(--paper);
  font-size:11px;
  padding:12px 18px;
  gap:15px;
  min-height:44px
}
.ink-button:hover {
  background:#3a5948
}
.empty-notebook {
  padding:42px 25px 55px;
  text-align:center;
  max-width:470px;
  margin:auto
}
.empty-notebook>.icon {
  width:40px;
  height:40px;
  color:var(--quiet);
  margin-bottom:18px
}
.empty-notebook>h3 {
  font-family:var(--serif);
  font-size:36px;
  margin-bottom:15px
}
.empty-notebook>p {
  font-family:var(--body);
  font-size:12px;
  line-height:1.8;
  color:var(--quiet);
  margin-bottom:23px
}
.connections-body {
  display:grid;
  grid-template-columns:230px 1fr;
  min-height:450px
}
.deduction-nav {
  padding:28px 15px 28px 27px;
  border-right:1px solid var(--line);
  background:rgba(140,159,138,.09)
}
.deduction-tab {
  display:flex;
  width:100%;
  align-items:center;
  gap:11px;
  background:none;
  padding:13px 9px;
  text-align:left;
  color:var(--quiet);
  border-left:2px solid transparent;
  margin-bottom:7px
}
.deduction-tab.active {
  background:rgba(67,96,70,.08);
  color:var(--paper-ink);
  border-left-color:var(--paper-ink)
}
.deduction-status {
  width:24px;
  height:26px;
  display:grid;
  place-items:center
}
.deduction-status>.icon {
  width:18px;
  height:18px;
  stroke-width:1.5
}
.deduction-tab>span:nth-child(2) {
  font-family:var(--serif);
  font-size:21px;
  line-height:1.2
}
.deduction-tab small {
  display:block;
  font-family:var(--sans);
  font-size:6px;
  letter-spacing:.1em;
  margin-top:5px;
  color:var(--quiet)
}
.deduction-nav>p {
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  line-height:1.5;
  color:#758773;
  margin:25px 15px
}
.deduction-work {
  padding:29px 33px 27px
}
.deduction-work>.eyebrow {
  font-size:8px;
  color:var(--quiet)
}
.deduction-work>h3 {
  font-family:var(--serif);
  font-size:32px;
  line-height:1.13;
  margin:8px 0 15px;
  max-width:610px
}
.selection-instruction {
  font-size:10px;
  color:var(--quiet);
  line-height:1.7;
  margin:18px 0 12px;
  display:flex;
  justify-content:space-between;
  gap:14px
}
.selection-instruction>b {
  white-space:nowrap;
  font-weight:500;
  color:var(--paper-ink)
}
.evidence-picker {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px
}
.evidence-choice {
  display:flex;
  gap:8px;
  align-items:center;
  text-align:left;
  border:1px solid var(--line);
  background:rgba(255,255,255,.18);
  color:#526b58;
  padding:9px;
  font-size:9px;
  line-height:1.4;
  min-height:42px
}
.evidence-choice.selected {
  background:#c8d6bc;
  border-color:#617a58;
  color:var(--paper-ink)
}
.evidence-choice:hover {
  border-color:#617a58
}
.evidence-choice>.icon {
  width:15px;
  height:15px;
  stroke-width:1.3
}
.evidence-choice>span {
  flex:1
}
.evidence-choice>i {
  font-family:var(--sans);
  font-size:14px;
  font-style:normal
}
.evidence-choice>i>.icon {
  width:13px;
  height:13px
}
.hypotheses {
  border:0;
  margin:23px 0 21px;
  padding:0;
  min-width:0
}
.hypotheses>legend {
  font-size:9px;
  color:#425b48;
  margin-bottom:8px
}
.hypothesis {
  display:flex;
  align-items:start;
  gap:9px;
  font-family:var(--body);
  font-size:11px;
  line-height:1.7;
  margin-top:8px;
  cursor:pointer;
  padding:5px 0
}
.hypothesis input {
  accent-color:#435c42;
  margin-top:4px;
  flex-shrink:0
}
.hypothesis.selected {
  color:#294b33
}
.deduction-work>.text-button {
  color:#7b6c43;
  margin-left:15px;
  font-size:9px
}
.deduction-feedback {
  font-family:var(--body);
  font-size:11px;
  line-height:1.8;
  background:#d3d6bf;
  border-left:2px solid #927844;
  padding:12px;
  margin:12px 0 17px;
  color:#5e5439
}
.deduction-feedback.success {
  background:#c7d7bd;
  color:var(--paper-ink)
}
.solved-inference {
  padding-top:20px;
  color:#3e5e43
}
.solved-inference>.icon {
  width:34px;
  height:34px;
  margin-bottom:22px;
  stroke-width:1
}
.evidence-pair {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap
}
.evidence-pair>span {
  font-family:var(--serif);
  font-size:23px;
  background:#cfdbc4;
  border:1px solid #a8b99a;
  padding:10px
}
.evidence-pair>b {
  font-size:15px;
  font-weight:400;
  color:var(--quiet)
}
.solved-inference>p:not(.translation) {
  font-family:var(--body);
  font-size:13px;
  line-height:1.95;
  max-width:600px;
  margin-top:25px;
  color:#3f5948
}
.plan-modal {
  display:grid;
  grid-template-columns:43% 1fr;
  max-width:950px
}
.plan-intro {
  background:var(--deep);
  padding:50px 34px
}
.plan-intro>.eyebrow {
  font-size:8px;
  letter-spacing:.17em
}
.plan-intro h2 {
  font-size:47px;
  margin:20px 0 30px
}
.plan-intro>.literary {
  font-size:12px;
  line-height:2
}
.plan-intro>.translation {
  font-size:12px!important
}
.plan-form {
  padding:48px 34px 25px
}
.plan-form>fieldset {
  border:0;
  padding:0;
  margin:0 0 24px;
  min-width:0
}
.plan-form legend {
  font-family:var(--serif);
  font-size:25px;
  margin-bottom:14px
}
.plan-form legend>span {
  font-family:var(--sans);
  font-size:8px;
  color:var(--gold);
  margin-right:10px;
  vertical-align:middle
}
.plan-option {
  display:flex;
  gap:12px;
  align-items:start;
  padding:11px 10px;
  border:1px solid var(--line);
  margin-top:8px;
  cursor:pointer
}
.plan-option:has(input:checked) {
  border-color:var(--gold);
  background:var(--panel-light)
}
.plan-option input {
  accent-color:var(--gold);
  margin-top:5px;
  flex-shrink:0
}
.plan-option strong {
  font-size:12px;
  font-weight:500;
  line-height:1.6;
  display:block
}
.plan-option small {
  display:block;
  font-size:9px;
  line-height:1.7;
  color:var(--quiet);
  margin-top:5px
}
.plan-quotation {
  font-family:var(--serif);
  font-size:22px;
  font-style:italic;
  color:var(--gold);
  margin:12px 0 22px
}
.plan-quotation>span {
  font-family:var(--sans);
  font-size:8px;
  font-style:normal;
  display:block;
  color:var(--quiet);
  margin-top:6px
}
.plan-form>.button {
  width:100%;
  justify-content:space-between;
  font-size:11px
}
.plan-footnote {
  font-size:8px;
  line-height:1.8;
  margin-top:11px;
  color:var(--quiet)
}
.about-modal {
  max-width:870px;
  padding:45px 48px 26px
}
.about-modal>h2 {
  font-size:50px;
  margin-bottom:16px
}
.about-modal>.eyebrow {
  font-size:8px
}
.about-modal>.literary {
  font-size:12px;
  max-width:650px;
  margin-bottom:30px
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px 37px;
  padding:24px 0 30px;
  border-top:1px solid var(--line)
}
.about-grid h3 {
  font-family:var(--serif);
  font-size:27px;
  color:var(--gold);
  margin-bottom:12px
}
.about-grid p {
  font-size:11px;
  line-height:1.9;
  color:var(--muted)
}
.about-grid a {
  font-size:11px;
  color:var(--gold);
  line-height:1.8;
  display:inline-block;
  margin-top:10px
}
.about-grid a small {
  display:block;
  color:var(--quiet);
  font-size:9px
}
.about-bottom {
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:center;
  margin-top:24px;
  padding-top:15px;
  border-top:1px solid var(--line)
}
.about-bottom>span {
  font-size:7px;
  letter-spacing:.08em;
  color:var(--quiet)
}
.about-bottom>.text-button {
  font-size:9px
}
.glossary {
  border:1px solid var(--line);
  padding:14px
}
.glossary summary {
  font-size:11px;
  color:var(--gold);
  cursor:pointer
}
.glossary dl {
  margin:20px 0 5px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.glossary dt {
  font-family:var(--serif);
  font-size:23px;
  color:var(--text)
}
.glossary dd {
  margin:5px 0 0;
  font-size:10px;
  line-height:1.8;
  color:var(--muted)
}
.night-screen,.ending-screen {
  position:relative;
  isolation:isolate;
  min-height:calc(100svh - 82px);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center
}
.night-art,.ending-art {
  position:absolute;
  inset:0;
  height:100%;
  width:100%;
  object-fit:cover;
  z-index:-3;
  filter:saturate(.3);
  opacity:.5
}
.night-screen.dark .night-art {
  filter:saturate(.15) brightness(.35)
}
.night-screen.light .night-art {
  filter:saturate(.4) brightness(.6)
}
.night-shade,.ending-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(4,20,23,.94),rgba(4,20,23,.58) 55%,rgba(4,20,23,.8));
  z-index:-2
}
.night-text {
  width:100%;
  max-width:900px;
  padding:55px 60px 80px;
  animation:rise 1s both
}
.night-text>.eyebrow {
  font-size:9px
}
.night-text h1 {
  font-family:var(--serif);
  font-size:clamp(50px,6vw,85px);
  line-height:1.05;
  margin:26px 0 35px;
  color:#e5e4d4;
  max-width:760px
}
.night-prose {
  font-family:var(--body);
  font-size:17px;
  line-height:2.15;
  color:#cad3c4;
  max-width:650px
}
.night-text>.translation {
  max-width:650px
}
.night-text>.button {
  margin-top:36px;
  min-width:200px;
  justify-content:space-between
}
.page-count {
  display:inline-block;
  margin-left:25px;
  font-size:10px;
  color:var(--quiet);
  letter-spacing:.12em
}
.ending-art {
  opacity:.2;
  filter:saturate(.2)
}
.ending-shade {
  background:rgba(7,27,27,.8)
}
.ending-content {
  width:100%;
  max-width:1100px;
  padding:60px 45px 55px;
  animation:rise .8s both
}
.ending-content>.eyebrow {
  font-size:8px
}
.ending-content h1 {
  font-family:var(--serif);
  font-size:clamp(42px,5vw,65px);
  line-height:1.08;
  letter-spacing:-.02em;
  margin:22px 0 26px;
  max-width:960px
}
.ending-description {
  font-family:var(--body);
  font-size:13px;
  line-height:2;
  color:var(--muted);
  max-width:720px
}
.ending-record {
  display:flex;
  gap:35px;
  flex-wrap:wrap;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:25px 0;
  margin:28px 0
}
.ending-record small {
  font-size:7px;
  letter-spacing:.17em;
  color:var(--gold)
}
.ending-record p {
  font-family:var(--serif);
  font-size:24px;
  margin-top:9px;
  line-height:1.2
}
.ending-human {
  font-family:var(--serif);
  font-size:23px;
  font-style:italic;
  color:var(--gold);
  line-height:1.5;
  margin:22px 0
}
.ending-actions {
  display:flex;
  gap:13px;
  flex-wrap:wrap;
  margin-top:26px
}
.ending-actions .button {
  font-size:11px
}
.ending-note {
  font-size:9px;
  line-height:1.8;
  color:var(--quiet);
  margin-top:24px
}
.ending-content>.text-button {
  font-size:10px;
  margin-top:12px
}
.toast {
  position:fixed;
  bottom:26px;
  left:50%;
  transform:translateX(-50%);
  z-index:200;
  background:var(--gold);
  color:var(--deep);
  border:1px solid #e5ca91;
  box-shadow:0 10px 50px #0007;
  font-size:11px;
  line-height:1.7;
  padding:13px 22px;
  max-width:calc(100% - 35px);
  text-align:center;
  animation:toast-enter .25s both
}
@keyframes arrival {
  from {
    opacity:0;
    transform:scale(1.035)
  }
  to {
    opacity:1;
    transform:scale(1)
  }
}
@keyframes rise {
  from {
    opacity:0;
    transform:translateY(10px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@keyframes scene-enter {
  from {
    opacity:.45;
    transform:scale(1.015)
  }
  to {
    opacity:1;
    transform:scale(1)
  }
}
@keyframes breathe {
  0%,100% {
    transform:scale(.9);
    opacity:.05
  }
  50% {
    transform:scale(1.15);
    opacity:.3
  }
}
@keyframes modal-enter {
  from {
    opacity:0;
    transform:translateY(8px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@keyframes toast-enter {
  from {
    opacity:0;
    transform:translate(-50%,10px)
  }
  to {
    opacity:1;
    transform:translate(-50%,0)
  }
}
@media(min-width:1550px) {
  .cover-content {
    margin-top:90px
  }
  .cover h1 {
    font-size:174px
  }
  .game-layout {
    grid-template-columns:minmax(0,1fr) 280px;
    gap:36px
  }
  .game {
    padding:0 48px
  }
  .case-sidebar {
    padding-left:6px
  }
  .assignment h2 {
    font-size:39px
  }
  .assignment>p:not(.eyebrow):not(.translation) {
    font-size:12px
  }
  .witnesses {
    padding:25px 0
  }
  .night-invitation {
    padding:24px 18px
  }
  .night-button {
    font-size:10px
  }
  .person-card small {
    font-size:9px
  }
  .topbar {
    padding:0 48px
  }
}
@media(min-width:1180px) and (max-height:900px) {
  .cover-content {
    margin-top:45px;
    margin-bottom:20px
  }
  .cover h1 {
    font-size:132px;
    margin-top:30px;
    margin-bottom:24px
  }
  .cover-entry {
    margin-top:25px
  }
  .cover-colophon {
    padding-top:22px;
    padding-bottom:22px
  }
  .game {
    max-width:1320px;
    padding:0 32px
  }
  .chapter-line {
    padding:16px 0
  }
  .scene-heading {
    padding-bottom:16px
  }
  .scene-heading h1 {
    font-size:39px
  }
  .game-layout {
    grid-template-columns:minmax(0,1fr) 245px;
    gap:25px
  }
  .scene-narration {
    min-height:90px;
    padding:15px 4px
  }
  .scene-narration>div>p:first-child {
    font-size:13px
  }
  .assignment {
    padding-top:14px
  }
  .assignment h2 {
    font-size:30px;
    margin:10px 0 12px
  }
  .assignment>p:not(.eyebrow):not(.translation) {
    font-size:10px
  }
  .progress-dots {
    margin:18px 0 20px
  }
  .witnesses {
    padding:17px 0
  }
  .person-card>.portrait {
    width:42px;
    height:49px
  }
  .person-card>span:nth-child(2) {
    font-size:21px
  }
  .person-card small {
    font-size:7px;
    margin-top:6px
  }
  .field-summary {
    padding:18px 0
  }
  .night-invitation {
    margin-top:18px;
    padding:14px
  }
  .night-invitation>p {
    font-size:20px
  }
  .tally>span {
    font-size:34px
  }
  .locations {
    padding-top:12px
  }
  .location {
    min-height:60px
  }
  .location-thumb {
    width:34px;
    height:38px
  }
  .location>span:nth-child(2) {
    font-size:18px
  }
  .game-footer {
    margin-top:20px;
    padding-top:10px
  }
}
@media(max-width:1179px) {
  .topbar {
    padding:0 26px;
    height:72px
  }
  .cover {
    min-height:calc(100svh - 72px)
  }
  .cover-content {
    margin-left:7%;
    margin-top:65px
  }
  .cover h1 {
    font-size:140px
  }
  .cover-shade {
    background:linear-gradient(90deg,rgba(9,26,27,.96),rgba(9,26,27,.75) 45%,rgba(9,26,27,.2)),linear-gradient(0deg,rgba(9,26,27,.95),transparent 45%)
  }
  .cover-colophon {
    padding-left:26px;
    padding-right:26px
  }
  .cover-invitation {
    display:none
  }
  .chapter-stamp {
    right:26px
  }
  .game {
    padding:0 24px
  }
  .game-layout {
    grid-template-columns:minmax(0,1fr) 225px;
    gap:23px
  }
  .scene-heading h1 {
    font-size:42px
  }
  .scene-top-caption {
    inset:11px 13px auto
  }
  .scene-top-caption>span {
    font-size:15px
  }
  .scene-bottom-caption {
    inset:auto 12px 11px;
    font-size:6px;
    letter-spacing:.12em
  }
  .assignment h2 {
    font-size:31px
  }
  .assignment>p:not(.eyebrow):not(.translation) {
    font-size:10px
  }
  .person-card>span:nth-child(2) {
    font-size:20px
  }
  .person-card>.portrait {
    width:39px;
    height:49px
  }
  .person-card small {
    font-size:7px
  }
  .field-summary {
    padding:18px 0
  }
  .night-invitation {
    padding:14px
  }
  .location {
    padding:8px;
    gap:8px
  }
  .location-thumb {
    display:none
  }
  .location small {
    font-size:6px
  }
  .location>span:nth-child(2) {
    font-size:18px
  }
  .scene-narration>div>p:first-child {
    font-size:13px
  }
  .case-sidebar .eyebrow {
    font-size:7px
  }
  .hotspot-mark {
    width:26px;
    height:26px;
    font-size:18px
  }
  .hotspot-mark::after {
    width:35px;
    height:35px
  }
  .progress-dots {
    gap:4px
  }
  .progress-dots>span {
    width:14px
  }
  .progress-dots>small {
    font-size:6px
  }
  .night-button {
    font-size:8px
  }
  .game-footer>span:last-child {
    display:none
  }
  .dialogue-copy {
    padding:35px 30px 27px
  }
  .dialogue-modal {
    grid-template-columns:32% 1fr
  }
  .notebook-header {
    padding-left:30px
  }
  .notebook-tabs {
    padding-left:30px
  }
  .observations-body {
    padding:23px 30px
  }
  .notebook-bottom {
    padding-left:30px;
    padding-right:30px
  }
  .observation-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .connections-body {
    grid-template-columns:200px 1fr
  }
  .deduction-nav {
    padding-left:16px
  }
  .deduction-work {
    padding:25px
  }
  .deduction-tab>span:nth-child(2) {
    font-size:19px
  }
  .deduction-work>h3 {
    font-size:29px
  }
  .deduction-work>.text-button {
    margin-left:0;
    display:flex;
    margin-top:7px
  }
  .night-screen,.ending-screen {
    min-height:calc(100svh - 72px)
  }
}
@media(max-width:850px) {
  .game-layout {
    grid-template-columns:1fr
  }
  .case-sidebar {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:0
  }
  .assignment {
    display:none
  }
  .witnesses {
    border-top:1px solid var(--line);
    border-bottom:0;
    padding:20px 0 0
  }
  .field-summary {
    border-top:1px solid var(--line);
    border-bottom:0;
    padding:20px 0 0
  }
  .night-invitation {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    gap:14px;
    margin:0
  }
  .night-invitation>.icon {
    margin-bottom:0
  }
  .night-invitation>p {
    font-size:20px
  }
  .night-invitation>p>br {
    display:none
  }
  .night-button {
    width:auto;
    margin-left:auto;
    padding:0;
    font-size:10px;
    min-height:42px
  }
  .scene-narration {
    min-height:auto
  }
  .scene-heading {
    padding-bottom:18px
  }
  .time-caption {
    font-size:19px
  }
  .chapter-line {
    padding:19px 0
  }
  .game-footer {
    margin-top:24px
  }
  .location-thumb {
    display:block;
    width:38px;
    height:40px
  }
  .location>span:nth-child(2) {
    font-size:21px
  }
  .location small {
    font-size:7px
  }
  .locations {
    margin-bottom:25px;
    padding-top:12px
  }
  .scene-stage {
    aspect-ratio:1.598
  }
  .scene-top-caption>span {
    font-size:18px
  }
  .scene-bottom-caption {
    font-size:7px
  }
  .dialogue-modal {
    grid-template-columns:29% 1fr
  }
  .dialogue-portrait>.portrait {
    background-size:auto 100%;
    background-position:6% 0
  }
  .dialogue-portrait.helen>.portrait {
    background-position:86% 0
  }
  .portrait-caption {
    left:16px
  }
  .portrait-caption h2 {
    font-size:31px
  }
  .portrait-caption>small {
    font-size:6px
  }
  .plan-modal {
    grid-template-columns:38% 1fr
  }
  .plan-intro {
    padding:45px 23px
  }
  .plan-intro h2 {
    font-size:39px
  }
  .plan-form {
    padding:43px 25px 22px
  }
  .inspect-modal {
    grid-template-columns:32% 1fr
  }
  .inspect-copy {
    padding:48px 30px 30px
  }
  .inspect-copy h2 {
    font-size:36px
  }
  .notebook-header h2>span {
    display:none
  }
  .deduction-nav>p {
    font-size:14px
  }
  .deduction-work {
    padding:25px 22px
  }
  .evidence-picker {
    grid-template-columns:1fr
  }
  .notebook-bottom>span {
    max-width:240px;
    line-height:1.7
  }
  .night-text {
    padding:55px 45px
  }
  .cover-content {
    max-width:80%
  }
}
@media(max-width:600px) {
  .topbar {
    height:68px;
    padding:0 17px
  }
  .wordmark {
    gap:8px
  }
  .wordmark>.icon {
    width:23px;
    height:28px
  }
  .wordmark>span {
    font-size:13px;
    letter-spacing:.13em
  }
  .wordmark small {
    font-size:5px;
    letter-spacing:.18em;
    margin-top:6px
  }
  .tools {
    gap:2px
  }
  .tools>.icon-button {
    width:32px;
    height:34px
  }
  .tools>.icon-button>.icon {
    width:18px
  }
  .language-button {
    font-size:10px;
    padding:7px
  }
  .language-button span {
    font-size:8px
  }
  .notebook-button {
    gap:5px;
    padding:8px;
    margin-left:4px;
    min-height:34px
  }
  .notebook-button>span {
    display:none
  }
  .notebook-button>.icon {
    width:18px
  }
  .notebook-button>b {
    font-size:8px;
    margin-left:0;
    padding:1px 4px
  }
  .cover {
    min-height:calc(100svh - 68px)
  }
  .cover-art {
    object-position:68% 50%
  }
  .cover-shade {
    background:linear-gradient(90deg,rgba(9,26,27,.91),rgba(9,26,27,.34) 80%),linear-gradient(0deg,rgba(9,26,27,.96),transparent 70%)
  }
  .cover-content {
    margin:79px 25px 35px;
    max-width:calc(100% - 50px)
  }
  .cover-content>.eyebrow {
    font-size:7px;
    letter-spacing:.15em
  }
  .tiny-line {
    width:19px;
    margin-right:10px
  }
  .cover h1 {
    font-size:106px;
    line-height:.8;
    margin:35px 0 27px;
    letter-spacing:-.02em
  }
  .cover-subtitle {
    font-size:13px;
    line-height:1.9
  }
  .cover-entry {
    margin-top:30px;
    gap:15px
  }
  .start-button {
    min-width:235px;
    font-size:12px;
    padding:15px 21px
  }
  .play-length {
    font-size:6px;
    letter-spacing:.12em
  }
  .cover-colophon {
    padding:20px 22px;
    margin-top:12px;
    align-items:start;
    gap:15px
  }
  .cover-colophon>p:first-child {
    font-size:6px;
    letter-spacing:.13em
  }
  .cover-colophon>p:first-child span {
    font-size:14px;
    letter-spacing:0;
    display:inline-block;
    margin-top:5px;
    max-width:180px;
    line-height:1.25
  }
  .cover-colophon>.text-button {
    font-size:8px;
    max-width:75px;
    padding:0
  }
  .chapter-stamp {
    top:22px;
    right:22px;
    font-size:6px;
    letter-spacing:.12em;
    line-height:1.7
  }
  .chapter-stamp>span {
    font-size:31px;
    margin-bottom:5px
  }
  .game {
    padding:0 16px
  }
  .chapter-line {
    padding:16px 0 18px
  }
  .chapter-line>.eyebrow {
    font-size:6px;
    letter-spacing:.12em
  }
  .chapter-line .line-separator {
    width:12px;
    margin:0 7px
  }
  .save-status {
    font-size:6px;
    gap:5px
  }
  .save-status i {
    width:3px;
    height:3px
  }
  .scene-heading {
    padding-bottom:17px;
    align-items:center
  }
  .scene-heading>.time-caption {
    font-size:16px;
    gap:6px
  }
  .time-caption>.icon {
    width:18px;
    height:18px
  }
  .time-caption small {
    font-size:6px;
    max-width:120px;
    margin-top:3px
  }
  .scene-heading h1 {
    font-size:35px;
    margin-top:5px
  }
  .scene-heading .eyebrow {
    font-size:7px;
    letter-spacing:.15em
  }
  .game-layout {
    gap:0
  }
  .scene-top-caption {
    inset:9px 10px auto
  }
  .scene-top-caption>span {
    font-size:14px;
    gap:4px
  }
  .scene-top-caption>span>.icon {
    width:10px
  }
  .stage-tool {
    width:27px;
    height:27px
  }
  .stage-tool>.icon {
    width:15px
  }
  .scene-bottom-caption {
    inset:auto 8px 9px;
    font-size:5px;
    letter-spacing:.1em
  }
  .scene-bottom-caption .icon {
    width:11px;
    height:11px
  }
  .hotspot-label {
    top:43px;
    font-size:8px;
    padding:6px 8px
  }
  .hotspot-mark {
    width:24px;
    height:24px;
    font-size:17px
  }
  .hotspot-mark::after {
    width:31px;
    height:31px
  }
  .scene-stage.study .hotspot:nth-last-of-type(1) .hotspot-label,.scene-stage.bedroom .hotspot:nth-last-of-type(1) .hotspot-label {
    left:auto;
    right:0;
    transform:translate(0,0)
  }
  .scene-narration {
    padding:16px 1px 18px;
    gap:11px
  }
  .narrator-mark {
    font-size:24px
  }
  .scene-narration>div>p:first-child {
    font-size:13px;
    line-height:1.95
  }
  .locations {
    gap:6px;
    padding-top:12px;
    margin-bottom:23px
  }
  .location {
    display:block;
    position:relative;
    min-height:80px;
    padding:9px 7px
  }
  .location-thumb {
    display:none
  }
  .location>span:nth-child(2) {
    font-size:18px;
    line-height:1.2;
    display:block;
    white-space:normal
  }
  .location small {
    font-size:5px;
    letter-spacing:.05em;
    line-height:1.4;
    margin-bottom:9px
  }
  .location>.icon {
    position:absolute;
    right:6px;
    top:5px;
    width:10px;
    height:10px
  }
  .case-sidebar {
    gap:10px 18px
  }
  .witnesses {
    padding-top:16px
  }
  .witnesses>.eyebrow,.field-summary>.eyebrow {
    font-size:6px;
    letter-spacing:.12em;
    margin-bottom:12px
  }
  .person-card {
    gap:8px;
    margin-bottom:10px
  }
  .person-card>.portrait {
    width:33px;
    height:42px
  }
  .person-card>span:nth-child(2) {
    font-size:17px
  }
  .person-card small {
    font-size:6px;
    line-height:1.7;
    margin-top:5px
  }
  .person-card>.icon {
    width:10px;
    height:10px
  }
  .field-summary {
    padding-top:16px
  }
  .tally {
    gap:20px;
    margin-top:12px
  }
  .tally>span {
    font-size:33px
  }
  .tally small {
    font-size:7px;
    margin-top:7px
  }
  .connect-button {
    font-size:8px;
    gap:10px;
    line-height:1.5;
    margin-top:14px
  }
  .connect-button .icon {
    width:13px;
    height:13px
  }
  .night-invitation {
    padding:13px 10px;
    gap:9px;
    margin-top:6px
  }
  .night-invitation>.icon {
    width:17px
  }
  .night-invitation>p {
    font-size:16px;
    line-height:1.1;
    max-width:130px
  }
  .night-invitation>p>br {
    display:block
  }
  .night-button {
    font-size:8px;
    gap:8px;
    min-height:37px
  }
  .night-button>.icon {
    width:13px;
    height:13px
  }
  .game-footer {
    margin-top:22px;
    font-size:6px;
    gap:15px;
    align-items:start;
    padding-top:13px
  }
  .game-footer>span:first-child {
    max-width:200px;
    line-height:1.9
  }
  .game-footer>.text-button {
    font-size:7px;
    padding-top:0;
    white-space:nowrap
  }
  .modal-backdrop {
    padding:12px;
    align-items:center
  }
  .modal {
    max-height:calc(100svh - 24px)
  }
  .close-button {
    top:12px;
    right:12px;
    width:30px;
    height:30px
  }
  .small-modal {
    padding:44px 26px 30px
  }
  .modal h2 {
    font-size:37px
  }
  .small-modal>.eyebrow {
    font-size:7px
  }
  .small-modal .literary {
    font-size:12px
  }
  .small-modal .button {
    font-size:10px;
    padding:13px 18px
  }
  .letter-modal {
    padding:36px 26px 28px
  }
  .letter-modal h2 {
    font-size:44px
  }
  .letter-modal>.eyebrow {
    font-size:6px;
    letter-spacing:.13em
  }
  .letter-modal>.literary {
    font-size:13px;
    line-height:1.9
  }
  .letter-seal {
    padding-bottom:14px;
    margin-bottom:21px
  }
  .letter-seal>.icon {
    width:27px;
    height:27px
  }
  .how-to {
    gap:12px;
    font-size:7px;
    margin:18px 0
  }
  .how-to .icon {
    width:12px;
    height:12px
  }
  .letter-modal>.button {
    min-width:100%;
    justify-content:space-between;
    font-size:11px
  }
  .inspect-modal {
    display:block;
    min-height:0
  }
  .inspect-illustration {
    height:125px;
    min-height:0
  }
  .inspect-illustration>img {
    object-position:center 50%;
    opacity:.35
  }
  .inspect-symbol {
    top:50%;
    left:45px;
    width:55px;
    height:55px;
    box-shadow:0 0 0 6px rgba(201,173,119,.04)
  }
  .inspect-symbol>.icon {
    width:32px;
    height:32px;
    stroke-width:.9
  }
  .inspect-illustration>p {
    bottom:auto;
    top:50%;
    transform:translateY(-50%);
    text-align:left;
    left:92px;
    right:45px;
    font-size:26px
  }
  .inspect-copy {
    padding:26px 24px
  }
  .inspect-copy>.eyebrow {
    font-size:7px
  }
  .inspect-copy h2 {
    font-size:33px;
    max-width:280px;
    margin-bottom:18px
  }
  .inspect-copy>.literary {
    font-size:14px;
    line-height:1.9
  }
  .inspect-copy>.button {
    font-size:10px;
    gap:8px;
    line-height:1.6;
    padding:13px 15px
  }
  .inspect-copy>.button>.icon {
    width:17px
  }
  .recorded-note {
    font-size:8px
  }
  .recorded-note>strong {
    font-size:21px
  }
  .dialogue-modal {
    display:block;
    overflow:auto;
    min-height:0
  }
  .dialogue-portrait {
    height:130px;
    min-height:0;
    overflow:hidden
  }
  .dialogue-portrait>.portrait {
    width:117px;
    height:160px;
    background-size:200% 100%;
    inset:0 auto auto 0
  }
  .dialogue-portrait.holmes>.portrait {
    background-position:0 -3px
  }
  .dialogue-portrait.helen>.portrait {
    background-position:100% -3px
  }
  .portrait-fade {
    background:linear-gradient(90deg,transparent,#0d2524 40%)
  }
  .portrait-caption {
    bottom:23px;
    left:135px;
    right:25px
  }
  .portrait-caption>small {
    font-size:5px
  }
  .portrait-caption h2 {
    font-size:29px;
    margin-top:7px
  }
  .dialogue-copy {
    max-height:none;
    padding:24px 23px;
    overflow:visible
  }
  .dialogue-copy>.eyebrow {
    font-size:7px
  }
  .stage-direction {
    font-size:15px;
    line-height:1.5;
    margin-bottom:20px
  }
  .spoken-response {
    padding-left:19px;
    margin-bottom:22px
  }
  .spoken-response>p:first-of-type {
    font-size:14px;
    line-height:1.95
  }
  .quote-mark {
    font-size:35px
  }
  .topic-button {
    font-size:12px;
    padding:11px 0
  }
  .question-form input {
    font-size:12px;
    padding:13px 10px
  }
  .question-form>small {
    font-size:7px;
    line-height:1.9
  }
  .conversation-recorded {
    font-size:8px;
    line-height:1.7
  }
  .approach>.topic-button {
    font-size:11px
  }
  .notebook-header {
    padding:26px 23px 20px
  }
  .notebook-header>.icon {
    display:none
  }
  .notebook-header h2 {
    font-size:34px
  }
  .notebook-header .eyebrow {
    font-size:7px
  }
  .notebook-tabs {
    padding:0 23px;
    gap:22px
  }
  .notebook-tab {
    font-size:10px
  }
  .notebook-tab>span {
    font-size:8px;
    margin-left:5px
  }
  .observations-body {
    padding:20px 18px
  }
  .observation-grid {
    gap:8px
  }
  .observation-card {
    padding:12px 10px
  }
  .observation-card>small {
    font-size:7px;
    margin-bottom:10px
  }
  .observation-card>small>span {
    font-size:5px;
    margin-left:4px
  }
  .note-heading {
    align-items:start;
    gap:5px
  }
  .note-heading>.icon {
    width:12px;
    height:12px;
    margin-top:2px
  }
  .note-heading>strong {
    font-size:20px;
    line-height:1.05
  }
  .observation-card>p {
    font-size:11px;
    line-height:1.8
  }
  .note-detail {
    padding-top:17px
  }
  .note-detail>h3 {
    font-size:28px
  }
  .note-detail>p:not(.eyebrow):not(.translation) {
    font-size:13px
  }
  .notebook-footnote {
    font-size:14px;
    line-height:1.5
  }
  .notebook-bottom {
    padding:16px 19px;
    gap:14px;
    align-items:center
  }
  .notebook-bottom>span {
    font-size:5px;
    line-height:1.9;
    max-width:160px;
    letter-spacing:.07em
  }
  .notebook-bottom>.text-button {
    font-size:8px;
    white-space:nowrap
  }
  .notebook-bottom>.button {
    padding:10px 11px;
    font-size:8px;
    gap:8px;
    min-height:36px
  }
  .connections-body {
    grid-template-columns:1fr
  }
  .deduction-nav {
    padding:12px 18px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .deduction-tab {
    margin:0;
    padding:9px 7px;
    gap:5px
  }
  .deduction-tab>span:nth-child(2) {
    font-size:17px
  }
  .deduction-tab small {
    font-size:5px;
    letter-spacing:.04em;
    margin-top:4px
  }
  .deduction-status {
    width:18px
  }
  .deduction-status>.icon {
    width:14px
  }
  .deduction-nav>p {
    display:none
  }
  .deduction-work {
    padding:22px 20px
  }
  .deduction-work>.eyebrow {
    font-size:6px
  }
  .deduction-work>h3 {
    font-size:28px;
    line-height:1.1
  }
  .selection-instruction {
    font-size:8px
  }
  .evidence-picker {
    grid-template-columns:1fr 1fr;
    gap:6px
  }
  .evidence-choice {
    font-size:10px;
    line-height:1.6;
    padding:8px 6px;
    min-height:43px;
    gap:4px
  }
  .evidence-choice>.icon {
    width:12px;
    height:12px
  }
  .evidence-choice>i {
    font-size:11px
  }
  .hypotheses>legend {
    font-size:8px
  }
  .hypothesis {
    font-size:12px;
    line-height:1.7;
    gap:8px
  }
  .deduction-work>.button {
    font-size:10px;
    padding:12px 17px;
    gap:12px
  }
  .deduction-work>.text-button {
    font-size:8px
  }
  .deduction-feedback {
    font-size:10px;
    line-height:1.8
  }
  .solved-inference>.icon {
    width:28px;
    height:28px;
    margin-bottom:16px
  }
  .evidence-pair>span {
    font-size:20px;
    padding:8px
  }
  .solved-inference>p:not(.translation) {
    font-size:11px;
    margin-top:20px
  }
  .plan-modal {
    display:block
  }
  .plan-intro {
    padding:35px 25px 24px
  }
  .plan-intro>.eyebrow {
    font-size:7px
  }
  .plan-intro h2 {
    font-size:39px;
    margin:14px 0 17px
  }
  .plan-intro>.literary {
    font-size:11px;
    margin-bottom:0
  }
  .plan-form {
    padding:27px 23px 25px
  }
  .plan-form legend {
    font-size:25px
  }
  .plan-option strong {
    font-size:11px
  }
  .plan-option small {
    font-size:8px;
    line-height:1.8
  }
  .plan-quotation {
    font-size:23px
  }
  .plan-form>.button {
    font-size:10px
  }
  .about-modal {
    padding:40px 25px 25px
  }
  .about-modal>.eyebrow {
    font-size:6px
  }
  .about-modal>h2 {
    font-size:42px
  }
  .about-modal>.literary {
    font-size:11px;
    line-height:1.9
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .about-grid h3 {
    font-size:26px;
    margin-bottom:8px
  }
  .about-grid p {
    font-size:10px
  }
  .about-grid a {
    font-size:10px
  }
  .about-bottom {
    display:block
  }
  .about-bottom>span {
    display:block;
    font-size:6px
  }
  .about-bottom>.text-button {
    margin-top:12px
  }
  .glossary summary {
    font-size:9px;
    line-height:1.8
  }
  .glossary dl {
    grid-template-columns:1fr;
    gap:16px
  }
  .glossary dt {
    font-size:23px
  }
  .glossary dd {
    font-size:10px
  }
  .night-screen,.ending-screen {
    min-height:calc(100svh - 68px)
  }
  .night-text {
    padding:55px 26px 60px
  }
  .night-text>.eyebrow {
    font-size:7px;
    letter-spacing:.13em
  }
  .night-text .line-separator {
    width:15px;
    margin:0 7px
  }
  .night-text h1 {
    font-size:53px;
    line-height:1.03;
    margin:23px 0 30px
  }
  .night-prose {
    font-size:15px;
    line-height:2.15
  }
  .night-text>.button {
    font-size:10px;
    min-width:185px;
    margin-top:30px
  }
  .page-count {
    font-size:8px;
    margin-left:17px
  }
  .ending-content {
    padding:48px 25px 40px
  }
  .ending-content>.eyebrow {
    font-size:7px
  }
  .ending-content h1 {
    font-size:43px;
    line-height:1.06;
    margin:20px 0 24px
  }
  .ending-description {
    font-size:13px;
    line-height:2.1
  }
  .ending-record {
    gap:20px 25px;
    padding:21px 0
  }
  .ending-record small {
    font-size:6px
  }
  .ending-record p {
    font-size:23px
  }
  .ending-human {
    font-size:22px;
    line-height:1.5
  }
  .ending-actions {
    display:grid;
    grid-template-columns:1fr;
    gap:9px
  }
  .ending-actions>.button {
    justify-content:space-between;
    font-size:10px;
    padding:13px 17px
  }
  .ending-note {
    font-size:8px
  }
  .ending-content>.text-button {
    font-size:9px
  }
  .toast {
    bottom:18px;
    font-size:10px;
    padding:11px 14px
  }
  .translation {
    font-size:12px!important
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
}

/* v0.2 bilingual reading. The English type system and illustrations are retained. */
@font-face{font-family:SilentBellSong;src:url('../public/fonts/song.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:SilentBellHei;src:url('../public/fonts/hei.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root:lang(zh-CN){--serif:SilentBellSong,'Songti SC',serif;--body:SilentBellSong,'Songti SC',serif;--sans:SilentBellHei,'PingFang SC','Microsoft YaHei',sans-serif}
:lang(zh-CN) h1,:lang(zh-CN) h2,:lang(zh-CN) h3{letter-spacing:.025em;font-weight:400;font-style:normal;line-height:1.4}
:lang(zh-CN) .eyebrow{font-size:11px;letter-spacing:.14em;line-height:1.8}
:lang(zh-CN) .wordmark>span{font-family:var(--serif);font-size:19px;letter-spacing:.22em}
:lang(zh-CN) .wordmark small{font-family:DM,sans-serif;font-size:8px;letter-spacing:.17em;margin-top:5px}
.language-button{white-space:nowrap;font-size:11px;letter-spacing:.02em;min-height:36px}
.language-button span{opacity:.65}
:lang(en) .language-button{font-family:DM,'PingFang SC',sans-serif}
.modal-language{position:absolute;top:15px;right:64px;z-index:5;line-height:1;background:var(--panel);border:1px solid var(--line);padding:0 9px;will-change:transform}
.modal-language .language-button{padding:0;background:none;color:var(--text)}
.notebook-modal .modal-language{background:var(--paper);--text:var(--paper-ink)}
.english-script{margin:9px 0 22px;padding-left:13px;border-left:1px solid var(--line);max-width:780px;font-family:var(--sans);color:var(--muted)}
.english-script summary{cursor:pointer;font-size:11px;letter-spacing:.04em;line-height:1.8;list-style-position:inside;width:fit-content}
.english-script p:lang(en){font-family:Literata,Georgia,serif;font-size:14px;font-weight:400;line-height:1.85;letter-spacing:0;margin:12px 0 4px;color:inherit}
.english-script[open]{padding-bottom:4px}
.notebook-modal .english-script{--muted:#53675b;--line:rgba(38,61,54,.25)}
:lang(zh-CN) .cover h1{font-size:clamp(72px,8vw,112px);line-height:1.28;letter-spacing:.09em;font-weight:400;margin-top:24px}
:lang(zh-CN) .cover h1 em{font-style:normal;display:block;margin-left:.85em;color:var(--gold)}
:lang(zh-CN) .cover h1 .title-period{display:none}
:lang(zh-CN) .cover-subtitle{font-size:18px;line-height:2;letter-spacing:.05em;margin-top:23px}
:lang(zh-CN) .cover-colophon p{font-size:11px;line-height:1.9;letter-spacing:.05em}
:lang(zh-CN) .cover-colophon p span{font-family:var(--serif);font-size:16px}
:lang(zh-CN) .chapter-stamp{font-size:10px;line-height:1.9;letter-spacing:.12em}
:lang(zh-CN) .scene-heading h1{font-size:38px;margin-top:7px}
:lang(zh-CN) .time-caption>span{font-family:var(--serif);font-size:18px;line-height:1.8}
:lang(zh-CN) .time-caption small{font-family:var(--sans);font-size:11px;letter-spacing:.05em}
:lang(zh-CN) .scene-narration>div>p:first-child{font-size:17px;line-height:2.05;max-width:820px}
:lang(zh-CN) .scene-narration{padding-top:22px}
:lang(zh-CN) .narrator-mark{font-style:normal;font-size:20px;padding-top:5px}
:lang(zh-CN) .scene-top-caption,:lang(zh-CN) .scene-bottom-caption{font-size:10px;letter-spacing:.06em}
:lang(zh-CN) .hotspot-label{font-size:12px;letter-spacing:.03em}
:lang(zh-CN) .location{font-size:13px;line-height:1.6}
:lang(zh-CN) .location small{font-size:9px;letter-spacing:.08em}
:lang(zh-CN) .assignment h2{font-size:25px;line-height:1.6;letter-spacing:.05em}
:lang(zh-CN) .assignment>p:not(.eyebrow){font-size:13px;line-height:1.95}
:lang(zh-CN) .person-card>span:not(.portrait){font-size:13px}
:lang(zh-CN) .person-card small{font-size:10px;line-height:1.8}
:lang(zh-CN) .night-invitation p{font-size:17px;line-height:1.8}
:lang(zh-CN) .button,:lang(zh-CN) .text-button{font-size:12px;letter-spacing:.06em;line-height:1.8}
:lang(zh-CN) .modal h2{font-size:32px;line-height:1.5;margin-bottom:22px}
:lang(zh-CN) .literary,:lang(zh-CN) .inspect-copy>.literary{font-size:17px;line-height:2.05;font-weight:400}
:lang(zh-CN) .inspect-copy{padding-top:65px}
:lang(zh-CN) .inspect-copy h2{font-size:29px}
:lang(zh-CN) .recorded-note{font-size:11px;line-height:1.9}
:lang(zh-CN) .recorded-note strong{font-size:15px;line-height:1.7}
:lang(zh-CN) .dialogue-copy{padding-top:65px}
:lang(zh-CN) .dialogue-copy>.eyebrow{font-size:10px}
:lang(zh-CN) .stage-direction{font-style:normal;font-size:15px;line-height:1.95}
:lang(zh-CN) .spoken-response>p:first-of-type{font-size:18px;line-height:2.05}
:lang(zh-CN) .portrait-caption h2{font-size:27px;line-height:1.5}
:lang(zh-CN) .portrait-caption small{font-size:10px;letter-spacing:.12em}
:lang(zh-CN) .asked-question{font-size:12px;line-height:1.85}
:lang(zh-CN) .topic-button{font-size:13px;line-height:1.85}
:lang(zh-CN) .topic-button small{font-size:11px}
:lang(zh-CN) .question-form label{font-size:12px}
:lang(zh-CN) .question-form input{font-size:14px}
:lang(zh-CN) .question-form small{font-size:10px;line-height:1.8}
:lang(zh-CN) .conversation-recorded{font-size:11px;line-height:1.8}
:lang(zh-CN) .notebook-header h2{font-size:34px}
:lang(zh-CN) .notebook-header h2 span{font-size:12px;line-height:1.7;margin-top:6px}
:lang(zh-CN) .notebook-tab{font-size:13px;letter-spacing:.05em}
:lang(zh-CN) .observation-card strong{font-size:20px;line-height:1.5}
:lang(zh-CN) .observation-card p{font-size:13px;line-height:1.95}
:lang(zh-CN) .observation-card>small{font-size:9px;line-height:1.8}
:lang(zh-CN) .note-detail h3,:lang(zh-CN) .deduction-work h3{font-size:25px;line-height:1.65}
:lang(zh-CN) .note-detail>p:not(.eyebrow),:lang(zh-CN) .solved-inference>p{font-family:var(--body);font-size:17px;line-height:2.1}
:lang(zh-CN) .deduction-tab{font-size:16px;line-height:1.7}
:lang(zh-CN) .deduction-tab small{font-size:10px;letter-spacing:.06em}
:lang(zh-CN) .selection-instruction,:lang(zh-CN) .hypotheses legend{font-size:12px;line-height:1.9}
:lang(zh-CN) .evidence-choice{font-size:12px;line-height:1.7}
:lang(zh-CN) .hypothesis{font-size:13px;line-height:1.9}
:lang(zh-CN) .deduction-feedback{font-size:14px;line-height:2}
:lang(zh-CN) .notebook-bottom>span,:lang(zh-CN) .notebook-footnote{font-size:11px;line-height:1.9;letter-spacing:.04em}
.history-body{padding:28px 42px 36px}
.conversation-history{list-style:none;margin:22px 0 0;padding:0}
.conversation-history li{padding:24px 0;border-top:1px solid rgba(38,61,54,.18)}
.conversation-history h3{font-family:var(--serif);font-size:23px;line-height:1.6;margin:8px 0 14px}
.history-response{font-family:var(--body);font-size:14px;line-height:1.95;max-width:730px}
:lang(zh-CN) .history-response{font-size:17px;line-height:2.05}
:lang(zh-CN) .plan-intro h2{font-size:34px;line-height:1.6}
:lang(zh-CN) .plan-form legend{font-size:17px}
:lang(zh-CN) .plan-option strong{font-size:17px;line-height:1.8}
:lang(zh-CN) .plan-option small{font-size:12px;line-height:1.9}
:lang(zh-CN) .plan-quotation{font-size:20px;line-height:1.8;font-style:normal}
:lang(zh-CN) .plan-quotation span{font-size:11px}
:lang(zh-CN) .plan-footnote{font-size:11px;line-height:1.9}
:lang(zh-CN) .night-text h1{font-size:clamp(34px,4.3vw,62px);line-height:1.55;letter-spacing:.08em}
:lang(zh-CN) .night-prose{font-size:20px;line-height:2.1;max-width:690px}
:lang(zh-CN) .ending-content h1{font-size:clamp(30px,4.3vw,55px);line-height:1.65;letter-spacing:.04em}
:lang(zh-CN) .ending-description{font-size:18px;line-height:2.05;max-width:750px}
:lang(zh-CN) .ending-record small{font-size:10px;letter-spacing:.08em}
:lang(zh-CN) .ending-record p{font-size:19px;line-height:1.8}
:lang(zh-CN) .ending-human{font-size:17px;line-height:2;font-style:normal}
:lang(zh-CN) .ending-note{font-size:12px;line-height:1.9}
:lang(zh-CN) .about-grid h3{font-size:23px;line-height:1.6}
:lang(zh-CN) .about-grid p{font-size:14px;line-height:2}
.script-notice{margin-top:14px;padding-left:12px;border-left:1px solid var(--gold)}
:lang(zh-CN) .readiness-list li{font-size:13px;line-height:1.9}
:lang(zh-CN) .game-footer{font-size:10px;letter-spacing:.03em}
@media(max-width:1179px){:lang(zh-CN) .cover h1{font-size:86px}:lang(zh-CN) .cover-subtitle{font-size:17px}:lang(zh-CN) .scene-heading h1{font-size:32px}}
@media(max-width:850px){.modal-language{top:12px;right:57px}:lang(zh-CN) .cover h1{font-size:76px}:lang(zh-CN) .assignment h2{font-size:27px}.history-body{padding:24px 28px}}
@media(max-width:600px){
  :lang(zh-CN) .wordmark>span{font-size:17px}.language-button{font-size:10px;min-height:32px}
  :lang(zh-CN) .cover h1{font-size:65px;line-height:1.35;margin-top:24px}:lang(zh-CN) .cover h1 em{margin-left:.7em}
  :lang(zh-CN) .cover-subtitle{font-size:16px;line-height:2.1}:lang(zh-CN) .cover-colophon p{font-size:10px}:lang(zh-CN) .cover-colophon p span{font-size:15px}
  :lang(zh-CN) .eyebrow{font-size:10px;letter-spacing:.08em}:lang(zh-CN) .scene-heading h1{font-size:27px}
  :lang(zh-CN) .scene-narration>div>p:first-child{font-size:16px;line-height:2.05}:lang(zh-CN) .time-caption>span{font-size:16px}
  :lang(zh-CN) .location{font-size:11px}:lang(zh-CN) .location small{font-size:8px}
  :lang(zh-CN) .modal h2,:lang(zh-CN) .inspect-copy h2{font-size:26px}:lang(zh-CN) .literary,:lang(zh-CN) .inspect-copy>.literary{font-size:16px;line-height:2}
  :lang(zh-CN) .inspect-copy{padding-top:30px}:lang(zh-CN) .dialogue-copy{padding-top:24px}
  :lang(zh-CN) .spoken-response>p:first-of-type{font-size:17px;line-height:2.05}:lang(zh-CN) .stage-direction{font-size:14px}
  :lang(zh-CN) .portrait-caption h2{font-size:22px}.modal-language{top:10px;right:48px;padding:0 7px}
  .notebook-tabs{gap:20px}:lang(zh-CN) .notebook-tab{font-size:12px;white-space:nowrap}
  :lang(zh-CN) .notebook-header h2{font-size:28px}:lang(zh-CN) .notebook-header .eyebrow{max-width:150px}
  :lang(zh-CN) .observation-card strong{font-size:20px}:lang(zh-CN) .note-detail h3,:lang(zh-CN) .deduction-work h3{font-size:22px}
  :lang(zh-CN) .note-detail>p:not(.eyebrow),:lang(zh-CN) .solved-inference>p{font-size:16px}
  :lang(zh-CN) .deduction-tab{font-size:14px}:lang(zh-CN) .deduction-tab small{font-size:9px}.history-body{padding:22px}
  :lang(zh-CN) .history-response{font-size:16px}:lang(zh-CN) .history-body h3{font-size:21px}
  :lang(zh-CN) .plan-intro h2{font-size:28px}:lang(zh-CN) .plan-option strong{font-size:16px}
  :lang(zh-CN) .night-text h1{font-size:34px}:lang(zh-CN) .night-prose{font-size:17px;line-height:2.1}
  :lang(zh-CN) .ending-content h1{font-size:29px;line-height:1.7}:lang(zh-CN) .ending-description{font-size:16px;line-height:2.1}
  :lang(zh-CN) .ending-record p{font-size:17px}:lang(zh-CN) .ending-human{font-size:16px}
}
/* Chinese characters need a steadier measure than the English display face. */
:lang(zh-CN) .spoken-response{padding-left:0}
:lang(zh-CN) .quote-mark{display:none}
:lang(zh-CN) .deduction-tab>span:nth-child(2){font-size:17px;line-height:1.65}
:lang(zh-CN) .deduction-status{flex-shrink:0}
:lang(zh-CN) .deduction-nav>p{font-size:14px;line-height:1.9;font-style:normal;margin:25px 9px}
:lang(zh-CN) .notebook-header h2>span{display:block;font-style:normal;margin-left:0}
:lang(zh-CN) .notebook-header{padding-top:28px}
:lang(zh-CN) .plan-form{padding-top:65px}
:lang(zh-CN) .button{font-size:13px}
@media(max-width:600px){:lang(zh-CN) .deduction-tab>span:nth-child(2){font-size:14px}:lang(zh-CN) .plan-form{padding-top:26px}}
.language-button strong{font-weight:500;color:var(--gold)}
.notebook-modal .language-button strong{color:var(--paper-ink)}
.music-credit { border-top: 1px solid var(--border, #43554d); margin-top: 24px; padding-top: 18px; }
.music-credit p { font-size: 14px; line-height: 1.8; }
