/* Reading pages (guide, about, privacy): the cream "outside world" of the dive's ending, set for long reading on a phone */
:root{
  --cream:#f6ece2;      /* page */
  --paper:#fffaf4;      /* cards */
  --ink:#2a0f19;
  --sub:#5e2f3a;        /* secondary text, still AA on cream */
  --mute:#7a5a60;
  --line:rgba(42,15,25,.14);
  --accent:#b02c3c;     /* links: the dive's lip red, darkened for contrast */
  --lip:#de5a69;
  --gold:#f2c84b;       /* nerve yellow, the route colour in the dive */
  --f-display:"Dela Gothic One","Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  --f-body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  --f-data:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --gutter-l:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--cream);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
svg{max-width:100%}

/* header, breadcrumb */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1080px;margin:0 auto;padding:12px var(--gutter-r) 8px var(--gutter-l)}
.logo{font-family:var(--f-display);font-size:21px;line-height:1;color:var(--ink);text-decoration:none;letter-spacing:.02em;white-space:nowrap}
.logo span{color:var(--lip)}
.top nav{display:flex;align-items:center;gap:2px}
.top nav a{font-size:13px;font-weight:700;color:var(--ink);text-decoration:none;padding:9px 10px;border-radius:999px;white-space:nowrap}
.top nav a.go{background:var(--ink);color:var(--cream);padding:9px 15px}
.crumbs{max-width:720px;margin:0 auto;padding:6px var(--gutter-r) 0 var(--gutter-l);font-size:12px;line-height:1.6;color:var(--mute);display:flex;flex-wrap:wrap;gap:2px 6px}
.crumbs a{color:var(--sub)}

/* article */
main{max-width:720px;margin:0 auto;padding:8px var(--gutter-r) 40px var(--gutter-l)}
.doc>header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:20px 0 8px}
.eyebrow{margin:0;font-family:var(--f-data);font-size:12px;letter-spacing:.14em;color:var(--sub)}
.doc h1{margin:0;font-family:var(--f-display);font-weight:400;font-size:clamp(34px,10vw,54px);line-height:1.2;letter-spacing:.02em;text-wrap:balance}
.doc h1 small{display:block;margin-top:4px;font-family:var(--f-body);font-size:14px;font-weight:500;letter-spacing:.2em;color:var(--mute)}
.doc .intro{margin:0;max-width:32em;font-size:17px;line-height:1.85;color:var(--sub);text-wrap:pretty}
.hero{display:block;width:min(200px,56vw);margin:6px auto 0}
.hero svg,.art svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 10px 18px rgba(42,15,25,.22))}
.facts{display:grid;grid-template-columns:1fr;gap:1px;width:100%;margin:14px 0 0;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.facts div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:var(--paper);padding:10px 16px}
.facts dt{font-size:13px;line-height:1.5;color:var(--mute);text-align:left}
.facts dd{margin:0;font-family:var(--f-display);font-size:20px;line-height:1.3;text-align:right}
@media (min-width:560px){
  .facts{grid-template-columns:repeat(3,1fr)}
  .facts div{display:block;padding:12px 10px;text-align:center}
  .facts dt,.facts dd{text-align:center}
  .facts dd{margin-top:2px;font-size:22px}
}
.doc h2{margin:48px 0 14px;font-family:var(--f-display);font-weight:400;font-size:clamp(22px,6vw,27px);line-height:1.4;text-wrap:balance}
.doc h2::before{content:"";display:block;width:28px;height:4px;border-radius:2px;background:var(--lip);margin-bottom:12px}
.doc h3{margin:28px 0 8px;font-size:18px;line-height:1.5}
.doc p{margin:0 0 1.1em}
.doc ul,.doc ol{margin:0 0 1.1em;padding-left:1.4em}
.doc li{margin:.3em 0}
.doc strong{background:linear-gradient(transparent 62%,rgba(242,200,75,.55) 0)}
.doc section::after{content:"";display:table;clear:both}

/* figures: the guide's illustrations; magnified views sit in a round lens */
.fig{margin:8px auto 22px;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:240px;text-align:center}
.fig .art{display:block;width:150px}
.lens{display:block;width:150px;height:150px;border-radius:50%;overflow:hidden;border:3px solid var(--paper);box-shadow:0 0 0 1px var(--line),0 10px 22px rgba(42,15,25,.2)}
.lens svg{display:block;width:100%;height:100%}
.fig figcaption{font-size:13px;line-height:1.6;color:var(--sub)}
@media (min-width:640px){
  .fig.side{float:right;width:200px;margin:4px 0 14px 28px}
}

/* asides */
.tip{margin:22px 0;padding:14px 18px;border-radius:14px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--gold)}
.tip b{display:block;font-size:13px;letter-spacing:.08em;color:var(--sub);margin-bottom:2px}
.tip p:last-child{margin-bottom:0}
.dive{display:flex;align-items:center;gap:14px;margin:40px 0 8px;padding:18px 20px;border-radius:18px;background:var(--ink);color:var(--cream);text-decoration:none}
.dive span{flex:1;display:flex;flex-direction:column;gap:2px}
.dive small{font-family:var(--f-data);font-size:11px;letter-spacing:.14em;color:rgba(246,236,226,.7)}
.dive b{font-size:16px;line-height:1.6}
.dive i{font-style:normal;font-size:22px}
.tbl{overflow-x:auto;margin:0 0 1.2em;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.tbl table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6}
.tbl th,.tbl td{padding:8px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
@media (min-width:560px){.tbl table{font-size:14px}.tbl th,.tbl td{padding:9px 12px}}
.tbl thead th{font-size:12px;color:var(--mute);font-weight:700;background:var(--cream)}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{font-weight:700;white-space:nowrap}

/* guide index cards */
.zgrid{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.zcard{position:relative;display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto 1fr;column-gap:14px;align-items:start;height:100%;padding:14px 16px;border-radius:16px;background:var(--paper);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.zcard .art{grid-row:1/3;width:64px;align-self:center}
.zcard .art svg{filter:none}
.zc-no{position:absolute;top:10px;right:14px;font-family:var(--f-data);font-size:11px;color:var(--mute)}
.zcard b{font-family:var(--f-display);font-weight:400;font-size:19px;line-height:1.4;padding-right:24px}
.zc-t{font-size:13px;line-height:1.65;color:var(--sub)}
.zcard:hover{border-color:var(--accent)}

/* about page */
.info{margin:0 0 1.2em;border-top:1px solid var(--line)}
.info div{display:grid;grid-template-columns:8em 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.info dt{font-weight:700;font-size:14px}
.info dd{margin:0;overflow-wrap:anywhere}
@media (max-width:420px){.info div{grid-template-columns:1fr;gap:2px}}

/* prev / next, ads, footer */
.prevnext{max-width:720px;margin:0 auto;padding:0 var(--gutter-r) 40px var(--gutter-l);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pn{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--ink);color:var(--ink);text-decoration:none}
.pn small{font-size:12px;color:var(--mute)}
.pn b{font-size:16px;line-height:1.5}
.pn.next{grid-column:2;text-align:right}
.ad{margin:36px 0;min-height:120px}
.ad-lab{display:block;font-size:11px;color:var(--mute);margin-bottom:4px}
.foot{background:var(--ink);color:rgba(246,236,226,.78);padding:28px var(--gutter-r) calc(28px + env(safe-area-inset-bottom,0px)) var(--gutter-l);font-size:13px;line-height:1.8}
.foot nav{max-width:720px;margin:0 auto 12px;display:flex;flex-wrap:wrap;gap:4px 18px}
.foot nav a{color:var(--cream);text-decoration:none;padding:4px 0}
.foot nav a:hover{text-decoration:underline}
.foot p{max-width:720px;margin:0 auto 8px}
.foot .copy{font-family:var(--f-data);font-size:11px;letter-spacing:.08em;color:rgba(246,236,226,.55)}

/* end of an article: related questions, sources, who wrote it and when */
.more{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px}
.related ul{padding-left:1.2em}
.byline{margin:44px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:13px;line-height:1.75;color:var(--mute)}
.byline h2{margin:0 0 6px;font-family:var(--f-body);font-weight:700;font-size:14px;color:var(--sub)}
.byline h2::before{display:none}
.byline ol{margin:0 0 14px;padding-left:1.4em}
.byline li{margin:.25em 0;overflow-wrap:anywhere}
.byline p{margin:0 0 .3em}

/* Q&A: a list of questions up top, then one card per question (the card a link points to lights up) */
.toc{margin:24px 0 0;padding:16px 18px;border-radius:16px;background:var(--paper);border:1px solid var(--line);font-size:14px;line-height:1.7}
.toc p{margin:12px 0 2px}
.toc p:first-child{margin-top:0}
.toc ul{margin:0;padding-left:1.2em}
.toc li{margin:.15em 0}
.qa{margin:0 0 12px;padding:16px 18px;border-radius:16px;background:var(--paper);border:1px solid var(--line);scroll-margin-top:12px}
.qa h3{display:flex;gap:10px;margin:0 0 8px;font-size:17px;line-height:1.55}
.qa h3::before{content:"Q";flex:none;font-family:var(--f-display);font-weight:400;color:var(--lip)}
.qa .ans p{margin:0 0 .7em}
.qa .ans p:last-child{margin-bottom:0}
.qa:target{border-color:var(--accent);box-shadow:0 0 0 3px rgba(176,44,60,.16)}

/* worksheet: fill-in blanks and ruled lines, made to print on A4 */
.sheet .name{margin:18px 0 0;padding:10px 0;border-bottom:1px solid var(--ink);font-size:15px}
.sheet h2{margin-top:32px}
.blank{display:inline-block;min-width:6.5em;height:1.4em;border-bottom:1.5px solid var(--ink);vertical-align:bottom}
.blank.s{min-width:3.5em}
.route-q{line-height:2.6}
.fill{list-style:none;padding:0}
.fill li{margin:.9em 0}
.lines{height:7.5em;background:repeating-linear-gradient(transparent 0 2.45em,var(--line) 2.45em 2.5em)}
.lines.tall{height:10em}
.print{font:inherit;font-weight:700;font-size:14px;padding:10px 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--ink);color:var(--cream);cursor:pointer}
.answers{margin:28px 0 0;padding:12px 16px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}
.answers summary{font-weight:700;cursor:pointer}
.sheet .src{margin-top:24px;font-size:12px;color:var(--mute)}
@media print{
  .top,.crumbs,.foot,.prevnext,.ad,.dive,.byline,.noprint{display:none!important}
  html,body{background:#fff}
  main{padding-top:0}
  .doc>header{padding-top:0}
  .doc h2{margin-top:22px;break-after:avoid}
}

/* a heading's reading (ふりがな) after the name; the school page's list of deep links */
.doc h2 small{margin-left:.5em;font-family:var(--f-body);font-size:13px;font-weight:500;letter-spacing:.12em;color:var(--mute)}
.doc .jump{list-style:none;margin:0 0 1.2em;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}
.doc .jump li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 12px;margin:0;padding:8px 14px;border-top:1px solid var(--line);font-size:14px;line-height:1.6}
.jump li:first-child{border-top:0}
.jump span{font-weight:700}
.jump a{font-family:var(--f-data);font-size:13px;overflow-wrap:anywhere}
