:root{--paper:#f7f4ec;--surface:#fffdf7;--ink:#242c27;--muted:#6b7067;--line:#dcded2;--accent:#b34725;--wash:#eceee3;--serif:"Songti SC","Noto Serif CJK SC","Hiragino Mincho ProN",serif;--sans:"PingFang SC","Hiragino Sans","Microsoft YaHei",sans-serif}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button,a,input{ -webkit-tap-highlight-color:transparent}
button{color:inherit}
button:not(:disabled),summary{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
img{display:block;max-width:100%;height:auto}
button{border:0}
button:disabled{opacity:.35;cursor:default}
[hidden]{display:none!important}
.wrap{max-width:1200px;margin:auto;padding:0 48px}
.skip{position:fixed;top:-80px;left:16px;z-index:10;background:var(--ink);color:white;padding:12px}
.skip:focus{top:12px}
.site-header{border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:32px}
.brand{display:flex;gap:14px;align-items:center}
.brand-mark{display:grid;place-items:center;width:43px;height:48px;border:1px solid var(--ink);border-radius:3px;font-family:var(--serif);font-size:29px}
.brand-name{display:block;font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.25}
.brand-en{display:block;font-size:10px;letter-spacing:.21em;margin-top:5px}
.nav{display:flex;gap:32px;font-size:14px}
.nav a:hover{color:var(--accent)}
.nav a:first-child{border-bottom:1px solid var(--accent)}
.intro{padding-top:64px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}
.intro h1{font-family:var(--serif);font-size:clamp(34px,4.7vw,58px);line-height:1.4;letter-spacing:.025em;font-weight:600;margin:14px 0 0}
.intro h1 span{color:var(--accent)}
.intro-note{color:var(--muted);font-size:15px;max-width:255px;margin:0 0 12px}
.featured{display:grid;grid-template-columns:1fr 1fr;margin:44px 0 68px;min-height:475px;border:1px solid var(--line);background:var(--surface);border-radius:4px;overflow:hidden}
.feature-copy{padding:48px 42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:13px}
.issue{font-family:Georgia,serif;color:var(--accent);font-size:16px}
.divider{width:24px;height:1px;background:var(--line)}
.feature-copy h2{font-family:var(--serif);font-size:34px;line-height:1.55;margin:24px 0 8px;font-weight:600}
.term{font-size:19px;letter-spacing:.04em;color:var(--muted);overflow-wrap:anywhere}
.feature-copy p{color:var(--muted);margin:20px 0 28px;max-width:360px;font-size:15px}
.read-link{display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid var(--ink);font-size:15px;padding:0 0 7px}
.arrow{font-family:Arial,sans-serif;font-size:24px;line-height:1}
.read-link:hover{color:var(--accent);border-color:var(--accent)}
.feature-image{background:var(--wash);display:grid;place-items:center;padding:30px;position:relative;border-left:1px solid var(--line)}
.feature-image img{width:302px;box-shadow:0 12px 28px #343b2715;transform:rotate(3deg);transition:transform .25s}
.feature-image:hover img{transform:rotate(0deg)}
.image-note{position:absolute;right:18px;bottom:14px;font-size:12px;color:#57614e;writing-mode:vertical-rl;letter-spacing:.16em}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}
.section-heading h2{font:600 28px/1.5 var(--serif);margin:0}
.section-heading p{font-size:13px;letter-spacing:.04em;color:var(--muted);margin:0}
.archive-tools{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line);margin-bottom:8px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter{font-size:14px;border:1px solid transparent;border-radius:3px;background:transparent;padding:7px 16px}
.filter[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.filter:hover{border-color:var(--ink)}
.search{display:flex;align-items:center;gap:12px;border-bottom:1px solid #858c7c;max-width:290px;width:100%;padding:7px 0}
.search svg{width:18px;height:18px;flex-shrink:0}
.search input{background:transparent;border:0;outline:none;width:100%;min-width:0;font-size:14px;color:var(--ink);border-radius:0}
.search:focus-within{border-color:var(--accent)}
.search input::placeholder{color:#777c72}
.archive-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:28px;border-bottom:1px solid var(--line);padding:26px 0;transition:background .2s}
.archive-row:hover{background:#eeede4}
.archive-row img{width:90px;border-radius:2px}
.archive-row h3{font-size:21px;line-height:1.5;font-family:var(--serif);margin:6px 0;font-weight:600}
.archive-row .term{font-size:15px}
.archive-row .arrow{padding:0 12px}
.archive-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;padding-top:20px}
.empty{padding:52px 20px;text-align:center;color:var(--muted)}
.empty strong{color:var(--ink);display:block;font-size:20px;margin-bottom:8px}
.text-button{background:transparent;color:var(--accent);border-bottom:1px solid var(--accent);padding:0;margin-top:12px}
.about{margin-top:80px;padding:42px 0 46px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:48px}
.about h2{font:500 25px/1.65 var(--serif);margin:0 0 10px}
.about p{font-size:14px;color:var(--muted);margin:0;max-width:470px}
.about-jp{font-family:var(--serif);font-size:15px;color:var(--accent);margin-top:14px}
.footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:12px}
.footer-inner{display:flex;justify-content:space-between;gap:24px}
.footer-brand{letter-spacing:.12em}
.breadcrumb{display:flex;gap:12px;color:var(--muted);font-size:14px;padding:34px 0}
.breadcrumb a:hover{color:var(--accent)}
.article-heading{max-width:810px;margin-bottom:34px}
.article-heading h1{font:600 clamp(29px,4vw,44px)/1.6 var(--serif);margin:15px 0 12px}
.article-heading .term{font-size:23px}
.article-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:start}
.gallery{position:sticky;top:30px;min-width:0}
.card-frame{background:var(--wash);padding:24px;border:1px solid var(--line);border-radius:3px}
.card-frame a{display:block;max-width:380px;margin:auto}
.card-frame img{width:100%;box-shadow:0 6px 20px #29302710}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:14px}
.gallery-controls{display:flex;align-items:center;gap:16px}
.icon-button{display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;width:38px;height:38px;font-size:21px}
.icon-button:hover{border-color:var(--ink)}
.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.thumbnail{padding:4px;background:transparent;border:1px solid transparent;border-radius:3px;position:relative}
.thumbnail[aria-pressed=true]{border-color:var(--accent)}
.thumbnail img{width:100%;border-radius:1px}
.thumbnail span{display:block;font-size:12px;padding-top:4px}
.image-caption{font-size:12px;color:var(--muted);margin:14px 0 0}
.article-body{min-width:0}
.article-body h2{font:600 25px/1.5 var(--serif);margin:0 0 24px}
.article-body p{margin:0 0 24px;font-size:16px;line-height:2}
.article-body .jp-line{display:block;font-size:20px;color:var(--ink);font-family:var(--serif);line-height:1.9;margin-top:9px;overflow-wrap:anywhere}
.article-body .lesson{padding:20px 24px;border-left:2px solid var(--accent);background:#efece2}
.article-body .hashtags{font-size:13px;color:var(--accent)}
.article-body .source-line{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.article-body a,.evidence a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#9eaa96}
.copy-caption{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;margin-top:32px;gap:20px}
.copy-caption button{border:1px solid var(--ink);border-radius:3px;background:transparent;padding:8px 16px;font-size:14px}
.copy-caption button:hover{background:var(--ink);color:var(--paper)}
.copy-status{font-size:13px;color:var(--muted)}
.evidence{margin-top:42px;padding-top:25px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.evidence summary{color:var(--ink);font-size:16px}
.evidence p{font-size:14px;line-height:1.9;margin:14px 0}
.article-end{border-top:1px solid var(--line);margin-top:64px;padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.review-label{color:var(--muted);font-size:12px}
.not-found{padding:100px 0;max-width:650px}
.not-found h1{font:48px var(--serif)}
.js-only{display:none}
.js .js-only{display:flex}
.js .gallery-thumbs{display:grid}
.no-js-note{color:var(--muted);font-size:13px}
.back-top{color:var(--ink)}

@media(min-width:1500px){.wrap{max-width:1280px}
.featured{min-height:500px}
.feature-image img{width:320px}
}

@media(max-width:900px){.wrap{padding:0 28px}
.feature-copy{padding:32px}
.feature-copy h2{font-size:28px}
.feature-image{padding:28px}
.feature-image img{width:260px}
.featured{min-height:420px}
.article-layout{gap:32px}
.intro-note{max-width:220px}
.article-body .jp-line{font-size:18px}
}

@media(max-width:760px){.article-layout{grid-template-columns:1fr}
.gallery{position:static;max-width:480px;width:100%;margin:auto}
}

@media(max-width:650px){html{scroll-padding-top:24px}
.wrap{padding:0 22px}
.header-inner{min-height:83px;gap:12px}
.brand{gap:10px}
.brand-mark{width:35px;height:41px;font-size:24px}
.brand-name{font-size:20px}
.brand-en{font-size:9px;letter-spacing:.13em}
.nav{gap:16px;font-size:13px}
.intro{padding-top:36px;display:block}
.intro h1{font-size:36px;line-height:1.5}
.intro h1 span{display:block}
.intro-note{max-width:100%;font-size:14px;margin:18px 0 0}
.intro-note br{display:none}
.featured{grid-template-columns:1fr;margin:30px 0 46px}
.feature-image{order:-1;padding:27px;border-left:0;border-bottom:1px solid var(--line)}
.feature-image img{width:214px}
.feature-copy{padding:27px}
.feature-copy h2{font-size:27px;margin-top:16px}
.feature-copy p{font-size:14px;margin:14px 0 24px}
.feature-copy .term{font-size:17px}
.section-heading h2{font-size:25px}
.archive-tools{align-items:stretch;flex-direction:column;gap:15px;padding:20px 0}
.search{max-width:100%}
.filter{padding:6px 14px}
.archive-row{grid-template-columns:68px 1fr 20px;gap:16px;padding:22px 0}
.archive-row img{width:68px}
.archive-row h3{font-size:18px}
.archive-row .meta{font-size:12px;gap:8px}
.archive-row .term{font-size:13px}
.archive-row .arrow{padding:0}
.archive-footer{font-size:12px}
.about{margin-top:50px;grid-template-columns:1fr;gap:24px;padding:32px 0}
.about h2{font-size:23px}
.footer-inner{flex-direction:column;gap:7px}
.breadcrumb{padding:26px 0;flex-wrap:wrap}
.article-heading{margin-bottom:25px}
.article-heading .term{font-size:20px}
.article-layout{grid-template-columns:1fr;gap:38px}
.gallery{position:static}
.card-frame{padding:20px}
.card-frame a{max-width:310px}
.gallery-thumbs{gap:8px}
.article-body .jp-line{font-size:20px}
.article-end{margin-top:42px;align-items:flex-start;flex-direction:column}
.image-note{right:12px}
.article-body .lesson{padding:18px}
.section-heading{gap:12px}
.section-heading p{font-size:12px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important}
}
