/* CMS integration / v21 */

/* ---------- shared viewer ---------- */
.viewer-trigger { cursor: zoom-in; }
.media-viewer {
 position: fixed;
 inset: 0;
 z-index: 3000;
 display: grid;
 grid-template-columns: 64px minmax(0, 1fr) 64px;
 align-items: center;
 background: rgba(10, 10, 12, .94);
 color: #fff;
}
.media-viewer.hidden { display: none !important; }
.media-viewer__stage {
 min-width: 0;
 height: 92vh;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
}
#media-viewer-image {
 max-width: 100%;
 max-height: calc(92vh - 42px);
 width: auto;
 height: auto;
 object-fit: contain;
 box-shadow: 0 0 0 1px rgba(255,255,255,.08);
}
.media-viewer__counter { min-height: 24px; margin-top: 10px; font-size: .85rem; color: #ddd; }
.media-viewer__close,
.media-viewer__nav {
 border: 0;
 background: transparent;
 color: #fff;
 cursor: pointer;
 font-family: sans-serif;
}
.media-viewer__close {
 position: absolute;
 right: 18px;
 top: 12px;
 z-index: 2;
 font-size: 38px;
 line-height: 1;
}
.media-viewer__nav { font-size: 56px; height: 120px; }
.media-viewer__nav:disabled { opacity: .18; cursor: default; }
body.viewer-open { overflow: hidden; }

/* ---------- Top / Event ---------- */
.event-top-section { margin-top: 70px; }
.event-top-list { display: grid; gap: 16px; }
.event-top-card {
 display: grid;
 grid-template-columns: max-content minmax(0, 1fr);
 gap: 18px;
 align-items: center;
 padding: 14px 0;
 border-bottom: 1px solid var(--color-sub);
}
.event-top-thumb {
 width: auto;
 height: auto;
 max-width: 132px;
 padding: 0;
 border: 1px solid var(--color-sub);
 background: transparent;
 overflow: hidden;
 display: block;
 line-height: 0;
 cursor: zoom-in;
}
.event-top-thumb img {
 display: block;
 width: auto;
 height: auto;
 max-width: 130px;
 max-height: 104px;
 object-fit: contain;
}
.event-top-thumb.event-image-empty {
 width: 104px;
 height: 104px;
 display: flex;
 align-items: center;
 justify-content: center;
 background: #fff;
}
.event-image-empty { color: var(--color-main); font-size: .75rem; }
.event-top-text { min-width: 0; }
.event-top-line { font-size: .95rem; line-height: 1.8; }
.event-name-link,
.event-name-text { font: inherit; }
.event-name-link { text-decoration: none; color: var(--color-text); }
.event-name-link span { display: inline-block; margin-left: .4em; font-family: sans-serif; font-size: .9em; }
.event-name-link:hover { color: var(--color-accent); }

/* ---------- Books list: screenshot-inspired horizontal cards ---------- */
.books-list {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 72px 54px;
 align-items: start;
}
.books-list-card {
 min-width: 0;
 display: grid;
 grid-template-columns: 164px minmax(0, 1fr);
 gap: 28px;
 align-items: start;
}
.books-list-cover {
 display: block;
 width: 164px;
 text-decoration: none;
 cursor: pointer;
}
.books-list-cover img {
 display: block;
 width: 164px;
 max-height: 232px;
 object-fit: contain;
 object-position: top center;
 background: #fff;
 border: 1px solid var(--color-sub);
}
.books-list-cover--empty {
 height: 220px;
 display: flex;
 align-items: center;
 justify-content: center;
 border: 1px solid var(--color-sub);
 color: var(--color-main);
}
.books-list-title {
 margin: 2px 0 8px;
 font-family: var(--font-title);
 font-size: 1.08rem;
 letter-spacing: .06em;
 line-height: 1.45;
}
.books-list-meta {
 margin-bottom: 16px;
 color: var(--color-accent);
 font-family: var(--font-title);
 font-size: .82rem;
 letter-spacing: .04em;
}
.books-list-meta span { color: var(--color-main); }
.books-list-pills { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.books-list-pills span {
 display: inline-block;
 padding: 3px 10px;
 border: 1px solid var(--color-main);
 border-radius: 999px;
 font-size: .76rem;
 line-height: 1.4;
}
.books-list-story { margin: 0; line-height: 1.9; font-size: .9rem; }

/* ---------- Book detail: dorodoro-inspired structure ---------- */
.book-detail-back { margin-bottom: 28px; font-size: .86rem; }
.book-detail-back a { text-decoration: none; }
.book-detail-page { max-width: 860px; }
.book-detail-hero {
 display: grid;
 grid-template-columns: minmax(220px, 310px) minmax(0, 1fr);
 gap: 54px;
 align-items: start;
 margin-bottom: 70px;
}
.book-detail-cover img { display: block; width: 100%; height: auto; border: 1px solid var(--color-sub); }
.book-detail-cover-empty { aspect-ratio: 3/4; display: flex; align-items: center; justify-content: center; border: 1px solid var(--color-sub); color: var(--color-main); }
.book-detail-summary h1 { margin: 0 0 10px; font-family: var(--font-title); font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1.45; }
.book-detail-compact { margin: 0 0 30px; color: var(--color-accent); font-family: var(--font-title); letter-spacing: .04em; }
.book-detail-spec {
 display: grid;
 grid-template-columns: 88px minmax(0, 1fr);
 gap: 8px 18px;
 margin: 0;
}
.book-detail-spec dt { font-family: var(--font-title); color: var(--color-main); }
.book-detail-spec dd { margin: 0; }
.book-detail-purchase { margin-top: 30px; }
.book-detail-purchase a,
.book-sample-external { text-decoration: none; border-bottom: 1px solid currentColor; }
.book-detail-section { margin-top: 70px; }
.book-detail-section > h2 { margin-bottom: 22px; font-size: 1.18rem; }
.book-detail-section > h2 span { display: inline-block; margin-right: .55em; font-family: var(--font-title); color: var(--color-accent); text-transform: lowercase; }
.book-sample-grid {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 14px;
 margin-top: 24px;
}
.book-sample-thumb {
 appearance: none;
 display: block;
 padding: 0;
 border: 1px solid #111;
 background: #fff;
 overflow: hidden;
 cursor: zoom-in;
}
.book-sample-thumb img { display: block; width: 100%; height: auto; transition: opacity .18s ease; }
.book-sample-thumb:hover img { opacity: .72; }

/* ---------- Gallery ---------- */
.gallery-filter,
.blog-category-filter,
.blog-category-inline {
 appearance: none;
 border: 0;
 background: transparent;
 color: var(--color-text);
 font: inherit;
 cursor: pointer;
}
.gallery-category-filters { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 34px; }
.gallery-filter { padding: 2px 0; color: var(--color-main); border-bottom: 1px solid transparent; }
.gallery-filter.is-active { color: var(--color-text); border-bottom-color: var(--color-text); }
.gallery-masonry { column-width: 180px; column-gap: 10px; }
.gallery-tile { display: inline-block; width: 100%; break-inside: avoid; margin: 0 0 10px; vertical-align: top; }
.gallery-tile.is-hidden { display: none; }
.gallery-thumb {
 position: relative;
 appearance: none;
 display: block;
 width: 100%;
 padding: 0;
 border: 1px solid #111;
 background: #fff;
 cursor: zoom-in;
 overflow: hidden;
}
.gallery-thumb img { display: block; width: 100%; height: auto; object-fit: contain; transition: opacity .18s ease; }
.gallery-thumb:hover img { opacity: .72; }
.gallery-page-badge,
.gallery-r18-badge {
 position: absolute;
 right: 6px;
 bottom: 6px;
 padding: 2px 7px;
 background: rgba(0,0,0,.78);
 color: #fff;
 font-family: sans-serif;
 font-size: .72rem;
 line-height: 1.4;
}
.gallery-r18-badge { right: auto; left: 6px; }

.gallery-thumb.is-r18 img {
 filter: blur(14px) brightness(.78);
 transform: scale(1.08);
}
.gallery-thumb.is-r18:hover img {
 opacity: 1;
 filter: blur(14px) brightness(.72);
}

/* ---------- Blog category sidebar / filters ---------- */
.blog-layout {
 display: grid;
 grid-template-columns: minmax(0, 1fr) 190px;
 gap: 54px;
 align-items: start;
}
.blog-category-side {
 position: sticky;
 top: 70px;
 border-left: 1px solid var(--color-sub);
 padding-left: 22px;
}
.blog-category-side h3 { margin: 0 0 16px; font-family: var(--font-title); font-size: 1rem; }
.blog-category-buttons { display: grid; gap: 7px; }
.blog-category-filter { text-align: left; padding: 3px 0; color: var(--color-main); }
.blog-category-filter.is-active { color: var(--color-text); font-weight: 700; }
.blog-filter-item.is-hidden { display: none; }
.blog-category-inline { padding: 0; color: var(--color-main); text-decoration: underline; text-underline-offset: 3px; }
.blog-category-inline:hover { color: var(--color-accent); }
.blog-r18-label { display: inline-block; margin-left: 8px; padding: 1px 6px; background: var(--color-accent); color: var(--color-bg); font-size: .72rem; }

.blog-filter-item.is-r18 .comment img {
 filter: blur(14px) brightness(.78);
 transform: scale(1.04);
}
.blog-filter-item.is-r18 .comment .blog-image-wrap {
 overflow: hidden;
}

.cms-empty { color: var(--color-main); padding: 18px 0; }

@media screen and (max-width: 900px) {
 .books-list { grid-template-columns: 1fr; gap: 48px; }
 .blog-layout { grid-template-columns: 1fr; }
 .blog-category-side { position: static; grid-row: 1; border-left: 0; border-bottom: 1px solid var(--color-sub); padding: 0 0 22px; }
 .blog-category-buttons { display: flex; flex-wrap: wrap; gap: 8px 18px; }
}

@media screen and (max-width: 680px) {
 .media-viewer { grid-template-columns: 42px minmax(0, 1fr) 42px; }
 .media-viewer__nav { font-size: 42px; }
 .event-top-card { grid-template-columns: max-content minmax(0, 1fr); gap: 14px; }
 .event-top-thumb { max-width: 96px; }
 .event-top-thumb img { max-width: 94px; max-height: 82px; }
 .event-top-thumb.event-image-empty { width: 82px; height: 82px; }
 .books-list-card { grid-template-columns: 118px minmax(0, 1fr); gap: 18px; }
 .books-list-cover, .books-list-cover img { width: 118px; }
 .books-list-title { font-size: 1rem; }
 .book-detail-hero { grid-template-columns: 1fr; gap: 28px; }
 .book-detail-cover { max-width: 330px; }
 .book-sample-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
 .gallery-masonry { column-width: 140px; column-gap: 9px; }
 .gallery-tile { margin-bottom: 9px; }
}


/* ---------- v23 typography ---------- */
body {
 letter-spacing: .075em;
 font-weight: 400;
}
.headingL,
.headingM,
.headingS {
 font-family: var(--font-title);
 font-weight: 600;
 letter-spacing: .08em;
}

/* ---------- v23 screenshot-inspired About ---------- */
.about-reference {
 max-width: 920px;
}
.about-reference__heading {
 display: flex;
 align-items: center;
 gap: 14px;
}
.about-reference__heading::after {
 content: "";
 width: 34px;
 height: 1px;
 background: var(--color-accent);
}
.about-reference__layout {
 display: grid;
 grid-template-columns: 190px minmax(0, 1fr);
 gap: 38px;
 align-items: start;
 margin-top: 34px;
}
.about-reference__side {
 min-width: 0;
}
.about-site-banner {
 width: 176px;
 height: 40px;
 display: flex;
 align-items: center;
 justify-content: center;
 overflow: hidden;
 background:
  linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,0)),
  var(--color-sub);
 border: 1px solid var(--color-main);
 color: var(--color-text);
 font-family: var(--font-title);
 font-size: .72rem;
 letter-spacing: .16em;
}
.about-reference__meta {
 margin: 20px 0 0;
}
.about-reference__meta > div {
 display: grid;
 grid-template-columns: max-content 1fr;
 gap: 8px;
 align-items: baseline;
 margin: 10px 0;
 font-size: .8rem;
}
.about-reference__meta dt {
 color: var(--color-accent);
 font-family: var(--font-title);
}
.about-reference__meta dt::after {
 content: "";
 display: inline-block;
 width: 38px;
 height: 1px;
 margin-left: 8px;
 vertical-align: middle;
 background: var(--color-sub);
}
.about-reference__meta dd {
 margin: 0;
 overflow-wrap: anywhere;
}
.about-reference__body {
 font-size: .9rem;
 line-height: 2;
}
.about-reference__body p {
 margin: 0 0 20px;
}
.about-reference__links {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 font-family: var(--font-title);
 font-size: .78rem;
}

/* ---------- v23 viewer fix ---------- */
.media-viewer__prev { grid-column: 1; }
.media-viewer__stage {
 grid-column: 2;
 width: 100%;
 min-width: 0;
}
.media-viewer__next { grid-column: 3; }
#media-viewer-image {
 width: 100%;
 height: calc(92vh - 36px);
 max-width: none;
 max-height: none;
 object-fit: contain;
}

/* ---------- v23 Blog R18 reveal ---------- */
.blog-filter-item.is-r18 .comment img {
 cursor: pointer;
 transition: filter .2s ease, transform .2s ease;
}
.blog-filter-item.is-r18 .comment img.is-r18-revealed {
 filter: none;
 transform: none;
}
.blog-filter-item.is-r18 .comment img.is-r18-revealed:hover {
 filter: none;
 transform: none;
}

@media screen and (max-width: 700px) {
 .about-reference__layout {
  grid-template-columns: 1fr;
  gap: 26px;
 }
 .about-reference__side {
  max-width: 320px;
 }
 .about-site-banner {
  width: 176px;
 }
}


/* ---------- v24 colors / menu ---------- */
@media screen and (min-width: 1181px), print {
 .header {
  background: var(--color-menu);
  border-right-color: var(--color-menu);
  color: var(--color-white);
 }
 .header a,
 .header .sitename,
 .header .globalnav__item a {
  color: var(--color-white);
 }
 .header svg {
  color: var(--color-white);
  fill: currentColor;
 }
 .header .globalnav__item a:hover,
 .header .globalnav__item a:has(+.globalnav__child:hover) {
  color: var(--color-white);
  background-color: var(--color-accent);
 }
}

@media screen and (max-width: 1180px) {
 .globalnav {
  background-color: var(--color-menu);
  color: var(--color-white);
 }
 .globalnav a,
 .globalnav .globalnav__item a {
  color: var(--color-white);
 }
 .globalnav svg {
  color: var(--color-white);
  fill: currentColor;
 }
}

/* ---------- v24 viewer ---------- */
#media-viewer-image {
 box-shadow: none;
 border: 0;
 outline: 0;
 background: transparent;
}

/* ---------- v24 Books long text ---------- */
.books-list-body {
 min-width: 0;
 max-width: 100%;
 overflow: hidden;
}
.books-list-story {
 max-width: 100%;
 overflow-wrap: anywhere;
 word-break: break-word;
 white-space: normal;
}
.books-list-title,
.books-list-meta,
.books-list-pills {
 max-width: 100%;
 overflow-wrap: anywhere;
}


/* ---------- v25 menu position ---------- */
@media screen and (min-width: 1181px), print {
 .header-inner {
  justify-content: flex-start;
  align-items: center;
  padding-top: 72px;
  gap: 70px;
 }
 .header-inner .globalnav {
  margin-top: 0;
 }
}

/* ---------- v25 viewer clickable background ---------- */
.media-viewer__stage {
 cursor: zoom-out;
}
#media-viewer-image {
 width: auto;
 height: auto;
 max-width: 100%;
 max-height: calc(92vh - 42px);
 object-fit: contain;
 cursor: default;
}

/* ---------- v25 R18 blog toggle ---------- */
.blog-filter-item.is-r18 .comment img {
 user-select: none;
}


/* ---------- v26 site name / current menu ---------- */
.sitename a{
 text-decoration:none;
 color:inherit;
}
.globalnav__item a.is-current{
 background:var(--color-accent);
 color:var(--color-white) !important;
}

/* Mobileでもサイト名からトップへ戻れるように表示 */
@media screen and (max-width:1180px){
 .header .header-inner .sitename{
  display:block;
  position:fixed;
  top:14px;
  left:18px;
  z-index:1001;
  margin:0;
  font-size:14px;
  color:var(--color-text);
 }
}

/* ---------- v26 top spacing ---------- */
.about-reference{
 padding-bottom:40px;
}
.event-top-section{
 margin-top:0;
 padding-top:40px;
 padding-bottom:40px;
}
.event-top-section .headingL{
 margin-top:0;
 margin-bottom:14px;
}
.event-top-list{
 gap:10px;
}
#link{
 padding-top:40px;
}

/* ---------- v26 Memo page ---------- */
.memo-top-wrap{
 margin:42px 0 0;
 text-align:right;
}
.memo-top-button{
 display:inline-block;
 padding:8px 14px;
 border:1px solid var(--color-main);
 text-decoration:none;
 background:transparent;
 color:var(--color-text);
}
.memo-top-button:hover{
 border-color:var(--color-accent);
 background:var(--color-accent);
 color:var(--color-white);
}

/* ---------- v26 scrollbar ---------- */
html{
 scrollbar-color:var(--color-accent) var(--color-bg);
 scrollbar-width:thin;
}
::-webkit-scrollbar{
 width:10px;
 height:10px;
}
::-webkit-scrollbar-track{
 background:var(--color-bg);
}
::-webkit-scrollbar-thumb{
 background:var(--color-accent);
 border:2px solid var(--color-bg);
 border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{
 background:var(--color-accent);
}

/* v28 Base01 one-column */
body{background:var(--color-bg);color:var(--color-text)}
.header{
 position:fixed;top:0;left:0;width:100%;height:auto;min-height:64px;
 padding:0 24px;background:var(--color-menu);border:0;color:#fff;z-index:1000
}
.header-inner{
 width:100%;max-width:1000px;min-height:64px;height:auto;margin:0 auto;padding:0;
 display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:26px
}
.header-inner .sitename,.header .header-inner .sitename{
 display:block;position:static;margin:0;padding:0;font-size:16px;color:#fff;white-space:nowrap
}
.sitename a{color:#fff;text-decoration:none}
.globalnav{
 position:static;inset:auto;width:auto;height:auto;display:flex;flex-direction:row;
 align-items:center;justify-content:flex-end;gap:18px;margin:0;padding:0;
 background:transparent;opacity:1;transform:none;color:#fff
}
.globalnav__main{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0}
.globalnav__item{margin:0}
.globalnav__item a{display:block;padding:7px 12px;color:#fff;text-decoration:none;border-radius:2px}
.globalnav__item a:hover,.globalnav__item a.is-current{background:var(--color-accent);color:#fff!important}
.globalnav .social-icons{margin:0 0 0 8px}
.header .social-icons svg{color:#fff;fill:currentColor}
.container{width:100%;margin:0}
.mainwrapper{width:min(calc(100% - 40px),1000px);max-width:1000px;margin:0 auto;padding:112px 0 60px}
footer,.footer{max-width:1000px;margin:0 auto}
.about-reference{max-width:920px;padding-bottom:36px}
.event-top-section{margin-top:0;padding-top:36px;padding-bottom:36px}
.event-top-section .headingL{margin-top:0;margin-bottom:14px}
.event-top-list{gap:10px}
#link{padding-top:36px}
.books-list,.gallery-masonry,.blog-layout{width:100%}
.media-viewer{z-index:3000}
html{scrollbar-color:var(--color-accent) var(--color-bg);scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--color-bg)}
::-webkit-scrollbar-thumb{background:var(--color-accent);border:2px solid var(--color-bg);border-radius:999px}
@media screen and (min-width:1025px),print{
 .header-inner{justify-content:space-between;padding-top:0;gap:26px}
 .hamburger{display:none}
}
@media screen and (max-width:1024px){
 .header{min-height:54px;padding:0 16px}
 .header-inner{min-height:54px}
 .header .header-inner .sitename{display:block;position:static;margin:0;font-size:14px;color:#fff;z-index:1001}
 .hamburger{display:flex}
 .hamburger .hamburger__line,.hamburger .hamburger__line::before,.hamburger .hamburger__line::after{background-color:#fff}
 .hamburger._active .hamburger__line{background:transparent}
 .globalnav{
  position:fixed;inset:0;width:100%;height:100dvh;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:26px;background:var(--color-menu);
  opacity:0;transform:translateX(100%);transition:.35s;z-index:998
 }
 .globalnav._active{opacity:1;transform:translateX(0)}
 .globalnav__main{flex-direction:column;gap:10px}
 .globalnav__item a{padding:8px 18px}
 .globalnav .social-icons{margin:12px 0 0}
 .mainwrapper{width:min(calc(100% - 32px),1000px);padding-top:88px}
}
@media screen and (max-width:700px){
 .about-reference__layout{grid-template-columns:1fr}
 .books-list{grid-template-columns:1fr}
}


/* =========================================================
   v29 navigation
   ========================================================= */
.header{
 background:rgba(132,143,150,.90);
 border-bottom:1px solid #000;
 backdrop-filter:blur(5px);
 -webkit-backdrop-filter:blur(5px);
}

/* Site title is only a Top link; never give it a hover background. */
.sitename a,
.sitename a:hover,
.sitename a:focus{
 background:transparent !important;
 color:#fff !important;
}

/* Menu text: bold + animated underline instead of background fill. */
.globalnav__item a{
 position:relative;
 overflow:visible;
 font-weight:700;
 background:transparent !important;
}
.globalnav__item a::after{
 content:"";
 position:absolute;
 left:10px;
 right:auto;
 bottom:2px;
 width:0;
 height:3px;
 background:var(--color-accent);
 transition:width .24s ease;
}
.globalnav__item a:hover,
.globalnav__item a.is-current{
 background:transparent !important;
 color:#fff !important;
}
.globalnav__item a:hover::after,
.globalnav__item a.is-current::after{
 width:calc(100% - 20px);
}

@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(132,143,150,.96);
 }
}

/* =========================================================
   v29 image borders
   ========================================================= */
.books-list-cover img,
.books-list-cover--empty,
.book-detail-cover img,
.book-detail-cover-empty,
.book-sample-thumb,
.gallery-thumb{
 border-color:var(--color-text) !important;
}

/* =========================================================
   v29 Book detail headings
   ========================================================= */
.book-detail-section > h2{
 font-weight:700;
 color:var(--color-text);
}
.book-detail-section > h2 span{
 display:none;
}
.book-sample-linkrow{
 margin:0 0 18px;
}

/* =========================================================
   v29 Top latest content
   ========================================================= */
.top-latest-section{
 padding-top:36px;
 padding-bottom:36px;
}
.top-latest-heading{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:18px;
 margin-bottom:18px;
 border-bottom:1px solid var(--color-sub);
}
.top-latest-heading .headingL{
 margin:0;
 border-bottom:0;
}
.top-latest-heading > a{
 margin-bottom:7px;
 font-size:.8rem;
 text-decoration:none;
 white-space:nowrap;
}

.top-gallery-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:18px;
 align-items:start;
}
.top-gallery-card{
 position:relative;
 display:block;
 width:100%;
 padding:0;
 border:1px solid var(--color-text);
 background:transparent;
 cursor:zoom-in;
 overflow:hidden;
}
.top-gallery-card img{
 display:block;
 width:100%;
 height:220px;
 object-fit:contain;
 background:transparent;
}
.top-gallery-card.is-r18 img{
 filter:blur(14px) brightness(.78);
 transform:scale(1.08);
}
.top-gallery-card.is-r18:hover img{
 filter:blur(14px) brightness(.72);
}
.top-gallery-card .gallery-page-badge,
.top-gallery-card .gallery-r18-badge{
 z-index:1;
}

.top-memo-list{
 display:grid;
 gap:0;
 border-top:1px solid var(--color-sub);
}
.top-memo-card{
 border-bottom:1px solid var(--color-sub);
}
.top-memo-card > a{
 display:block;
 padding:16px 4px;
 text-decoration:none;
}
.top-memo-card > a:hover{
 background:rgba(81,77,159,.07);
}
.top-memo-meta{
 display:flex;
 flex-wrap:wrap;
 gap:8px 14px;
 color:var(--color-main);
 font-size:.76rem;
}
.top-memo-card h3{
 margin:6px 0 4px;
 font-size:.98rem;
 font-weight:700;
}
.top-memo-card p{
 margin:0;
 font-size:.82rem;
 line-height:1.7;
 color:var(--color-text);
}
.top-memo-r18{
 color:var(--color-accent);
 font-weight:700;
}

@media screen and (max-width:700px){
 .top-gallery-grid{
  gap:10px;
 }
 .top-gallery-card img{
  height:150px;
 }
 .top-latest-heading{
  align-items:center;
 }
}


/* =========================================================
   v30 TOP main visual
   ========================================================= */
.fv.fv--image{
 margin-top:64px;
 padding:54px 20px 46px;
 text-align:center;
}
.fv__main-image{
 display:block;
 width:min(100%, 1000px);
 height:auto;
 margin:0 auto;
 border:0;
 outline:0;
 object-fit:contain;
 user-select:none;
 -webkit-user-drag:none;
}

@media screen and (max-width:1024px){
 .fv.fv--image{
  margin-top:54px;
  padding:38px 16px 34px;
 }
}


/* =========================================================
   v31 TOP design adjustments from annotated reference
   ========================================================= */

/* Header: white background, thin black line.
   Menu text/icons use the accent color indicated in the reference. */
.header{
 background:rgba(255,255,255,.96) !important;
 border-bottom:1px solid #000 !important;
 color:var(--color-text) !important;
 backdrop-filter:blur(5px);
 -webkit-backdrop-filter:blur(5px);
}

.header-inner .sitename,
.header .header-inner .sitename{
 color:var(--color-text) !important;
}

.sitename a,
.sitename a:hover,
.sitename a:focus{
 color:var(--color-text) !important;
 background:transparent !important;
}

.globalnav__item a,
.globalnav__item a:hover,
.globalnav__item a.is-current{
 color:var(--color-accent) !important;
 background:transparent !important;
}

.header .social-icons svg{
 color:var(--color-accent) !important;
 fill:currentColor !important;
}

.hamburger .hamburger__line,
.hamburger .hamburger__line::before,
.hamburger .hamburger__line::after{
 background-color:var(--color-text) !important;
}

/* Mobile menu is also white. */
@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(255,255,255,.98) !important;
 }
 .globalnav__item a{
  color:var(--color-accent) !important;
 }
 .header .social-icons svg{
  color:var(--color-accent) !important;
 }
 .hamburger._active .hamburger__line{
  background:transparent !important;
 }
}

/* Hero image: stretch to the full viewport width. */
.fv.fv--image{
 width:100%;
 max-width:none;
 margin-top:64px;
 padding:0;
 text-align:center;
 overflow:hidden;
}
.fv__main-image{
 display:block;
 width:100%;
 max-width:none;
 height:auto;
 margin:0;
 object-fit:contain;
 border:0;
 outline:0;
}

@media screen and (max-width:1024px){
 .fv.fv--image{
  margin-top:54px;
  padding:0;
 }
}

/* About metadata: align all values to one left edge. */
.about-reference__meta{
 display:grid;
 grid-template-columns:72px minmax(0,1fr);
 column-gap:10px;
 row-gap:0;
}
.about-reference__meta > div{
 display:contents;
}
.about-reference__meta dt,
.about-reference__meta dd{
 padding:4px 0;
}
.about-reference__meta dt::after{
 width:28px;
 margin-left:7px;
}
.about-reference__meta dd{
 text-align:left;
}

/* Event content area: white block. */
.event-top-list{
 gap:0;
 background:#fff;
 border:1px solid var(--color-sub);
}
.event-top-card{
 padding:14px;
 border-bottom:1px solid var(--color-sub);
 background:#fff;
}
.event-top-card:last-child{
 border-bottom:0;
}

/* Latest Gallery: make thumbnails themselves larger instead of
   centering a small image inside a fixed-height box. */
.top-gallery-grid{
 gap:18px;
}
.top-gallery-card img{
 width:100%;
 height:auto;
 max-height:none;
 object-fit:contain;
}

/* Latest Memo: white block like the reference. */
.top-memo-list{
 background:#fff;
 border:1px solid var(--color-sub);
}
.top-memo-card{
 background:#fff;
}
.top-memo-card:last-child{
 border-bottom:0;
}

/* Link section: the Favorite label was removed in HTML. */
#link > section{
 padding-top:0;
}


/* =========================================================
   v32 palette: cool blue-gray + blue-violet accent
   ========================================================= */
body{
 background:var(--color-bg) !important;
 color:var(--color-text);
}

.header{
 background:rgba(255,255,255,.98) !important;
 border-bottom:1px solid #C9D2D9 !important;
 color:var(--color-text) !important;
 box-shadow:0 1px 0 rgba(34,38,43,.03);
}
.header-inner .sitename,
.header .header-inner .sitename,
.sitename a,
.sitename a:hover,
.sitename a:focus{
 color:var(--color-text) !important;
}

.globalnav__item a,
.globalnav__item a:hover,
.globalnav__item a.is-current{
 color:var(--color-text) !important;
}
.globalnav__item a::after{
 background:var(--color-accent);
}
.globalnav__item a:hover,
.globalnav__item a.is-current{
 color:var(--color-accent) !important;
}
.header .social-icons svg{
 color:var(--color-main) !important;
}
.header .social-icons a:hover svg{
 color:var(--color-accent) !important;
}

.event-top-list,
.top-memo-list{
 background:var(--color-panel);
 border-color:#D2DCE3;
}
.event-top-card,
.top-memo-card{
 background:var(--color-panel);
 border-color:#DCE4E9;
}

.about-site-banner{
 background:var(--color-panel-alt);
 border-color:#AEBBC4;
 color:var(--color-text);
}
.about-reference__meta dt{
 color:var(--color-accent);
}
.about-reference__meta dt::after{
 background:#C7D1D8;
}

.headingL{
 border-bottom-color:#CAD4DB;
}
.about-reference__heading::after{
 background:var(--color-accent);
}
.top-latest-heading{
 border-bottom-color:#CAD4DB;
}
.top-latest-heading > a{
 color:var(--color-accent);
}

.books-list-cover img,
.books-list-cover--empty,
.book-detail-cover img,
.book-detail-cover-empty,
.book-sample-thumb,
.gallery-thumb,
.top-gallery-card{
 border-color:#AEBAC3 !important;
 background:var(--color-panel);
}
.books-list-pills span{
 border-color:#A9B5BE;
 background:rgba(255,255,255,.58);
}
.books-list-meta,
.book-detail-compact{
 color:var(--color-accent);
}

.gallery-category-filters,
.blog-category-buttons{
 gap:8px 10px;
}
.gallery-filter,
.blog-category-filter{
 padding:5px 10px;
 border:1px solid #D4DEE5;
 border-radius:2px;
 background:rgba(255,255,255,.72);
 color:#59656D;
}
.gallery-filter:hover,
.gallery-filter.is-active,
.blog-category-filter:hover,
.blog-category-filter.is-active{
 border-color:var(--color-accent);
 background:var(--color-accent-soft);
 color:var(--color-accent);
}
.blog-category-inline{
 color:var(--color-accent);
}

.blog-filter-item{
 background:var(--color-panel);
 border:1px solid #D7E0E6;
 padding:18px 20px;
 margin-bottom:18px;
}
.blog-category-side{
 border-left-color:#CAD4DB;
}

.memo-top-button,
.book-detail-purchase a,
.book-sample-external{
 color:var(--color-accent);
}
.memo-top-button{
 border-color:#B6C2CB;
 background:rgba(255,255,255,.68);
}
.memo-top-button:hover{
 border-color:var(--color-accent);
 background:var(--color-accent);
 color:#fff;
}

.mailform input,
.mailform textarea{
 background:var(--color-panel);
 border-color:#CDD8DF;
}
.btn{
 background:var(--color-rail);
}
.btn:hover{
 background:var(--color-accent);
}

footer,
.cms-empty,
.books-list-meta span{
 color:#6F7B83;
}

html{
 scrollbar-color:var(--color-accent) var(--color-bg);
}
::-webkit-scrollbar-track{
 background:var(--color-bg);
}
::-webkit-scrollbar-thumb{
 background:var(--color-accent);
 border-color:var(--color-bg);
}

@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(255,255,255,.985) !important;
 }
 .globalnav__item a{
  color:var(--color-text) !important;
 }
 .globalnav__item a:hover,
 .globalnav__item a.is-current{
  color:var(--color-accent) !important;
 }
 .hamburger .hamburger__line,
 .hamburger .hamburger__line::before,
 .hamburger .hamburger__line::after{
  background-color:var(--color-text) !important;
 }
 .hamburger._active .hamburger__line{
  background:transparent !important;
 }
}


/* =========================================================
   v33 Memo page
   ========================================================= */

/* Folder mark to the left of each post category name. */
.blog-category-inline{
 position:relative;
 display:inline-flex;
 align-items:center;
 gap:7px;
 text-decoration:none;
}
.blog-category-inline::before{
 content:"";
 display:inline-block;
 width:13px;
 height:9px;
 box-sizing:border-box;
 border:1.5px solid currentColor;
 border-radius:1px;
}
.blog-category-inline::after{
 content:"";
 position:absolute;
 left:1px;
 top:2px;
 width:6px;
 height:3px;
 box-sizing:border-box;
 border:1.5px solid currentColor;
 border-bottom:0;
 border-radius:1px 1px 0 0;
}

/* 24-hour timestamp. */
.postdata time{
 font-variant-numeric:tabular-nums;
}

/* Fixed top control: line + large upward arrow. */
.memo-top-button{
 position:fixed;
 right:clamp(18px,3vw,38px);
 bottom:clamp(18px,3vw,34px);
 z-index:1250;
 display:flex;
 align-items:flex-end;
 justify-content:center;
 width:64px;
 height:74px;
 padding:0 0 2px;
 border:0;
 background:transparent;
 color:var(--color-text);
 text-decoration:none;
}
.memo-top-button::before{
 content:"";
 position:absolute;
 top:0;
 left:0;
 width:64px;
 height:3px;
 background:currentColor;
}
.memo-top-button__arrow{
 display:block;
 font-family:Arial,sans-serif;
 font-size:54px;
 font-weight:300;
 line-height:.9;
}
.memo-top-button:hover{
 background:transparent;
 color:var(--color-accent);
}

/* Hide the template's second page-up control on Memo. */
.memo-page .pageup{
 display:none !important;
}

/* Pagination after category filtering. */
.blog-pagination{
 display:flex;
 flex-wrap:wrap;
 justify-content:center;
 align-items:center;
 gap:6px;
 margin:34px 0 4px;
}
.blog-pagination.hidden{
 display:none;
}
.blog-page-btn{
 min-width:34px;
 height:34px;
 padding:0 9px;
 border:1px solid #C8D2D9;
 background:rgba(255,255,255,.8);
 color:var(--color-text);
 font:inherit;
 cursor:pointer;
}
.blog-page-btn:hover:not(:disabled),
.blog-page-btn.is-active{
 border-color:var(--color-accent);
 background:var(--color-accent);
 color:#fff;
}
.blog-page-btn:disabled{
 opacity:.35;
 cursor:default;
}

@media screen and (max-width:700px){
 .memo-top-button{
  right:14px;
  bottom:14px;
  width:52px;
  height:64px;
 }
 .memo-top-button::before{
  width:52px;
 }
 .memo-top-button__arrow{
  font-size:46px;
 }
}


/* =========================================================
   v34 Memo refinements
   ========================================================= */

/* Smaller fixed top button. */
.memo-top-button{
 width:48px;
 height:56px;
 right:clamp(16px,2.4vw,30px);
 bottom:clamp(16px,2.4vw,28px);
}
.memo-top-button::before{
 width:48px;
 height:2px;
}
.memo-top-button__arrow{
 font-size:40px;
 line-height:.9;
}

/* Folder icon before the right-side "カテゴリ" heading. */
.blog-category-side h3{
 display:flex;
 align-items:center;
 gap:8px;
}
.blog-category-side h3::before{
 content:"";
 position:relative;
 display:inline-block;
 width:15px;
 height:10px;
 flex:0 0 auto;
 box-sizing:border-box;
 border:1.5px solid currentColor;
 border-radius:1px;
}
.blog-category-side h3::after{
 content:"";
 position:absolute;
 width:7px;
 height:4px;
 margin-left:1px;
 margin-top:-10px;
 box-sizing:border-box;
 border:1.5px solid currentColor;
 border-bottom:0;
 border-radius:1px 1px 0 0;
}

@media screen and (max-width:700px){
 .memo-top-button{
  width:42px;
  height:50px;
  right:12px;
  bottom:12px;
 }
 .memo-top-button::before{
  width:42px;
 }
 .memo-top-button__arrow{
  font-size:36px;
 }
}


/* =========================================================
   v35 rounded thumbnails
   ========================================================= */

/* Main thumbnail surfaces */
.books-list-cover,
.books-list-cover img,
.gallery-thumb,
.gallery-thumb img,
.top-gallery-card,
.top-gallery-card img,
.event-top-thumb,
.event-top-thumb img,
.book-sample-thumb,
.book-sample-thumb img{
 border-radius:8px;
}

/* Keep image content clipped to the rounded corners. */
.books-list-cover,
.gallery-thumb,
.top-gallery-card,
.event-top-thumb,
.book-sample-thumb{
 overflow:hidden;
}

/* Empty thumbnail placeholders follow the same shape. */
.books-list-cover--empty,
.event-top-thumb.event-image-empty{
 border-radius:8px;
}


/* =========================================================
   v36 thumbnail / category refinements
   ========================================================= */

/* Event circle-cut stays square-cornered. */
.event-top-thumb,
.event-top-thumb img,
.event-top-thumb.event-image-empty{
 border-radius:0 !important;
}

/* Gallery / Memo category filter buttons: pill shape. */
.gallery-filter,
.blog-category-filter{
 border-radius:999px !important;
 padding-left:13px;
 padding-right:13px;
}

/* TOP latest Gallery: every thumbnail is a rounded square.
   The image fills the square completely with no letterboxing. */
.top-gallery-card{
 aspect-ratio:1 / 1;
 border-radius:10px !important;
 overflow:hidden;
}
.top-gallery-card img{
 width:100%;
 height:100% !important;
 aspect-ratio:1 / 1;
 object-fit:cover !important;
 object-position:center;
 border-radius:10px !important;
}

/* Keep R18 blur covering the full square. */
.top-gallery-card.is-r18 img{
 transform:scale(1.08);
}




/* =========================================================
   v39 Books: list-only, one book per row
   ========================================================= */

.books-list{
 display:grid;
 grid-template-columns:1fr !important;
 gap:42px;
 width:100%;
}

.books-list-card{
 display:grid;
 grid-template-columns:180px minmax(0,1fr);
 gap:30px;
 align-items:start;
 width:100%;
 padding:0 0 38px;
 border-bottom:1px solid #D4DDE3;
}

.books-list-card:last-child{
 border-bottom:0;
}

.books-list-cover{
 width:180px;
 cursor:default;
}

.books-list-cover img{
 display:block;
 width:180px;
 max-height:none;
 height:auto;
 object-fit:contain;
}

.books-list-cover--empty{
 width:180px;
 min-height:240px;
}

.books-list-title{
 margin-top:0;
 font-size:1.2rem;
}

.books-list-meta{
 margin-bottom:12px;
}

.books-list-pills{
 display:flex;
 flex-wrap:wrap;
 gap:7px;
 margin-bottom:16px;
}

.books-list-pills span{
 display:inline-block;
 padding:4px 11px;
 border:1px solid #A9B5BE;
 border-radius:999px;
 background:rgba(255,255,255,.58);
 color:var(--color-text);
 font-size:.76rem;
 line-height:1.4;
}

.books-list-story{
 margin:0;
 overflow-wrap:anywhere;
 word-break:break-word;
}

.books-list-links{
 display:flex;
 flex-wrap:wrap;
 gap:10px 18px;
 margin-top:18px;
}

.books-list-links a{
 color:var(--color-accent);
 text-decoration:none;
 border-bottom:1px solid currentColor;
}

.books-list-links a:hover{
 opacity:.72;
}

@media screen and (max-width:680px){
 .books-list{
  gap:34px;
 }
 .books-list-card{
  grid-template-columns:118px minmax(0,1fr);
  gap:18px;
  padding-bottom:30px;
 }
 .books-list-cover,
 .books-list-cover img{
  width:118px;
 }
 .books-list-cover--empty{
  width:118px;
  min-height:158px;
 }
 .books-list-title{
  font-size:1rem;
 }
 .books-list-links{
  gap:8px 14px;
 }
}


/* =========================================================
   v40 Shared page-up button
   ========================================================= */

/* Use the former Memo design on TOP / Books / Gallery / Memo.
   It remains visible in the bottom-right corner at all times. */
.pageup,
.pageup._active,
.memo-page .pageup{
 position:fixed;
 right:clamp(16px,2.4vw,30px);
 bottom:clamp(16px,2.4vw,28px);
 z-index:1250;
 display:flex !important;
 align-items:flex-end;
 justify-content:center;
 width:48px;
 height:56px;
 padding:0 0 2px;
 border:0;
 border-radius:0;
 background:transparent !important;
 color:var(--color-text);
 text-decoration:none;
 opacity:1 !important;
 visibility:visible !important;
 transform:none;
 pointer-events:auto;
}
.pageup::before{
 content:"";
 position:absolute;
 top:0;
 left:0;
 width:48px;
 height:2px;
 background:currentColor;
}
.pageup__arrow{
 display:block;
 font-family:Arial,sans-serif;
 font-size:40px;
 font-weight:300;
 line-height:.9;
}
.pageup .arrow{
 display:none !important;
}
.pageup:hover{
 background:transparent !important;
 color:var(--color-accent);
}

@media screen and (max-width:700px){
 .pageup,
 .pageup._active,
 .memo-page .pageup{
  width:42px;
  height:50px;
  right:12px;
  bottom:12px;
 }
 .pageup::before{
  width:42px;
 }
 .pageup__arrow{
  font-size:36px;
 }
}


/* =========================================================
   v41 R18 age gate
   ========================================================= */
body.r18-gate-open{
 overflow:hidden;
}

.r18-age-gate{
 position:fixed;
 inset:0;
 z-index:5000;
 display:flex;
 align-items:center;
 justify-content:center;
 padding:24px;
 background:rgba(25,28,34,.72);
 backdrop-filter:blur(6px);
 -webkit-backdrop-filter:blur(6px);
}
.r18-age-gate.hidden{
 display:none !important;
}
.r18-age-gate__panel{
 width:min(100%,460px);
 padding:34px 34px 30px;
 border:1px solid #CBD4DC;
 border-radius:12px;
 background:#fff;
 color:var(--color-text);
 box-shadow:0 18px 55px rgba(20,24,30,.18);
 text-align:center;
}
.r18-age-gate__label{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:54px;
 padding:5px 12px;
 margin-bottom:16px;
 border-radius:999px;
 background:var(--color-accent);
 color:#fff;
 font-size:.8rem;
 font-weight:700;
 letter-spacing:.08em;
}
.r18-age-gate__panel h2{
 margin:0 0 16px;
 font-size:1.35rem;
}
.r18-age-gate__panel p{
 margin:0;
 text-align:center;
 font-size:.9rem;
 line-height:1.9;
}
.r18-age-gate__actions{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:10px;
 margin-top:28px;
}
.r18-age-gate__actions button{
 min-height:44px;
 padding:9px 13px;
 border-radius:999px;
 font:inherit;
 cursor:pointer;
}
.r18-age-gate__confirm{
 border:1px solid var(--color-accent);
 background:var(--color-accent);
 color:#fff;
}
.r18-age-gate__cancel{
 border:1px solid #C7D1D8;
 background:#fff;
 color:var(--color-text);
}
.r18-age-gate__confirm:hover{
 filter:brightness(.94);
}
.r18-age-gate__cancel:hover{
 border-color:var(--color-accent);
 color:var(--color-accent);
}

/* Before approval, R18 thumbnails contain only a generated placeholder.
   The original file is kept in data-r18-src and is not requested. */
.gallery-thumb.r18-pending,
.top-gallery-card.r18-pending{
 cursor:pointer;
}
.gallery-thumb.r18-pending img,
.top-gallery-card.r18-pending img{
 filter:none !important;
 transform:none !important;
 background:var(--color-accent-soft);
 object-fit:cover !important;
}

/* Memo placeholder: keep a useful visible area before the real image loads. */
.blog-filter-item.is-r18 .comment img[data-r18-deferred="1"]{
 display:block;
 width:min(100%,640px);
 min-height:180px;
 aspect-ratio:4 / 3;
 object-fit:cover;
 filter:none !important;
 transform:none !important;
 background:var(--color-accent-soft);
 cursor:pointer;
}

@media screen and (max-width:600px){
 .r18-age-gate{
  padding:16px;
 }
 .r18-age-gate__panel{
  padding:28px 20px 22px;
 }
 .r18-age-gate__actions{
  grid-template-columns:1fr;
 }
}


/* =========================================================
   v42 R18 entry-session behavior
   ========================================================= */

/* Treat the age check as a full entry page. */
.r18-age-gate{
 background:var(--color-bg) !important;
 backdrop-filter:none !important;
 -webkit-backdrop-filter:none !important;
}
.r18-age-gate__panel{
 box-shadow:none;
}
.r18-entry-pending > :not(.r18-age-gate){
 visibility:hidden;
}
.r18-entry-pending .r18-age-gate{
 visibility:visible;
}
.r18-gate-open{
 overflow:hidden;
}

/* "No": all R18 posts are removed from the visible site. */
.r18-minor-mode .gallery-tile.is-r18,
.r18-minor-mode .top-gallery-card.is-r18,
.r18-minor-mode .blog-filter-item.is-r18,
.r18-minor-mode .top-memo-card.is-r18{
 display:none !important;
}

/* "Yes": real R18 images are loaded but thumbnails stay blurred. */
.r18-adult-mode .gallery-thumb.is-r18 img,
.r18-adult-mode .top-gallery-card.is-r18 img,
.r18-adult-mode .blog-filter-item.is-r18 .comment img{
 filter:blur(14px) brightness(.78) !important;
}
.r18-adult-mode .gallery-thumb.is-r18 img,
.r18-adult-mode .top-gallery-card.is-r18 img{
 transform:scale(1.08) !important;
}
.r18-adult-mode .blog-filter-item.is-r18 .comment img{
 transform:scale(1.04) !important;
 cursor:zoom-in;
}

/* Remove the old in-place Memo unblur behavior. */
.r18-adult-mode .blog-filter-item.is-r18 .comment img.is-r18-revealed{
 filter:blur(14px) brightness(.78) !important;
 transform:scale(1.04) !important;
}


/* =========================================================
   v43 R18 entry copy / Memo reveal behavior
   ========================================================= */

/* Entry screen copy */
.r18-age-gate__panel{
 width:min(100%,560px);
 padding:38px 38px 32px;
 text-align:left;
}
.r18-age-gate__intro p{
 margin:0 0 22px;
 text-align:left;
 font-size:.92rem;
 line-height:1.95;
}
.r18-age-gate__intro p:last-child{
 margin-bottom:26px;
}
.r18-age-gate__question{
 margin:0 0 7px !important;
 text-align:center !important;
 line-height:1.5 !important;
}
.r18-age-gate__question strong{
 font-size:1.2rem;
 font-weight:700;
}
.r18-age-gate__note{
 margin:0 !important;
 text-align:center !important;
 color:#8A949C;
 font-size:.78rem;
 line-height:1.6 !important;
}
.r18-age-gate__actions{
 margin-top:24px;
}
.r18-age-gate__label,
.r18-age-gate__panel > h2{
 display:none !important;
}

/* Memo: thumbnail stays blurred until clicked; click toggles blur locally. */
.r18-adult-mode .blog-filter-item.is-r18 .comment img{
 cursor:pointer;
 transition:filter .2s ease, transform .2s ease;
}
.r18-adult-mode .blog-filter-item.is-r18 .comment img.is-r18-revealed{
 filter:none !important;
 transform:none !important;
}
.r18-adult-mode .blog-filter-item.is-r18 .comment img.is-r18-revealed:hover{
 filter:none !important;
 transform:none !important;
}

@media screen and (max-width:600px){
 .r18-age-gate__panel{
  padding:30px 20px 24px;
 }
 .r18-age-gate__intro p{
  font-size:.88rem;
 }
 .r18-age-gate__question strong{
  font-size:1.1rem;
 }
}


/* =========================================================
   v44 TOP About / R18 copy refinements
   ========================================================= */

/* Remove the decorative line beside "このサイトについて". */
.about-reference__heading::after{
 display:none !important;
 content:none !important;
}


/* =========================================================
   v45 About metadata / Privacy Policy
   ========================================================= */

/* Metadata separator: replace the decorative horizontal line with ｜. */
.about-reference__layout{
 grid-template-columns:240px minmax(0,1fr);
}
.about-reference__side{
 width:240px;
 max-width:100%;
}
.about-reference__meta{
 grid-template-columns:72px minmax(0,1fr);
 column-gap:8px;
}
.about-reference__meta dt::after{
 content:"｜" !important;
 display:inline-block !important;
 width:auto !important;
 height:auto !important;
 margin-left:7px !important;
 vertical-align:baseline !important;
 background:none !important;
 color:#A7B1B8;
}
.about-reference__meta dd{
 white-space:nowrap;
 overflow-wrap:normal;
 word-break:normal;
}

/* Privacy policy button below the About notice. */
.privacy-policy-button{
 appearance:none;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:34px;
 padding:5px 14px;
 border:1px solid #C7D1D8;
 border-radius:999px;
 background:rgba(255,255,255,.72);
 color:var(--color-accent);
 font:inherit;
 font-size:.78rem;
 cursor:pointer;
}
.privacy-policy-button:hover{
 border-color:var(--color-accent);
 background:var(--color-accent-soft);
}

/* Privacy policy modal. */
body.privacy-policy-open{
 overflow:hidden;
}
.privacy-policy-modal{
 position:fixed;
 inset:0;
 z-index:5200;
 display:flex;
 align-items:center;
 justify-content:center;
 padding:24px;
 background:rgba(25,28,34,.68);
 backdrop-filter:blur(5px);
 -webkit-backdrop-filter:blur(5px);
}
.privacy-policy-modal.hidden{
 display:none !important;
}
.privacy-policy-modal__panel{
 position:relative;
 width:min(100%,580px);
 max-height:min(82vh,720px);
 overflow:auto;
 padding:34px 36px 30px;
 border:1px solid #CBD4DC;
 border-radius:12px;
 background:#fff;
 color:var(--color-text);
 box-shadow:0 18px 55px rgba(20,24,30,.18);
}
.privacy-policy-modal__panel h2{
 margin:0 40px 22px 0;
 font-size:1.28rem;
}
.privacy-policy-modal__body p{
 margin:0 0 18px;
 text-align:left;
 font-size:.88rem;
 line-height:1.9;
}
.privacy-policy-modal__body p:last-child{
 margin-bottom:0;
}
.privacy-policy-modal__close{
 position:absolute;
 top:12px;
 right:14px;
 width:36px;
 height:36px;
 padding:0;
 border:0;
 background:transparent;
 color:var(--color-main);
 font-size:26px;
 line-height:1;
 cursor:pointer;
}
.privacy-policy-modal__close:hover{
 color:var(--color-accent);
}
.privacy-policy-modal__actions{
 margin-top:26px;
 text-align:center;
}
.privacy-policy-modal__close-button{
 min-width:120px;
 min-height:40px;
 padding:7px 18px;
 border:1px solid var(--color-accent);
 border-radius:999px;
 background:var(--color-accent);
 color:#fff;
 font:inherit;
 cursor:pointer;
}
.privacy-policy-modal__close-button:hover{
 filter:brightness(.94);
}

@media screen and (max-width:700px){
 .about-reference__layout{
  grid-template-columns:1fr;
 }
 .about-reference__side{
  width:min(100%,280px);
 }
 .about-reference__meta{
  grid-template-columns:72px minmax(0,1fr);
 }
 .about-reference__meta dd{
  font-size:.76rem;
 }
 .privacy-policy-modal{
  padding:16px;
 }
 .privacy-policy-modal__panel{
  padding:28px 20px 24px;
 }
}


/* =========================================================
   v46 About metadata separator alignment
   ========================================================= */

/* Give every label the same fixed-width area and place ｜ immediately after it. */
.about-reference__meta{
 grid-template-columns:92px minmax(0,1fr) !important;
 column-gap:8px !important;
}
.about-reference__meta dt{
 display:grid !important;
 grid-template-columns:72px 12px;
 align-items:baseline;
 white-space:nowrap;
}
.about-reference__meta dt::after{
 content:"｜" !important;
 display:block !important;
 width:12px !important;
 height:auto !important;
 margin:0 !important;
 text-align:center;
 vertical-align:baseline !important;
 background:none !important;
 color:#A7B1B8;
}
.about-reference__meta dd{
 white-space:nowrap;
 overflow-wrap:normal;
 word-break:normal;
}

@media screen and (max-width:700px){
 .about-reference__meta{
  grid-template-columns:92px minmax(0,1fr) !important;
 }
}


/* =========================================================
   v47 About separator / Link placeholder
   ========================================================= */

/* Slightly reduce the gap between labels and the aligned ｜ separators. */
.about-reference__meta{
 grid-template-columns:84px minmax(0,1fr) !important;
}
.about-reference__meta dt{
 grid-template-columns:64px 12px !important;
}

.link-undecided{
 margin:0;
 color:#9AA4AB;
 font-size:.86rem;
}


/* =========================================================
   v48 R18 Books / Gallery label
   ========================================================= */

/* If the visitor selects \"No\", hide adult books as well. */
.r18-minor-mode .books-list-card.is-r18{
 display:none !important;
}


/* =========================================================
   v50 mobile menu translucency
   ========================================================= */

/* Let a little more of the page show through behind the open mobile menu. */
@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(255,255,255,.94) !important;
 }
}


/* =========================================================
   v51 Gallery thumbnail metadata / viewer details
   ========================================================= */

/* Category + date slide up inside Gallery thumbnails on mouse hover. */
.gallery-thumb-meta{
 position:absolute;
 left:0;
 right:0;
 bottom:0;
 z-index:2;
 display:flex;
 justify-content:space-between;
 align-items:flex-end;
 gap:8px;
 padding:22px 10px 9px;
 color:#fff;
 background:linear-gradient(to top,rgba(18,20,24,.82),rgba(18,20,24,0));
 font-family:sans-serif;
 font-size:.72rem;
 line-height:1.35;
 text-align:left;
 pointer-events:none;
 opacity:0;
 transform:translateY(105%);
 transition:transform .24s ease,opacity .20s ease;
}
.gallery-thumb-meta__category{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.gallery-thumb-meta__date{
 flex:none;
 white-space:nowrap;
 opacity:.88;
}
@media (hover:hover) and (pointer:fine){
 .gallery-thumb:hover .gallery-thumb-meta,
 .top-gallery-card:hover .gallery-thumb-meta,
 .gallery-thumb:focus-visible .gallery-thumb-meta,
 .top-gallery-card:focus-visible .gallery-thumb-meta{
  opacity:1;
  transform:translateY(0);
 }
}

/* Keep page/R18 badges clear of the hover information. */
.gallery-page-badge,
.gallery-r18-badge{
 top:6px;
 bottom:auto !important;
 z-index:3;
}
.gallery-r18-badge{
 left:6px;
 right:auto;
}
.gallery-page-badge{
 right:6px;
}

/* Gallery information displayed beneath the enlarged image. */
.media-viewer__counter:empty{
 display:none;
}
.media-viewer.has-meta #media-viewer-image{
 max-height:calc(92vh - 132px);
}
.media-viewer__meta{
 width:min(100%,760px);
 margin-top:12px;
 padding:0 10px;
 color:#E8E8EA;
 font-family:sans-serif;
 font-size:.82rem;
 line-height:1.65;
 text-align:left;
 cursor:default;
}
.media-viewer__meta.hidden{
 display:none !important;
}
.media-viewer__meta-row{
 display:flex;
 flex-wrap:wrap;
 gap:7px 22px;
 color:#D1D1D5;
}
.media-viewer__meta-label{
 margin-right:8px;
 color:#8F9098;
 font-size:.74rem;
}
.media-viewer__note{
 margin:4px 0 0;
 color:#F2F2F4;
 overflow-wrap:anywhere;
}
@media screen and (max-width:680px){
 .media-viewer.has-meta #media-viewer-image{
  max-height:calc(88dvh - 130px);
 }
 .media-viewer__meta{
  width:100%;
  padding:0 6px;
  font-size:.78rem;
 }
 .media-viewer__meta-row{
  gap:4px 14px;
 }
}


/* =========================================================
   v52 Viewer metadata styling
   ========================================================= */

.media-viewer__meta-row{
 align-items:center;
 gap:8px 14px;
 color:inherit;
}

.media-viewer__category{
 display:inline-flex;
 align-items:center;
 min-height:24px;
 padding:2px 10px;
 border:1px solid rgba(232,233,250,.62);
 border-radius:999px;
 color:#E8E9FA;
 font-size:.76rem;
 line-height:1.35;
 font-weight:400;
}

.media-viewer__date{
 color:var(--color-accent);
 font-weight:700;
}

.media-viewer__note{
 margin-top:7px;
 color:#F2F2F4;
 font-weight:400 !important;
}

.media-viewer__meta-label{
 display:none !important;
}


/* =========================================================
   v53 Gallery badge placement
   ========================================================= */

.gallery-badge-row{
 position:absolute;
 top:6px;
 left:6px;
 z-index:3;
 display:flex;
 align-items:center;
 gap:4px;
 pointer-events:none;
}

.gallery-badge-row .gallery-page-badge,
.gallery-badge-row .gallery-r18-badge{
 position:static !important;
 inset:auto !important;
 display:inline-flex;
 align-items:center;
 padding:2px 7px;
 border-radius:5px;
 background:rgba(0,0,0,.78);
 color:#fff;
 font-family:sans-serif;
 font-size:.72rem;
 line-height:1.4;
}

.gallery-badge-row .gallery-r18-badge{
 order:1;
}

.gallery-badge-row .gallery-page-badge{
 order:2;
}


/* =========================================================
   v55 Contact / reactions
   ========================================================= */

.reaction-contact__inner{
 width:min(100%,680px);
}

.reaction-like{
 margin-bottom:32px;
}

.reaction-like__button{
 appearance:none;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:8px;
 min-width:180px;
 min-height:46px;
 padding:10px 24px;
 border:1px solid var(--color-accent);
 border-radius:999px;
 background:var(--color-panel);
 color:var(--color-accent);
 font:inherit;
 font-weight:700;
 cursor:pointer;
 transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.reaction-like__button:hover{
 background:var(--color-accent);
 color:#fff;
 transform:translateY(-2px);
 box-shadow:0 7px 18px rgba(91,95,199,.16);
}

.reaction-like__button:disabled{
 cursor:wait;
 opacity:.62;
 transform:none;
}

.reaction-like__heart{
 font-size:1.25em;
 line-height:1;
}

.reaction-thanks{
 margin-top:18px;
 width:min(100%,390px);
 padding:18px;
 border:1px solid #D5DDE3;
 border-radius:10px;
 background:var(--color-panel);
 text-align:center;
}

.reaction-thanks.hidden,
.reaction-thanks__image.hidden{
 display:none !important;
}

.reaction-thanks__title{
 margin:0 0 12px;
 color:var(--color-accent);
 font-weight:700;
}

.reaction-thanks__image{
 display:block;
 width:auto;
 max-width:100%;
 max-height:420px;
 margin:0 auto;
 object-fit:contain;
 border-radius:8px;
}

.reaction-message{
 padding-top:28px;
 border-top:1px solid #D2DCE3;
}

.reaction-message__intro{
 margin:0 0 14px;
}

.reaction-message textarea{
 display:block;
 width:100%;
 min-height:150px;
 resize:vertical;
 padding:13px 14px;
 border:1px solid #C7D2DA;
 border-radius:8px;
 background:var(--color-panel);
 color:var(--color-text);
 font:inherit;
 line-height:1.75;
 outline:none;
}

.reaction-message textarea:focus{
 border-color:var(--color-accent);
 box-shadow:0 0 0 3px rgba(91,95,199,.10);
}

.reaction-message__foot{
 display:flex;
 justify-content:space-between;
 gap:12px;
 margin-top:7px;
 color:#8A969E;
 font-size:.74rem;
}

.reaction-message__submit{
 appearance:none;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:190px;
 min-height:42px;
 margin-top:14px;
 padding:9px 20px;
 border:1px solid var(--color-accent);
 border-radius:999px;
 background:var(--color-accent);
 color:#fff;
 font:inherit;
 font-weight:700;
 cursor:pointer;
 transition:opacity .18s ease, transform .18s ease;
}

.reaction-message__submit:hover{
 transform:translateY(-1px);
}

.reaction-message__submit:disabled{
 cursor:wait;
 opacity:.62;
 transform:none;
}

.reaction-status{
 min-height:1.5em;
 margin:8px 0 0;
 color:#748089;
 font-size:.78rem;
}

.reaction-status.is-success{
 color:var(--color-accent);
}

.reaction-status.is-error{
 color:#A64A56;
}

@media screen and (max-width:680px){
 .reaction-contact__inner{
  width:100%;
 }
 .reaction-like__button,
 .reaction-message__submit{
  width:100%;
 }
 .reaction-thanks{
  width:100%;
 }
}


/* =========================================================
   v56 Reaction refinements
   ========================================================= */

.reaction-like{
 position:relative;
 margin-bottom:26px;
}

.reaction-like__intro{
 margin:0 0 12px;
}

.reaction-like__button-wrap{
 position:relative;
 display:inline-block;
}

.reaction-like__count{
 margin:7px 0 0;
 color:#8A969E;
 font-size:.76rem;
}

.reaction-like__button:disabled{
 cursor:not-allowed;
 opacity:.48;
}

.reaction-thanks{
 position:absolute;
 left:50%;
 bottom:calc(100% + 12px);
 z-index:1450;
 width:min(360px,82vw);
 margin:0;
 padding:16px;
 border:1px solid #D2DCE3;
 border-radius:10px;
 background:var(--color-panel);
 box-shadow:0 12px 34px rgba(34,38,43,.18);
 text-align:center;
 opacity:0;
 visibility:hidden;
 pointer-events:none;
 transform:translate(-50%,10px) scale(.985);
 transition:opacity .22s ease, transform .22s ease, visibility .22s ease;
}

.reaction-thanks.is-open{
 opacity:1;
 visibility:visible;
 pointer-events:auto;
 transform:translate(-50%,0) scale(1);
}

.reaction-thanks__image{
 display:block;
 width:auto;
 max-width:100%;
 max-height:420px;
 margin:0 auto;
 padding:4px;
 border:1px solid #BFCAD2;
 border-radius:7px;
 background:#fff;
 box-sizing:border-box;
 object-fit:contain;
}

.reaction-thanks__image.hidden{
 display:none !important;
}

.reaction-message{
 padding-top:0 !important;
 border-top:none !important;
}

.mail-icon{
 overflow:visible;
 fill:none !important;
}

.header .social-icons .mail-icon rect,
.header .social-icons .mail-icon path{
 vector-effect:non-scaling-stroke;
}

@media screen and (max-width:680px){
 .reaction-like__button-wrap{
  width:100%;
 }
 .reaction-thanks{
  width:min(340px,90vw);
 }
}


/* =========================================================
   v57 Header mail icon size
   ========================================================= */

.header .social-icons .mail-icon{
 width:21px !important;
 height:21px !important;
}


/* =========================================================
   v58 CMS-matched public palette / navigation
   ========================================================= */

html,
body{
 background:var(--color-bg);
 color:var(--color-text);
}

/* Header follows the CMS top bar: white, black line, pink active state. */
.header{
 background:#fff !important;
 border-bottom:1px solid #222 !important;
 box-shadow:none !important;
 backdrop-filter:none !important;
 -webkit-backdrop-filter:none !important;
 color:var(--color-text) !important;
}

.sitename a,
.sitename a:hover,
.sitename a:focus{
 color:var(--color-text) !important;
 background:transparent !important;
}

/* Rounded menu pills. */
.globalnav__item a{
 position:relative;
 padding:6px 14px !important;
 border:1px solid transparent;
 border-radius:20px !important;
 background:#fff !important;
 color:var(--color-text) !important;
 font-weight:700;
 transition:
  background-color .18s ease,
  border-color .18s ease,
  color .18s ease,
  transform .18s ease !important;
}

.globalnav__item a::after{
 display:none !important;
 content:none !important;
}

.globalnav__item a:hover{
 border-color:var(--color-accent) !important;
 background:var(--color-accent-soft) !important;
 color:var(--color-text) !important;
 transform:translateY(-1px);
}

.globalnav__item a.is-current{
 border-color:var(--color-accent) !important;
 background:var(--color-accent) !important;
 color:#fff !important;
}

.globalnav__item a.is-current:hover{
 background:var(--color-accent) !important;
 color:#fff !important;
}

/* SNS / contact icons. */
.header .social-icons svg{
 color:var(--color-text) !important;
 fill:currentColor !important;
}

.header .social-icons a:hover svg{
 color:var(--color-accent) !important;
}

/* The envelope has internal whitespace, so enlarge the SVG box a little
   beyond the 18px filled pixiv mark for matching visual size. */
.header .social-icons .mail-icon{
 width:24px !important;
 height:24px !important;
}

/* Hamburger uses the same black as the CMS text. */
.hamburger .hamburger__line,
.hamburger .hamburger__line::before,
.hamburger .hamburger__line::after{
 background-color:var(--color-text) !important;
}

@media screen and (max-width:1024px){
 .globalnav{
  /* Keep the previously requested slight transparency. */
  background:rgba(255,255,255,.94) !important;
  color:var(--color-text) !important;
 }
 .globalnav__item a{
  background:transparent !important;
  color:var(--color-text) !important;
 }
 .globalnav__item a:hover{
  background:var(--color-accent-soft) !important;
 }
 .globalnav__item a.is-current{
  background:var(--color-accent) !important;
  color:#fff !important;
 }
 .header .social-icons svg{
  color:var(--color-text) !important;
 }
 .hamburger._active .hamburger__line{
  background:transparent !important;
 }
}

/* Main white panels / lines use the same white, black and gray family as CMS. */
.event-top-list,
.top-memo-list,
.blog-filter-item,
.r18-age-gate__panel,
.privacy-policy-modal__panel,
.reaction-thanks{
 background:var(--color-panel) !important;
 border-color:#222 !important;
}

.event-top-list,
.top-memo-list{
 border-radius:12px;
 overflow:hidden;
}

.event-top-card,
.top-memo-card{
 background:var(--color-panel) !important;
 border-color:var(--color-sub) !important;
}

.blog-filter-item{
 border-radius:12px;
}

.about-site-banner{
 background:var(--color-panel);
 border-color:#222;
 color:var(--color-text);
}

.about-reference__meta dt{
 color:var(--color-accent);
}

.about-reference__meta dt::after{
 color:#999 !important;
}

/* Headings and separators use the same pink accent as CMS panel headings. */
.headingL,
.top-latest-heading{
 border-bottom-color:#C96A95 !important;
}

.top-latest-heading > a,
.books-list-links a,
.blog-category-inline{
 color:var(--color-accent);
}

/* Filters mimic CMS rounded nav controls. */
.gallery-filter,
.blog-category-filter{
 border:1px solid #222 !important;
 border-radius:20px !important;
 background:#fff !important;
 color:var(--color-text) !important;
}

.gallery-filter:hover,
.blog-category-filter:hover{
 border-color:var(--color-accent) !important;
 background:var(--color-accent-soft) !important;
 color:var(--color-text) !important;
}

.gallery-filter.is-active,
.blog-category-filter.is-active{
 border-color:var(--color-accent) !important;
 background:var(--color-accent) !important;
 color:#fff !important;
}

/* Books / gallery borders shift from blue-gray to CMS neutral gray. */
.books-list-card{
 border-bottom-color:var(--color-sub) !important;
}

.books-list-cover img,
.books-list-cover--empty,
.book-detail-cover img,
.book-detail-cover-empty,
.book-sample-thumb,
.gallery-thumb,
.top-gallery-card{
 border-color:var(--color-sub) !important;
 background:var(--color-panel);
}

.books-list-pills span{
 border-color:#BEBEBE !important;
 background:#fff !important;
}

.books-list-meta,
.book-detail-compact{
 color:var(--color-accent);
}

/* Forms and action buttons. */
.reaction-message textarea{
 border-color:#AAA !important;
 background:#fff;
 color:var(--color-text);
}

.reaction-message textarea:focus{
 border-color:var(--color-accent) !important;
 box-shadow:0 0 0 3px rgba(231,91,153,.12) !important;
}

.reaction-like__button{
 border-color:var(--color-accent);
 background:#fff;
 color:var(--color-accent);
}

.reaction-like__button:hover{
 background:var(--color-accent);
 color:#fff;
 box-shadow:0 7px 18px rgba(231,91,153,.18);
}

.reaction-message__submit{
 border-color:var(--color-accent);
 background:var(--color-accent);
 color:#fff;
}

.reaction-like__count,
.reaction-message__foot,
.reaction-status{
 color:var(--color-main);
}

/* Utility buttons / dialogs. */
.privacy-policy-button{
 border-color:#222;
 background:#fff;
 color:var(--color-text);
}

.privacy-policy-button:hover{
 border-color:var(--color-accent);
 background:var(--color-accent-soft);
 color:var(--color-text);
}

.r18-age-gate__confirm{
 border-color:var(--color-accent);
 background:var(--color-accent);
}

.r18-age-gate__cancel{
 border-color:#222;
 background:#fff;
 color:var(--color-text);
}

.r18-age-gate__cancel:hover{
 border-color:var(--color-accent);
 background:var(--color-accent-soft);
 color:var(--color-text);
}

.pageup,
.pageup._active,
.memo-page .pageup{
 color:var(--color-text);
}

.pageup:hover{
 color:var(--color-accent);
}

/* Viewer stays dark for image visibility; metadata accent follows CMS pink. */
.media-viewer__date{
 color:var(--color-accent);
}

.media-viewer__category{
 border-color:rgba(231,91,153,.72);
 color:#F4B0CF;
}

/* Scrollbar follows CMS accent. */
html{
 scrollbar-color:var(--color-accent) var(--color-bg);
}
::-webkit-scrollbar-track{
 background:var(--color-bg);
}
::-webkit-scrollbar-thumb{
 background:var(--color-accent);
 border-color:var(--color-bg);
}


/* =========================================================
   v59 Dark CMS-matched public theme
   ========================================================= */

html,
body{
 background:#1F1F22 !important;
 color:#E7E7EB !important;
}

body{
 color-scheme:dark;
}

a{
 color:inherit;
}

/* Header / menu: slightly transparent charcoal like the CMS bar. */
.header{
 background:rgba(31,31,34,.94) !important;
 border-bottom:1px solid #3B3D46 !important;
 box-shadow:0 4px 18px rgba(0,0,0,.12) !important;
 color:#E7E7EB !important;
 backdrop-filter:blur(8px) !important;
 -webkit-backdrop-filter:blur(8px) !important;
}

.sitename,
.sitename a{
 color:#E7E7EB !important;
}

.globalnav__item a{
 border:1px solid #555861 !important;
 border-radius:20px !important;
 background:rgba(36,37,43,.54) !important;
 color:#E7E7EB !important;
}

.globalnav__item a:hover{
 border-color:#625DB2 !important;
 background:rgba(81,77,159,.72) !important;
 color:#FFFFFF !important;
 transform:translateY(-1px);
}

.globalnav__item a.is-current{
 border-color:#625DB2 !important;
 background:#514D9F !important;
 color:#FFFFFF !important;
}

.globalnav__item a.is-current:hover{
 background:#625DB2 !important;
}

.header .social-icons svg{
 color:#E7E7EB !important;
 fill:currentColor !important;
}

.header .social-icons a:hover svg{
 color:#8D88E0 !important;
}

.hamburger .hamburger__line,
.hamburger .hamburger__line::before,
.hamburger .hamburger__line::after{
 background-color:#E7E7EB !important;
}

@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(31,31,34,.90) !important;
  color:#E7E7EB !important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
 }
 .globalnav__item a{
  background:rgba(36,37,43,.58) !important;
  color:#E7E7EB !important;
 }
 .globalnav__item a:hover{
  background:rgba(81,77,159,.72) !important;
  color:#fff !important;
 }
 .globalnav__item a.is-current{
  background:#514D9F !important;
  color:#fff !important;
 }
 .hamburger._active .hamburger__line{
  background:transparent !important;
 }
}

/* Main surfaces */
main,
.mainwrapper,
section{
 color:#E7E7EB;
}

.event-top-list,
.top-memo-list,
.blog-filter-item,
.reaction-thanks,
.r18-age-gate__panel,
.privacy-policy-modal__panel{
 background:#24252B !important;
 border-color:#3B3D46 !important;
 color:#E7E7EB !important;
}

.event-top-list,
.top-memo-list{
 border-radius:12px;
 overflow:hidden;
}

.event-top-card,
.top-memo-card{
 background:#24252B !important;
 border-color:#3B3D46 !important;
}

.top-memo-card > a:hover{
 background:rgba(81,77,159,.16) !important;
}

.blog-filter-item{
 border-radius:12px;
}

.about-site-banner{
 background:#24252B !important;
 border-color:#3B3D46 !important;
 color:#E7E7EB !important;
}

.about-reference__body,
.about-reference__meta dd,
.event-top-body,
.top-memo-card,
.books-list-card,
.blog-filter-item{
 color:#E7E7EB !important;
}

.about-reference__meta dt{
 color:#A8A3EE !important;
}

.about-reference__meta dt::after{
 color:#777982 !important;
}

.headingL,
.top-latest-heading{
 color:#F2F2F5 !important;
 border-bottom-color:#514D9F !important;
}

.headingM,
.headingS,
.headingSS{
 color:#F2F2F5 !important;
}

.top-latest-heading > a,
.books-list-links a,
.blog-category-inline,
.event-top-card a,
.linklist a{
 color:#A8A3EE !important;
}

.top-latest-heading > a:hover,
.books-list-links a:hover,
.blog-category-inline:hover,
.event-top-card a:hover,
.linklist a:hover{
 color:#C2BFFA !important;
}

/* Filters and pills */
.gallery-filter,
.blog-category-filter{
 border:1px solid #555861 !important;
 border-radius:20px !important;
 background:#24252B !important;
 color:#E7E7EB !important;
}

.gallery-filter:hover,
.blog-category-filter:hover{
 border-color:#625DB2 !important;
 background:#2D2B48 !important;
 color:#FFFFFF !important;
}

.gallery-filter.is-active,
.blog-category-filter.is-active{
 border-color:#625DB2 !important;
 background:#514D9F !important;
 color:#FFFFFF !important;
}

.books-list-card{
 border-bottom-color:#3B3D46 !important;
}

.books-list-cover,
.books-list-cover img,
.books-list-cover--empty,
.gallery-thumb,
.top-gallery-card,
.book-sample-thumb,
.book-detail-cover,
.book-detail-cover img,
.book-detail-cover-empty{
 background:#24252B !important;
 border-color:#3B3D46 !important;
}

.books-list-pills span{
 border-color:#555861 !important;
 background:#2B2C32 !important;
 color:#E7E7EB !important;
}

.books-list-meta,
.book-detail-compact,
.top-memo-meta{
 color:#96979F !important;
}

/* Gallery hover overlay stays readable on the dark theme. */
.gallery-hover-meta,
.top-gallery-hover-meta{
 background:linear-gradient(
  to top,
  rgba(20,20,24,.88),
  rgba(20,20,24,.48),
  rgba(20,20,24,0)
 ) !important;
 color:#FFFFFF !important;
}

/* Contact / reaction area */
.reaction-like__button{
 border-color:#625DB2 !important;
 background:#24252B !important;
 color:#C2BFFA !important;
}

.reaction-like__button:hover{
 background:#514D9F !important;
 color:#FFFFFF !important;
 box-shadow:0 7px 18px rgba(0,0,0,.24) !important;
}

.reaction-like__count,
.reaction-message__foot,
.reaction-status{
 color:#96979F !important;
}

.reaction-message textarea{
 border-color:#555861 !important;
 background:#1B1C20 !important;
 color:#E7E7EB !important;
}

.reaction-message textarea::placeholder{
 color:#777982 !important;
}

.reaction-message textarea:focus{
 border-color:#625DB2 !important;
 box-shadow:0 0 0 3px rgba(98,93,178,.18) !important;
}

.reaction-message__submit{
 border-color:#625DB2 !important;
 background:#514D9F !important;
 color:#FFFFFF !important;
}

.reaction-message__submit:hover{
 background:#625DB2 !important;
}

.reaction-thanks{
 box-shadow:0 18px 52px rgba(0,0,0,.42) !important;
}

.reaction-thanks__image{
 border-color:#555861 !important;
}

/* Dialogs */
.privacy-policy-modal,
.media-viewer{
 background:rgba(10,10,12,.84) !important;
}

.privacy-policy-modal__panel,
.r18-age-gate__panel{
 box-shadow:0 18px 55px rgba(0,0,0,.42) !important;
}

.privacy-policy-modal__close,
.privacy-policy-modal__bottom-close{
 color:#E7E7EB !important;
}

.privacy-policy-button{
 border-color:#555861 !important;
 background:#24252B !important;
 color:#E7E7EB !important;
}

.privacy-policy-button:hover{
 border-color:#625DB2 !important;
 background:#2D2B48 !important;
 color:#FFFFFF !important;
}

.r18-age-gate{
 background:#1F1F22 !important;
}

.r18-age-gate__confirm{
 border-color:#625DB2 !important;
 background:#514D9F !important;
 color:#fff !important;
}

.r18-age-gate__confirm:hover{
 background:#625DB2 !important;
}

.r18-age-gate__cancel{
 border-color:#555861 !important;
 background:#24252B !important;
 color:#E7E7EB !important;
}

.r18-age-gate__cancel:hover{
 border-color:#625DB2 !important;
 background:#2D2B48 !important;
 color:#FFFFFF !important;
}

.r18-age-gate__note{
 color:#96979F !important;
}

/* Viewer metadata */
.media-viewer__date{
 color:#A8A3EE !important;
}

.media-viewer__category{
 border-color:#6863BB !important;
 color:#C2BFFA !important;
}

/* Page-up / footer / subtle text */
.pageup,
.pageup._active,
.memo-page .pageup{
 color:#E7E7EB !important;
}

.pageup:hover{
 color:#A8A3EE !important;
}

footer,
.footer,
.link-undecided{
 color:#96979F !important;
}

/* Scrollbar */
html{
 scrollbar-color:#514D9F #1F1F22 !important;
}
::-webkit-scrollbar-track{
 background:#1F1F22 !important;
}
::-webkit-scrollbar-thumb{
 background:#514D9F !important;
 border-color:#1F1F22 !important;
}


/* =========================================================
   v60 Recommended dark palette
   charcoal + blue-violet
   ========================================================= */

html,
body{
 background:#202126 !important;
 color:#E2E2E6 !important;
}

.header{
 background:rgba(32,33,38,.94) !important;
 border-bottom-color:#3A3C45 !important;
 color:#E2E2E6 !important;
}

.sitename,
.sitename a{
 color:#E2E2E6 !important;
}

.globalnav__item a{
 border-color:#555861 !important;
 background:rgba(39,40,47,.54) !important;
 color:#E2E2E6 !important;
}

.globalnav__item a:hover{
 border-color:#747BD0 !important;
 background:rgba(98,104,184,.72) !important;
 color:#FFFFFF !important;
}

.globalnav__item a.is-current{
 border-color:#747BD0 !important;
 background:#6268B8 !important;
 color:#FFFFFF !important;
}

.globalnav__item a.is-current:hover{
 background:#747BD0 !important;
}

.header .social-icons svg{
 color:#E2E2E6 !important;
}

.header .social-icons a:hover svg{
 color:#8C92DE !important;
}

.hamburger .hamburger__line,
.hamburger .hamburger__line::before,
.hamburger .hamburger__line::after{
 background-color:#E2E2E6 !important;
}

@media screen and (max-width:1024px){
 .globalnav{
  background:rgba(32,33,38,.90) !important;
  color:#E2E2E6 !important;
 }
 .globalnav__item a{
  background:rgba(39,40,47,.58) !important;
  color:#E2E2E6 !important;
 }
 .globalnav__item a:hover{
  background:rgba(98,104,184,.72) !important;
  color:#FFFFFF !important;
 }
 .globalnav__item a.is-current{
  background:#6268B8 !important;
  color:#FFFFFF !important;
 }
}

.event-top-list,
.top-memo-list,
.blog-filter-item,
.reaction-thanks,
.r18-age-gate__panel,
.privacy-policy-modal__panel{
 background:#27282F !important;
 border-color:#3A3C45 !important;
 color:#E2E2E6 !important;
}

.event-top-card,
.top-memo-card{
 background:#27282F !important;
 border-color:#3A3C45 !important;
}

.top-memo-card > a:hover{
 background:rgba(98,104,184,.16) !important;
}

.about-site-banner{
 background:#27282F !important;
 border-color:#3A3C45 !important;
 color:#E2E2E6 !important;
}

.about-reference__body,
.about-reference__meta dd,
.event-top-body,
.top-memo-card,
.books-list-card,
.blog-filter-item{
 color:#E2E2E6 !important;
}

.about-reference__meta dt,
.top-latest-heading > a,
.books-list-links a,
.blog-category-inline,
.event-top-card a,
.linklist a{
 color:#AEB3F0 !important;
}

.about-reference__meta dt::after{
 color:#787A84 !important;
}

.top-latest-heading > a:hover,
.books-list-links a:hover,
.blog-category-inline:hover,
.event-top-card a:hover,
.linklist a:hover{
 color:#C7CBFA !important;
}

.headingL,
.top-latest-heading{
 color:#F0F0F3 !important;
 border-bottom-color:#6268B8 !important;
}

.headingM,
.headingS,
.headingSS{
 color:#F0F0F3 !important;
}

.gallery-filter,
.blog-category-filter{
 border-color:#555861 !important;
 background:#27282F !important;
 color:#E2E2E6 !important;
}

.gallery-filter:hover,
.blog-category-filter:hover{
 border-color:#747BD0 !important;
 background:#303451 !important;
 color:#FFFFFF !important;
}

.gallery-filter.is-active,
.blog-category-filter.is-active{
 border-color:#747BD0 !important;
 background:#6268B8 !important;
 color:#FFFFFF !important;
}

.books-list-card{
 border-bottom-color:#3A3C45 !important;
}

.books-list-cover,
.books-list-cover img,
.books-list-cover--empty,
.gallery-thumb,
.top-gallery-card,
.book-sample-thumb,
.book-detail-cover,
.book-detail-cover img,
.book-detail-cover-empty{
 background:#27282F !important;
 border-color:#3A3C45 !important;
}

.books-list-pills span{
 border-color:#555861 !important;
 background:#2D2F37 !important;
 color:#E2E2E6 !important;
}

.books-list-meta,
.book-detail-compact,
.top-memo-meta,
.reaction-like__count,
.reaction-message__foot,
.reaction-status,
footer,
.footer,
.link-undecided{
 color:#999AA3 !important;
}

.reaction-like__button{
 border-color:#747BD0 !important;
 background:#27282F !important;
 color:#C7CBFA !important;
}

.reaction-like__button:hover{
 background:#6268B8 !important;
 color:#FFFFFF !important;
}

.reaction-message textarea{
 border-color:#555861 !important;
 background:#1C1D22 !important;
 color:#E2E2E6 !important;
}

.reaction-message textarea::placeholder{
 color:#777A84 !important;
}

.reaction-message textarea:focus{
 border-color:#747BD0 !important;
 box-shadow:0 0 0 3px rgba(116,123,208,.18) !important;
}

.reaction-message__submit{
 border-color:#747BD0 !important;
 background:#6268B8 !important;
 color:#FFFFFF !important;
}

.reaction-message__submit:hover{
 background:#747BD0 !important;
}

.privacy-policy-button{
 border-color:#555861 !important;
 background:#27282F !important;
 color:#E2E2E6 !important;
}

.privacy-policy-button:hover{
 border-color:#747BD0 !important;
 background:#303451 !important;
 color:#FFFFFF !important;
}

.r18-age-gate{
 background:#202126 !important;
}

.r18-age-gate__confirm{
 border-color:#747BD0 !important;
 background:#6268B8 !important;
 color:#FFFFFF !important;
}

.r18-age-gate__confirm:hover{
 background:#747BD0 !important;
}

.r18-age-gate__cancel{
 border-color:#555861 !important;
 background:#27282F !important;
 color:#E2E2E6 !important;
}

.r18-age-gate__cancel:hover{
 border-color:#747BD0 !important;
 background:#303451 !important;
 color:#FFFFFF !important;
}

.r18-age-gate__note{
 color:#999AA3 !important;
}

.media-viewer__date{
 color:#AEB3F0 !important;
}

.media-viewer__category{
 border-color:#747BD0 !important;
 color:#C7CBFA !important;
}

.pageup,
.pageup._active,
.memo-page .pageup{
 color:#E2E2E6 !important;
}

.pageup:hover{
 color:#AEB3F0 !important;
}

html{
 scrollbar-color:#6268B8 #202126 !important;
}
::-webkit-scrollbar-track{
 background:#202126 !important;
}
::-webkit-scrollbar-thumb{
 background:#6268B8 !important;
 border-color:#202126 !important;
}


/* =========================================================
   v61 External links / TOP list link / R18 pill / thanks title
   ========================================================= */

.external-text-link,
.event-name-link.external-text-link,
.books-list-links .external-text-link,
.book-detail-purchase .external-text-link,
.book-sample-external.external-text-link{
 color:var(--color-text) !important;
 text-decoration:none !important;
 border-bottom:0 !important;
 box-shadow:none !important;
 transition:color .18s ease;
}

.external-text-link .external-link-arrow{
 display:inline-block;
 margin-left:.38em;
 color:var(--color-accent) !important;
 font-family:sans-serif;
 font-size:.9em;
 line-height:1;
 transition:color .18s ease, transform .18s ease;
}

.external-text-link:hover,
.event-name-link.external-text-link:hover,
.books-list-links .external-text-link:hover,
.book-detail-purchase .external-text-link:hover,
.book-sample-external.external-text-link:hover{
 color:var(--color-accent) !important;
 opacity:1 !important;
}

.external-text-link:hover .external-link-arrow{
 color:var(--color-accent) !important;
 transform:translate(1px,-1px);
}

.top-latest-heading > a{
 padding:4px 8px;
 border-radius:8px;
 transition:color .18s ease, background-color .18s ease;
}

.top-latest-heading > a:hover{
 background:var(--color-accent-soft) !important;
 color:#C7CBFA !important;
}

.blog-r18-label,
.top-memo-r18{
 display:inline-flex !important;
 align-items:center;
 justify-content:center;
 min-height:20px;
 padding:1px 7px !important;
 border:1px solid var(--color-accent) !important;
 border-radius:999px !important;
 background:var(--color-accent) !important;
 color:#FFFFFF !important;
 font-size:.68rem !important;
 line-height:1.35;
 font-weight:700;
 vertical-align:middle;
}

.top-memo-r18{
 margin-left:0;
}

.reaction-thanks__title{
 color:#E2E2E6 !important;
}


/* =========================================================
   v63 About / event お品書き
   ========================================================= */

/* Banner removed: metadata starts at the top of the About column. */
.about-reference__meta{
 margin-top:0 !important;
}

/* Public event card can show an optional お品書き thumbnail. */
.event-top-card{
 grid-template-columns:max-content minmax(0,1fr) max-content !important;
}

.event-top-menu{
 display:grid;
 gap:6px;
 justify-items:start;
 align-self:center;
}

.event-top-menu-label{
 color:var(--color-main);
 font-size:.72rem;
 line-height:1;
}

.event-top-menu-thumb{
 display:block;
 width:auto;
 max-width:150px;
 padding:0;
 border:1px solid var(--color-sub);
 border-radius:8px;
 overflow:hidden;
 background:var(--color-panel);
 line-height:0;
 cursor:zoom-in;
}

.event-top-menu-thumb img{
 display:block;
 width:auto;
 height:auto;
 max-width:148px;
 max-height:112px;
 object-fit:contain;
}

@media screen and (max-width:700px){
 .event-top-card{
  grid-template-columns:max-content minmax(0,1fr) !important;
  align-items:start;
 }
 .event-top-menu{
  grid-column:2;
  margin-top:8px;
 }
 .event-top-menu-thumb{
  max-width:min(160px,100%);
 }
 .event-top-menu-thumb img{
  max-width:100%;
  max-height:120px;
 }
}


/* =========================================================
   v64 Event media row / TOP cover sizing
   ========================================================= */

/* サクカ + お品書きを横並びにまとめる。 */
.event-top-card{
 grid-template-columns:max-content minmax(0,1fr) !important;
 align-items:center !important;
}

.event-top-media{
 display:flex;
 align-items:center;
 gap:10px;
 min-width:0;
}

.event-top-menu{
 display:contents !important;
}

.event-top-menu-label{
 display:none !important;
}

.event-top-menu-thumb{
 flex:0 0 auto;
 display:block;
 width:auto;
 max-width:150px;
 padding:0;
 border:1px solid var(--color-sub);
 border-radius:8px;
 overflow:hidden;
 background:var(--color-panel);
 line-height:0;
 cursor:zoom-in;
}

.event-top-menu-thumb img{
 display:block;
 width:auto;
 height:auto;
 max-width:148px;
 max-height:112px;
 object-fit:contain;
}

/* TOPカバー:
   横幅は常にウィンドウ幅いっぱい。
   表示エリアの高さは固定し、画像は比率を保ったまま中央でトリミング。 */
.fv.fv--image{
 width:100vw !important;
 max-width:none !important;
 height:440px !important;
 margin-top:64px !important;
 padding:0 !important;
 overflow:hidden !important;
}

.fv__main-image{
 display:block !important;
 width:100% !important;
 max-width:none !important;
 height:100% !important;
 margin:0 !important;
 object-fit:cover !important;
 object-position:center center !important;
}

/* ヘッダー高さが変わるタブレット帯でも表示高は固定。 */
@media screen and (max-width:1024px){
 .fv.fv--image{
  height:340px !important;
  margin-top:54px !important;
 }
}

/* スマホでは画面を占有しすぎない固定高に切り替える。 */
@media screen and (max-width:520px){
 .fv.fv--image{
  height:260px !important;
 }
 .event-top-card{
  grid-template-columns:1fr !important;
  gap:12px !important;
  align-items:start !important;
 }
 .event-top-media{
  gap:8px;
 }
 .event-top-thumb{
  max-width:112px;
 }
 .event-top-thumb img{
  max-width:110px;
  max-height:92px;
 }
 .event-top-menu-thumb{
  max-width:126px;
 }
 .event-top-menu-thumb img{
  max-width:124px;
  max-height:92px;
 }
}


/* =========================================================
   v65 TOP cover resize behavior
   添付動画のように、ウィンドウ幅だけ連続追従し高さは固定
   ========================================================= */

/*
  v64 の 440 / 340 / 260px のブレークポイント切替を上書き。
  ウィンドウをドラッグして横幅を変えても、画像の高さ・拡大率が
  途中で段階的に切り替わらず、横方向のトリミングだけが滑らかに変化する。
*/
.fv.fv--image{
 width:100vw !important;
 max-width:none !important;
 height:450px !important;
 min-height:450px !important;
 max-height:450px !important;
 margin-top:64px !important;
 padding:0 !important;
 overflow:hidden !important;
}

.fv__main-image{
 display:block !important;
 width:100% !important;
 height:450px !important;
 min-height:450px !important;
 max-height:450px !important;
 max-width:none !important;
 margin:0 !important;
 object-fit:cover !important;
 object-position:center center !important;
}

/* 高さは画面幅によって変えない。 */
@media screen and (max-width:1024px){
 .fv.fv--image{
  height:450px !important;
  min-height:450px !important;
  max-height:450px !important;
  margin-top:64px !important;
 }
 .fv__main-image{
  height:450px !important;
  min-height:450px !important;
  max-height:450px !important;
 }
}

@media screen and (max-width:520px){
 .fv.fv--image{
  height:450px !important;
  min-height:450px !important;
  max-height:450px !important;
 }
 .fv__main-image{
  height:450px !important;
  min-height:450px !important;
  max-height:450px !important;
 }
}


/* =========================================================
   v67 TOP only: prevent horizontal scrollbar
   ========================================================= */

body.top-page{
 overflow-x:hidden !important;
}


/* =========================================================
   v71 Compact heart button
   ========================================================= */

.reaction-like__button{
 min-width:64px !important;
 width:auto !important;
 padding:9px 18px !important;
}


/* =========================================================
   v75 Age gate layout
   ========================================================= */

.r18-age-gate__panel,
.r18-age-gate__intro,
.r18-age-gate__intro p,
.r18-age-gate__question,
.r18-age-gate__note{
 text-align:center !important;
}


/* =========================================================
   v82 「！」 sensitive-content flag / sold link
   ========================================================= */

/* 「！」 is content-sensitive like R18, but is never hidden by the age choice. */
.gallery-thumb.is-warning img,
.top-gallery-card.is-warning img,
.blog-filter-item.is-warning .comment img{
 filter:blur(14px) brightness(.78) !important;
}
.gallery-thumb.is-warning img,
.top-gallery-card.is-warning img{
 transform:scale(1.08) !important;
}
.blog-filter-item.is-warning .comment img{
 transform:scale(1.04) !important;
 cursor:pointer;
 transition:filter .2s ease, transform .2s ease;
}
.blog-filter-item.is-warning .comment img.is-r18-revealed,
.blog-filter-item.is-warning .comment img.is-r18-revealed:hover{
 filter:none !important;
 transform:none !important;
}

.gallery-badge-row .gallery-warning-badge{
 position:static !important;
 inset:auto !important;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:22px;
 padding:2px 7px;
 border-radius:5px;
 background:rgba(0,0,0,.78);
 color:#fff;
 font-family:sans-serif;
 font-size:.72rem;
 line-height:1.4;
 font-weight:700;
 order:2;
}
.gallery-badge-row .gallery-page-badge{order:3;}

.blog-warning-label,
.top-memo-warning{
 display:inline-flex !important;
 align-items:center;
 justify-content:center;
 min-height:20px;
 padding:1px 7px !important;
 border:1px solid var(--color-accent) !important;
 border-radius:999px !important;
 background:transparent !important;
 color:var(--color-accent) !important;
 font-size:.68rem !important;
 line-height:1.35;
 font-weight:700;
 vertical-align:middle;
}

.books-list-sold-link{
 color:var(--color-muted);
}

/* v83 Memo warning: keep blur/scale inside the image area only. */
.blog-filter-item.is-warning .comment .blog-image-wrap{
 overflow:hidden;
}


/* =========================================================
   v88 public layout + switchable summer palette
   ========================================================= */
html[data-theme="summer"]{
 --color-bg:#F7FCFF;
 --color-text:#315775;
 --color-main:#6D91A8;
 --color-sub:#CDE8F3;
 --color-accent:#35A9E8;
 --color-accent-hover:#178FCF;
 --color-accent-soft:#E5F6FD;
 --color-panel:#FFFFFF;
 --color-panel-alt:#EFF9FD;
 --color-menu:#FFFFFF;
 --color-rail:#66C7DF;
 --color-black:#24475F;
 --color-white:#FFFFFF;
 color-scheme:light;
}

/* Header follows the reference layout; content and destinations are unchanged. */
.header{
 min-height:76px;
 background:rgba(32,33,38,.94);
 border-bottom:1px solid var(--color-sub);
 box-shadow:0 2px 14px rgba(0,0,0,.08);
}
.header-inner{max-width:1360px;min-height:76px;gap:22px}
.header .header-inner .sitename{font-size:20px;letter-spacing:.08em}
.globalnav{gap:12px}
.globalnav__main{gap:2px}
.globalnav__item a{padding:25px 13px 20px;font-weight:600;letter-spacing:.03em}
.globalnav__item a::after{left:12px;bottom:13px;height:2px;background:var(--color-accent)}
.globalnav__item a:hover::after,.globalnav__item a.is-current::after{width:calc(100% - 24px)}
.theme-switch{
 appearance:none;border:0;background:transparent;color:inherit;display:inline-flex;align-items:center;gap:7px;
 padding:8px 0 8px 5px;font:inherit;font-size:.68rem;letter-spacing:.08em;cursor:pointer;
}
.theme-switch__track{position:relative;width:38px;height:20px;border:1px solid currentColor;border-radius:999px;opacity:.82}
.theme-switch__knob{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:currentColor;transition:transform .2s ease}
html[data-theme="summer"] .theme-switch__knob{transform:translateX(18px)}
html[data-theme="summer"] .header{background:rgba(255,255,255,.95);border-bottom:1px solid #D8EEF7;box-shadow:0 2px 16px rgba(61,153,194,.08)}
html[data-theme="summer"] .header,
html[data-theme="summer"] .header a,
html[data-theme="summer"] .header .sitename a,
html[data-theme="summer"] .globalnav a,
html[data-theme="summer"] .theme-switch{color:#39739C!important}
html[data-theme="summer"] .header .social-icons svg{color:#39739C;fill:currentColor}
html[data-theme="summer"] .hamburger .hamburger__line,
html[data-theme="summer"] .hamburger .hamburger__line::before,
html[data-theme="summer"] .hamburger .hamburger__line::after{background-color:#39739C}
html[data-theme="summer"] .hamburger._active .hamburger__line{background:transparent}

/* Top: left information rail / right updates rail. */
.top-page .mainwrapper{width:min(calc(100% - 64px),1360px);max-width:1360px;padding-top:54px}
.top-dashboard{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:50px;align-items:start}
.top-dashboard__left,.top-dashboard__right{min-width:0}
.top-dashboard__left .about-reference{max-width:none;padding:0;margin:0 0 30px}
.top-dashboard__left .about-reference__layout{display:block}
.top-dashboard__left .about-reference__side{margin:0 0 20px}
.top-dashboard__left .event-top-section{margin:0;padding:28px 0 0}
.top-dashboard__right .top-latest-section{margin:0 0 34px;padding:0}
.top-dashboard__right #contact{margin-top:8px;padding-top:28px;border-top:1px solid var(--color-sub)}
.top-dashboard__right #link{padding-top:32px;margin-top:32px;border-top:1px solid var(--color-sub)}
.top-latest-heading{align-items:center}
.top-latest-heading .headingL{margin-bottom:12px}
.top-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.top-gallery-card{aspect-ratio:4/3;border:0;border-radius:4px;overflow:hidden;background:var(--color-panel-alt)}
.top-gallery-card img{width:100%;height:100%;object-fit:cover;border:0!important}
/* TOP gallery is intentionally image-only. Safety blur remains, labels/meta do not. */
.top-gallery-card .gallery-thumb-meta,
.top-gallery-card .gallery-badge-row{display:none!important}
.reaction-contact__inner{width:100%;display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);gap:30px;align-items:start}
.reaction-like{margin:0}
.reaction-message{padding:0;border-top:0}

html[data-theme="summer"] body{background:#F7FCFF;color:#315775}
html[data-theme="summer"] .headingL{color:#278FC8;border-color:#9DDCF2}
html[data-theme="summer"] .about-reference,
html[data-theme="summer"] .top-memo-card,
html[data-theme="summer"] .event-top-card{border-color:#CDE8F3}
html[data-theme="summer"] .reaction-like__button,
html[data-theme="summer"] .reaction-message textarea,
html[data-theme="summer"] .reaction-thanks{background:#fff;border-color:#9DDCF2;color:#315775}
html[data-theme="summer"] .reaction-like__button{color:#278FC8}
html[data-theme="summer"] .reaction-like__button:hover{background:#35A9E8;color:#fff}
html[data-theme="summer"] .reaction-message__submit{background:#35A9E8;border-color:#35A9E8}
html[data-theme="summer"] .external-text-link,
html[data-theme="summer"] a{--summer-link:#278FC8}
html[data-theme="summer"] .external-text-link{color:#278FC8}

@media screen and (max-width:1024px){
 .header{min-height:60px}
 .header-inner{min-height:60px}
 .globalnav{background:rgba(32,33,38,.98)}
 html[data-theme="summer"] .globalnav{background:rgba(247,252,255,.99)}
 .globalnav__item a{padding:10px 18px}
 .theme-switch{margin-top:8px}
 .top-page .mainwrapper{width:min(calc(100% - 36px),1360px);padding-top:42px}
 .top-dashboard{grid-template-columns:1fr;gap:38px}
 .top-dashboard__left{display:grid;grid-template-columns:1fr 1fr;gap:30px}
 .top-dashboard__left .about-reference,.top-dashboard__left .event-top-section{margin:0;padding-top:0}
}
@media screen and (max-width:700px){
 .top-dashboard__left{display:block}
 .top-dashboard__left .about-reference{margin-bottom:34px}
 .top-gallery-grid{gap:8px}
 .reaction-contact__inner{grid-template-columns:1fr;gap:28px}
 .theme-switch__label{display:none}
}

/* =========================================================
   v89 navigation icons + complete light/dark public modes
   ========================================================= */

/* Header navigation: icon + label, no pill background. */
.globalnav__item a{
 position:relative;
 display:flex !important;
 align-items:center;
 gap:7px;
 padding:23px 12px 19px !important;
 border:0 !important;
 border-radius:0 !important;
 background:transparent !important;
 box-shadow:none !important;
 transform:none !important;
 color:#E2E2E6 !important;
}
.globalnav__item a:hover,
.globalnav__item a.is-current,
.globalnav__item a.is-current:hover{
 border:0 !important;
 background:transparent !important;
 color:#FFFFFF !important;
 transform:none !important;
}
.globalnav__item a::after{
 content:"";
 position:absolute;
 left:11px;
 right:11px;
 bottom:9px;
 width:auto !important;
 height:0;
 border-radius:999px;
 background:#6268B8 !important;
 opacity:0;
 transition:height .16s ease,opacity .16s ease;
}
.globalnav__item a:hover::after{
 height:2px;
 opacity:.7;
}
.globalnav__item a.is-current::after{
 height:4px;
 opacity:1;
}
.nav-item-icon,
.section-heading-icon{
 display:block;
 flex:0 0 auto;
 width:20px;
 height:20px;
 fill:none;
 stroke:currentColor;
 stroke-width:1.7;
 stroke-linecap:round;
 stroke-linejoin:round;
}
.nav-item-icon{width:19px;height:19px}
.heading-with-icon{
 display:flex !important;
 align-items:center;
 gap:8px;
}
.heading-with-icon .section-heading-icon{
 width:20px;
 height:20px;
 color:inherit;
}

/* Switch is intentionally iconless/textless in the visible UI. */
.theme-switch{
 flex:0 0 auto;
 padding:8px 2px !important;
 gap:0 !important;
}
.theme-switch__track{
 width:42px;
 height:22px;
 border:1.5px solid #8C92DE;
 background:rgba(98,104,184,.16);
}
.theme-switch__knob{
 top:3px;
 left:3px;
 width:14px;
 height:14px;
 background:#C7CBFA;
}
html[data-theme="light"] .theme-switch__knob{transform:translateX(19px)}
.theme-switch__label{display:none !important}

/* TOP layout panels. */
.top-dashboard__left .about-reference,
.top-dashboard__left .event-top-section{
 padding:22px 22px 24px !important;
 border:1px solid #3A3C45;
 border-radius:12px;
 background:#27282F;
 box-shadow:0 5px 18px rgba(0,0,0,.08);
}
.top-dashboard__left .about-reference{margin:0 0 20px !important}
.top-dashboard__left .event-top-section{margin:0 !important}
.top-dashboard__left .about-reference__side{margin-bottom:18px}
.top-dashboard__left .event-top-list{
 margin:0;
 border:0 !important;
 border-radius:8px;
 background:transparent !important;
}
.top-dashboard__left .event-top-card{
 background:transparent !important;
}

/* Remove the separators after Memo and Contact. */
.top-dashboard__right #contact{
 margin-top:10px !important;
 padding-top:0 !important;
 border-top:0 !important;
}
.top-dashboard__right #link{
 margin-top:34px !important;
 padding-top:0 !important;
 border-top:0 !important;
}

/* Divider only between the like area and the message form. */
.reaction-contact__inner{
 gap:30px !important;
}
.reaction-message{
 padding:0 0 0 30px !important;
 border-top:0 !important;
 border-left:1px solid #3A3C45 !important;
}

/* -------------------------
   Light mode
   ------------------------- */
html[data-theme="light"]{
 --color-bg:#F8FCFE;
 --color-text:#55748E;
 --color-main:#6E8FA7;
 --color-sub:#CBE7F3;
 --color-accent:#43AEE4;
 --color-accent-hover:#2E98D1;
 --color-accent-soft:#E7F6FD;
 --color-panel:#FFFFFF;
 --color-panel-alt:#F3FAFD;
 --color-menu:#F7FCFF;
 --color-rail:#62BEDF;
 --color-black:#315B78;
 --color-white:#FFFFFF;
 color-scheme:light;
}
html[data-theme="light"],
html[data-theme="light"] body{
 background:#F8FCFE !important;
 color:#55748E !important;
}
html[data-theme="light"] body,
html[data-theme="light"] main,
html[data-theme="light"] .mainwrapper,
html[data-theme="light"] section{
 color:#55748E !important;
}

html[data-theme="light"] .header{
 background:rgba(244,251,255,.96) !important;
 border-bottom:1px solid #D5ECF6 !important;
 box-shadow:0 2px 16px rgba(67,137,176,.08) !important;
 color:#3D739A !important;
 backdrop-filter:blur(8px) !important;
 -webkit-backdrop-filter:blur(8px) !important;
}
html[data-theme="light"] .sitename,
html[data-theme="light"] .sitename a,
html[data-theme="light"] .globalnav__item a,
html[data-theme="light"] .globalnav__item a:hover,
html[data-theme="light"] .globalnav__item a.is-current,
html[data-theme="light"] .globalnav__item a.is-current:hover,
html[data-theme="light"] .theme-switch{
 color:#3D739A !important;
}
html[data-theme="light"] .globalnav__item a::after{
 background:#43AEE4 !important;
}
html[data-theme="light"] .header .social-icons svg{
 color:#3D739A !important;
 fill:currentColor !important;
}
html[data-theme="light"] .header .social-icons a:hover svg{
 color:#2396CF !important;
}
html[data-theme="light"] .theme-switch__track{
 border-color:#43AEE4;
 background:#DDF3FC;
}
html[data-theme="light"] .theme-switch__knob{background:#43AEE4}
html[data-theme="light"] .hamburger .hamburger__line,
html[data-theme="light"] .hamburger .hamburger__line::before,
html[data-theme="light"] .hamburger .hamburger__line::after{
 background-color:#3D739A !important;
}
html[data-theme="light"] .hamburger._active .hamburger__line{background:transparent !important}

/* Main headings and links. */
html[data-theme="light"] .headingL,
html[data-theme="light"] .top-latest-heading{
 color:#2D8FC8 !important;
 border-bottom-color:#9FD7EF !important;
}
html[data-theme="light"] .headingM,
html[data-theme="light"] .headingS,
html[data-theme="light"] .headingSS{
 color:#376E95 !important;
}
html[data-theme="light"] .top-latest-heading > a,
html[data-theme="light"] .books-list-links a,
html[data-theme="light"] .blog-category-inline,
html[data-theme="light"] .event-top-card a,
html[data-theme="light"] .linklist a,
html[data-theme="light"] .external-text-link{
 color:#2D8FC8 !important;
}
html[data-theme="light"] .top-latest-heading > a:hover,
html[data-theme="light"] .books-list-links a:hover,
html[data-theme="light"] .blog-category-inline:hover,
html[data-theme="light"] .event-top-card a:hover,
html[data-theme="light"] .linklist a:hover,
html[data-theme="light"] .external-text-link:hover{
 color:#1D78AD !important;
}

/* Reference-like light panels on TOP left. */
html[data-theme="light"] .top-dashboard__left .about-reference,
html[data-theme="light"] .top-dashboard__left .event-top-section{
 background:#F4FBFE !important;
 border-color:#CBE7F3 !important;
 box-shadow:0 4px 16px rgba(64,139,180,.07);
}
html[data-theme="light"] .top-dashboard__left .event-top-list,
html[data-theme="light"] .top-dashboard__left .event-top-card{
 background:transparent !important;
 border-color:#D6EDF6 !important;
}

/* All public page surfaces switch to the light palette. */
html[data-theme="light"] .event-top-list,
html[data-theme="light"] .top-memo-list,
html[data-theme="light"] .top-memo-card,
html[data-theme="light"] .event-top-card,
html[data-theme="light"] .blog-filter-item,
html[data-theme="light"] .reaction-thanks,
html[data-theme="light"] .privacy-policy-modal__panel,
html[data-theme="light"] .r18-age-gate__panel,
html[data-theme="light"] .about-site-banner{
 background:#FFFFFF !important;
 border-color:#CBE7F3 !important;
 color:#55748E !important;
}
html[data-theme="light"] .top-memo-card > a:hover{
 background:#EEF9FD !important;
}
html[data-theme="light"] .about-reference__body,
html[data-theme="light"] .about-reference__meta dd,
html[data-theme="light"] .event-top-body,
html[data-theme="light"] .top-memo-card,
html[data-theme="light"] .books-list-card,
html[data-theme="light"] .blog-filter-item{
 color:#55748E !important;
}
html[data-theme="light"] .about-reference__meta dt{
 color:#2D8FC8 !important;
}
html[data-theme="light"] .about-reference__meta dt::after{
 color:#A2B4C2 !important;
}
html[data-theme="light"] .books-list-card{
 border-bottom-color:#CBE7F3 !important;
}
html[data-theme="light"] .books-list-cover,
html[data-theme="light"] .books-list-cover img,
html[data-theme="light"] .books-list-cover--empty,
html[data-theme="light"] .gallery-thumb,
html[data-theme="light"] .top-gallery-card,
html[data-theme="light"] .book-sample-thumb,
html[data-theme="light"] .book-detail-cover,
html[data-theme="light"] .book-detail-cover img,
html[data-theme="light"] .book-detail-cover-empty{
 background:#F2F9FC !important;
 border-color:#CBE7F3 !important;
}
html[data-theme="light"] .books-list-pills span{
 border-color:#BBDCEB !important;
 background:#EEF8FC !important;
 color:#55748E !important;
}
html[data-theme="light"] .books-list-meta,
html[data-theme="light"] .book-detail-compact,
html[data-theme="light"] .top-memo-meta,
html[data-theme="light"] .reaction-like__count,
html[data-theme="light"] .reaction-message__foot,
html[data-theme="light"] .reaction-status,
html[data-theme="light"] footer,
html[data-theme="light"] .footer,
html[data-theme="light"] .link-undecided{
 color:#829BAD !important;
}

/* Filters. */
html[data-theme="light"] .gallery-filter,
html[data-theme="light"] .blog-category-filter{
 border-color:#BBDCEB !important;
 background:#FFFFFF !important;
 color:#55748E !important;
}
html[data-theme="light"] .gallery-filter:hover,
html[data-theme="light"] .blog-category-filter:hover{
 border-color:#65BDE7 !important;
 background:#EAF7FC !important;
 color:#2D8FC8 !important;
}
html[data-theme="light"] .gallery-filter.is-active,
html[data-theme="light"] .blog-category-filter.is-active{
 border-color:#43AEE4 !important;
 background:#43AEE4 !important;
 color:#FFFFFF !important;
}

/* Reaction / contact. */
html[data-theme="light"] .reaction-message{
 border-left-color:#CBE7F3 !important;
}
html[data-theme="light"] .reaction-like__button{
 border-color:#64BDE7 !important;
 background:#FFFFFF !important;
 color:#3EA9DF !important;
}
html[data-theme="light"] .reaction-like__button:hover{
 background:#43AEE4 !important;
 color:#FFFFFF !important;
 box-shadow:0 7px 18px rgba(57,139,184,.18) !important;
}
html[data-theme="light"] .reaction-message textarea{
 border-color:#BBDCEB !important;
 background:#FFFFFF !important;
 color:#55748E !important;
}
html[data-theme="light"] .reaction-message textarea::placeholder{color:#A1B4C2 !important}
html[data-theme="light"] .reaction-message textarea:focus{
 border-color:#43AEE4 !important;
 box-shadow:0 0 0 3px rgba(67,174,228,.14) !important;
}
html[data-theme="light"] .reaction-message__submit{
 border-color:#43AEE4 !important;
 background:#43AEE4 !important;
 color:#FFFFFF !important;
}
html[data-theme="light"] .reaction-message__submit:hover{background:#2E98D1 !important}
html[data-theme="light"] .reaction-thanks{box-shadow:0 18px 48px rgba(57,139,184,.16) !important}
html[data-theme="light"] .reaction-thanks__image{border-color:#CBE7F3 !important}

/* Dialogs / age gate / utility controls. */
html[data-theme="light"] .privacy-policy-modal,
html[data-theme="light"] .media-viewer{background:rgba(37,63,79,.76) !important}
html[data-theme="light"] .privacy-policy-modal__panel,
html[data-theme="light"] .r18-age-gate__panel{
 background:#FFFFFF !important;
 border-color:#CBE7F3 !important;
 color:#55748E !important;
 box-shadow:0 18px 55px rgba(41,96,125,.20) !important;
}
html[data-theme="light"] .privacy-policy-modal__close,
html[data-theme="light"] .privacy-policy-modal__bottom-close{color:#55748E !important}
html[data-theme="light"] .privacy-policy-button,
html[data-theme="light"] .r18-age-gate__cancel{
 border-color:#BBDCEB !important;
 background:#FFFFFF !important;
 color:#55748E !important;
}
html[data-theme="light"] .privacy-policy-button:hover,
html[data-theme="light"] .r18-age-gate__cancel:hover{
 border-color:#43AEE4 !important;
 background:#EEF9FD !important;
 color:#2D8FC8 !important;
}
html[data-theme="light"] .r18-age-gate{background:#F8FCFE !important}
html[data-theme="light"] .r18-age-gate__confirm{
 border-color:#43AEE4 !important;
 background:#43AEE4 !important;
 color:#FFFFFF !important;
}
html[data-theme="light"] .r18-age-gate__confirm:hover{background:#2E98D1 !important}
html[data-theme="light"] .r18-age-gate__note{color:#829BAD !important}
html[data-theme="light"] .media-viewer__date{color:#8FD1EF !important}
html[data-theme="light"] .media-viewer__category{border-color:#8FD1EF !important;color:#DDF4FF !important}
html[data-theme="light"] .pageup,
html[data-theme="light"] .pageup._active,
html[data-theme="light"] .memo-page .pageup{color:#3D739A !important}
html[data-theme="light"] .pageup:hover{color:#2D8FC8 !important}
html[data-theme="light"]{scrollbar-color:#70BFE4 #F8FCFE !important}
html[data-theme="light"] ::-webkit-scrollbar-track{background:#F8FCFE !important}
html[data-theme="light"] ::-webkit-scrollbar-thumb{background:#70BFE4 !important;border-color:#F8FCFE !important}

@media screen and (max-width:1024px){
 .globalnav__item a{
  padding:11px 18px 13px !important;
 }
 .globalnav__item a::after{bottom:4px}
 .globalnav{background:rgba(32,33,38,.98) !important}
 html[data-theme="light"] .globalnav{
  background:rgba(244,251,255,.99) !important;
  color:#3D739A !important;
 }
 html[data-theme="light"] .globalnav__item a{color:#3D739A !important}
 .top-dashboard__left .about-reference,
 .top-dashboard__left .event-top-section{
  padding:22px !important;
 }
}

@media screen and (max-width:700px){
 .reaction-message{
  padding:24px 0 0 !important;
  border-left:0 !important;
  border-top:1px solid #3A3C45 !important;
 }
 html[data-theme="light"] .reaction-message{border-top-color:#CBE7F3 !important}
}

/* v89 light-mode finishing touches for controls that carry older fixed colors. */
html[data-theme="light"] body{color-scheme:light !important}
html[data-theme="light"] .reaction-thanks__title{color:#376E95 !important}
html[data-theme="light"] .memo-top-button,
html[data-theme="light"] .blog-page-btn{
 border-color:#BBDCEB !important;
 background:#FFFFFF !important;
 color:#55748E !important;
}
html[data-theme="light"] .memo-top-button:hover,
html[data-theme="light"] .blog-page-btn:hover:not(:disabled),
html[data-theme="light"] .blog-page-btn.is-active{
 border-color:#43AEE4 !important;
 background:#43AEE4 !important;
 color:#FFFFFF !important;
}
html[data-theme="light"] .blog-category-side{border-left-color:#CBE7F3 !important}


/* =========================================================
   v90 public layout / navigation refinements
   ========================================================= */

/* Current page underline: explicitly undo older display:none !important. */
.globalnav__item a::after{
 display:block !important;
 content:"" !important;
}
.globalnav__item a.is-current::after{
 height:4px !important;
 opacity:1 !important;
}

/* Menu icons use the same line-icon scale as public section headings. */
.nav-item-icon{
 width:25px !important;
 height:25px !important;
 stroke-width:1.7 !important;
 color:currentColor;
}
.section-heading-icon,
.heading-with-icon .section-heading-icon{
 width:27px !important;
 height:27px !important;
 stroke-width:1.7 !important;
}
.heading-with-icon{gap:10px !important}

/* Keep the About heading on one line in the left rail. */
.about-reference__heading{
 white-space:nowrap !important;
 font-size:1.02rem !important;
 letter-spacing:.01em !important;
}

/* Event date/name sit below the image row. */
.top-dashboard__left .event-top-card{
 display:block !important;
 padding:12px 0 !important;
}
.top-dashboard__left .event-top-media{
 display:flex !important;
 align-items:flex-start !important;
 gap:10px !important;
}
.top-dashboard__left .event-top-text{
 margin-top:10px !important;
 width:100% !important;
}

/* Like button and daily count are centered inside the like column. */
.reaction-like__button-wrap{
 display:block !important;
 width:max-content;
 max-width:100%;
 margin-left:auto !important;
 margin-right:auto !important;
}
.reaction-like__count{
 text-align:center !important;
}

/* Link banner configured from CMS. */
.top-link-content{padding-top:4px}
.top-link-banner{
 display:inline-block;
 max-width:100%;
 line-height:0;
 border:1px solid transparent;
 border-radius:4px;
 overflow:hidden;
 transition:border-color .16s ease, transform .16s ease;
}
.top-link-banner:hover{
 border-color:var(--color-accent);
 transform:translateY(-1px);
}
.top-link-banner img{
 display:block;
 width:auto;
 max-width:100%;
 height:auto;
}

/* In light mode, nav icons use the same blue as TOP heading icons. */
html[data-theme="light"] .nav-item-icon{
 color:#2D8FC8 !important;
 stroke:#2D8FC8 !important;
}
html[data-theme="light"] .section-heading-icon{
 color:#2D8FC8 !important;
 stroke:#2D8FC8 !important;
}



/* =========================================================
   v91 TOP spacing / icon consistency refinements
   ========================================================= */

/* Public menu icons share the exact same line-icon treatment as TOP headings. */
.nav-item-icon.section-heading-icon,
.section-heading-icon{
 fill:none !important;
 stroke:currentColor !important;
 stroke-width:1.7 !important;
 stroke-linecap:round !important;
 stroke-linejoin:round !important;
}

/* Make TOP section icons more prominent, while keeping header icons compact. */
.heading-with-icon .section-heading-icon{
 width:34px !important;
 height:34px !important;
 flex-basis:34px !important;
}
.heading-with-icon{
 gap:11px !important;
}
.globalnav .nav-item-icon.section-heading-icon{
 width:26px !important;
 height:26px !important;
 flex-basis:26px !important;
}

/* Left-column headings should stay on one line. */
.top-dashboard__left .about-reference__heading,
.top-dashboard__left .event-top-section > .headingL{
 white-space:nowrap !important;
 font-size:1.02rem !important;
 letter-spacing:.01em !important;
}

/* Use one consistent vertical gap between every TOP section. */
.top-dashboard{
 --top-section-gap:34px;
}
.top-dashboard__left > section,
.top-dashboard__right > section{
 margin-top:0 !important;
 margin-bottom:var(--top-section-gap) !important;
}
.top-dashboard__left > section:last-child,
.top-dashboard__right > section:last-child{
 margin-bottom:0 !important;
}
.top-dashboard__left .about-reference,
.top-dashboard__left .event-top-section{
 margin-top:0 !important;
}
.top-dashboard__right #contact,
.top-dashboard__right #link,
.top-dashboard__right .top-latest-section{
 margin-top:0 !important;
 padding-top:0 !important;
 border-top:0 !important;
}

/* Bring the About metadata (site name) closer to its heading. */
.top-dashboard__left .about-reference__layout{
 margin-top:16px !important;
}

/* In light mode, hovering a TOP memo never changes its text colors. */
html[data-theme="light"] .top-memo-card > a,
html[data-theme="light"] .top-memo-card > a:visited,
html[data-theme="light"] .top-memo-card > a:hover,
html[data-theme="light"] .top-memo-card > a:focus{
 color:#55748E !important;
}
html[data-theme="light"] .top-memo-card > a:hover h3,
html[data-theme="light"] .top-memo-card > a:hover p{
 color:#55748E !important;
}
html[data-theme="light"] .top-memo-card > a:hover .top-memo-meta{
 color:#6E8FA7 !important;
}

@media screen and (max-width:700px){
 .top-dashboard__left .about-reference__heading,
 .top-dashboard__left .event-top-section > .headingL{
  font-size:.96rem !important;
 }
 .heading-with-icon .section-heading-icon{
  width:31px !important;
  height:31px !important;
  flex-basis:31px !important;
 }
}
