@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&display=swap');
/* White artwork preserves fine detail; gold belongs to the display panel. */
@media screen {
  .crest {
    filter: invert(1) !important;
  }
  .hero .plate,
  .detail .plate,
  .compare .plate {
    border: 1px solid #BCA57A;
  }
  .catalog .card {
    border: 1px solid rgba(188, 165, 122, .42);
  }
  .hero h1 strong,
  .detail h1 {
    color: #D8C391;
  }
}
.crest{height:auto!important;background:transparent!important}.card .crest{height:140px!important}.hero figure{margin:0}.hero{min-height:580px}@media(max-width:760px){.card .crest{height:105px!important}.hero{min-height:0}}
/* Homepage: a crest reference library, with illustrated routes into the index. */
.hero.home-hero h1 { font-size:clamp(23px,2.8vw,34px); letter-spacing:.04em; }
.hero.home-hero h1 strong { font-size:clamp(36px,4.2vw,52px); margin-top:12px; letter-spacing:.02em; white-space:nowrap; }
.hero-lead { font-size:16px; line-height:2.1; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin-top:30px; }
.hero-actions .textlink { margin-top:0; font-size:13px; }
.hero-index { margin-top:24px; letter-spacing:.1em; }
.hero-index span { color:var(--gold); }
.pictogram { display:block; width:96px; height:96px; object-fit:contain; }
.paths .path { display:block; position:relative; padding:24px; border:1px solid var(--line); background:linear-gradient(135deg,#20211d88,transparent); transition:border-color .2s,background-color .2s; }
.paths .path:hover { border-color:var(--gold); background-color:#20211d; }
.path-visual { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.path-visual .num { margin-top:8px; }
.paths .path h3 { margin:16px 0 6px; color:var(--ink); }
.path-arrow { position:absolute; right:24px; bottom:26px; color:var(--gold); }
.path-copy { padding-right:18px; }
.entry-section > .eyebrow { display:block; margin-bottom:20px; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; margin:8px 0 40px; }
.archive-figure { margin:0; padding:20px 22px; border:1px solid #bca57a66; background:radial-gradient(ellipse at 50% 35%,#2d2b23 0,transparent 70%); text-align:center; }
.archive-drawing { position:relative; height:260px; max-width:440px; margin:0 auto 18px; }
.archive-source,.archive-memory,.archive-crest { position:absolute; background:#20211d; border:1px solid var(--gold); box-shadow:0 12px 25px #0005; }
.archive-source,.archive-memory { width:46%; top:38px; padding:20px 14px; height:172px; font-family:'Noto Serif JP',serif; font-size:14px; text-align:left; }
.archive-source { left:4%; transform:rotate(-10deg); }
.archive-memory { right:4%; transform:rotate(10deg); text-align:right; }
.archive-memory i:last-child { margin-left:auto; }
.archive-source span,.archive-memory span { display:block; color:var(--muted); font:9px/2 system-ui,sans-serif; margin:8px 0 14px; }
.archive-drawing i { display:block; border-top:1px solid #bca57a55; margin:14px 0; }
.archive-drawing i:last-child { width:65%; }
.archive-crest { width:44%; left:28%; top:58px; padding:13px 14px 16px; }
.archive-crest .num { font-size:10px; }
.archive-crest .crest { max-width:116px; margin:8px auto; }
.archive-crest > .serif { font-size:16px; letter-spacing:.2em; }
.archive-steps { display:grid; grid-template-columns:repeat(3,1fr); list-style:none; margin:18px 0 0; padding:0; }
.archive-steps li { position:relative; font-family:'Noto Serif JP',serif; font-size:14px; }
.archive-steps li+li::before { content:'⟶'; position:absolute; left:-9px; top:18px; color:var(--gold); }
.archive-steps .pictogram { width:56px; height:56px; margin:0 auto 7px; }
.archive-figure figcaption > p { margin:14px 0 0; }
@media(max-width:1000px) {
  .paths { gap:18px!important; }
  .paths .path { padding:20px 16px; }
  .path-copy { padding-right:0; }
  .path-arrow { right:16px; bottom:12px; }
  .intro-grid { gap:32px; }
}
@media(max-width:760px) {
  .hero.home-hero h1 { font-size:23px; }
  .hero.home-hero h1 strong { font-size:clamp(30px,8.5vw,48px); }
  .home-hero .hero-lead { font-size:15px; }
  .paths { grid-template-columns:1fr!important; gap:12px!important; }
  .paths .path { display:grid; grid-template-columns:86px 1fr; align-items:center; gap:18px; padding:16px 20px; }
  .path-visual { position:relative; padding-top:13px; }
  .path-visual .pictogram { width:72px; height:72px; }
  .path-visual .num { position:absolute; top:0; right:0; margin:0; font-size:10px; }
  .paths .path h3 { font-size:21px; margin:0 0 6px; }
  .path-copy { padding-right:8px; }
  .path-arrow { right:14px; bottom:12px; }
  .intro-grid { grid-template-columns:1fr; gap:32px; }
  .room-intro h2 { font-size:25px; }
  .archive-figure { padding:18px 14px; }
  .archive-drawing { height:245px; }
  .archive-source,.archive-memory { font-size:12px; padding:14px 10px; }
  .archive-source span,.archive-memory span { font-size:8px; }
}
:root{--bg:#131412;--panel:#20211d;--ink:#f0ebdf;--muted:#b8b5aa;--gold:#bca57a;--line:#44453c;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.9 system-ui,sans-serif}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--gold)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:5px}header{max-width:1320px;margin:auto;padding:25px 40px;border-bottom:1px solid var(--line);display:flex;gap:32px;align-items:center;justify-content:space-between}.brand{font-family:Georgia,serif;font-size:25px;letter-spacing:.13em;text-decoration:none}.brand small{font:14px system-ui;letter-spacing:.25em;margin-left:16px}nav{display:flex;gap:28px;font-size:13px}nav a{text-decoration:none}main{max-width:1240px;margin:auto;padding:50px 40px 100px}.serif,h1,h2,h3{font-family:'Noto Serif JP','Yu Mincho',serif;font-weight:400}h1{font-size:clamp(34px,5vw,68px);line-height:1.5;letter-spacing:.06em;margin:20px 0 28px}h2{font-size:30px;letter-spacing:.07em}h3{font-size:22px}.eyebrow,.num{font-size:12px;letter-spacing:.22em;color:var(--gold)}.hero{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:26px 0 64px}.hero h1{font-size:clamp(34px,4.5vw,56px)}.hero h1 strong{font-size:1.65em;font-weight:500;display:block}.hero p{max-width:30em;color:var(--muted)}.plate{position:relative;background:var(--panel);padding:30px 40px;border-left:6px double var(--line)}.crest{width:100%;aspect-ratio:1;object-fit:contain;background:#f0ebdf;mix-blend-mode:screen;filter:invert(1);display:block}.plate .crest{max-width:310px;margin:auto}.slip{position:absolute;right:20px;top:20px;writing-mode:vertical-rl;background:#d8cfb9;color:#35362e;padding:14px 9px;letter-spacing:.25em;font-family:serif;font-size:14px}.caption{border-top:1px solid var(--line);font-size:12px;color:var(--muted);margin-top:16px;padding-top:12px;line-height:1.8}.textlink{display:inline-block;margin-top:20px;color:var(--ink);padding-bottom:6px;border-bottom:1px solid var(--gold);text-decoration:none}.section{border-top:1px solid var(--line);padding:40px 0}.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.paths a{text-decoration:none;border-bottom:1px solid var(--line);padding:15px 0 25px}.paths h3{margin:10px 0}.muted{color:var(--muted)}.small{font-size:13px}.note{padding:20px 24px;border-left:2px solid var(--gold);background:var(--panel);font-size:14px}.searchbox{border:1px solid var(--line);padding:25px;margin:24px 0}.filters{display:flex;flex-wrap:wrap;gap:14px}.filters label{flex:1;min-width:160px}label{display:block;font-size:14px;color:var(--muted)}input,select,textarea{background:var(--bg);border:1px solid #68695d;color:var(--ink);padding:11px 13px;width:100%;margin-top:6px;border-radius:0}textarea{min-height:85px}.button,button{display:inline-block;background:transparent;border:1px solid var(--gold);color:var(--ink);padding:10px 20px;text-decoration:none;line-height:1.6}.button.primary{background:var(--ink);color:var(--bg)}button:disabled{opacity:.45;cursor:default}.catalog{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{background:var(--panel);padding:20px;min-width:0}.card .crest{height:140px;aspect-ratio:auto;max-width:160px;margin:auto}.card h3{font-size:18px;overflow-wrap:anywhere;margin:15px 0 5px}.card a{text-decoration:none}.card p{font-size:12px;color:var(--muted);margin:5px 0}.card button{font-size:12px;padding:5px 12px;margin-top:12px}.pager{display:flex;gap:20px;justify-content:center;margin:35px 0}.bar{position:sticky;bottom:0;padding:15px 24px;background:#20211df5;border:1px solid var(--gold);display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:4}.bar[hidden]{display:none}.detail{display:grid;grid-template-columns:minmax(250px,420px) 1fr;gap:60px;align-items:start}.detail h1{margin-top:8px}.detail .plate{padding:30px}.detail dl{display:grid;grid-template-columns:90px 1fr;font-size:14px;gap:12px}.detail dt{color:var(--muted)}.detail dd{margin:0}.source-list{padding-left:22px}.source-list li{padding:12px 0;overflow-wrap:anywhere}.source-list small{color:var(--muted);display:block}.consult{padding:40px;background:var(--panel);margin-top:50px}.consult h2{margin-top:0}.consult .buttons{display:flex;gap:16px;flex-wrap:wrap}.prose{max-width:850px}.prose p{margin:20px 0}.compare{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.compare .crest{max-width:300px;margin:auto}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.paper{background:var(--panel);padding:35px}.paper .crest{max-width:160px;margin-bottom:20px}.paper h1{font-size:30px}.empty{padding:30px;border:1px dashed var(--line)}footer{border-top:1px solid var(--line);padding:40px;max-width:1240px;margin:auto;color:var(--muted);font-size:12px}footer .links{display:flex;gap:24px;flex-wrap:wrap}table{border-collapse:collapse;width:100%;font-size:14px}td,th{border-bottom:1px solid var(--line);padding:12px;text-align:left}.tablewrap{overflow-x:auto}.skip{position:absolute;left:15px;top:-80px}.skip:focus{top:0;background:var(--bg);padding:15px}.status{color:var(--gold)}@media(max-width:760px){header{padding:18px 20px;gap:10px;align-items:start}nav{gap:12px;flex-wrap:wrap;font-size:11px;justify-content:flex-end;max-width:170px}.brand{font-size:20px}.brand small{display:block;margin:0;font-size:12px}main{padding:26px 20px 60px}.hero{grid-template-columns:1fr;gap:30px;padding:12px 0 40px}.hero h1{font-size:36px}.plate{padding:24px}.paths{gap:18px}.paths h3{font-size:19px}.paths .small{font-size:12px}.catalog{grid-template-columns:repeat(2,1fr);gap:12px}.card{padding:13px}.card .crest{height:105px}.card h3{font-size:16px}.detail{grid-template-columns:1fr;gap:30px}.detail .plate{max-width:450px}.consult{padding:25px 20px}.formgrid{grid-template-columns:1fr}.compare{gap:15px}.compare h2{font-size:22px}.bar{padding:12px;font-size:12px}.paper{padding:20px}footer{padding:25px 20px}}@media print{body{background:white!important;color:black!important;font-size:12pt}header,footer,nav,.noprint,.bar{display:none!important}main{padding:0;max-width:none}.paper{background:white;padding:0}.paper h1{font-size:23pt}.paper input,.paper textarea{color:black;background:white;border:1px solid #aaa}.paper textarea{height:80px}.paper .formgrid{grid-template-columns:1fr 1fr}.paper .crest{filter:none;mix-blend-mode:normal;max-width:110px}.paper p{margin:8px 0}.print-contact{font-size:10pt}.note{background:white;border-color:black}.paper .formgrid label{color:black}.paper h2{font-size:16pt}@page{size:A4;margin:15mm}}
