.gallery-hero {
  padding-block: clamp(4.5rem, 10vw, 8rem);
  border-bottom: 1px solid var(--grid-strong);
  background: linear-gradient(115deg, var(--paper) 0 62%, var(--forest-surface) 62%);
}
.gallery-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:clamp(2rem,6vw,6rem); }
.gallery-hero h1,.creation-detail-head h1,.admin-heading h1,.admin-login h1 { margin:0; color:var(--forest); font-family:"Space Grotesk","Noto Sans JP",sans-serif; font-size:clamp(2.7rem,7vw,5.6rem); line-height:1.02; letter-spacing:-.055em; }
.gallery-hero-grid>p { margin:0; max-width:32rem; color:var(--muted); font-size:1.08rem; }
.gallery-directory { padding-block:clamp(3rem,7vw,6rem); border-bottom:1px solid var(--grid-strong); }
.gallery-filter { display:flex; align-items:end; flex-wrap:wrap; gap:.8rem; padding:1rem; border:1px solid var(--grid-strong); background:var(--surface); }
.gallery-filter label,.admin-form label,.admin-login label,.comment-form label,.upload-grid label { display:grid; gap:.45rem; color:var(--forest); font-weight:700; }
.gallery-filter select,.admin-form input,.admin-form select,.admin-form textarea,.admin-login input,.comment-form input,.comment-form textarea { width:100%; min-height:3rem; padding:.7rem .8rem; border:1px solid var(--grid-strong); border-radius:0; color:var(--ink); background:var(--surface); font:inherit; }
.gallery-filter select { min-width:11rem; }
.filter-reset { min-height:3rem; display:inline-flex; align-items:center; padding:.72rem; color:var(--muted); }
.gallery-count { margin:2rem 0 1rem; color:var(--muted); }
.creation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--grid-strong); border-left:1px solid var(--grid-strong); }
.creation-card { min-width:0; border-right:1px solid var(--grid-strong); border-bottom:1px solid var(--grid-strong); background:var(--surface); }
.creation-thumb { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; color:var(--surface); background:var(--forest); text-decoration:none; }
.creation-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.creation-thumb:hover img { transform:scale(1.025); }
.creation-number,.creation-kind { position:absolute; z-index:1; padding:.35rem .55rem; background:rgba(32,37,34,.8); font:700 .7rem/1.2 "JetBrains Mono",Consolas,monospace; letter-spacing:.08em; text-transform:uppercase; }
.creation-number { top:.75rem; left:.75rem; }.creation-kind { right:.75rem; bottom:.75rem; }
.creation-card-body { padding:1.35rem; }
.creation-card-body h2 { margin:0; color:var(--forest); font-size:1.45rem; line-height:1.2; }.creation-card-body h2 a { text-decoration:none; }
.creation-card-body>p { margin:.8rem 0 0; color:var(--muted); font-size:.92rem; }
.gallery-tags,.tool-list { display:flex; margin:1rem 0 0; padding:0; flex-wrap:wrap; gap:.4rem; list-style:none; }
.gallery-tags li,.tool-list li { padding:.22rem .55rem; background:var(--forest-surface); color:var(--forest); font-size:.74rem; }
.creation-meta { display:flex; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--grid); justify-content:space-between; gap:1rem; color:var(--muted); font-size:.8rem; }
.creation-meta a { color:var(--forest); font-weight:700; }
.gallery-pagination { display:flex; margin-top:1.5rem; align-items:center; justify-content:center; gap:1.25rem; }
.gallery-pagination a { color:var(--forest); font-weight:700; }.gallery-pagination span { color:var(--muted); }
.gallery-empty,.admin-empty { padding:clamp(2rem,6vw,5rem); border:1px solid var(--grid-strong); background:var(--surface); text-align:center; }.gallery-empty h2,.admin-empty h2 { color:var(--forest); }
.creation-detail-head { padding-block:clamp(3.5rem,8vw,7rem); border-bottom:1px solid var(--grid-strong); }.creation-detail-head h1 { max-width:15ch; }.back-link { display:inline-flex; margin-bottom:2.5rem; color:var(--forest); font-weight:700; }.creation-lead { max-width:48rem; margin:1.5rem 0 0; color:var(--muted); font-size:1.15rem; }
.creation-media { padding-block:clamp(1rem,4vw,3rem); border-bottom:1px solid var(--grid-strong); background:#16231c; }.creation-media video,.creation-media img { width:100%; max-height:75vh; margin:auto; object-fit:contain; background:#0c110e; }
.creation-story { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-left:1px solid var(--grid-strong); }.creation-story>section { padding:clamp(2rem,5vw,4rem); border-right:1px solid var(--grid-strong); border-bottom:1px solid var(--grid-strong); }.creation-story>section:nth-child(3) { grid-column:1/-1; }.creation-story h2,.reaction-section h2 { margin:0; color:var(--forest); font-size:clamp(1.8rem,4vw,3rem); }.creation-story h3 { margin-top:2rem; color:var(--forest); }.story-copy { margin-top:1.5rem; color:var(--muted); }
.external-links { display:grid; margin-top:1.5rem; border-top:1px solid var(--grid-strong); }.external-links a { display:flex; min-height:4rem; align-items:center; justify-content:space-between; gap:2rem; border-bottom:1px solid var(--grid-strong); color:var(--forest); font-weight:700; text-decoration:none; }.external-links small { color:var(--muted); font-weight:400; }
.reaction-section { padding-block:clamp(3rem,7vw,6rem); border-bottom:1px solid var(--grid-strong); }.reaction-grid { display:grid; grid-template-columns:.65fr 1.35fr; border:1px solid var(--grid-strong); }.like-panel,.comment-panel { padding:clamp(1.5rem,5vw,3rem); }.like-panel { background:var(--forest-surface); }.comment-panel { border-left:1px solid var(--grid-strong); background:var(--surface); }
.comment-form { display:grid; margin-top:2rem; gap:1rem; }.comment-form label span,.admin-form label span,.upload-grid label span { color:var(--muted); font-size:.78rem; font-weight:400; }.honeypot { position:absolute!important; left:-9999px!important; }.form-notice,.form-error { padding:1rem; border-left:4px solid var(--mint); background:rgba(99,185,135,.12); }.form-error { border-color:var(--coral); background:rgba(233,121,93,.12); }.comment-list { margin-top:3rem; }.comment-list article { padding-block:1.25rem; border-top:1px solid var(--grid); }.comment-list article>div { display:flex; justify-content:space-between; gap:1rem; }.comment-list time { color:var(--muted); font-size:.8rem; }.comment-list p { color:var(--muted); }
.admin-home-link { color:var(--forest); font-weight:700; }.admin-login { display:grid; min-height:calc(100vh - 4.5rem); padding:2rem; place-items:center; background:var(--forest-surface); }.admin-panel { width:min(100%,30rem); padding:clamp(2rem,6vw,4rem); border:1px solid var(--grid-strong); background:var(--surface); }.admin-panel h1 { font-size:clamp(2.2rem,6vw,3.6rem); }.admin-panel form { display:grid; margin-top:2rem; gap:1rem; }
.admin-shell { padding-block:clamp(2.5rem,6vw,5rem); }.admin-heading { display:flex; margin-bottom:2rem; align-items:end; justify-content:space-between; gap:2rem; }.admin-heading h1 { font-size:clamp(2.3rem,5vw,4rem); }.admin-heading p { margin:.5rem 0 0; color:var(--muted); }.admin-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; }.admin-actions form { margin:0; }.text-button { border:0; color:var(--forest); background:transparent; cursor:pointer; text-decoration:underline; }
.admin-table-wrap { overflow:auto; border:1px solid var(--grid-strong); }.admin-table { width:100%; border-collapse:collapse; background:var(--surface); }.admin-table th,.admin-table td { padding:1rem; border-bottom:1px solid var(--grid); text-align:left; white-space:nowrap; }.admin-table td:first-child { white-space:normal; }.admin-table small { display:block; color:var(--muted); }.admin-status { display:inline-block; padding:.25rem .5rem; border:1px solid var(--grid-strong); font-size:.72rem; text-transform:uppercase; }.admin-status-published,.admin-status-approved { color:var(--forest); background:var(--forest-surface); }.admin-status-rejected,.admin-status-archived { color:#7b3022; background:#f8ded7; }
.admin-form-container { max-width:62rem; }.admin-form { display:grid; gap:1.25rem; }.admin-form-grid,.upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.admin-form textarea { resize:vertical; }.upload-grid { padding:1.25rem; border:1px solid var(--grid-strong); background:var(--surface); }.upload-grid img,.upload-grid video { width:100%; max-height:18rem; margin-top:.75rem; object-fit:contain; background:#0c110e; }.sticky-save { position:sticky; bottom:0; display:flex; padding:1rem; align-items:center; gap:1rem; border:1px solid var(--grid-strong); background:rgba(247,247,245,.96); }.sticky-save span { color:var(--muted); font-size:.8rem; }
.comment-group { margin-top:2rem; }.comment-group h2 { color:var(--forest); }.moderation-card { padding:1.25rem; border:1px solid var(--grid-strong); border-bottom:0; background:var(--surface); }.moderation-card:last-child { border-bottom:1px solid var(--grid-strong); }.moderation-card header { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }.moderation-card time { margin-left:auto; color:var(--muted); font-size:.78rem; }.moderation-card>p { color:var(--muted); }.moderation-actions { display:flex; gap:.5rem; }.moderation-actions form { margin:0; }.moderation-actions button { padding:.45rem .75rem; border:1px solid var(--forest); color:var(--forest); background:transparent; cursor:pointer; }
@media(max-width:800px){.gallery-hero{background:var(--paper)}.gallery-hero-grid,.reaction-grid{grid-template-columns:1fr}.creation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.creation-story{grid-template-columns:1fr}.creation-story>section:nth-child(3){grid-column:auto}.comment-panel{border-top:1px solid var(--grid-strong);border-left:0}.admin-heading{align-items:flex-start;flex-direction:column}.admin-form-grid,.upload-grid{grid-template-columns:1fr}}
@media(max-width:560px){.creation-grid{grid-template-columns:1fr}.gallery-filter>*{width:100%}.gallery-filter select{min-width:0}.creation-story{border-left:0}.creation-story>section{border-left:1px solid var(--grid-strong)}.sticky-save{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.creation-thumb img{transition:none}}

.analytics-metrics{display:grid;margin-bottom:1.5rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.analytics-metrics article,.analytics-panel{padding:1.25rem;border:1px solid var(--grid-strong);background:var(--surface)}.analytics-metrics span{display:block;color:var(--muted);font-size:.78rem}.analytics-metrics strong{display:block;margin-top:.45rem;color:var(--forest);font-family:"Space Grotesk",sans-serif;font-size:clamp(2rem,5vw,3.5rem)}.analytics-grid{display:grid;margin-bottom:1rem;grid-template-columns:minmax(0,1.5fr) minmax(18rem,.7fr);gap:1rem}.analytics-panel h2{margin:0 0 1.25rem;color:var(--forest);font-size:1.1rem}.analytics-bars{display:flex;min-height:13rem;align-items:end;gap:.35rem;overflow-x:auto}.analytics-bars>div{display:grid;min-width:1.4rem;height:12rem;grid-template-rows:minmax(0,1fr) auto;align-items:end;gap:.45rem}.analytics-bars meter{width:100%;height:100%;writing-mode:vertical-lr;direction:rtl}.analytics-bars meter::-webkit-meter-bar{border:0;border-radius:0;background:var(--forest-surface)}.analytics-bars meter::-webkit-meter-optimum-value{background:var(--forest)}.analytics-bars meter::-moz-meter-bar{background:var(--forest)}.analytics-bars small{color:var(--muted);font-size:.58rem;writing-mode:vertical-rl}.analytics-list{margin:0}.analytics-list div{display:flex;padding:.65rem 0;border-top:1px solid var(--grid);justify-content:space-between;gap:1rem}.analytics-list dt,.analytics-list dd{margin:0}.analytics-list dt{color:var(--muted)}.analytics-list dd{color:var(--forest);font-weight:700}.admin-note{color:var(--muted);font-size:.82rem;line-height:1.7}
@media(max-width:800px){.analytics-metrics,.analytics-grid{grid-template-columns:1fr}.analytics-bars{min-height:10rem}.analytics-bars>div{height:9rem}}

/* Private operator console uses the public site's restrained cinematic palette. */
.admin-page {
  min-height:100vh;
  color:#eef8f1;
  background:#07100d;
}
.admin-page .site-header { border-bottom-color:rgba(181,220,198,.22); background:#09130f; }
.admin-page .brand,.admin-page .admin-home-link,.admin-page .back-link,.admin-page .text-button { color:#9ee7b8; }
.admin-page .brand-mark { color:#07100d; background:#9ee7b8; }
.admin-page .admin-login { background:#0b1712; }
.admin-page .admin-panel,
.admin-page .admin-empty,
.admin-page .admin-table,
.admin-page .upload-grid,
.admin-page .moderation-card,
.admin-page .analytics-metrics article,
.admin-page .analytics-panel {
  border-color:rgba(181,220,198,.24);
  color:#eef8f1;
  background:#101e19;
}
.admin-page .admin-panel h1,
.admin-page .admin-heading h1,
.admin-page .admin-empty h2,
.admin-page .comment-group h2,
.admin-page .analytics-panel h2,
.admin-page .analytics-metrics strong { color:#f4faf6; }
.admin-page .admin-heading p,
.admin-page .admin-panel>p,
.admin-page .admin-table small,
.admin-page .moderation-card>p,
.admin-page .analytics-metrics span,
.admin-page .analytics-list dt,
.admin-page .admin-note { color:rgba(238,248,241,.62); }
.admin-page .admin-login label,
.admin-page .admin-form label,
.admin-page .upload-grid label { color:#eef8f1; }
.admin-page .admin-form input,
.admin-page .admin-form select,
.admin-page .admin-form textarea,
.admin-page .admin-login input {
  border-color:rgba(181,220,198,.28);
  color:#eef8f1;
  background:#07100d;
}
.admin-page .admin-table-wrap { border-color:rgba(181,220,198,.24); }
.admin-page .admin-table th,
.admin-page .admin-table td,
.admin-page .analytics-list div { border-color:rgba(181,220,198,.16); }
.admin-page .admin-table a,
.admin-page .analytics-list dd { color:#9ee7b8; }
.admin-page .admin-status-published,
.admin-page .admin-status-approved { color:#b9f3cd; background:rgba(158,231,184,.12); }
.admin-page .admin-status-rejected,
.admin-page .admin-status-archived { color:#f3b3a3; background:rgba(233,121,93,.12); }
.admin-page .button { color:#07100d; background:#9ee7b8; }
.admin-page .button-secondary { border-color:rgba(158,231,184,.5); color:#c9f1d7; background:transparent; }
.admin-page .sticky-save { border-color:rgba(181,220,198,.24); background:rgba(7,16,13,.96); }
.admin-page .moderation-actions button { border-color:#9ee7b8; color:#9ee7b8; }
.admin-page .analytics-bars meter::-webkit-meter-bar { background:#07100d; }
.admin-page .analytics-bars meter::-webkit-meter-optimum-value { background:#9ee7b8; }
.admin-page .analytics-bars meter::-moz-meter-bar { background:#9ee7b8; }

/* Public chapter gallery follows the cinematic chapter surface. */
.chapter-page .gallery-filter {
  border-color:rgba(181,220,198,.24);
  background:#0d1915;
}
.chapter-page .gallery-filter label { color:#eef8f1; }
.chapter-page .gallery-filter select {
  border-color:rgba(181,220,198,.28);
  color:#eef8f1;
  background:#101e19;
}
.chapter-page .filter-reset { color:#9ee7b8; }
.chapter-page .creation-grid {
  border-top-color:rgba(181,220,198,.2);
  border-left-color:rgba(181,220,198,.2);
}
.chapter-page .creation-card {
  border-right-color:rgba(181,220,198,.2);
  border-bottom-color:rgba(181,220,198,.2);
  background:#101e19;
}
.chapter-page .creation-card-body h2,
.chapter-page .creation-card-body h2 a,
.chapter-page .gallery-empty h2 { color:#f4faf6; }
.chapter-page .creation-card-body>p,
.chapter-page .creation-meta,
.chapter-page .gallery-empty p { color:rgba(238,248,241,.62); }
.chapter-page .gallery-tags li {
  color:#c9f1d7;
  background:rgba(158,231,184,.12);
}
.chapter-page .creation-meta { border-top-color:rgba(181,220,198,.16); }
.chapter-page .creation-meta a { color:#9ee7b8; }
.chapter-page .gallery-empty {
  border-color:rgba(181,220,198,.24);
  background:#101e19;
}
.chapter-page .gallery-pagination a { color:#9ee7b8; }
.chapter-page .gallery-pagination span { color:rgba(238,248,241,.52); }
