@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/newsreader-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/newsreader-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/newsreader-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/source-sans-3-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2')}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}

:root{
  --paper:#F6F8F8; --paper-2:#EAF0F3; --ink:#111A22; --muted:#56626C; --rule:#D3DADD;
  --accent:#0E3A5B; --accent-soft:#DCE7EF; --ph:#8A5A00; --ph-bg:#FFF3D6;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --paper:#0C1319; --paper-2:#121C24; --ink:#E3E9ED; --muted:#96A3AD; --rule:#23313C;
    --accent:#8FB6D8; --accent-soft:#16283A; --ph:#F2C46B; --ph-bg:#33280F;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#0C1319; --paper-2:#121C24; --ink:#E3E9ED; --muted:#96A3AD; --rule:#23313C;
  --accent:#8FB6D8; --accent-soft:#16283A; --ph:#F2C46B; --ph-bg:#33280F;
}
#site{
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
/* CJK: Latin glyphs stay in the site faces, CJK glyphs come from system fonts (no webfont download) */
#site[data-l="zh"]{
  --serif:"Newsreader","Songti SC","STSong","Noto Serif SC","Source Han Serif SC","SimSun",serif;
  --sans:"Source Sans 3","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
}
#site[data-l="ja"]{
  --serif:"Newsreader","Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --sans:"Source Sans 3","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Meiryo","Noto Sans JP",sans-serif;
  line-break:strict; word-break:auto-phrase;
}
#site[data-l="zh"] body, #site[data-l="zh"], #site[data-l="ja"]{letter-spacing:.01em}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 "Source Sans 3","Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
#site{font-family:var(--sans)}
#site[data-l="zh"],#site[data-l="ja"]{line-height:1.75}
a{color:var(--accent);text-underline-offset:3px}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

/* language switching: .de .en .zh .ja; .xen = English text also shown for zh and ja */
#site:not([data-l="de"]) .de,
#site:not([data-l="en"]) .en,
#site:not([data-l="zh"]) .zh,
#site:not([data-l="ja"]) .ja,
#site[data-l="de"] .xen{display:none!important}

.wrap{max-width:1120px;margin:0 auto;padding-inline:24px}
@media (max-width:520px){.wrap{padding-inline:16px}}

.notice{background:var(--accent-soft);color:var(--ink);font-size:13.5px;line-height:1.55;border-bottom:1px solid var(--rule)}
.notice .wrap{padding-block:9px}
.notice p{margin:0}
.notice p + p{color:var(--muted);font-size:12.5px}
.notice a{color:var(--accent)}
#site[data-l="de"] .notice,#site[data-l="en"] .notice{display:none}
.ph{background:var(--ph-bg);color:var(--ph);border-bottom:1px dashed var(--ph);padding:0 .2em;font-style:normal}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;gap:24px;min-height:64px;flex-wrap:wrap;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand svg{width:30px;height:30px;flex:none}
.brand b{font:500 22px/1 "Newsreader",Georgia,serif;letter-spacing:.005em}
.brand i{font:500 12px/1 var(--mono);font-style:normal;color:var(--accent);letter-spacing:.12em;border:1px solid currentColor;padding:3px 4px 2px;margin-left:2px;position:relative;top:-2px}
nav.main{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}
nav.main a{color:var(--muted);text-decoration:none;font-size:15px;white-space:nowrap}
nav.main a:hover{color:var(--ink)}
.lang{display:flex;border:1px solid var(--rule);border-radius:3px;overflow:hidden;background:var(--paper)}
.lang a{text-decoration:none;cursor:pointer;font:500 12px/1 var(--mono);letter-spacing:.06em;padding:7px 8px;color:var(--muted);white-space:nowrap}
.lang a + a{border-left:1px solid var(--rule)}
.lang a:hover{color:var(--ink)}
.lang a[aria-current="page"]{background:var(--accent);color:var(--paper)}
.lang a[hreflang="zh-Hans"]{font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;letter-spacing:0}
.lang a[hreflang="ja"]{font-family:"Hiragino Sans","Yu Gothic","Meiryo","Noto Sans JP",sans-serif;letter-spacing:0}
@media (max-width:860px){
  nav.main{order:3;width:100%;gap:16px;overflow-x:auto;margin-left:0;flex-wrap:nowrap;padding-bottom:4px}
  .lang{margin-left:auto}
}

/* hero */
.hero .wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;padding-block:72px 64px;align-items:start}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px;padding-block:48px}}
.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
#site[data-l="zh"] .eyebrow,#site[data-l="ja"] .eyebrow{font-family:var(--sans);font-size:13px;letter-spacing:.1em}
h1{font:500 clamp(40px,6vw,64px)/1.04 "Newsreader",Georgia,serif;letter-spacing:-.015em;margin:14px 0 8px;text-wrap:balance}
.name-local{font:400 18px/1.4 var(--serif);color:var(--muted);margin:0 0 20px}
.hero .lead{margin-top:20px}
.lead{font-size:20px;line-height:1.55;max-width:34em;margin:0 0 24px;color:var(--ink)}
#site[data-l="zh"] .lead,#site[data-l="ja"] .lead{font-size:18px;line-height:1.8}
.titles{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:15.5px}
.titles li::before{content:"";display:inline-block;width:14px;height:1px;background:var(--accent);vertical-align:middle;margin-right:10px}

/* front-page card */
.front{border:1px solid var(--rule);background:var(--paper-2);font-size:15px}
.front-head{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--rule);font:500 11.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.front dl{margin:0;padding:6px 18px 14px}
.front .row{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:12px 0;border-bottom:1px dotted var(--rule)}
.front .row:last-child{border-bottom:0}
.front dt{font:500 13px/1.5 var(--mono);color:var(--accent)}
.front dd{margin:0}
.front dd small{display:block;font:400 11.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
#site[data-l="zh"] .front small,#site[data-l="ja"] .front small,#site[data-l="zh"] .front-head,#site[data-l="ja"] .front-head{font-family:var(--sans);letter-spacing:.04em}
.codes{font:400 14px/1.6 var(--mono)}

/* sections */
section.sec{border-top:1px solid var(--rule)}
section.sec > .wrap{display:grid;grid-template-columns:220px 1fr;gap:40px;padding-block:64px}
@media (max-width:900px){section.sec > .wrap{grid-template-columns:1fr;gap:20px;padding-block:48px}}
.sec-label h2{font:500 30px/1.2 var(--serif);margin:8px 0 0;text-wrap:balance;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
.prose{max-width:40em}
.prose p{margin:0 0 1em}
.prose p:last-child{margin-bottom:0}

.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}
@media (max-width:1000px){.services{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.services{grid-template-columns:1fr}}
.services article{padding:22px 24px 26px 0;border-bottom:1px solid var(--rule)}
.services h3{font:600 17px/1.35 var(--sans);margin:0 0 8px}
.services p{margin:0;color:var(--muted);font-size:15.5px}

.fields{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.fields li{display:grid;grid-template-columns:1fr 200px;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.fields li .ipc{font:400 14px/1.4 var(--mono);color:var(--accent);text-align:right}
@media (max-width:520px){.fields li{grid-template-columns:1fr;gap:2px}.fields li .ipc{text-align:left}}
.note{font-size:14px;color:var(--muted);margin-top:14px}

.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--rule)}
.timeline li:first-child{border-top:1px solid var(--rule)}
.timeline time{font:400 14px/1.6 var(--mono);color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.timeline strong{font-weight:600}
.timeline p{margin:2px 0 0;color:var(--muted);font-size:15.5px}
@media (max-width:520px){.timeline li{grid-template-columns:1fr;gap:2px}}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:36px}
@media (max-width:600px){.facts{grid-template-columns:1fr}}
.facts h3,.contact h3{font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
#site[data-l="zh"] .facts h3,#site[data-l="ja"] .facts h3,#site[data-l="zh"] .contact h3,#site[data-l="ja"] .contact h3{font-family:var(--sans);font-size:13px;letter-spacing:.06em}
.facts ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}

.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
@media (max-width:900px){.contact{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.contact{grid-template-columns:1fr}}
.contact address{font-style:normal;line-height:1.55}
.contact .tel{margin:10px 0 0;font-variant-numeric:tabular-nums}
.contact .tel a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
.contact .big{font:500 20px/1.45 "Newsreader",Georgia,serif}
.contact .big a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
.contact .big a:hover{border-color:var(--accent)}
.caution{margin-top:36px;border:1px solid var(--accent);background:var(--accent-soft);padding:20px 24px;max-width:46em}
.caution h3{font:600 16px/1.35 var(--sans);margin:0 0 8px;color:var(--ink)}
.caution p{margin:0 0 .6em;font-size:15.5px}
.caution p:last-child{margin:0}

.legal h3{font:600 16px/1.3 var(--sans);margin:28px 0 6px}
.legal h3:first-child{margin-top:0}
.legal p,.legal li{font-size:15.5px}
.legal p{margin:0 0 .6em}
.legal ul{margin:0 0 .6em;padding-left:1.2em}
.legal .langnote{font-size:14px;color:var(--muted);border-left:2px solid var(--accent);padding-left:12px;margin:0 0 24px}

footer{border-top:1px solid var(--rule);background:var(--paper-2)}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;padding-block:28px;font-size:14px;color:var(--muted)}
footer a{color:var(--muted)}
footer .sp{margin-left:auto}
