:root{color-scheme:dark;--bg:#0b141a;--panel:#101e26;--ink:#ecf1ed;--muted:#9aadaf;--line:#2b3a40;--accent:#b9d9be}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','Hiragino Kaku Gothic ProN',sans-serif;font-size:15px;line-height:1.9}a{color:inherit;text-decoration:none}a,button,summary,select{touch-action:manipulation}button,input,textarea,select{font:inherit}button,select{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2{font-weight:400}h1{line-height:1.45;font-family:Georgia,'Yu Mincho',serif}p{color:var(--muted)}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:var(--bg);padding:12px}.skip-link:focus{top:8px}.site-header{height:86px;padding:12px max(24px,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:20;background:#0b141af5;border-bottom:1px solid var(--line)}.logo{flex-shrink:0}.logo img{width:200px;height:auto}.desktop-nav{display:flex;gap:30px;font-size:13px}.desktop-nav a{padding:10px 0}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--accent)}.mobile-menu{display:none}.wrap{max-width:1160px;margin:auto;padding:0 28px}.narrow{max-width:850px}.eyebrow{font-size:10px;letter-spacing:.18em;line-height:1.5;font-weight:500;color:var(--accent)}.hero{height:min(690px,78svh);min-height:430px;position:relative;overflow:hidden;background:#10221e}#hero-image,#hero-image img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(90deg,#05131299,transparent 80%),linear-gradient(0deg,#081519b0,transparent 45%)}.hero-copy{position:absolute;left:max(28px,calc((100vw - 1104px)/2));bottom:120px;max-width:75%}.hero h1{font-size:clamp(38px,5.5vw,72px);letter-spacing:.1em;margin:24px 0}.hero-copy p{color:#e0e9df;font-size:13px}.hero-bottom{position:absolute;bottom:24px;left:max(28px,calc((100vw - 1104px)/2));right:max(28px,calc((100vw - 1104px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:11px}.slide-controls{display:flex;gap:8px}.slide-controls button{background:transparent;color:var(--ink);border:0;border-bottom:1px solid #ffffff50;min-width:40px;min-height:44px}.slide-controls button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.home-links{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:54px 0;scroll-margin-top:100px}.section-label{display:flex;align-items:baseline;gap:18px;margin-bottom:20px}.section-label>span:last-child{font-size:12px;color:var(--muted)}.section-label h2{font-size:23px}.work-card{display:block;min-width:0}.work-card img{aspect-ratio:3/2;object-fit:cover;background:var(--panel);transition:filter .2s}.work-card:hover img{filter:brightness(1.12)}.work-card>div{padding:15px 0}.work-card h2{font-size:17px;margin:6px 0}.work-card p{font-size:12px;display:flex;justify-content:space-between}.page-directory{padding-top:34px}.page-directory>a{display:flex;align-items:center;gap:20px;padding:18px 0;border-top:1px solid var(--line);min-height:70px}.page-directory>a:last-child{border-bottom:1px solid var(--line)}.page-directory>a>span:nth-child(2){flex:1;font-size:17px}.page-directory small{display:block;color:var(--muted);font-size:11px}.page-directory b{font-weight:400}.page-directory a:hover{color:var(--accent)}.intro{padding:50px 0 70px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:24px}.intro>.eyebrow{grid-column:1}.intro h2{font-family:Georgia,'Yu Mincho',serif;font-size:32px;line-height:1.7}.intro p{grid-column:2;font-size:14px}.news{padding-bottom:60px}.news details{border-top:1px solid var(--line)}.news details:last-child{border-bottom:1px solid var(--line)}.news summary{display:flex;align-items:center;gap:25px;padding:20px 0;cursor:pointer;list-style:none}.news summary::-webkit-details-marker{display:none}.news time{font-size:12px;color:var(--muted)}.news summary span{flex:1}.news summary b{font-weight:400}.news details p{white-space:pre-wrap;padding:0 0 24px}.site-footer{border-top:1px solid var(--line);padding:40px 28px;text-align:center;margin-top:36px}.footer-brand{font-family:Georgia,serif;font-size:24px}.site-footer p{font-size:12px;margin:8px 0 22px}.site-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;font-size:12px;margin-bottom:25px}.site-footer small{font-size:10px;color:var(--muted)}.page-heading{padding:60px 0 40px}.page-heading h1{font-size:clamp(32px,5vw,52px);margin:14px 0}.page-heading p{max-width:650px;font-size:14px}.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px;font-size:11px;color:var(--muted)}select{background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:8px;border-radius:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 24px}.back{display:inline-block;margin-top:30px;color:var(--muted);font-size:12px}.detail .page-heading{padding-top:20px}.detail-photo img{max-height:85svh;object-fit:contain;background:#050a0e}.story-grid{display:grid;grid-template-columns:2fr 1fr;gap:70px;margin-top:50px}.story-grid section{margin-bottom:48px}.story-grid h2{font-size:22px;margin:10px 0 18px}.prose{white-space:pre-wrap;overflow-wrap:anywhere}.story-grid aside{border-top:1px solid var(--line);padding-top:12px}.story-grid aside h2{font-size:17px}dl{margin:0}dt{font-size:11px;color:var(--muted);margin-top:18px}dd{margin:4px 0 20px;font-size:14px;white-space:pre-wrap}.muted{color:var(--muted);font-size:12px}.photo-pager{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:25px 0}.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-bottom:50px}.profile-layout img{aspect-ratio:4/5;object-fit:cover}.profile-layout h2{font-family:'Yu Mincho',serif;font-size:32px;margin:22px 0}.text-link{display:inline-block;color:var(--accent);margin-top:25px;border-bottom:1px solid var(--line)}.coming-soon{padding:70px 0 100px;border-top:1px solid var(--line)}.coming-soon h2{font-size:28px;margin:15px 0 25px}.social-list>a,.social-list>div{display:flex;align-items:center;gap:25px;border-top:1px solid var(--line);padding:28px 0}.social-list h2{flex:1;font-family:Georgia,serif;font-size:30px}.social-list>a:hover{color:var(--accent)}
@media(max-width:760px){.site-header{height:72px;padding:10px 20px}.logo img{width:170px}.desktop-nav{display:none}.mobile-menu{display:block}.wrap{padding:0 20px}.hero{height:55svh;min-height:370px;max-height:520px}.hero-copy{left:24px;bottom:98px;max-width:88%}.hero h1{font-size:39px;margin:18px 0}.hero-copy>.eyebrow{font-size:8px}.hero-copy p{font-size:11px}.hero-bottom{left:24px;right:20px;bottom:15px}#hero-caption{max-width:42%;font-size:10px}.slide-controls{gap:2px}.slide-controls button{min-width:30px}.home-links{gap:20px;padding:30px 0}.page-directory{padding-top:34px}.page-directory>a{gap:10px;padding:12px 0;min-height:66px}.page-directory>a>.eyebrow{display:none}.page-directory>a>span:nth-child(2){font-size:13px}.page-directory small{font-size:10px}.work-card h2{font-size:14px}.featured .section-label{gap:8px;flex-wrap:wrap}.section-label>span:last-child{font-size:10px}.intro{grid-template-columns:1fr;padding:35px 0 45px;gap:16px}.intro p{grid-column:1}.intro h2{font-size:27px}.news summary{gap:12px;font-size:13px;align-items:baseline}.news time{font-size:10px;white-space:nowrap}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.page-heading{padding:40px 0 28px}.story-grid,.profile-layout{grid-template-columns:1fr;gap:30px}.story-grid aside{grid-row:1}.profile-layout img{aspect-ratio:3/2}.profile-layout h2{font-size:28px}.social-list h2{font-size:25px}.gallery-toolbar{gap:10px}.featured .work-card p{font-size:10px}.site-footer{padding:30px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* 縦長画面・スマホではページ一覧への直接リンクを表示 */
@media (max-width:760px), (orientation:portrait) {
  .desktop-nav { display:none; }
  .mobile-menu { display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 0; font-size:12px; }
}

/* トップ以外は開閉式のページ選択メニュー */
.mobile-menu summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; min-height:44px; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu nav { position:absolute; top:100%; left:0; right:0; padding:12px 24px 24px; background:var(--bg); border-bottom:1px solid var(--line); }
.mobile-menu nav a { display:block; padding:12px 0; border-bottom:1px solid var(--line); }
.mobile-menu nav a:hover, .mobile-menu nav a[aria-current="page"] { color:var(--accent); }

/* トップ写真は画面に関係なく3:2。写真全体を収める。 */
.hero { width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:3 / 2; background:#070d12; }
#hero-image img { object-fit:contain; }
.hero-shade { background:rgba(3,10,14,.23); }
.hero-copy { inset:0; max-width:none; padding:24px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; text-shadow:0 2px 12px #000,0 1px 3px #000; }
.hero-brand { font-family:Georgia,serif; font-size:clamp(18px,2.4vw,32px); letter-spacing:.04em; }
.hero h1 { font-size:clamp(16px,2.65vw,36px); line-height:1.9; letter-spacing:.04em; margin:16px 0; }
.hero-copy p { font-size:clamp(10px,1.2vw,16px); color:#fff; line-height:1.9; }
.hero-bottom { left:0; right:0; bottom:10px; justify-content:center; }
.slide-controls { gap:0; }
.slide-controls button { display:flex; align-items:center; justify-content:center; width:32px; min-width:32px; height:44px; min-height:44px; padding:0; border:0; }
.slide-dot { width:6px; height:6px; border-radius:50%; background:#ffffff70; }
.slide-controls button[aria-pressed="true"] .slide-dot { background:#fff; }
.slide-controls .slide-pause { position:absolute; width:1px; min-width:0; height:1px; min-height:0; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.slide-controls .slide-pause:focus-visible { position:relative; width:auto; height:44px; padding:0 12px; clip-path:none; background:var(--bg); }
@media(max-width:480px) {
  .hero-copy { padding:12px 16px 32px; }
  .hero h1 { font-size:clamp(13px,3.8vw,18px); line-height:1.85; margin:10px 0; letter-spacing:0; }
  .hero-copy p { max-width:300px; }
  .hero-bottom { bottom:0; }
}

/* 夜空に重ねる、淡いアイボリーのロゴと明朝のメッセージ */
.hero-copy { color:#f0eee6; text-shadow:0 1px 6px #02080dcc,0 3px 24px #02080d99; }
.hero-brand { width:clamp(160px,28vw,360px); height:auto; max-width:70%; filter:sepia(.18) saturate(.65) drop-shadow(0 2px 10px #030a10aa); opacity:.96; }
.hero h1 { font-family:'Yu Mincho','Hiragino Mincho ProN',Georgia,serif; font-weight:400; letter-spacing:.12em; line-height:2; margin:20px 0 16px; }
.hero h1 span { font-size:.78em; letter-spacing:.13em; }
.hero-copy p { color:#e6e7df; letter-spacing:.12em; font-weight:300; font-size:clamp(10px,1vw,14px); }
.hero-copy p::before { content:''; display:block; width:44px; height:1px; background:#e5e6d680; margin:0 auto 18px; }
.news .news-entry summary { display:grid; grid-template-columns:90px 126px minmax(0,1fr) 18px; gap:16px; align-items:baseline; }
.news .news-tag { font-size:10px; line-height:1.6; letter-spacing:.05em; padding:3px 9px; border:1px solid #667c715c; color:#b9d3bf; text-align:center; width:fit-content; white-space:nowrap; }
.news .news-tag[data-category="グッズ"] { color:#d8c9a6; border-color:#8e7c555e; }
.news .news-tag[data-category="お知らせ"] { color:#b8c6cf; border-color:#71818c60; }
.news-title { font-size:13px; overflow-wrap:anywhere; }
.news-archive-link { display:flex; justify-content:flex-end; gap:28px; padding:20px 0; font-size:12px; color:var(--accent); }
.news-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.news-filters button,.archive-pagination button { border:1px solid var(--line); padding:10px 16px; min-height:44px; background:transparent; color:var(--muted); font-size:12px; }
.news-filters button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:var(--bg); }
.news-count { margin-bottom:18px; }
.archive-pagination { display:flex; justify-content:center; gap:24px; align-items:center; }
.archive-pagination button:disabled { opacity:.35; cursor:default; }
.footer-news { display:block; width:fit-content; margin:0 auto 16px; font-size:11px; color:var(--muted); }
@media(max-width:600px) {
 .news .news-entry summary { grid-template-columns:82px minmax(0,1fr) 16px; gap:8px 10px; padding:18px 0; }
 .news .news-title { grid-row:2; grid-column:1 / 3; font-size:12px; }
 .news .news-entry summary b { grid-column:3; grid-row:1 / 3; align-self:center; }
 .news .news-tag { font-size:9px; }
 .hero h1 { letter-spacing:.08em; margin:10px 0; line-height:1.9; }
 .hero h1 span { font-size:.88em; letter-spacing:.04em; }
 .hero-copy p { letter-spacing:.06em; }
 .hero-copy p::before { width:28px; margin-bottom:10px; }
}

/* 開いているお知らせはマイナス、閉じているときはプラス */
.news-toggle::before { content:'＋'; }
.news-entry[open] .news-toggle::before { content:'−'; }
.gallery-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; margin:40px 0 20px; }
.gallery-pagination a,.gallery-pagination>span { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; font-size:12px; border:1px solid var(--line); }
.gallery-pagination a[aria-current="page"] { color:var(--bg); background:var(--accent); border-color:var(--accent); }
.gallery-pagination a:hover { border-color:var(--accent); }
.pagination-disabled { opacity:.3; }
@media(max-width:480px) { .hero h1 { font-size:clamp(12px,3.5vw,17px); } .hero h1 span { font-size:1em; } }

/* フッター：ブランド・ページ案内・アーカイブを明確に分ける */
.site-footer { background:#081116; padding:44px 24px 0; border-top:1px solid #34434a; }
.footer-inner { max-width:1104px; margin:0 auto; text-align:center; }
.site-footer .footer-brand { display:block; width:190px; margin:0 auto; }
.footer-brand img { width:100%; height:auto; opacity:.88; }
.site-footer .footer-message { color:#92a4a7; font-family:'Yu Mincho','Hiragino Mincho ProN',serif; font-size:12px; letter-spacing:.08em; margin:16px 0 22px; }
.site-footer .footer-navigation { display:block; margin:0; font-size:12px; line-height:2; }
.footer-navigation a { display:inline-block; padding:8px 2px; color:#e4eae7; }
.footer-navigation a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
.footer-divider { display:inline-block; color:#607477; margin:0 12px; font-weight:300; }
.site-footer .footer-news { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:44px; margin:20px auto 30px; padding:8px 18px; border:1px solid #496356; border-radius:2px; color:#c3dfc7; font-size:12px; letter-spacing:.04em; }
.footer-news:hover { background:#b9d9be12; border-color:var(--accent); }
.footer-bottom { border-top:1px solid #25343a; padding:18px 0; }
.site-footer .footer-bottom small { color:#7f9397; font-size:10px; letter-spacing:.08em; }
@media(max-width:600px) {
 .site-footer { padding:32px 16px 0; }
 .site-footer .footer-brand { width:170px; }
 .site-footer .footer-navigation { font-size:11px; }
 .footer-divider { margin:0 6px; }
 .site-footer .footer-message { font-size:11px; }
 .site-footer .footer-news { font-size:11px; margin:16px auto 24px; }
}

/* 4つのSNS：小さなロゴを共通化し、外部埋め込みは使わない */
.header-actions { display:flex; align-items:center; gap:28px; min-width:0; }
.social-links { display:flex; align-items:center; gap:8px; }
.social-icon { position:relative; display:inline-flex; align-items:center; justify-content:center; width:40px; height:44px; flex-shrink:0; color:var(--ink); border-radius:50%; }
.social-icon img,.social-profile-icon img { width:21px; height:21px; object-fit:contain; }
.social-icon:not(.social-icon-note) img,.social-profile-icon:not(.social-icon-note) img { filter:invert(1); }
.social-icon-note { border-radius:50%; overflow:hidden; }
.social-icon-note img { width:44px; height:44px; max-width:none; }
.social-icon:hover { background:#b9d9be13; }
.site-footer .social-links-footer { display:flex; justify-content:center; gap:14px; margin:16px 0 0; }
.home-directory { min-width:0; }
.social-links-home { border-bottom:1px solid var(--line); padding:12px 0; justify-content:flex-end; }
.social-profile { display:flex; gap:22px; align-items:center; border-top:1px solid var(--line); padding:30px 0; scroll-margin-top:110px; }
.social-profile-icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:44px; height:44px; }
.social-profile-icon img { width:28px; height:28px; }
.social-profile-icon.social-icon-note img { width:60px; height:60px; max-width:none; }
.social-profile-copy { flex:1; min-width:0; }
.social-list .social-profile h2 { font-size:26px; margin-bottom:6px; }
.social-profile p { font-size:12px; line-height:1.9; }
.social-main-label { display:inline-block; font-size:10px; color:var(--accent); margin-top:9px; }
.social-profile-link { white-space:nowrap; font-size:12px; padding:10px 0 10px 10px; color:var(--accent); }
@media(max-width:1100px) and (min-width:761px) and (orientation:landscape) {
 .header-actions { gap:14px; } .desktop-nav { gap:18px; font-size:12px; } .social-links-header { gap:2px; } .social-links-header .social-icon { width:28px; }
}
@media(max-width:760px), (orientation:portrait) { .header-actions { gap:12px; } .social-links-header { gap:2px; } .social-links-header .social-icon { width:30px; } }
@media(max-width:480px) {
 .site-header { padding-left:16px; padding-right:16px; gap:8px; }
 .logo img { width:clamp(100px,32vw,136px); }
 .header-actions { gap:8px; }
 .social-links-header { gap:0; }
 .social-links-header .social-icon { width:28px; }
 .social-links-header .social-icon img { width:17px; height:17px; }
 .social-links-header .social-icon-note img { width:40px; height:40px; }
 .mobile-menu { font-size:11px; gap:5px; }
 .social-links-home { justify-content:space-between; gap:0; }
 .social-links-home .social-icon { width:32px; }
 .social-profile { gap:12px; flex-wrap:wrap; }
 .social-list .social-profile h2 { font-size:23px; }
 .social-profile>span,.social-profile-link { margin-left:56px; }
 .social-profile-copy { flex-basis:calc(100% - 56px); }
}

/* Xの公式SVGは白色のため、反転しない */
.social-icon-x img,.social-profile-icon.social-icon-x img { filter:none; }

/* トップのブランド名は小さな文字だけにする */
.hero-copy .hero-brand-text { width:auto; max-width:none; height:auto; font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif; font-size:clamp(10px,1.1vw,14px); font-weight:400; letter-spacing:.3em; color:#eceee5; opacity:.95; filter:none; }
/* Xは明るい円と黒い公式ロゴで背景から明確に分離 */
.social-links .social-icon.social-icon-x { width:28px; height:28px; background:#edf1ed; border-radius:50%; }
.social-links .social-icon.social-icon-x img { width:16px; height:16px; filter:brightness(0); }
.social-links .social-icon.social-icon-x:hover { background:#cde2d0; }

/* 控えめでコンパクトなフッター */
.site-footer { background:var(--bg); padding:26px 20px 0; border-top:1px solid var(--line); }
.site-footer .footer-brand { width:112px; }
.site-footer .footer-message { font-size:10px; margin:10px 0 12px; letter-spacing:.04em; }
.site-footer .footer-navigation { display:flex; justify-content:center; align-items:center; flex-wrap:nowrap; gap:0; font-size:10px; }
.footer-navigation a { padding:8px 0; white-space:nowrap; }
.footer-divider { margin:0 8px; }
.site-footer .social-links-footer { gap:10px; margin:8px 0 12px; }
.social-links-footer .social-icon { width:32px; height:36px; }
.social-links-footer .social-icon img { width:17px; height:17px; }
.social-links-footer .social-icon-note img { width:40px; height:40px; }
.social-links-footer .social-icon.social-icon-x { width:24px; height:24px; }
.social-links-footer .social-icon.social-icon-x img { width:14px; height:14px; }
.footer-bottom { padding:10px 0; border-top:1px solid #25343a80; }
.site-footer .footer-bottom small { font-size:9px; letter-spacing:.04em; }
.page-end { display:block; height:1px; }
.back-to-top { position:fixed; right:16px; bottom:16px; z-index:25; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:56px; min-height:56px; padding:8px; border:1px solid #688077; border-radius:4px; background:#15231ff2; color:#e2eee4; font-family:inherit; font-size:10px; cursor:pointer; box-shadow:0 2px 12px #0003; }
.back-to-top[hidden] { display:none; }
.back-to-top>span:first-child { font-size:19px; line-height:1; }
.back-to-top:hover { background:#243b30; }
@media(max-width:480px) {
 .site-footer { padding:22px 12px 0; }
 .site-footer .footer-brand { width:96px; }
 .site-footer .footer-message { font-size:9px; }
 .site-footer .footer-navigation { font-size:clamp(7.5px,2.2vw,9px); }
 .footer-divider { margin:0 4px; }
 .back-to-top { right:12px; bottom:12px; }
}

/* 2026-11-08: トップと共通UIの整理 */
.hero-copy .hero-brand-text{font-family:Georgia,'Times New Roman',serif;font-style:italic;letter-spacing:.18em;color:#e5e9dd}
.hero-copy .hero-brand-text::after{content:'';display:block;width:34px;height:1px;margin:14px auto 0;background:#cbd7c070}
.hero-copy h1{margin-top:14px}
.header-actions{gap:24px}
.site-header{padding-right:max(30px,calc((100vw - 1200px)/2))}
.home-menu-button{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.5;padding:9px 13px!important;border:1px solid #69817466;border-radius:4px;background:#b9d9be08;min-height:44px;text-decoration:none}
.home-menu-button:hover{background:#b9d9be17;border-color:#839c88}
html{scroll-padding-top:92px}
.home-links{align-items:stretch;gap:28px;scroll-margin-top:0}
.featured{display:flex;flex-direction:column;min-width:0;padding:18px;background:#20272d;border:1px solid #48525b;border-radius:5px}
.featured .section-label{margin-bottom:14px;gap:12px;flex-wrap:wrap}
.featured .section-label .eyebrow{font-size:11px;color:#e0e4e7;font-weight:600}
.featured .work-card{flex:1;display:flex;flex-direction:column}
.featured .work-card img{aspect-ratio:3/2;object-fit:contain;object-position:center;background:#161d23}
.featured .pickup-meta{padding:12px 0 0;display:flex;flex-direction:column;flex:1}
.pickup-meta time{font-size:11px;letter-spacing:.08em;color:#b4cbb9}
.featured .pickup-meta h2{font-size:18px;line-height:1.6;margin:7px 0 9px;overflow-wrap:anywhere}
.pickup-meta p{margin-top:auto;gap:10px}
.pickup-empty{padding:28px 0}
.home-directory{display:flex;min-width:0}
.home-directory .page-directory{padding:0;display:grid;grid-template-rows:repeat(4,minmax(64px,1fr));width:100%;height:100%}
.page-directory>a{min-width:0;overflow-wrap:anywhere;padding:18px 0;gap:16px}
.page-directory>a>span:nth-child(2){font-size:16px;line-height:1.6}
.page-directory small{font-size:11px;margin-top:4px}
.page-directory>a:last-child{border-bottom:1px solid var(--line)}
.footer-utility,.footer-legal{display:flex!important;justify-content:center;flex-wrap:wrap;align-items:center;gap:0!important;margin:0!important}
.site-footer .footer-utility{font-size:10px}
.site-footer .footer-legal{font-size:9px;margin-top:2px!important;margin-bottom:8px!important}
.footer-utility a,.footer-legal a{padding:7px 0;color:#a9bbb7}
.footer-utility a:hover,.footer-legal a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.footer-legal .footer-divider{margin:0 7px;color:#4f6460}
.site-footer .social-links-footer{margin:6px 0 10px}
.social-list .social-profile-link{display:inline-flex;align-items:center;justify-content:center;min-width:94px;min-height:44px;font-size:14px;padding:9px 20px;border:1px solid #738e7d80;border-radius:3px;background:#bdd5bd0a;color:#d0e5cf;line-height:1.4;margin-left:0}
.social-list .social-profile-link:hover{background:#bdd5bd1c;border-color:var(--accent)}
.portrait-empty{display:flex;justify-content:center;align-items:center;min-height:300px;background:var(--panel);font-family:Georgia,serif;color:var(--muted)}
.profile-layout h2{line-height:1.7}
.legal-page{padding-bottom:32px}
.legal-page>section{padding:28px 0;border-top:1px solid var(--line)}
.legal-page h2{font-size:21px;margin-bottom:17px;line-height:1.7}
.legal-page p{font-size:14px;line-height:2.1;margin:12px 0}
.legal-page a:not(.contact-email){color:var(--accent);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.legal-page li{font-size:13px;color:var(--muted);margin:10px 0;line-height:1.9}
.legal-page .policy-updated{font-size:11px;color:#7e9694}
.contact-panel{max-width:690px}
.contact-panel h2{font-family:'Yu Mincho',serif;font-size:27px}
.contact-email{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;border:1px solid #76947e88;background:#b9d9be0a;padding:14px 22px;margin-top:18px;color:#d1e4cd;min-height:52px}
.contact-email:hover{background:#b9d9be1a}
.contact-panel .mail-address{font-size:14px;color:var(--ink);overflow-wrap:anywhere}
.contact-panel .contact-note{font-size:12px;margin-top:24px}
.sitemap-links{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-bottom:40px}
.sitemap-links a{display:flex;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line);font-size:13px;text-decoration:none!important}
.sitemap-works{padding-left:20px;columns:2;column-gap:28px}
@media(max-width:760px){
 .home-links{gap:16px;padding:24px 0 32px}
 .featured{padding:12px}
 .featured .section-label{gap:6px;margin-bottom:10px}
 .featured .section-label .eyebrow{font-size:10px}
 .featured .section-label>span:last-child{font-size:9px}
 .featured .pickup-meta h2{font-size:13px;margin:6px 0 9px}
 .pickup-meta time{font-size:9px;letter-spacing:.02em}
 .featured .pickup-meta p{font-size:9px;line-height:1.7}
 .home-directory .page-directory{grid-template-rows:repeat(4,minmax(64px,1fr))}
 .page-directory>a{gap:8px;padding:12px 0}
 .page-directory>a>span:nth-child(2){font-size:13px}
 .page-directory small{font-size:10px;line-height:1.7}
 .intro h2{font-size:26px}
 .intro p{font-size:13px}
 .hero-copy .hero-brand-text::after{width:26px;margin-top:10px}
 .hero-copy h1{margin-top:9px}
 .site-header{padding-right:28px}
 .logo img{width:150px}
 .legal-page h2{font-size:19px}
 .legal-page p{font-size:13px}
}
@media(max-width:480px){
 .site-header{padding-left:20px;padding-right:28px}
 .logo img{width:140px}
 .home-menu-button{font-size:13px!important;gap:8px!important;padding:8px 12px!important}
 .site-footer .footer-navigation{font-size:10px}
 .site-footer .footer-utility{font-size:10px}
 .site-footer .footer-legal{font-size:8px}
 .footer-legal .footer-divider{margin:0 4px}
 .social-profile>span{margin-left:56px}
 .social-list .social-profile-link{margin-left:56px;min-width:98px;font-size:14px}
 .sitemap-links{grid-template-columns:1fr}
 .sitemap-works{columns:1}
 .contact-panel h2{font-size:24px}
}

@media(min-width:761px) and (orientation:landscape){ .home-menu-button { display:none; } }
@media(max-width:760px), (orientation:portrait){ .home-menu-button { display:flex; } }

/* トップ末尾はアーカイブリンクからフッターへ自然につなぐ */
body[data-page="home"] .news { padding-bottom:12px; }
body[data-page="home"] .site-footer { margin-top:16px; }
.profile-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:25px; font-size:12px; }
.profile-links a { padding:8px 0; color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
.profile-links>span { color:#607477; }
@media(min-width:761px) and (max-width:1100px) and (orientation:landscape) { .desktop-nav { gap:14px; font-size:11px; } }

/* Shared quiet gray controls */
.home-menu-button,.mobile-menu>summary,.back-to-top{background:#20272d;border:1px solid #48525b;color:#e0e4e7}
.home-menu-button{font-family:inherit;cursor:pointer}
.home-menu-button:hover,.mobile-menu>summary:hover,.back-to-top:hover{background:#2b343c;border-color:#65717c}
.slide-controls .slide-pause,.slide-controls .slide-pause:focus-visible{position:relative;width:auto;min-width:64px;height:44px;min-height:44px;padding:0 10px;margin-left:8px;overflow:visible;clip-path:none;white-space:nowrap;background:#20272dd9;border:1px solid #48525b;border-radius:4px;color:#e0e4e7;font-size:11px}

.phrase{display:inline-block;max-width:100%;overflow-wrap:anywhere;vertical-align:baseline}
.hero h1 .phrase{font-size:inherit;letter-spacing:inherit}
h1,h2,h3,.page-directory small{text-wrap:balance}
.slide-controls .slide-pause,.slide-controls .slide-pause:focus-visible{width:44px;min-width:44px;padding:0;margin-left:3px;border:0;border-radius:0;background:transparent;color:#eee;font-size:12px;text-shadow:0 1px 4px #000}
.slide-controls .slide-pause:hover{background:#20272d66}
.slide-controls .slide-pause:focus-visible{outline:2px solid #e0e4e7;outline-offset:1px}

/* Fit the complete 3:2 hero below the header, including on wide screens. */
body[data-page="home"]{--home-header-height:86px}
body[data-page="home"] .hero{width:min(100%,calc(150svh - 129px));height:auto;min-height:0;max-height:none;aspect-ratio:3/2;margin-inline:auto}
body[data-page="home"] .desktop-nav{display:none}
body[data-page="home"] .home-menu-button{display:flex}
@media(max-width:760px){body[data-page="home"]{--home-header-height:72px}body[data-page="home"] .hero{width:min(100%,calc(150svh - 108px))}}

/* Gallery thumbnails retain the complete composition in a 3:2 frame. */
.gallery-grid .work-card img{aspect-ratio:3/2;object-fit:contain;object-position:center;background:#161d23}

body:not([data-page="home"]) .mobile-menu>summary{padding:8px 14px;border-radius:4px;white-space:nowrap}
