 :root {
  --ink: #0d1f1a;
  --muted: #2d4a40;
  --rust: #1d9e75;
  --rust-soft: #9fe1cb;
  --blue: #0f6e56;
  --sage: #6b9080;
  --paper: #ffffff;
  --cream: #f7faf9;
  --cream-deep: #e1f5ee;
  --line: rgba(15,110,86,.14);
  --shadow: 0 14px 40px rgba(15,110,86,.10);
  --serif: "EB Garamond", Georgia, serif;
  --mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --jp: "Noto Serif JP", "Hiragino Mincho ProN", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    repeating-linear-gradient(0deg, transparent 0, transparent 6px, rgba(15,110,86,.012) 7px),
    var(--cream);
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.68;
}
a { color: inherit; }
img { max-width: 100%; }
button, input, textarea { font: inherit; }

.skip-link { position:absolute; left:-9999px; top:0; z-index:9999; background:var(--paper); padding:.7rem 1rem; }
.skip-link:focus { left:.75rem; top:.75rem; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(15,110,86,.97);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(159,225,203,.25);
}
.nav-shell {
  max-width: 1080px;
  margin: 0 auto;
  min-height: 58px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  text-decoration: none;
  font-size: 1rem;
  color: #fff;
  font-weight: 500;
}
.nav-links { display:flex; align-items:center; gap:18px; }
.nav-links a {
  text-decoration:none;
  color:rgba(255,255,255,.78);
  font-family:var(--mono);
  font-size:.66rem;
}
.nav-links a:hover, .nav-links a[aria-current="page"] { color:var(--rust-soft); }
.menu-button {
  display:none;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  padding:.38rem .68rem;
  font-family:var(--mono);
  font-size:.66rem;
}

main { overflow:hidden; position:relative; isolation:isolate; }
.section { max-width:1080px; margin:0 auto; padding:82px 24px; }
.section + .section { border-top:1px solid var(--line); }
.section h2, .contact-wrap h2 {
  margin:0 0 1rem;
  color:var(--blue);
  font-weight:500;
  font-size:clamp(2rem,4.4vw,3.25rem);
  line-height:1.03;
  letter-spacing:-.025em;
}
.section p { color: var(--muted); }
.plain-title { font-size:clamp(1.9rem,4vw,2.8rem) !important; }

/* Home intro */
.home-intro {
  max-width:1080px;
  margin:0 auto;
  min-height:620px;
  padding:88px 24px 96px;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  gap:72px;
  align-items:center;
}
.intro-photo-wrap { position:relative; justify-self:center; }
.snapshot {
  width:270px;
  background:var(--blue);
  padding:10px 10px 32px;
  box-shadow:var(--shadow);
  transform:rotate(-1.7deg);
  border:1px solid var(--blue);
}
.snapshot img { display:block; width:100%; height:auto; }
.tiny-note {
  position:absolute;
  font-family:var(--jp);
  color:rgba(29,158,117,.58);
  font-size:1rem;
}
.note-a { left:-38px; bottom:35px; transform:rotate(-8deg); }
.note-b { right:-22px; top:20px; transform:rotate(8deg); }
.math-note { font-family:var(--serif); font-style:italic; font-size:1.35rem; color:rgba(29,158,117,.30); }

/* Quiet mathematical marks in the page margins. They are decorative only. */
.ambient-math { position:absolute; inset:0; pointer-events:none; z-index:-1; overflow:hidden; }
.am { position:absolute; color:rgba(15,110,86,.055); font-family:var(--serif); font-style:italic; line-height:1; user-select:none; }
.am-1 { top:9rem; left:3.5%; font-size:3.2rem; transform:rotate(-8deg); }
.am-2 { top:49rem; right:4%; font-size:3.8rem; transform:rotate(7deg); }
.am-3 { top:91rem; left:2.5%; font-size:4.6rem; }
.am-4 { top:139rem; right:3%; font-size:4rem; transform:rotate(-6deg); }
.am-5 { top:188rem; left:4%; font-size:3.4rem; transform:rotate(6deg); }
.am-6 { top:234rem; right:3.5%; font-size:2.6rem; }
.am-7 { top:278rem; left:3%; font-size:3.8rem; transform:rotate(-5deg); }
.am-8 { top:327rem; right:4%; font-size:3.2rem; transform:rotate(8deg); }
.intro-copy h1 {
  margin:0;
  color:var(--blue);
  font-size:clamp(3.4rem,7.4vw,6rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.04em;
}
.hello { margin:1.4rem 0 .55rem; color:var(--rust) !important; font-style:italic; font-size:1.5rem; }
.intro-copy > p:not(.hello) { max-width:670px; margin:.7rem 0; font-size:1.06rem; }
.quiet-line { font-style:italic; color:#6b9080 !important; }

/* Interest shelf */
.soft-section { padding-top:72px; }
.interest-shelf {
  margin-top:2.1rem;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  align-items:start;
}
.interest-note {
  min-height:245px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-top:3px solid var(--rust);
  padding:1.2rem 1.05rem 1.1rem;
  text-decoration:none;
  box-shadow:0 5px 16px rgba(15,110,86,.045);
  transition:transform .18s ease, box-shadow .18s ease;
}
.interest-note:hover { transform:translateY(-3px) rotate(0deg); box-shadow:var(--shadow); }
.tilt-left { transform:rotate(-.6deg); }
.tilt-right { transform:rotate(.7deg); }
.interest-symbol {
  display:block;
  min-height:56px;
  color:var(--rust);
  font-size:2.2rem;
  line-height:1;
  margin-bottom:1rem;
}
.interest-symbol.math-glyph { font-family:var(--serif); font-style:italic; }

.interest-symbol.tile-visual {
  display:flex;
  align-items:flex-start;
  min-height:56px;
  padding-top:2px;
}

/* Folded sheet — drawn in CSS, no image file */
.paper-fold-icon {
  position:relative;
  display:block;
  width:48px;
  height:40px;
  border:2px solid var(--rust);
  background:rgba(225,245,238,.5);
  transform:skewY(-5deg);
}
.paper-fold-icon::before {
  content:"";
  position:absolute;
  right:-2px;
  top:-2px;
  width:15px;
  height:15px;
  background:var(--paper);
  border-left:2px solid var(--rust);
  border-bottom:2px solid var(--rust);
}
.paper-fold-icon::after {
  content:"";
  position:absolute;
  left:8px;
  bottom:8px;
  width:29px;
  height:2px;
  background:var(--rust);
  transform:rotate(-28deg);
  transform-origin:left center;
}

/* Open book — drawn in CSS */
.book-icon {
  position:relative;
  display:flex;
  width:50px;
  height:38px;
}
.book-icon i {
  position:relative;
  display:block;
  width:25px;
  height:36px;
  border:2px solid var(--rust);
  background:rgba(255,255,255,.82);
}
.book-icon i:first-child {
  border-radius:4px 0 0 4px;
  transform:skewY(-4deg);
  border-right-width:1px;
}
.book-icon i:last-child {
  border-radius:0 4px 4px 0;
  transform:skewY(4deg);
  border-left-width:1px;
}
.book-icon::after {
  content:"";
  position:absolute;
  left:24px;
  top:2px;
  width:2px;
  height:33px;
  background:var(--rust);
}

/* Language tile stays readable without decorative Japanese characters */
.interest-symbol.language-mark {
  font-family:var(--serif);
  font-size:1.85rem;
  font-style:italic;
  letter-spacing:-.06em;
}

/* Tiny strategy board — also CSS only */
.mini-game-board {
  position:relative;
  display:block;
  width:48px;
  height:42px;
  border:1px solid rgba(15,110,86,.28);
  background:
    linear-gradient(90deg,
      transparent 32%, rgba(15,110,86,.3) 33%, rgba(15,110,86,.3) 35%, transparent 36%,
      transparent 65%, rgba(15,110,86,.3) 66%, rgba(15,110,86,.3) 68%, transparent 69%),
    linear-gradient(
      transparent 32%, rgba(15,110,86,.3) 33%, rgba(15,110,86,.3) 35%, transparent 36%,
      transparent 65%, rgba(15,110,86,.3) 66%, rgba(15,110,86,.3) 68%, transparent 69%),
    var(--cream-deep);
}
.mini-game-board .stone {
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 1px 2px rgba(0,0,0,.14);
}
.mini-game-board .s1 { left:34%; top:34%; background:var(--blue); }
.mini-game-board .s2 { left:67%; top:34%; background:#fff; border:1px solid var(--sage); }
.mini-game-board .s3 { left:67%; top:67%; background:var(--rust); }
.interest-symbol.stones { letter-spacing:.15rem; color:var(--ink); }
.interest-note strong { display:block; color:var(--ink); font-size:1.14rem; font-weight:500; }
.interest-note p { margin:.45rem 0 0; font-size:.87rem; line-height:1.55; }

/* Stories */
.loose-heading { display:grid; grid-template-columns:1fr 120px; gap:30px; align-items:start; }
.loose-heading > div > p { max-width:720px; font-size:1.04rem; }
.margin-jp { font-family:var(--jp); font-size:3rem; color:rgba(29,158,117,.18); justify-self:center; padding-top:.4rem; writing-mode:vertical-rl; }
.story-feature { margin-top:2.5rem; display:grid; grid-template-columns:minmax(220px,.65fr) 1.35fr; gap:42px; align-items:center; }
.story-image {
  background:var(--paper);
  padding:10px;
  border:1px solid var(--line);
  max-width:360px;
  justify-self:center;
  box-shadow:0 8px 24px rgba(15,110,86,.08);
}
.story-image img {
  display:block;
  width:auto;
  max-width:100%;
  max-height:520px;
  margin:0 auto;
  object-fit:contain;
}
.story-copy h3 { margin:.15rem 0 .65rem; color:var(--ink); font-size:2rem; font-weight:500; }
.small-meta { margin:0 !important; font-family:var(--mono); color:var(--sage) !important; font-size:.63rem !important; text-transform:uppercase; letter-spacing:.05em; }
.under-link { display:inline-block; margin-top:.65rem; color:var(--rust); text-decoration:none; border-bottom:1px solid rgba(29,158,117,.35); font-family:var(--mono); font-size:.66rem; }

/* Natural two-column sections */
.paper-strip { position:relative; }
.paper-strip::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:100vw; transform:translateX(-50%); background:rgba(225,245,238,.52); z-index:-1; }
.two-col-natural { display:grid; grid-template-columns:1.2fr .8fr; gap:72px; align-items:start; }
.two-col-natural > div > p { margin:.7rem 0; font-size:1.04rem; }
.jp-inline { font-family:var(--jp); font-size:.55em; font-weight:400; color:var(--rust); margin-left:.25rem; vertical-align:.22em; }
.notebook-note {
  margin-top:2.4rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-left:3px solid var(--rust);
  padding:1.25rem 1.35rem;
  transform:rotate(.7deg);
}
.notebook-note span { font-family:var(--jp); color:var(--rust); font-size:1.5rem; }
.notebook-note p { margin:.5rem 0 0; font-size:.9rem; font-style:italic; }

/* Origami */
.origami-home { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:center; }
.origami-home-copy p { font-size:1.04rem; }
.origami-home-images { min-height:430px; position:relative; }
.fold-photo { position:absolute; object-fit:cover; border:8px solid var(--paper); box-shadow:var(--shadow); }
.fold-photo.one { width:64%; left:3%; top:10px; transform:rotate(-2deg); }
.fold-photo.two { width:48%; right:0; bottom:0; transform:rotate(3deg); }

/* Games */
.games-intro { max-width:760px; }
.games-intro p { font-size:1.04rem; }
.game-table { margin-top:2.2rem; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.game-card { background:rgba(255,255,255,.78); border:1px solid var(--line); padding:1rem; min-height:285px; }
.game-card h3 { margin:.9rem 0 .3rem; font-size:1.35rem; color:var(--ink); font-weight:500; }
.game-card p { margin:.35rem 0 0; font-size:.88rem; line-height:1.5; }
.go-board {
  height:135px;
  position:relative;
  background:
    linear-gradient(90deg, transparent 19%, rgba(15,110,86,.22) 20%, transparent 21%, transparent 39%, rgba(15,110,86,.22) 40%, transparent 41%, transparent 59%, rgba(15,110,86,.22) 60%, transparent 61%, transparent 79%, rgba(15,110,86,.22) 80%, transparent 81%),
    linear-gradient(transparent 19%, rgba(15,110,86,.22) 20%, transparent 21%, transparent 39%, rgba(15,110,86,.22) 40%, transparent 41%, transparent 59%, rgba(15,110,86,.22) 60%, transparent 61%, transparent 79%, rgba(15,110,86,.22) 80%, transparent 81%),
    var(--cream-deep);
  border:1px solid var(--line);
}
.go-board i { width:22px; height:22px; border-radius:50%; position:absolute; transform:translate(-50%,-50%); box-shadow:0 2px 4px rgba(0,0,0,.16); }
.go-board .black { background:#24221f; }
.go-board .white { background:#fffdf8; border:1px solid #80776a; }
.g1{left:40%;top:40%}.g2{left:60%;top:40%}.g3{left:40%;top:60%}.g4{left:80%;top:60%}.g5{left:60%;top:80%}
.set-cards { height:135px; display:flex; justify-content:center; align-items:center; gap:8px; background:#e1f5ee; border:1px solid var(--line); }
.set-cards span { width:54px; height:80px; background:var(--paper); border:1px solid var(--line); display:grid; place-items:center; color:var(--rust); font-family:var(--mono); font-size:.9rem; box-shadow:0 3px 8px rgba(15,110,86,.06); }
.set-cards span:nth-child(2) { color:var(--sage); transform:translateY(-7px) rotate(1deg); }
.set-cards span:nth-child(3) { color:var(--blue); transform:rotate(2deg); }
.hex-board { height:135px; display:grid; grid-template-columns:repeat(4,32px); place-content:center; gap:0 2px; background:#e1f5ee; border:1px solid var(--line); }
.hex-board span { font-size:2rem; line-height:.78; color:var(--blue); }
.hex-board span:nth-child(odd) { color:var(--rust); }
.nim-piles { height:135px; display:flex; gap:18px; align-items:flex-end; justify-content:center; background:#e1f5ee; border:1px solid var(--line); padding-bottom:22px; }
.nim-piles span { white-space:pre; letter-spacing:3px; color:var(--ink); font-family:var(--mono); font-size:1.25rem; writing-mode:vertical-lr; transform:rotate(90deg); }

/* Math */
.math-intro { max-width:780px; }
.math-intro p { font-size:1.04rem; }
.research-list { margin-top:2rem; border-top:1px solid var(--line); }
.research-row { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; padding:1.2rem 0; border-bottom:1px solid var(--line); }
.research-row h3 { margin:.15rem 0 .28rem; color:var(--ink); font-size:1.27rem; font-weight:500; line-height:1.2; }
.research-row p:not(.small-meta) { margin:.2rem 0 0; font-size:.9rem; }
.research-link, .research-status { color:var(--rust); font-family:var(--mono); font-size:.65rem; text-decoration:none; white-space:nowrap; }
.research-status { color:var(--sage); }
.academic-details { margin-top:1.8rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.academic-details summary { cursor:pointer; padding:.9rem 0; color:var(--muted); font-family:var(--mono); font-size:.68rem; }
.academic-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:.3rem 0 1.2rem; }
.academic-grid h3 { color:var(--ink); font-size:1.16rem; font-weight:500; margin:.5rem 0; }
.academic-grid p { margin:.4rem 0; font-size:.88rem; }

/* Other */
.loose-list { display:flex; flex-wrap:wrap; align-content:flex-start; gap:10px; padding-top:2.7rem; }
.loose-list span { background:var(--paper); border:1px solid var(--line); padding:.42rem .66rem; color:var(--sage); font-family:var(--mono); font-size:.63rem; transform:rotate(-.4deg); }
.loose-list span:nth-child(even) { transform:rotate(.7deg); }

/* Contact */
.contact-wrap { display:grid; grid-template-columns:.75fr 1.25fr; gap:64px; align-items:start; }
.contact-note { max-width:350px; }
.contact-form { display:grid; gap:.9rem; }
.field { display:grid; gap:.3rem; }
.field label { font-family:var(--mono); color:var(--muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.07em; }
.field input, .field textarea { width:100%; border:1px solid var(--line); padding:.72rem .85rem; background:var(--paper); color:var(--ink); outline:none; }
.field input:focus, .field textarea:focus { border-color:var(--rust); box-shadow:0 0 0 2px rgba(29,158,117,.08); }
.hidden { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:.58rem .9rem; border:1px solid var(--blue); background:var(--blue); color:#fff; text-decoration:none; font-family:var(--mono); font-size:.66rem; cursor:pointer; }
.button:hover { background:var(--rust); border-color:var(--rust); }

.site-footer {
  border-top:1px solid rgba(159,225,203,.25);
  padding:24px;
  background:var(--blue);
  color:rgba(255,255,255,.72);
  font-family:var(--mono);
  font-size:.62rem;
}
.site-footer .back-link { color:var(--rust-soft); }
.footer-inner { max-width:1080px; margin:0 auto; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }

/* Interior pages */
.page-hero { max-width:900px; margin:0 auto; padding:76px 24px 38px; }
.page-hero h1 { margin:.55rem 0 .8rem; max-width:800px; color:var(--blue); font-size:clamp(2.7rem,6vw,4.8rem); line-height:.98; font-weight:500; letter-spacing:-.03em; }
.page-hero p { max-width:720px; color:var(--muted); font-size:1.03rem; }
.page-hero .section-kicker { font-family:var(--mono); color:var(--rust); font-size:.63rem; text-transform:none; letter-spacing:.02em; }
.back-link { color:var(--rust); text-decoration:none; font-family:var(--mono); font-size:.64rem; }
.content-narrow { max-width:900px; margin:0 auto; padding:8px 24px 86px; }

.origami-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.origami-card { border:1px solid var(--line); overflow:hidden; background:var(--paper); }
.origami-image-button { display:block; width:100%; padding:0; border:0; background:#e1f5ee; cursor:pointer; }
.origami-image-button img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.origami-card-body { padding:1rem 1.05rem 1.15rem; }
.origami-card-top { display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.origami-card h2 { margin:0; color:var(--blue); font-size:1.2rem; font-weight:500; }
.origami-date, .view-label, .view-count { color:var(--rust); font-family:var(--mono); font-size:.61rem; }
.origami-credit { margin:.2rem 0 0; color:var(--muted); font-size:.84rem; }
.view-row { margin-top:.75rem; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.view-label, .view-count { color:var(--muted); }

.writing-intro { border-left:2px solid var(--rust-soft); padding-left:1rem; color:var(--muted); font-style:italic; font-size:1.03rem; margin-bottom:2rem; }
.writing-entry { background:transparent; border-top:1px solid var(--line); padding:2rem 0; margin-bottom:0; }
.writing-entry:first-child { border-top:0; }
.writing-entry header { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:baseline; margin-bottom:1rem; }
.writing-entry h2 { margin:0; color:var(--blue); font-size:1.65rem; font-weight:500; }
.entry-meta { color:var(--sage); font-family:var(--mono); font-size:.62rem; }
.entry-subtitle { margin:-.45rem 0 1.2rem; color:var(--sage); font-family:var(--mono); font-size:.66rem; font-style:italic; }
.writing-entry p { color:var(--muted); }
.writing-entry p.emphasis { color:var(--ink); font-weight:500; }
.writing-entry img { display:block; width:100%; max-width:680px; margin:1rem auto 1.5rem; border:1px solid var(--line); }
.writing-entry img.manga-piece {
  width:auto;
  max-width:340px;
  max-height:980px;
  margin:1.1rem auto 1.5rem;
  padding:7px;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 7px 20px rgba(15,110,86,.07);
  object-fit:contain;
}

.poem { white-space:pre-line; color:var(--muted); line-height:1.95; }
.divider { border:0; border-top:1px solid var(--line); margin:1.5rem 0; }

.thanks { min-height:72vh; display:grid; place-items:center; text-align:center; padding:40px 24px; }
.thanks h1 { color:var(--blue); font-size:3rem; font-weight:500; margin-bottom:.5rem; }
.thanks p { color:var(--muted); }

@media (max-width: 920px) {
  .menu-button { display:inline-flex; }
  .nav-shell { position:relative; }
  .nav-links { display:none; position:absolute; left:16px; right:16px; top:54px; padding:12px; background:var(--blue); border:1px solid rgba(159,225,203,.25); box-shadow:var(--shadow); flex-direction:column; align-items:stretch; gap:0; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:.68rem .55rem; }
  .home-intro { grid-template-columns:230px 1fr; gap:42px; }
  .snapshot { width:220px; }
  .interest-shelf { grid-template-columns:repeat(2,1fr); }
  .story-feature, .origami-home, .two-col-natural, .contact-wrap { grid-template-columns:1fr; gap:32px; }
  .origami-home-images { min-height:480px; max-width:650px; }
  .game-table { grid-template-columns:1fr 1fr; }
}

@media (max-width: 620px) {
  body { font-size:17px; }
  .section { padding:64px 18px; }
  .home-intro { min-height:auto; padding:58px 18px 72px; grid-template-columns:1fr; gap:36px; }
  .intro-photo-wrap { justify-self:start; margin-left:18px; }
  .snapshot { width:205px; }
  .intro-copy h1 { font-size:clamp(3rem,17vw,4.5rem); }
  .interest-shelf { grid-template-columns:1fr; }
  .interest-note { min-height:185px; }
  .loose-heading { grid-template-columns:1fr; }
  .margin-jp { display:none; }
  .story-feature { gap:22px; }
  .story-image { padding:14px; }
  .origami-home-images { min-height:360px; }
  .game-table { grid-template-columns:1fr; }
  .game-card { min-height:auto; }
  .research-row { grid-template-columns:1fr; gap:8px; }
  .research-link, .research-status { justify-self:start; }
  .academic-grid { grid-template-columns:1fr; gap:18px; }
  .page-hero, .content-narrow { padding-left:18px; padding-right:18px; }
  .origami-grid { grid-template-columns:1fr; }
}

@media (max-width: 760px) {
  .am { opacity:.75; }
  .am-1,.am-3,.am-5,.am-7 { left:1.2%; }
  .am-2,.am-4,.am-6,.am-8 { right:1.2%; }
}

.game-link {
  display:inline-block;
  margin-top:.65rem;
  color:var(--rust);
  font-family:var(--mono);
  font-size:.65rem;
  text-decoration:none;
  border-bottom:1px solid rgba(29,158,117,.34);
}
.game-link:hover {
  color:var(--blue);
  border-bottom-color:var(--blue);
}


.tile-icon {
  display:block;
  width:54px;
  height:46px;
  color:var(--rust);
}
.interest-symbol.jp {
  font-family:var(--jp);
  font-size:1.22rem;
  line-height:1;
  padding-top:.35rem;
  letter-spacing:.04em;
}

.crane-icon { width:62px; height:50px; }


/* Resume */
.resume-page {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 24px 80px;
  overflow: visible;
}
.resume-hero {
  padding: 76px 0 46px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  border-bottom: 2px solid var(--rust);
}
.resume-hero h1 {
  margin: .25rem 0 .35rem;
  color: var(--blue);
  font-size: clamp(3rem, 7vw, 5.2rem);
  line-height: .96;
  font-weight: 500;
  letter-spacing: -.035em;
}
.resume-lede {
  margin: 0;
  color: var(--muted);
  font-size: 1.08rem;
}
.resume-print {
  flex: 0 0 auto;
  border: 1px solid var(--rust);
  background: var(--paper);
  color: var(--blue);
  padding: .6rem .8rem;
  font-family: var(--mono);
  font-size: .64rem;
  cursor: pointer;
}
.resume-print:hover {
  background: var(--cream-deep);
}
.resume-section {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 42px;
  padding: 50px 0;
  border-bottom: 1px solid var(--line);
}
.resume-last { border-bottom: 0; }
.resume-section-title h2 {
  position: sticky;
  top: 86px;
  margin: 0;
  color: var(--blue);
  font-size: 1.65rem;
  line-height: 1.05;
  font-weight: 500;
}
.award-list {
  display: flex;
  flex-direction: column;
}
.award-row {
  display: grid;
  grid-template-columns: 92px minmax(0,1fr);
  gap: 18px;
  padding: 0 0 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.award-row:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.award-year {
  color: var(--rust);
  font-family: var(--mono);
  font-size: .62rem;
  padding-top: .3rem;
}
.award-row h3,
.resume-block h3,
.resume-research h3 {
  margin: 0 0 .18rem;
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.25;
  font-weight: 500;
}
.award-row p,
.resume-block p,
.resume-research p {
  margin: .15rem 0 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.5;
}
.resume-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}
.resume-block {
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--rust);
  padding: 1rem 1.05rem 1.1rem;
}
.resume-block .small-meta,
.resume-research .small-meta {
  margin: 0 0 .35rem;
  color: var(--rust);
}
.resume-research {
  display: flex;
  flex-direction: column;
}
.resume-research article {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.resume-research article:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.resume-research a {
  flex: 0 0 auto;
  color: var(--rust);
  font-family: var(--mono);
  font-size: .63rem;
  text-decoration: none;
  border-bottom: 1px solid rgba(29,158,117,.35);
}
.resume-research a:hover {
  color: var(--blue);
  border-color: var(--blue);
}
.resume-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.resume-tags span {
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--muted);
  padding: .38rem .68rem;
  font-family: var(--mono);
  font-size: .62rem;
}

@media (max-width: 760px) {
  .resume-hero {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 52px;
  }
  .resume-section {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 38px 0;
  }
  .resume-section-title h2 {
    position: static;
  }
  .resume-columns {
    grid-template-columns: 1fr;
  }
  .award-row {
    grid-template-columns: 78px minmax(0,1fr);
  }
}

@media print {
  .site-header,
  .site-footer,
  .resume-print {
    display: none !important;
  }
  body {
    background: #fff !important;
    font-size: 11pt;
  }
  .resume-page {
    max-width: none;
    padding: 0;
  }
  .resume-hero {
    padding: 0 0 18px;
  }
  .resume-hero h1 {
    font-size: 30pt;
  }
  .resume-section {
    grid-template-columns: 135px minmax(0,1fr);
    gap: 20px;
    padding: 22px 0;
    break-inside: avoid;
  }
  .resume-section-title h2 {
    position: static;
    font-size: 14pt;
  }
  .award-row,
  .resume-research article {
    break-inside: avoid;
  }
}



/* Resume activities */
.activity-list {
  display:flex;
  flex-direction:column;
}
.activity-row {
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:18px;
  padding:0 0 18px;
  margin-bottom:18px;
  border-bottom:1px solid var(--line);
}
.activity-row:last-child {
  border-bottom:0;
  margin-bottom:0;
  padding-bottom:0;
}
.activity-year {
  color:var(--rust);
  font-family:var(--mono);
  font-size:.62rem;
  padding-top:.3rem;
}
.activity-row h3 {
  margin:0 0 .18rem;
  color:var(--ink);
  font-size:1.08rem;
  line-height:1.25;
  font-weight:500;
}
.activity-row p {
  margin:.15rem 0 0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.5;
}
@media (max-width:760px) {
  .activity-row {
    grid-template-columns:78px minmax(0,1fr);
  }
}
@media print {
  .activity-row {
    break-inside:avoid;
  }
}


/* Linked research titles */
.research-title-link {
  color:inherit;
  text-decoration:none;
}
.research-title-link:hover,
.research-title-link:focus-visible {
  color:var(--tm);
  text-decoration:underline;
  text-underline-offset:3px;
}
