:root{--story-ink:#182b3a;--story-paper:#faf8f1;--story-gold:#b4904c}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{overflow-wrap:break-word}
section{scroll-margin-top:75px}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8c5613;outline-offset:5px}
.skip-link{position:fixed;left:15px;top:-100px;z-index:3000;background:white;color:#142438;padding:12px}
.skip-link:focus{top:12px}
.mits-hero{position:relative;isolation:isolate;overflow:hidden;min-height:740px;padding:82px 30px 88px;background:radial-gradient(ellipse at 78% 40%,#30343a 0%,#151e28 44%,#101922 80%)}
.mits-hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(0deg,#101922 0%,transparent 30%)}
.mits-hero .inner{position:relative;z-index:1;max-width:1120px;text-align:left}
.hero-copy{max-width:660px}
.hero-back{position:absolute;z-index:0;right:calc(50% - 610px);top:15px;width:820px;height:100%;max-width:none;object-fit:contain;opacity:.42;filter:brightness(1.45) saturate(.65);pointer-events:none}
.hero-signature{display:flex;align-items:center;gap:24px;margin:0 0 30px;color:#d7c59c;font-size:13px;letter-spacing:.18em}
.hero-crest{display:block;width:92px;height:92px;filter:invert(90%) sepia(16%) saturate(446%) hue-rotate(357deg) brightness(96%) contrast(87%)}
.mits-hero .sub{font-size:22px;line-height:1.8;max-width:630px;margin-left:0;color:#e0e1de}
.mits-hero .hero-name{margin-left:0!important}
.mits-hero .hero-kana{margin-top:16px!important;letter-spacing:.2em!important}
.mits-hero .cta{justify-content:flex-start;margin-top:34px}
.mits-hero .hero-note{margin-left:0!important}
@media(max-width:760px){
 .mits-hero .inner{text-align:center}.hero-copy{max-width:100%}
 .hero-signature{justify-content:center;gap:18px;margin-bottom:28px;font-size:11px;letter-spacing:.08em}.hero-crest{width:78px;height:78px}
 .hero-back{right:-215px;top:92px;width:710px;opacity:.27}
 .mits-hero .sub{margin-left:auto;font-size:18px}.mits-hero .cta{justify-content:center}.mits-hero .hero-note{margin-left:auto!important}
}
.mits-hero .hero-kicker{font-size:16px;letter-spacing:.35em;color:#dac18e;margin:14px auto}
.mits-hero .hero-name{font-family:"Hiragino Mincho ProN",serif;font-size:clamp(56px,8vw,108px);letter-spacing:.16em;margin:0 auto 6px}
.mits-hero .hero-title{font-size:clamp(24px,3vw,38px);line-height:1.5;margin:22px auto 0;font-weight:600}
.mits-hero .btn-outline{border-color:#dbc18e;color:#f5e6c8}
nav .inner{gap:30px}
.hero-note{font-size:13px!important;line-height:1.9!important;color:#d5d8d9!important;max-width:700px;margin:35px auto 0!important}
.source-line{font-size:12px!important;line-height:1.8!important;color:#68635b!important;letter-spacing:normal!important;margin-top:16px!important}
.source-line a{color:#61502c;text-decoration:underline;text-underline-offset:3px}
.evidence-note{font-size:13px;line-height:1.9;margin:20px 0;color:#676154;border-top:1px solid #ded8cc;padding-top:12px}
.evidence-note summary{cursor:pointer;min-height:30px;color:#74603c}
.evidence-note p{font-size:13px!important;line-height:1.9!important;letter-spacing:normal}
.letter-intro{background:#f6f2e9}.letter-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:center;max-width:1080px!important}
.letter-layout figure{text-align:center}.letter-layout img{display:block;width:100%;height:410px;object-fit:contain}
.letter-layout figcaption{font-size:11px;color:#7a7265;margin-top:20px}.letter-layout h2{font-size:clamp(26px,3vw,39px);line-height:1.65;font-family:"Hiragino Mincho ProN",serif}
.letter-layout p{font-size:17px;line-height:2}.text-link{display:inline-block;margin-top:15px;color:#7b5c2d}
.profile.dark-card p,.profile.dark-card dd{color:#f1eee7}
.life-chapter{max-width:850px;margin:0 auto;padding:50px 0;border-bottom:1px solid #ded9cc}
.life-chapter:last-child{border-bottom:0}
.chapter-label{color:#8a6735;font-size:13px;font-weight:600;letter-spacing:.13em}
.life-chapter h3{font-size:clamp(24px,3vw,32px);margin:14px 0 25px;font-family:"Hiragino Mincho ProN",serif}
.life-chapter>p:not(.source-line){font-size:17px;line-height:2.1;letter-spacing:.02em}
.life-chapter .source-line{margin-bottom:28px}
.journey-shell{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);border:1px solid #dcd5c3;border-radius:8px;overflow:hidden;background:#f8f5ec}
.terrain-viewport{position:relative;min-height:520px;background:#607865;isolation:isolate}
#terrainFallback{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:0}
#journeyMap{position:absolute;inset:0;z-index:1}
.map-floating{position:absolute;top:14px;right:14px;z-index:600;display:flex;align-items:center;gap:12px;background:rgba(247,245,234,.96);color:#21352e;padding:7px 10px;border-radius:4px;font-size:11px}
.map-floating button{font-size:12px;border:1px solid #a6a58f;border-radius:3px;padding:7px;background:white;color:#21352e;cursor:pointer}
.map-state{position:absolute;left:14px;bottom:30px;z-index:500;background:rgba(249,247,239,.9);font-size:11px;padding:4px 9px;max-width:80%;color:#384838}
.map-guide{position:absolute;left:50%;bottom:50%;width:126px;height:126px;transform:translateX(-50%);z-index:450;pointer-events:none;filter:drop-shadow(0 4px 3px #0003)}
.map-guide img{width:100%;height:100%;object-fit:contain}.map-guide[hidden]{display:none}
.map-guide.is-travelling img{animation:guide-step .22s ease-in-out infinite alternate}
@keyframes guide-step{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-3px) rotate(1deg)}}
.journey-caption{font-size:12px;line-height:1.9;color:#6d6658;margin-top:24px}
.journey-detail{padding:34px 30px;display:flex;flex-direction:column;justify-content:center}
.journey-detail h3{font-family:"Hiragino Mincho ProN",serif;font-size:clamp(23px,2.5vw,30px);line-height:1.6;margin:15px 0}
.journey-detail p{font-size:15px;line-height:1.9;letter-spacing:normal;margin:10px 0}
.journey-kind{font-size:12px!important;color:#706142}
.journey-evidence{padding-top:15px;border-top:1px solid #d6cfbd;color:#58452b;font-size:13px!important}
#journeySource{font-size:13px;color:#5b4625;text-underline-offset:4px}
.journey-controls{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:22px 0}
.journey-controls button{cursor:pointer;background:#faf8f1;border:1px solid #b8aa8c;color:#23372e;border-radius:4px;min-height:46px;padding:11px 18px;font:inherit;font-size:13px}
.journey-controls #journeyPlay{background:#162d29;color:#fff5db;border-color:#162d29}
.journey-controls button:disabled{opacity:.35;cursor:default}
#journeyStatus{font-size:12px;color:#66614f;min-width:45px}
.journey-stops{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.journey-stops button{background:#fff;border:1px solid #d8d0bc;text-align:left;padding:13px 11px;cursor:pointer;border-radius:3px;display:flex;flex-direction:column;gap:6px;color:#213b31}
.journey-stops button[aria-current]{background:#17352b;color:#faf4da;border-color:#17352b}
.journey-stops strong{font-size:14px;font-weight:500;font-family:Georgia,serif}
.journey-stops span{font-size:11px}
.film-frame{margin:30px 0 12px;background:#172c28;border:1px solid #c7b998;overflow:hidden;border-radius:5px}
.film-frame video{display:block;width:100%;height:auto;aspect-ratio:16/9}
.film-frame figcaption{color:#e1d9c5;font-size:12px;padding:14px 20px;line-height:1.8;letter-spacing:normal}
.film-links{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:13px}
.film-links a{color:#655132}
.legend-key{font-size:12px;line-height:2.3;color:#635d4e;margin:22px 0 30px}
.legend-key span{font-weight:bold;color:#5e492e}
.legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.legend-card h3,.card h3{font-size:19px;line-height:1.6;margin:15px 0}
.legend-card p:not(.source-line){font-size:14px;line-height:1.95;letter-spacing:normal}
.legend-card .badge{font-size:11px;color:#60471e;background:#f4eddb}
.mits-quote{padding:90px 25px!important;background:#10231e!important}
.mits-quote blockquote{font-family:"Hiragino Mincho ProN",serif;font-size:clamp(26px,3vw,40px);line-height:1.8}
.mits-quote cite,.mits-quote p{font-size:13px;line-height:2;color:#d4d5cd;display:block;max-width:850px;margin:25px auto 0}
.chronology{overflow-x:auto}
.chronology table{width:100%;border-collapse:collapse;font-size:14px}
.chronology th,.chronology td{padding:18px 16px;line-height:1.9;border-bottom:1px solid #ddd6c6;text-align:left}
.chronology th{white-space:nowrap;font-weight:500;color:#5d4d32}
.chronology caption{text-align:left;font-size:12px;color:#6c6454;padding-bottom:16px}
.chronology a{font-size:12px;color:#796131;white-space:nowrap}
.spot p{line-height:1.9;letter-spacing:normal}
.map-backlink{text-align:center;padding:28px}
.map-backlink a{font-size:14px;color:#68532c}
footer details{margin:24px 0;line-height:2;font-size:13px}
footer summary{cursor:pointer;font-size:15px;padding:10px 0}
footer p{font-size:13px;line-height:2;letter-spacing:normal}
footer h2{font-size:20px}
footer a{overflow-wrap:anywhere}
.leaflet-container{font-family:inherit}
@media(max-width:760px){
 .letter-layout{grid-template-columns:1fr;gap:25px}.letter-layout img{height:260px}.letter-layout p{font-size:16px}.letter-layout figure{margin:0}
 html{scroll-padding-top:105px}section{scroll-margin-top:100px}
 nav{height:82px}nav .inner{height:82px;display:block;overflow:visible;padding:0 22px}
 nav .brand{display:block;height:34px;line-height:34px}
 nav ul{overflow-x:auto;height:48px;align-items:center;gap:22px;scrollbar-width:thin}
 nav ul a{display:inline-block;padding:10px 0}
 .mits-hero{padding-top:75px;padding-bottom:80px}.mits-hero .sub{font-size:18px;line-height:1.65}
 .journey-shell{grid-template-columns:1fr}.terrain-viewport{min-height:360px}.journey-detail{padding:24px}.journey-detail h3{font-size:24px}
 .journey-stops{grid-template-columns:repeat(2,minmax(0,1fr))}.legend-grid{grid-template-columns:1fr}.life-chapter{padding:38px 0}
 .life-chapter>p:not(.source-line){font-size:16px}.chronology th,.chronology td{padding:14px 8px}.chronology th{white-space:normal;min-width:90px}
 .mits-ribbon{letter-spacing:.06em;font-size:11px;padding:8px 14px}.mits-ribbon:before,.mits-ribbon:after{width:12px}
 .journey-controls{gap:8px}.journey-controls button{padding:10px 12px}.hero-note{font-size:12px!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
