
:root{
  --paper:#f7f3ea;--paper-soft:#fbf8f1;--ink:#1b1915;--ink-2:#3d3a33;--muted:#6e6a60;
  --line:#ded5c3;--line-strong:#c8bda6;--blue:#1f4a3c;--blue-ink:#16382d;--rust:#a3482e;--dark:#161513;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:16.5px;line-height:1.9;overflow-x:hidden}
::selection{background:#e7dcc4}
a{color:var(--blue);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(245,241,232,.95);backdrop-filter:blur(10px);border-top:3px solid var(--ink);border-bottom:1px solid var(--line-strong)}
.site-header .inner{max-width:1120px;margin:0 auto;padding:13px 28px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:baseline;gap:9px;color:var(--ink);white-space:nowrap}
.brand:hover{text-decoration:none}
.brand .mark{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(22,66,122,.14);transform:translateY(-1px)}
.brand .name{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,Georgia,serif;font-size:19px;font-weight:700;letter-spacing:.03em}
.brand .sub{font-size:11px;color:var(--muted);letter-spacing:.18em}
.nav{display:flex;gap:22px;font-size:13.5px;line-height:1}
.nav a{color:var(--ink-2);position:relative;padding-bottom:8px;white-space:nowrap}
.nav a:hover{color:var(--blue);text-decoration:none}
.nav a.on{color:var(--blue)}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rust)}
main{padding:0 0 20px}
main>h1:first-child{padding-top:46px}
main>article{padding-top:40px}
.hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:64px;align-items:start;padding:64px 0 46px}
.eyebrow{color:var(--rust);font-weight:600;font-size:12px;letter-spacing:.22em;margin:0 0 14px}
h1{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,Georgia,serif;font-size:clamp(32px,4.4vw,52px);line-height:1.24;letter-spacing:-.01em;font-weight:700;margin:0 0 22px}
.hero .lead{font-size:17.5px;line-height:1.95;color:var(--ink-2);margin:0;max-width:34em}
.hero-links{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin:32px 0 0}
.btn{display:inline-block;background:var(--ink);color:var(--paper-soft);padding:12px 22px;font-size:14px;letter-spacing:.04em;border-radius:2px}
.btn:hover{background:var(--blue);text-decoration:none}
.link-arrow{font-size:14px;color:var(--ink-2);border-bottom:1px solid var(--line-strong);padding-bottom:2px}
.link-arrow:hover{color:var(--blue);text-decoration:none}
.dossier{border-top:2px solid var(--ink);padding-top:16px;margin-top:6px}
.dossier h2{font-family:inherit;font-size:11.5px;letter-spacing:.24em;color:var(--muted);font-weight:600;margin:0 0 16px}
.dossier dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;margin:0;font-size:13.5px;line-height:1.7}
.dossier dt{color:var(--muted);white-space:nowrap}
.dossier dd{margin:0;color:var(--ink-2)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.fact{padding:24px 24px 26px;border-left:1px solid var(--line)}
.fact:first-child{border-left:0;padding-left:0}
.fact strong{display:block;font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,Georgia,serif;font-size:42px;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fact span{display:block;font-size:12.5px;color:var(--muted);margin-top:6px;letter-spacing:.04em}
.plate{margin:34px 0 0}
.plate figure{margin:0}
.plate img{width:100%;height:auto;display:block;border:1px solid var(--line-strong);background:#fff}
.plate figcaption{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:10px;letter-spacing:.03em}
.sec{margin-top:76px}
.sec-head{display:flex;align-items:baseline;gap:16px;border-top:1px solid var(--line-strong);padding-top:14px;margin-bottom:22px}
.sec-no{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:13px;color:var(--rust);letter-spacing:.12em}
.sec-head h2{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,Georgia,serif;font-size:28px;line-height:1.3;margin:0;font-weight:700}
.sec-lead{font-size:17px;line-height:1.9;color:var(--ink-2);max-width:44em;margin:0 0 18px}
p{margin:12px 0}
.lead{font-size:17px;color:var(--ink-2)}
.note{font-size:13.5px;color:var(--muted)}
.more{margin-top:22px}
.more a{font-weight:600;font-size:14px}
.svc-list{border-top:1px solid var(--line)}
.svc{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding:22px 0 24px;border-bottom:1px solid var(--line)}
.svc h3{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:19px;line-height:1.5;margin:0}
.svc p{margin:0;font-size:15px;color:var(--ink-2)}
.ledger{width:100%;border-collapse:collapse;font-size:14.5px;margin:8px 0 0}
.ledger th{font-size:11.5px;letter-spacing:.16em;color:var(--muted);font-weight:600;text-align:left;padding:0 18px 10px 0;border-bottom:1px solid var(--ink)}
.ledger td{padding:16px 18px 16px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.ledger td:first-child{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:19px;color:var(--ink);white-space:nowrap}
.ledger tr td:last-child{color:var(--muted);font-size:13.5px}
.projects{border-top:1px solid var(--ink)}
.proj{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:44px;padding:30px 0 34px;border-bottom:1px solid var(--line);align-items:center}
.proj.flip .shot{order:2}
.proj .shot img{width:100%;height:auto;display:block;border:1px solid var(--line-strong);background:#fff}
.proj .tag{font-size:11.5px;letter-spacing:.18em;color:var(--rust);margin:0 0 10px}
.proj h3{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:26px;line-height:1.35;margin:0 0 12px}
.proj p{margin:0 0 12px;font-size:15px;color:var(--ink-2)}
.nums{display:flex;gap:34px;flex-wrap:wrap;margin:18px 0 0}
.nums div{min-width:90px}
.nums strong{display:block;font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.nums span{font-size:12px;color:var(--muted);letter-spacing:.04em}
.not-yet{font-size:13.5px;color:var(--muted);border-left:2px solid var(--line-strong);padding-left:12px;margin-top:16px}
.proj.noimg{padding:34px 0}
.proj.noimg .meta{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1fr);gap:44px;align-items:center}
.city-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line)}
.city-grid a{display:block;padding:13px 8px 13px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2)}
.city-grid a:hover{color:var(--blue);text-decoration:none}
.city-grid a small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-strong);margin-top:6px}
.step{padding:24px 26px 24px 0;border-right:1px solid var(--line)}
.step:last-child{border-right:0;padding-right:0}
.step .n{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:13px;color:var(--rust);letter-spacing:.1em}
.step h3{font-size:17px;margin:8px 0 6px;font-family:"Noto Serif SC","Songti SC",Georgia,serif}
.step p{margin:0;font-size:14px;color:var(--ink-2)}
.bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.band{background:var(--dark);color:#e9e2d3;margin-top:88px;padding:66px 0 60px}
.band-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;align-items:start}
.band .band-quote{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:clamp(28px,3.4vw,40px);line-height:1.5;margin:0;color:#f4eee0}
.band .band-quote span{color:#9a927f;display:block;font-size:.5em;letter-spacing:.14em;margin-bottom:16px}
.band p{color:#b6ae9d;font-size:15px;line-height:1.9;margin:0 0 14px}
.band a{color:#e8dfcb}
.band .log{margin:26px 0 0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.16)}
.band .log li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:13px;color:#b6ae9d;display:flex;gap:18px;margin:0}
.band .log b{color:#e9e2d3;font-weight:600;font-family:Georgia,serif;letter-spacing:.04em}
.faq-item{border-top:1px solid var(--line);padding:18px 0 20px}
.faq-item h3{font-size:16.5px;font-weight:700;margin:0 0 8px;font-family:inherit;line-height:1.6}
.faq-item p{margin:0;color:var(--ink-2);font-size:15px}
.cites{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:8px}
.cite{border-left:2px solid var(--line-strong);padding-left:16px}
.cite p{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:14.5px;color:var(--ink-2);margin:0 0 8px;line-height:1.7}
.cite cite{font-style:normal;font-size:12px;color:var(--muted)}
.boundary{margin-top:64px;border-top:1px solid var(--ink);padding-top:16px}
.boundary h2{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:18px;margin:0 0 10px;border:0;padding:0}
.boundary p{margin:0;color:var(--ink-2);font-size:14px;max-width:52em}
article .meta-date{color:var(--muted);font-size:12.5px;letter-spacing:.06em;margin:0 0 26px}
h2{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,Georgia,serif;font-size:24px;line-height:1.45;margin:46px 0 12px;font-weight:700}
h3{font-size:17px;margin:24px 0 8px}
ol,ul{padding-left:1.35em;margin:14px 0}
li{margin:7px 0;color:var(--ink-2)}
table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14.5px}
th,td{border-bottom:1px solid var(--line);padding:11px 14px 11px 0;text-align:left;vertical-align:top}
th{font-size:12px;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--ink);font-weight:600}
.notice{background:var(--paper-soft);border-left:3px solid var(--blue);padding:14px 18px;font-size:14.5px;margin:18px 0}
blockquote{margin:18px 0;padding:4px 0 4px 18px;border-left:2px solid var(--line-strong)}
blockquote p{margin:0 0 6px;color:var(--ink-2)}
blockquote cite{font-style:normal;font-size:12.5px;color:var(--muted)}
.list-articles .item{border-bottom:1px solid var(--line);padding:18px 0}
.list-articles h3{margin:0 0 4px;font-size:19px;font-family:"Noto Serif SC","Songti SC",Georgia,serif}
.list-articles .meta{font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.06em}
.site-footer{background:var(--dark);color:#a9a291;margin-top:96px;padding:56px 0 30px;font-size:13.5px}
.site-footer a{color:#e6ddc9}
.site-footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px}
.site-footer .ft-title{color:#f1eadb;font-size:11.5px;letter-spacing:.2em;margin:0 0 12px;font-weight:600}
.site-footer p{margin:5px 0}
.site-footer .fname{font-family:"Noto Serif SC","Songti SC",Georgia,serif;font-size:21px;color:#f4eee0;margin:0 0 10px;letter-spacing:.04em}
.site-footer .base{margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);color:#7f7867;font-size:12px;line-height:1.8}
@media (max-width:960px){
  .hero{grid-template-columns:1fr;gap:38px;padding:44px 0 34px}
  .band-inner{grid-template-columns:1fr;gap:34px}
  .proj{grid-template-columns:1fr;gap:20px}
  .proj.flip .shot{order:0}
  .svc{grid-template-columns:1fr;gap:8px}
  .cites{grid-template-columns:1fr;gap:22px}
  .steps{grid-template-columns:1fr 1fr}
  .step:nth-child(2){border-right:0;padding-right:0}
  .step{padding-right:22px}
  .city-grid{grid-template-columns:repeat(3,1fr)}
  .site-footer .cols{grid-template-columns:1fr;gap:30px}
  .proj.noimg .meta{grid-template-columns:1fr;gap:16px}
}
@media (max-width:700px){
  .wrap{padding:0 18px}
  .site-header .inner{padding:10px 18px;gap:14px;flex-wrap:wrap}
  .nav{width:100%;overflow-x:auto;gap:18px;padding-bottom:2px;scrollbar-width:none}
  .nav a{flex:0 0 auto}
  .nav::-webkit-scrollbar{display:none}
  .brand .sub{display:none}
  h1{font-size:30px}
  .sec-head h2{font-size:23px}
  .facts{grid-template-columns:1fr 1fr}
  .fact{border-left:1px solid var(--line);padding:18px 16px 20px}
  .fact:nth-child(odd){border-left:0;padding-left:0}
  .fact strong{font-size:32px}
  .ledger thead{display:none}
  .ledger,.ledger tbody,.ledger tr,.ledger td{display:block;width:100%}
  .ledger tr{border-bottom:1px solid var(--line);padding:14px 0 10px}
  .ledger td{border:0;padding:0 0 6px;font-size:14px}
  .ledger td:first-child{font-size:18px;margin-bottom:4px}
  .ledger td[data-l]::before{content:attr(data-l) "　";color:var(--muted);font-size:11.5px;letter-spacing:.08em}
  .ledger tr td:last-child{font-size:13px;color:var(--muted)}
  .city-grid{grid-template-columns:repeat(2,1fr)}
  .step{padding-right:16px}
  .step h3{font-size:16px}
  .band{margin-top:64px;padding:48px 0 44px}
}
