:root{--ink:#111714;--paper:#f7f7f4;--white:#fff;--muted:#66716c;--line:rgba(17,23,20,.15);--accent:#92d0ec;--soft:#eaf2f1;--serif:"Yu Mincho","Hiragino Mincho ProN",YuMincho,serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip{position:fixed;z-index:100;left:16px;top:12px;background:#fff;padding:9px 14px;transform:translateY(-150%)}.skip:focus{transform:none}
body[data-hub="terakoya"]{--accent:#d89d62;--soft:#f3ecdf}body[data-hub="english"]{--accent:#8fc7df;--soft:#e8f1f5}body[data-hub="japanese"]{--accent:#e2a688;--soft:#f3eae5}body[data-hub="places"]{--accent:#9db997;--soft:#e9efe7}body[data-hub="development"]{--accent:#91bfae;--soft:#e7efeb}body[data-hub="career"]{--accent:#d79ba8;--soft:#f2e8eb}
.topbar{position:absolute;z-index:20;inset:0 0 auto;height:92px;padding:0 4.3vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.28);background:linear-gradient(180deg,rgba(8,14,12,.4),transparent);color:#fff}.brand img{width:clamp(126px,11vw,166px)}.topnav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);font-size:.8125rem;letter-spacing:.05em}.topnav a{text-decoration:none}.menu-button{padding:0;color:inherit;background:none;font:inherit;cursor:pointer;width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center}.menu-lines,.menu-lines::after{content:"";display:block;width:15px;height:1px;background:currentColor}.menu-lines::after{transform:translateY(5px)}
.hero{position:relative;min-height:760px;height:100svh;color:#fff;overflow:hidden;background:#1c2521}.hero-media{position:absolute;inset:0;background:var(--hero) var(--hero-pos,center)/cover no-repeat;transform:scale(1.015);animation:drift 18s ease-in-out infinite alternate}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,14,12,.88),rgba(8,14,12,.58) 34%,rgba(8,14,12,.1) 66%),linear-gradient(0deg,rgba(8,14,12,.4),transparent 48%)}.hero-copy{position:relative;z-index:2;width:min(720px,78vw);margin-left:6.2vw;padding-top:27vh}.kicker,.eyebrow{margin:0;font-size:.7rem;letter-spacing:.2em}.kicker{color:var(--accent)}.hero h1{margin:24px 0 0;font-family:var(--serif);font-size:clamp(2.1rem,3.7vw,3.6rem);font-weight:500;line-height:1.35;letter-spacing:.025em}.hero-lead{max-width:590px;margin:27px 0 34px;font-family:var(--serif);font-size:clamp(1rem,1.2vw,1.16rem);line-height:2}.text-link{display:inline-flex;align-items:center;gap:22px;padding:12px 0;border-bottom:1px solid currentColor;text-decoration:none}.back-link{position:absolute;z-index:3;right:4.3vw;bottom:36px;font-size:.72rem;text-decoration:none;color:rgba(255,255,255,.82)}@keyframes drift{to{transform:scale(1.055) translate3d(-.5%,.3%,0)}}
.section{padding:clamp(100px,12vw,170px) 6vw}.section.white{background:#fff}.inner{max-width:1280px;margin:auto}.section-head{display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw;margin-bottom:clamp(55px,7vw,90px);align-items:start}.eyebrow{color:var(--muted)}.section h2{margin:16px 0 0;font-family:var(--serif);font-size:clamp(1.65rem,2.65vw,2.7rem);font-weight:500;line-height:1.5}.section-intro{max-width:560px;margin:4px 0 0;color:var(--muted);font-size:1.02rem}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.choice{min-height:270px;padding:34px;background:#fff;text-decoration:none;display:flex;flex-direction:column;transition:background .25s}.choice:hover{background:var(--soft)}.choice small,.resource small,.topic small{font-size:.66rem;letter-spacing:.16em;color:var(--muted)}.choice h3{margin:45px 0 12px;font-family:var(--serif);font-size:clamp(1.2rem,1.7vw,1.5rem);font-weight:500;line-height:1.55}.choice p{margin:0;color:var(--muted);font-size:.92rem}.arrow{margin-top:auto;padding-top:26px;color:var(--accent)}
.free{background:var(--ink);color:#fff}.free .section-head .eyebrow,.free .section-intro{color:rgba(255,255,255,.62)}.resources{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22)}.resource{padding:30px 24px;border-right:1px solid rgba(255,255,255,.18)}.resource:last-child{border-right:0}.resource small{color:var(--accent)}.resource h3{margin:38px 0 12px;font-family:var(--serif);font-size:1.35rem;font-weight:500}.resource p{margin:0;color:rgba(255,255,255,.65);font-size:.9rem}
.topics{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.topic{min-height:240px;padding:36px;border:1px solid var(--line);background:var(--paper)}.topic h3{margin:34px 0 10px;font-family:var(--serif);font-size:1.5rem;font-weight:500}.topic p{margin:0;color:var(--muted)}.status{display:inline-block;margin-top:24px;padding:5px 10px;border:1px solid var(--line);border-radius:99px;font-size:.68rem;color:var(--muted)}
.cinema{position:relative;height:min(72vw,820px);min-height:580px;overflow:hidden;background:#25302b}.cinema img{width:100%;height:100%;object-fit:cover}.cinema:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,14,12,.62),transparent 58%)}.cinema-copy{position:absolute;z-index:2;left:7vw;right:7vw;bottom:7vw;color:#fff}.cinema-copy p{margin:0 0 15px;color:var(--accent);font-size:.7rem;letter-spacing:.19em}.cinema-copy h2{max-width:850px;margin:0;font-family:var(--serif);font-size:clamp(1.75rem,3.05vw,3.15rem);font-weight:500;line-height:1.5}
.connect-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1px;background:var(--line)}.connect-copy,.connect-action{background:#fff;padding:clamp(38px,5vw,70px)}.connect-copy h2{margin:0;font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,2.3rem);font-weight:500;line-height:1.55}.connect-copy p{color:var(--muted)}.action-list{border-top:1px solid var(--line)}.action-list a{display:flex;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--line);text-decoration:none}.action-list a:hover span:first-child{text-decoration:underline;text-underline-offset:4px}
.cross{background:var(--soft)}.cross-links{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.cross-link{padding:34px;background:#fff;text-decoration:none}.cross-link small{font-size:.66rem;letter-spacing:.15em;color:var(--muted)}.cross-link strong{display:block;margin-top:18px;font-family:var(--serif);font-size:1.4rem;font-weight:500}.cross-link span{display:block;margin-top:22px;color:var(--accent)}
.final{padding:clamp(100px,13vw,180px) 24px;background:var(--ink);color:#fff;text-align:center}.final p{margin:0 0 30px;color:var(--accent);font-size:.7rem;letter-spacing:.2em}.final h2{max-width:900px;margin:auto;font-family:var(--serif);font-size:clamp(1.6rem,2.9vw,2.85rem);font-weight:500;line-height:1.7}
.corporate-footer{background:#fff;padding:80px 6vw 32px}.footer-inner{max-width:1320px;margin:auto}.footer-top{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;padding-bottom:72px}.footer-brand img{width:min(190px,52vw)}.footer-company{font-size:.82rem;margin-top:28px;color:#555}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 38px;border-top:1px solid var(--line)}.footer-nav a{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.82rem}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;font-size:.67rem;color:#7b827f}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.topbar{height:74px;padding:0 22px}.topnav.is-open{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto;padding:16px 22px 14px;background:rgba(8,14,12,.96)}.topnav.is-open .menu-button{grid-column:2;grid-row:1}.topnav.is-open>a{display:block;grid-column:1/-1;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:.95rem}.brand img{width:132px}.topnav>a{display:none}.hero{min-height:720px}.hero-copy{width:calc(100% - 44px);margin-left:22px;padding-top:24vh}.hero-media{background-position:var(--hero-mobile-pos,var(--hero-pos,center))}.back-link{display:none}.section-head,.connect-grid{grid-template-columns:1fr;gap:28px}.choices{grid-template-columns:1fr}.choice{min-height:auto}.resources{grid-template-columns:1fr 1fr}.resource:nth-child(2){border-right:0}.resource:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.18)}.topics{grid-template-columns:1fr}.cross-links{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr;gap:52px}.footer-nav{grid-template-columns:1fr}}
@media(max-width:520px){.hero{min-height:680px}.hero-copy{padding-top:21vh}.hero h1{font-size:clamp(1.6rem,7.1vw,1.88rem)}.hero-lead{font-size:1rem;line-height:1.9}.section{padding-left:22px;padding-right:22px}.resources{grid-template-columns:1fr}.resource{border-right:0!important;border-bottom:1px solid rgba(255,255,255,.18)}.resource:last-child{border-bottom:0}.cinema{min-height:620px}.cinema:after{background:linear-gradient(0deg,rgba(8,14,12,.77),rgba(8,14,12,.1) 70%)}.cinema-copy{left:22px;right:22px;bottom:55px}.cinema-copy h2{font-size:1.8rem}.corporate-footer{padding:64px 22px 28px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* 十六の学びの間（公開済み16室へのリンク一覧） */
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:18px}
.room{display:flex;flex-direction:column;padding:26px 24px;border:1px solid var(--line);background:#fff;text-decoration:none;transition:background .25s}
.room:hover{background:var(--soft)}
.room small{font-size:.62rem;letter-spacing:.14em;color:var(--muted)}
.room h3{margin:14px 0 9px;font-family:var(--serif);font-size:1.16rem;font-weight:500;line-height:1.5}
.room p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.85}
.room .arrow{margin-top:auto;padding-top:20px}
.rooms-note{margin:26px 0 0;color:var(--muted);font-size:.9rem;line-height:2}
.rooms-note a{color:inherit;text-underline-offset:4px}
@media(max-width:560px){.rooms{grid-template-columns:1fr}}


/* 札をリンクにする（2026-09-23） */
a.resource,a.topic,.resource,.topic{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:background .25s}
a.resource:hover{background:rgba(255,255,255,.06)}
a.topic:hover{background:#fff}
.resource .arrow{color:var(--accent)}
.resource .status{align-self:flex-start;margin-top:20px;border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.7)}

/* 暗い帯の札に、行き先を2本まで添える（2026-09-23 Places） */
.res-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin:auto 0 0;padding-top:20px}
.res-links a{font-size:.84rem;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:3px}
.res-links a::after{content:" →";color:var(--accent)}
.res-links a:hover{border-bottom-color:#fff}
.choice .status{align-self:flex-start;margin-top:auto;padding-top:5px}
.choices .choice>.status{margin-top:26px}

/* terakoya hub: featured rooms + full index (PM07 2026-09-23) */
.rooms-featured{grid-template-columns:repeat(4,1fr)}
.room-index{margin-top:28px;border-top:1px solid var(--line);padding-top:6px}
.room-index summary{cursor:pointer;list-style:none;padding:18px 0;font-family:var(--serif);font-size:1.05rem}
.room-index summary::-webkit-details-marker{display:none}
.room-index summary::after{content:" ＋";color:var(--muted)}
.room-index[open] summary::after{content:" −"}
.room-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:8px 0 4px}
.room-group h4{margin:0 0 10px;font-size:.72rem;letter-spacing:.12em;color:var(--muted);font-weight:500}
.room-group ul{margin:0;padding:0;list-style:none}
.room-group li{border-bottom:1px solid var(--line)}
.room-group a{display:block;padding:10px 0;color:inherit;text-decoration:none;font-family:var(--serif)}
.room-group a:hover{color:var(--muted)}
.resources-2{grid-template-columns:repeat(2,1fr);margin-bottom:18px}
@media(max-width:900px){.rooms-featured{grid-template-columns:repeat(2,1fr)}.room-groups{grid-template-columns:1fr}}
@media(max-width:560px){.rooms-featured,.resources-2{grid-template-columns:1fr}}
.resources-2 .resource,.resources-light .resource{background:var(--paper);border:1px solid var(--line)}.resources-2 .resource p,.resources-light .resource p{color:var(--muted)}.resources-2 .resource h3,.resources-light .resource h3{color:var(--ink)}.resources-2 .status{color:var(--muted);border-color:var(--line)}.resources-light a.resource:hover{background:#fff}
/* about page (PM07 2026-09-23) */
.prose p{margin:0 0 1.2em;line-height:2.05}
.signature{margin-top:26px;color:var(--muted);line-height:1.9}.signature strong{color:var(--ink);font-family:var(--serif);font-size:1.3rem;font-weight:500}
.resources-3{grid-template-columns:repeat(3,1fr)}.resources-3 .resource h3{font-size:1.2rem;line-height:1.7}
.timeline,.profile{margin:0;border-top:1px solid var(--line)}
.timeline>div,.profile>div{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.timeline dt{font-family:var(--serif);font-size:1.4rem}.profile dt{color:var(--muted);font-size:.9rem}
.timeline dd,.profile dd{margin:0;line-height:1.9}
@media(max-width:700px){.resources-3{grid-template-columns:1fr}.timeline>div,.profile>div{grid-template-columns:1fr;gap:6px}}

@media(min-width:901px){.menu-button{display:none}}
