:root {
  --ink: #101216;
  --ink-soft: #2b2f36;
  --paper: #f7f7f4;
  --card: #ffffff;
  --gold: #c9a227;
  --gold-soft: #f2e7b7;
  --line: #ddd9cc;
  --muted: #6b7280;
  --shadow: 0 14px 34px rgba(16,18,22,.08);
  --radius: 22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans JP","Yu Gothic UI",system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.7}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{position:sticky;top:0;z-index:20;background:rgba(16,18,22,.94);backdrop-filter:blur(12px);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.header-inner{max-width:1180px;margin:auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;min-width:0;font-weight:800;text-decoration:none;line-height:1.28}.brand>span:last-child{white-space:nowrap}.brand-mark{width:38px;height:38px;flex:0 0 38px;border:1px solid var(--gold);border-radius:12px;display:grid;place-items:center;color:var(--gold);font-family:Georgia,serif}.brand small{display:block;color:#d1d5db;font-weight:500;white-space:nowrap}.nav-links{display:flex;gap:20px;flex:0 0 auto;font-size:.95rem}.nav-links a{text-decoration:none;color:#ececec;white-space:nowrap}.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 80% 20%,rgba(201,162,39,.24),transparent 28%),linear-gradient(135deg,#111318,#20242b);color:#fff}.hero::before,.hero::after{content:"";position:absolute;border:1px solid rgba(201,162,39,.24);border-radius:50%;}.hero::before{width:360px;height:360px;right:-120px;top:-110px}.hero::after{width:190px;height:190px;right:150px;bottom:-95px}.hero-inner{max-width:1180px;margin:auto;padding:72px 20px 64px;position:relative;z-index:1}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid rgba(201,162,39,.48);border-radius:999px;color:#f8e8a6;font-size:.86rem}.hero h1{font-size:clamp(2rem,5vw,4rem);line-height:1.18;margin:18px 0 14px;letter-spacing:.02em}.hero p{max-width:760px;color:#e6e7ea;font-size:1.08rem}.search-shell{margin-top:28px;background:#fff;border-radius:20px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:8px;box-shadow:0 18px 50px rgba(0,0,0,.24)}.search-shell input{border:0;outline:0;font-size:1rem;padding:14px 16px;border-radius:14px;background:#fff;min-width:0}.search-shell button{border:0;background:var(--gold);color:#171717;font-weight:800;padding:0 22px;border-radius:14px;cursor:pointer}.quick-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.quick-tags button{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;border-radius:999px;padding:8px 13px;cursor:pointer}.quick-tags button:hover{border-color:var(--gold);color:#ffeaa0}.section{max-width:1180px;margin:auto;padding:52px 20px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}.section-heading p{margin:6px 0 0;color:var(--muted)}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.filter-chip{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:999px;cursor:pointer}.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.university-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}.university-card{background:var(--card);border:1px solid #ebe7db;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100%;transition:transform .2s ease,box-shadow .2s ease}.university-card:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(16,18,22,.12)}.card-visual{height:118px;border-radius:18px;background:linear-gradient(135deg,#f6f1dd,#fff);display:flex;align-items:center;justify-content:space-between;padding:18px;margin-bottom:18px;position:relative;overflow:hidden}.card-visual::after{content:"";position:absolute;width:120px;height:120px;border:1px solid rgba(201,162,39,.38);border-radius:50%;right:-34px;bottom:-46px}.visual-icon{font-size:2.5rem;color:#9b7e16}.visual-label{font-size:.82rem;font-weight:800;letter-spacing:.08em;color:#6d5c22}.badge-row,.tag-row{display:flex;gap:8px;flex-wrap:wrap}.badge{font-size:.78rem;background:#171a20;color:#fff;padding:5px 9px;border-radius:999px}.tag{font-size:.78rem;background:#f2f3f5;padding:5px 9px;border-radius:999px;color:#40444b}.university-card h3{margin:12px 0 4px;font-size:1.3rem}.meta{color:var(--muted);font-size:.92rem}.summary{margin:14px 0;color:#42464d}.card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:18px}.btn{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;border-radius:12px;padding:10px 12px;font-weight:700;border:1px solid var(--line);background:#fff;cursor:pointer}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn[aria-disabled="true"]{cursor:not-allowed;color:var(--muted);background:#f5f5f3}.detail-panel{display:none;margin-top:28px;background:#fff;border:1px solid #e7e2d5;border-radius:26px;overflow:hidden;box-shadow:var(--shadow);scroll-margin-top:84px}.detail-panel.open{display:block}.detail-hero{background:linear-gradient(135deg,#17191f,#2d3138);color:#fff;padding:32px;position:relative}.detail-hero::after{content:"";position:absolute;right:28px;top:28px;width:84px;height:84px;border-radius:24px;border:1px solid rgba(201,162,39,.55);transform:rotate(12deg)}.detail-hero h2{margin:8px 0 2px;font-size:clamp(1.8rem,4vw,2.6rem)}.detail-close{position:absolute;z-index:2;right:20px;bottom:18px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:7px 12px;font-weight:700;cursor:pointer}.detail-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;padding:28px}.detail-main{display:grid;gap:16px}.info-block{border:1px solid #ece8dc;border-radius:18px;padding:20px;background:#fff}.info-block h3{margin-top:0;margin-bottom:10px}.feature-block{background:linear-gradient(135deg,#fffdf6,#fff)}.feature-lead{font-size:1.03rem;margin:0 0 14px;color:#30343a}.research-row{display:flex;flex-wrap:wrap;gap:8px}.research-chip{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid #eadca6;border-radius:999px;background:#fff8dd;color:#594a18;font-size:.84rem}.academic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0;padding:0;list-style:none}.academic-list li{position:relative;padding:8px 10px 8px 28px;border-bottom:1px solid #f0ede4}.academic-list li::before{content:"◆";position:absolute;left:8px;top:10px;color:var(--gold);font-size:.68rem}.source-block{background:#fafaf8}.source-list{margin:0 0 10px;padding-left:1.2rem}.source-list li+li{margin-top:4px}.source-list a{text-decoration-color:#c9a227;text-underline-offset:3px}.action-panel{align-self:start;position:sticky;top:84px;background:linear-gradient(180deg,#fffdf5,#fbfaf5)}.action-panel-heading{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px}.action-panel-heading>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:var(--ink);color:var(--gold);font-weight:900}.action-panel-heading h3{margin:0}.action-panel-heading p{margin:2px 0 0;color:var(--muted);font-size:.84rem}.admission-action-list{display:grid;gap:9px}.admission-action{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;min-height:52px;padding:10px 11px;border:1px solid #e4dfd0;border-radius:13px;background:#fff;text-decoration:none;transition:transform .16s ease,border-color .16s ease}.admission-action:hover{transform:translateY(-1px);border-color:#c9a227}.admission-action.primary-action{background:#171a20;color:#fff;border-color:#171a20}.action-kind{display:inline-flex;justify-content:center;min-width:38px;padding:3px 6px;border-radius:8px;background:#f1ead0;color:#66551a;font-size:.72rem;font-weight:800}.primary-action .action-kind{background:#c9a227;color:#171717}.action-label{font-size:.9rem;font-weight:750;line-height:1.35}.action-arrow{font-weight:900;color:#9b7e16}.primary-action .action-arrow{color:#f6db73}.admission-note{margin:12px 0 0;padding:10px 11px;border-left:3px solid #c9a227;background:#fff8dd;color:#5d512b;font-size:.8rem;line-height:1.55}.utility-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.trust-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.trust-item strong{display:block;margin-bottom:6px}.site-footer{background:#111318;color:#d9d9db;margin-top:54px}.footer-inner{max-width:1180px;margin:auto;padding:32px 20px}.empty{grid-column:1/-1;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:28px;text-align:center;color:var(--muted)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #e1b832;outline-offset:3px}@media(max-width:1100px){.university-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.detail-body{grid-template-columns:1fr}.action-panel{position:static}.nav-links{display:none}}@media(max-width:620px){.hero-inner{padding-top:48px}.search-shell{grid-template-columns:1fr}.search-shell button{padding:12px}.university-grid{grid-template-columns:1fr}.section{padding:38px 16px}.header-inner{padding-inline:16px}.brand{font-size:.92rem;gap:10px}.brand-mark{width:34px;height:34px;flex-basis:34px}.brand small{font-size:.72rem}.card-actions{grid-template-columns:1fr}.trust-strip{grid-template-columns:1fr}.hero h1{font-size:2.15rem}.detail-panel{grid-column:1/-1;margin-top:8px;margin-bottom:18px}.detail-body{padding:18px}.detail-hero{padding:24px 18px 58px}.detail-hero::after{width:64px;height:64px;right:18px;top:20px}.detail-close{right:16px;bottom:14px}.academic-list{grid-template-columns:1fr}.action-panel{order:-1}.utility-actions{grid-template-columns:1fr}.admission-action{min-height:56px}}@media(max-width:420px){.brand>span:last-child{font-size:.84rem}.brand small{display:none}.section-heading{align-items:start}.section-heading strong{white-space:nowrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
