/* Shared chrome and readable controls; illustration and accent colors stay local. */
body[data-dictionary]{--kb-accent:#315e4b;--kb-ink:#293a34;--kb-paper:#faf7ef;--kb-line:#dcd5c8;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP',Meiryo,sans-serif;font-family:var(--sans);font-size:16px;overflow-wrap:break-word}
body[data-dictionary=ai]{--kb-accent:#355f91}body[data-dictionary=design]{--kb-accent:#87224d}body[data-dictionary=marketing]{--kb-accent:#914621}body[data-dictionary=buddhism]{--kb-accent:#466c50}body[data-dictionary=psychology]{--kb-accent:#654778}
body[data-dictionary] :is(h1,h2,h3){font-family:var(--serif)!important}
html{scroll-padding-top:104px}
.kb-header,.kb-header *,.kb-footer,.kb-footer *{box-sizing:border-box}
.kb-header{position:sticky;top:0;z-index:60;width:100%;background:#faf7eff5;border-bottom:1px solid var(--kb-line);backdrop-filter:blur(12px);color:var(--kb-ink)}
.kb-header-inner{width:min(1320px,calc(100% - 48px));min-height:80px;margin:auto;display:flex;align-items:center;gap:22px;position:relative}
.kb-brand{display:flex;gap:10px;align-items:center;flex:none;font:700 25px/1.35 var(--serif);text-decoration:none!important;color:var(--kb-ink)!important;white-space:nowrap}
.kb-brand svg{width:42px;height:42px;color:var(--kb-accent);flex:none}.kb-brand small{display:block;font:400 11px/1.8 var(--sans);letter-spacing:.025em;margin-top:2px;color:#59675e}
.kb-current{display:none}.kb-nav{display:flex;align-items:center;gap:22px;margin-left:auto}.kb-nav a{font:500 13px/1.5 var(--sans);padding:14px 0;color:var(--kb-ink);text-decoration:none;white-space:nowrap}.kb-nav a:hover,.kb-nav a[aria-current=page]{color:var(--kb-accent);text-decoration:underline;text-underline-offset:6px}
.kb-actions{display:flex;align-items:center;gap:6px;flex:none}.kb-icon{display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:0;border-radius:50%;background:transparent;color:var(--kb-accent);cursor:pointer;flex:none;padding:10px;text-decoration:none}.kb-icon svg{display:block;width:24px;height:24px}.kb-icon:hover{background:#e9e4d8}.kb-menu{display:none}
.kb-header a:focus-visible,.kb-header button:focus-visible,.kb-footer a:focus-visible{outline:3px solid var(--kb-accent);outline-offset:3px}
.kb-footer{margin:56px 0 0!important;padding:38px 0 26px!important;width:100%;max-width:none!important;background:#2c463c!important;color:#fffaf0!important;border-top:0!important;font:400 14px/1.8 var(--sans);display:block!important}
.kb-footer-inner{width:min(1280px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:1fr 2fr;gap:24px}.kb-footer-brand{display:flex;align-items:center;gap:10px;font:600 24px/1.4 var(--serif);color:inherit;text-decoration:none}.kb-footer-brand svg{width:36px;height:36px}.kb-footer p{margin:10px 0;color:#e2e8df;font-size:13px}.kb-footer nav{display:flex;flex-wrap:wrap;align-content:start;gap:12px 24px;padding-top:8px}.kb-footer nav a{color:inherit;text-decoration:none;font-size:13px;padding:4px 0}.kb-footer nav a:hover{text-decoration:underline}.kb-footer .kb-copyright{grid-column:1/-1;border-top:1px solid #ffffff35;padding-top:18px;margin:0;font-size:12px}
body[data-dictionary] :is(.content-shell,.page-shell,.shell){width:min(1280px,calc(100% - 48px));margin-inline:auto}
body[data-dictionary] [data-kb-search]{height:64px;min-height:64px;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:6px 7px 6px 18px;border:1px solid #c5c4b6;border-radius:32px;background:#fffefa;color:#293a34;text-shadow:none;overflow:hidden}
body[data-dictionary] [data-kb-search]>svg{display:block;width:24px;height:24px;flex:none;color:var(--kb-accent);margin:0}
body[data-dictionary] [data-kb-search] input{font-family:var(--sans);font-size:16px!important;line-height:1.5;height:100%;flex:1;min-width:0;width:auto;padding:0;border:0;background:transparent;color:#293a34;outline:0}
body[data-dictionary] [data-kb-search] input::placeholder{font-size:14px!important;color:#626d66;opacity:1}
body[data-dictionary] [data-kb-search] button{height:50px;min-height:50px;min-width:88px;align-self:center;margin:0;padding:0 18px;border:0;border-radius:28px;background:var(--kb-accent);color:white;font:600 14px/1.5 var(--sans);letter-spacing:0;flex:none}
body[data-dictionary] [data-kb-search]:focus-within{outline:3px solid var(--kb-accent);outline-offset:3px}
body[data-page-kind=home] :is(.section-heading,.section-title,.section-head) h2,body[data-page-kind=home] h2.section-title,body[data-dictionary=ai] .home-section h2{font-size:28px;line-height:1.5}
body[data-page-kind=term] :is(.article-body p,.article-body li,.content-panel>p,.practice-copy p,.point-note,.term-article p,.article>section>p,.article>section>ul>li){font-size:16px!important;line-height:1.95!important}
body[data-page-kind=term] :is(.example-card p,.point-card p){font-size:16px!important;line-height:1.9!important}
body[data-page-kind=term] :is(.content-panel h2,.article-body h2,.article>section>h2,.term-article h2){font-size:26px;line-height:1.5}
body[data-dictionary] :is(.reading,.term-reading,.word-category,.hero-note,.category-label,.search-note){font-size:12px;line-height:1.7}
body[data-dictionary] :is(.word-card,.word){position:relative;border-radius:12px;min-width:0}
body[data-dictionary] :is(.word-card strong,.word-body strong){font-size:19px;line-height:1.5}
body[data-dictionary] :is(.word-card small,.word-body small){font-size:13px;line-height:1.75;-webkit-line-clamp:3}
body[data-dictionary=psychology] .word-card>p:not(.reading):not(.word-category){font-size:14px;line-height:1.85}
.kb-card-link::after{content:'';position:absolute;inset:0;border-radius:12px}.kb-card-link:focus-visible{outline:0}.kb-card-link:focus-visible::after{outline:3px solid var(--kb-accent);outline-offset:3px}
body[data-dictionary] :is(.word-card,.word) button{position:relative;z-index:2;min-height:44px;font-size:13px;cursor:pointer}
body[data-dictionary] :is(button[data-save],button[data-reset]){min-height:44px;font-size:13px!important}
body[data-dictionary=marketing] .word{padding:22px;align-self:stretch}.word-heading{margin:0 0 8px;font:600 21px/1.6 var(--serif);color:var(--kb-accent)}body[data-dictionary=marketing] .word p{font-size:14px;line-height:1.85}.word .word-reading{font-size:12px!important;color:var(--muted)}.word .word-actions a{color:var(--kb-accent);font-size:13px;pointer-events:none}.word .category-label{display:block;margin-bottom:8px}.word .action{margin-top:12px;color:var(--muted)}
body[data-dictionary=marketing][data-page-kind=term] .article-layout,body[data-dictionary=psychology][data-page-kind=term] .article-layout{display:block;max-width:980px;margin-inline:auto}
body[data-dictionary=marketing][data-page-kind=term] .article,body[data-dictionary=psychology][data-page-kind=term] .article{width:100%;max-width:none}
body[data-dictionary=psychology] .hero-art{object-position:right center}
body[data-dictionary=psychology][data-page-kind=term] .hero-inner{min-height:430px}
body[data-dictionary=psychology][data-page-kind=home] .hero-inner{min-height:650px}
body[data-dictionary=ai][data-page-kind=home] .hero{grid-template-columns:minmax(0,1fr)}
body[data-dictionary=ai][data-page-kind=home] .hero-content{min-width:0;max-width:100%;box-sizing:border-box}
body[data-dictionary] .affiliate-ads__inner{max-width:1280px}.kb-footer~.save-status:empty{display:none}
@media(max-width:1100px){.kb-nav{gap:14px}.kb-nav a{font-size:12px}.kb-header-inner{gap:14px}.kb-brand{font-size:23px}}
@media(max-width:900px){
 .kb-header-inner{width:calc(100% - 32px);min-height:72px;gap:12px}.kb-brand{font-size:21px;gap:8px}.kb-brand svg{width:36px;height:36px}.kb-brand small{font-size:10px}.kb-actions{margin-left:auto}.kb-menu{display:grid}
 .kb-nav{display:none;position:absolute;top:100%;left:-16px;right:-16px;margin:0;padding:12px 20px 20px;background:var(--kb-paper);border-bottom:1px solid var(--kb-line);box-shadow:0 12px 20px #293a3414;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - 72px);overflow:auto}.kb-nav a{font-size:16px;padding:13px 8px;min-height:48px;border-bottom:1px solid var(--kb-line)}.kb-menu-open .kb-nav{display:flex}
 .kb-footer-inner{grid-template-columns:1fr}.kb-footer .kb-copyright{grid-column:auto}.kb-footer nav{gap:10px 22px}
}
@media(max-width:768px){
 body[data-dictionary] :is(.content-shell,.page-shell,.shell){width:calc(100% - 32px)}
 body[data-page-kind=term] :is(.detail-layout,.editorial-layout){display:flex;flex-direction:column;gap:24px}body[data-page-kind=term] :is(.detail-layout>.article,.detail-layout>.term-article,.detail-layout>aside,.detail-sidebar,.detail-aside){width:100%;max-width:none;order:initial}
 body[data-dictionary=design] .detail-layout>.article{grid-row:auto;order:0}body[data-dictionary=design] .detail-aside{order:1}
 body[data-dictionary] [data-kb-search]{height:58px;min-height:58px;padding:5px 6px 5px 14px;gap:8px}body[data-dictionary] [data-kb-search] button{height:46px;min-height:46px;min-width:72px;padding:0 14px}
 body[data-dictionary] [data-kb-search] input::placeholder{font-size:14px!important}body[data-dictionary] [data-kb-search]>svg{width:22px;height:22px}
 body[data-page-kind=term] :is(.content-panel h2,.article-body h2,.article>section>h2,.term-article h2){font-size:24px}
 body[data-page-kind=home] :is(.section-heading,.section-title,.section-head) h2,body[data-page-kind=home] h2.section-title,body[data-dictionary=ai] .home-section h2{font-size:24px;min-width:0}
 body[data-dictionary=design] .section-heading h2{display:block;min-width:0;max-width:100%;flex:0 1 auto}body[data-dictionary=design] .section-heading h2 .icon{display:inline-block;vertical-align:middle;margin-right:8px}
 body[data-dictionary=design] .hero h1,body[data-dictionary=marketing] .hero h1{white-space:normal;overflow-wrap:anywhere}
 body:is([data-dictionary=design],[data-dictionary=marketing]) .hero{display:flex;flex-direction:column;min-height:0}
 body:is([data-dictionary=design],[data-dictionary=marketing]) .hero-inner{order:1;min-height:0}
 body:is([data-dictionary=design],[data-dictionary=marketing]) .hero-copy{max-width:100%;padding:18px 5px 22px}
 body:is([data-dictionary=design],[data-dictionary=marketing]) .hero::after{display:none}
 body[data-dictionary=design] .hero-image,body[data-dictionary=marketing] .hero-art{position:relative;inset:auto;order:2;width:100%;height:280px;object-fit:cover;z-index:0;margin-top:-1px;mask-image:linear-gradient(180deg,transparent 0%,#000 13%,#000)}
 body[data-dictionary=design] .hero-image{object-position:center 65%}body[data-dictionary=marketing] .hero-art{object-position:72% 65%}
 body[data-dictionary=psychology] .hero{display:flex;flex-direction:column;min-height:0}
 body[data-dictionary=psychology] .hero-inner{order:1;min-height:0!important;padding-bottom:22px!important}
 body[data-dictionary=psychology] .hero-copy{max-width:100%;padding-top:5px}
 body[data-dictionary=psychology] .hero::after{display:none}
 body[data-dictionary=psychology] .hero-art{position:relative;inset:auto;order:2;width:100%;height:360px;object-fit:cover;object-position:right center;z-index:0;mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000)}
 body[data-dictionary=psychology][data-page-kind=term] .hero-art{height:300px}
 body[data-dictionary] .word-grid,body[data-dictionary] .catalog-grid{grid-template-columns:minmax(0,1fr)}
 .kb-footer-inner{width:calc(100% - 32px)}
 body[data-dictionary=portal] .dictionary-list{margin-right:-16px;padding-right:16px}
 body[data-dictionary=portal] .keyword-row{justify-content:flex-start}
}
@media(max-width:620px){
 body[data-dictionary=ai][data-page-kind=home] .hero{min-height:690px;background-position:left bottom;background-size:auto 100%}
 body[data-dictionary=ai][data-page-kind=home] .hero-content{padding:30px 16px 250px}
 body[data-dictionary=psychology][data-page-kind=home] .hero-inner{min-height:800px;padding-bottom:220px}
 .kb-brand{font-size:20px}.kb-brand small{font-size:10px}.kb-actions{gap:0}.kb-header-inner{gap:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.kb-header *{transition:none}}
@media(max-width:360px){.kb-brand{font-size:18px;gap:6px}.kb-brand svg{width:32px;height:32px}.kb-brand small{display:none}}
@media print{.kb-header,.kb-footer{display:none!important}}
