:root{color-scheme:dark;--bg:#11151b;--panel:#181e25;--ink:#f1f3ed;--muted:#b9c3c5;--accent:#d0e69c;--line:#39424a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;background:var(--bg);color:var(--ink);line-height:1.75}
*,*::before,*::after{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration-color:#708068;text-underline-offset:.26em}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,p,figure,dl,dd,ul{margin:0}h1,h2,h3,.brand,.footer-brand,.tile strong{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif}h1,h2,h3{line-height:1.42;text-wrap:pretty}main,footer{width:min(100% - 44px,1030px);margin-inline:auto}header.bar{max-width:1220px;margin:auto;padding:18px clamp(20px,5vw,68px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:bold;font-size:1.42rem;line-height:1.2;letter-spacing:.06em;text-decoration:none}.brand small{font:600 .53rem/1.6 system-ui;display:block;letter-spacing:.13em;color:var(--accent)}.bar nav,footer nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.bar nav{font-size:.86rem}.bar nav [aria-current]{color:var(--accent)}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:24px 0;color:var(--muted);font-size:.8rem}.kicker{font-size:.74rem;letter-spacing:.13em;font-weight:700;color:var(--accent)}.kicker span{color:var(--muted);letter-spacing:.02em}.hub-intro{padding:clamp(26px,5vw,58px) 0 30px;border-bottom:1px solid var(--line)}h1{font-size:clamp(2.1rem,6.5vw,4rem);margin:.18em 0}.hub-intro>p:not(.kicker),.deck{font-size:clamp(1.02rem,2.1vw,1.22rem);line-height:1.95;max-width:40em}.pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.pills a,.back,.quiet,.note-layout aside button{font-size:.87rem}.pills a{border:1px solid var(--line);border-radius:100px;padding:6px 13px;text-decoration:none}.pills a span{color:var(--accent)}
.filter{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:24px 0}.filter label{font-weight:650}.filter input{border:1px solid #67727b;border-radius:5px;background:var(--panel);color:var(--ink);padding:8px 12px;width:min(100%,350px);font-size:1rem}.filter output,.english,.crumb,.note-intro figcaption{color:var(--muted)}#no-notes{padding:22px 0}.group{margin-block:clamp(26px,5vw,52px);scroll-margin-top:18px}.section-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 22px;padding-bottom:14px}.section-head h2{font-size:clamp(1.36rem,3vw,2rem)}.section-head a,.back{color:var(--accent);font-size:.84rem}
.tiles{padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile a{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 14px;min-height:112px;text-decoration:none;background:var(--panel);border:1px solid var(--line);border-radius:6px}.tile a:hover{border-color:#7d8d73}.tile img{width:60px;height:auto;border-radius:4px}.tile strong,.tile span{display:block}.tile strong{font-size:1.05rem;text-decoration:underline;text-underline-offset:.23em;text-decoration-color:#6e7d6c}.tile span,.tile p{line-height:1.55}.tile span{font:italic .8rem/1.5 Georgia,serif;color:var(--muted)}.tile p{font-size:.86rem;margin-top:4px}.tile b{color:var(--accent)}.back{display:inline-block;margin-top:16px}
.note-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,210px);align-items:center;gap:clamp(20px,5vw,72px);border-bottom:1px solid var(--line);padding:16px 0 32px}.note-intro h1{font-size:clamp(1.85rem,5.1vw,3.6rem);overflow-wrap:anywhere}.english{font:italic 1.02rem/1.5 Georgia,serif}.deck{margin:20px 0 13px}.quiet{color:var(--accent)}.note-intro figure{margin:0;text-align:center}.note-intro figure img{display:block;margin:auto;height:auto;max-width:100%;border-radius:5%}.note-intro figcaption{font-size:.7rem;margin-top:6px;overflow-wrap:anywhere}.copy-name{font:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;padding:0;border:0;color:inherit;background:none;text-align:left;text-decoration:underline;text-decoration-color:#697860;text-decoration-thickness:1px;text-underline-offset:.12em}.copy-name:hover{color:var(--accent)}.note-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,23%);align-items:start;gap:clamp(26px,5vw,64px);margin:30px 0}.scene+.scene{border-top:1px solid var(--line);padding-top:27px;margin-top:31px}.scene h3{font-size:clamp(1.35rem,3vw,1.82rem);margin:4px 0 16px}.scene dl{line-height:1.95}.scene dt{color:var(--accent);font-weight:700;font-size:.8rem;letter-spacing:.06em;margin-top:14px}.scene dd{margin-top:3px;overflow-wrap:anywhere}.note-layout aside{border-left:2px solid var(--line);padding:4px 0 5px 18px;display:grid;gap:12px}.note-layout aside h2{font-size:1.1rem}.note-layout aside a,.note-layout aside p{font-size:.85rem}.note-layout aside p{color:var(--muted)}.note-layout aside button{justify-self:start;background:var(--panel);color:var(--accent);border:1px solid #69765e;border-radius:4px;padding:7px 10px}
footer{margin-top:50px;border-top:1px solid var(--line);padding:24px 0 38px;color:var(--muted);font-size:.83rem}footer p{margin-top:12px}footer small{display:block;max-width:800px;line-height:1.6}.footer-brand{font-size:1.45rem;font-weight:700;color:var(--ink);text-decoration:none}footer nav{margin:6px 0}#toast:not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#e2ebcd;color:#1b2118;box-shadow:0 3px 14px #0007;border-radius:6px;padding:10px 15px;max-width:calc(100vw - 30px);width:max-content;z-index:4}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;left:12px;top:12px;padding:8px;background:var(--bg);z-index:5}[hidden]{display:none!important}
@media(max-width:720px){.tiles{grid-template-columns:1fr}.note-layout{grid-template-columns:1fr}.note-intro{grid-template-columns:minmax(0,1fr) minmax(86px,24%);gap:14px}.note-intro figcaption{font-size:.65rem}.note-intro .deck{font-size:.99rem}.bar nav{gap:12px}.filter{gap:6px 12px}.filter input{flex:1 1 240px}.tile a{min-height:96px}.kicker{letter-spacing:.08em}.note-intro h1{line-height:1.45}.group{scroll-margin-top:8px}}
@media(max-width:420px){main,footer{width:calc(100% - 32px)}.note-intro{grid-template-columns:minmax(0,1fr) 88px}.note-intro .deck{margin:12px 0}.filter label{width:100%}.tile a{padding:10px;grid-template-columns:48px minmax(0,1fr) auto;gap:10px}.tile img{width:48px}}
.scene-jumps{display:flex;gap:8px 16px;flex-wrap:wrap;margin:0 0 20px;font-size:.85rem;color:var(--accent)}.scene,.drill{scroll-margin-top:16px}.drill-tag{display:inline-block;color:#cedeac;font-size:.69rem;border:1px solid #536049;border-radius:3px;padding:0 5px;margin-top:5px}.drill{margin:30px 0 4px;padding:clamp(16px,3vw,25px);border:1px solid #516043;border-radius:7px;background:#171e19}.drill h2{font-size:clamp(1.28rem,3vw,1.7rem);margin:2px 0 12px}.question{line-height:1.9}.choices{list-style:upper-alpha;margin:16px 0;padding-left:1.8em}.choices li{margin:8px 0;padding-left:3px}.choices li::marker{color:var(--accent);font-weight:bold}.choices button{width:100%;padding:8px 10px;background:var(--bg);color:var(--ink);border:1px solid #546246;border-radius:4px;text-align:left}.choices button:hover,.choices button[aria-pressed="true"]{border-color:var(--accent);background:#26301f}.feedback:not(:empty){padding:12px;border-left:3px solid var(--accent);background:#20281e}.feedback strong{color:var(--accent)}.rationale{margin:15px 0}.rationale summary{cursor:pointer;text-decoration:underline;text-underline-offset:.25em}.rationale li{margin:10px 0}.rationale ol{padding-left:1.5em}.drill-source{font-size:.78rem;color:var(--muted)}
.paper-shop{border-top:1px solid var(--line);padding-top:18px}.paper-shop form{margin:10px 0}.paper-shop strong{font-size:.73rem}
.practice-hub{display:grid;grid-template-columns:1.25fr 1fr;gap:14px 28px;padding:clamp(16px,3vw,26px);border:1px solid #505f44;border-radius:6px;background:#171e19;margin:22px 0;scroll-margin-top:14px}.practice-hub h2{margin:3px 0 7px}.play-cta{color:#172013;background:var(--accent);border:1px solid var(--accent);display:inline-block;text-decoration:none;border-radius:5px;padding:6px 12px;margin-top:12px;font-weight:650}.play-cta:hover{background:#e1edb9;color:#172013}.practice-record{border-left:1px solid var(--line);padding-left:20px}.practice-record a,.drill-nav a{color:var(--accent);display:block;margin:5px 0}.practice-record,.question-index,.drill-nav{font-size:.84rem}.practice-record button{padding:6px;background:var(--panel);color:var(--ink);border:1px solid var(--line)}.question-index{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}.question-index summary,.practice-record summary{cursor:pointer}.question-index ul{margin-top:8px;columns:2}.drill-nav{border-top:1px solid var(--line);padding-top:10px;margin-top:14px}.drill-nav p{color:var(--muted)}@media(max-width:640px){.practice-hub{grid-template-columns:1fr}.practice-record{border:0;padding:0}.question-index ul{columns:1}}
.note-terms {
  margin: 0 0 25px;
  color: var(--muted);
  font-size: .86rem;
}
.note-terms summary {
  width: fit-content;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: #708068;
  text-underline-offset: .26em;
}
.note-terms ul, .term-index ul {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 14px;
  padding: 0;
  list-style: none;
}
.note-terms ul {
  margin: 5px 0 0;
}
.note-terms a, .term-index a {
  display: inline-block;
  padding: 4px 0;
}
.note-terms summary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}
.glossary-intro {
  padding: 14px 0 25px;
  border-bottom: 1px solid var(--line);
}
.glossary-intro p {
  color: var(--muted);
}
.glossary-layout {
  display: grid;
  grid-template-columns: minmax(145px, .7fr) minmax(0, 2.6fr);
  gap: clamp(22px, 5vw, 65px);
  align-items: start;
  margin: 25px 0;
}
.term-index {
  padding: 10px 0;
}
.term-index h2, .term-example h3 {
  font: 650 .84rem/1.6 system-ui, sans-serif;
}
.term-index ul {
  flex-direction: column;
  margin-top: 8px;
}
.term-index a, .term-example a {
  color: var(--accent);
}
.term-entry {
  padding: 16px 0 28px;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 12px;
}
.term-entry + .term-entry {
  padding-top: 28px;
}
.term-entry h2 {
  font-size: clamp(1.45rem, 3vw, 1.95rem);
  margin-bottom: 10px;
}
.term-entry:target h2 {
  border-left: 3px solid var(--accent);
  padding-left: 10px;
}
.term-example {
  margin: 15px 0 12px;
  padding: 10px 16px;
  border-left: 2px solid #66745c;
  background: var(--panel);
}
.term-example h3, .term-source {
  color: var(--muted);
}
.term-example p {
  margin: 4px 0;
}
.term-example a, .term-source {
  font-size: .84rem;
}
@media (max-width: 700px) {
  .glossary-layout {
    display: block;
    margin: 14px 0;
  }
  .term-index {
    border-bottom: 1px solid var(--line);
    padding: 6px 0 14px;
  }
  .term-index ul {
    flex-direction: row;
  }
}
@media (min-width: 701px) and (min-height: 650px) {
  .term-index {
    position: sticky;
    top: 16px;
  }
}
.course-state{font-size:.87rem;font-weight:700;color:#cce8a4;margin:0 0 .4rem}
.course-entry{grid-column:1/-1;margin:.25rem 0;font-size:.94rem}
.course-entry a,.drill-nav [data-course-back]{color:#cfe8ae;text-decoration:underline;text-underline-offset:.23em}
