/*
Theme Name: Lenvserse Pro
Theme URI: https://lensverse.com
Author: MUKTADIR
Author URI: https://lensverse.com
Description: An aesthetic, interactive photography and architectural portfolio WordPress theme featuring custom Verlet integration text-curtain physics animation and full WP Customizer controls.
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lenvserse
Tags: portfolio, photography, dark, custom-colors, custom-logo, custom-menu, featured-images, theme-options
*/

/* ================================================================
   YANE — Color Palette & Variables (exact copy from index.html)
   ================================================================ */
:root {
  --bg:       #1B3A2F;
  --text:     #F5F5F5;
  --muted:    #B8C7C0;
  --tag-bg:   #2E4A3F;
  --tag-text: #D9D9D9;
  --accent:   #E5C378;
  --card:     rgba(46,74,63,0.5);
  --border:   rgba(217,217,217,0.12);
  --glass:    rgba(27,58,47,0.96);
  --ease:     cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* Force-remove browser default body margin (WordPress sometimes doesn't) */
html, body { margin:0 !important; padding:0 !important; }

html{scroll-behavior:smooth}

body {
  width:100%; min-height:100vh;
  background-color:var(--bg) !important;
  background-size:cover !important; background-position:center center !important; background-attachment:fixed !important;
  color:var(--text); font-family:'Outfit',sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}

a{color:var(--accent);text-decoration:none}
img{max-width:100%;height:auto;display:block}

/* ---- Scroll Reveal base ---- */
.reveal {
  opacity:0;
  transform:translateY(40px);
  transition:opacity .75s var(--ease), transform .75s var(--ease);
}
.reveal.visible {
  opacity:1;
  transform:translateY(0);
}
.reveal-left  { opacity:0; transform:translateX(-50px); transition:opacity .75s var(--ease),transform .75s var(--ease); }
.reveal-right { opacity:0; transform:translateX(50px);  transition:opacity .75s var(--ease),transform .75s var(--ease); }
.reveal-left.visible,.reveal-right.visible { opacity:1; transform:translateX(0); }

/* ---- NAVBAR ---- */
.navbar {
  position:fixed; top:0; left:0; right:0;
  padding:2rem 4rem;
  display:flex; justify-content:space-between; align-items:center;
  z-index:1000;
  transition:padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
}
.navbar.scrolled {
  padding:1rem 4rem;
  background:var(--glass);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 10px 40px rgba(0,0,0,.45);
  border-bottom:1px solid var(--border);
}
.logo { display:flex; align-items:baseline; gap:.6rem; cursor:pointer; text-decoration:none; }
.logo-text { font-size:2rem; font-weight:600; letter-spacing:-.03em; color:var(--text); }
.logo-sub  { font-family:'Noto Serif JP',serif; font-size:1.1rem; font-weight:600; color:var(--accent); }

.nav-right { display:flex; align-items:center; gap:2rem; }
.nav-link, .nav-menu-list a {
  background:none; border:none; font-family:'Outfit',sans-serif;
  font-size:1rem; font-weight:500; color:var(--text); cursor:pointer;
  position:relative; padding:.4rem 0; transition:color .25s;
  text-decoration:none;
}
.nav-link::after, .nav-menu-list a::after {
  content:''; position:absolute; bottom:0; left:0;
  width:0; height:2px; background:var(--accent);
  transition:width .35s var(--ease);
}
.nav-link:hover::after, .nav-menu-list a:hover::after { width:100%; }
.nav-menu-list {
  display:flex;
  align-items:center;
  gap:2rem;
  list-style:none;
  margin:0;
  padding:0;
}
.nav-menu-list li {
  margin:0;
  padding:0;
}
.btn-cta {
  background:var(--tag-bg); color:var(--tag-text);
  border:1px solid var(--border); padding:.65rem 1.6rem; border-radius:999px;
  font-family:'Outfit',sans-serif; font-size:.98rem; font-weight:500;
  cursor:pointer; transition:all .25s var(--ease);
}
.btn-cta:hover { background:var(--accent); color:var(--bg); border-color:var(--accent); transform:translateY(-2px); }

/* ================================================================
   HERO — Roof + Verlet Text Curtain
   ================================================================ */
.app-wrapper {
  display:flex; flex-direction:column; min-height:100vh;
  max-width:1440px; margin:0 auto;
  padding:7rem 4rem 0;
  position:relative; z-index:1;
}

.hero-center {
  flex:1; display:flex; justify-content:center; align-items:flex-start;
  padding-top:2rem; position:relative;
}

.roof-container {
  position:relative;
  max-width:680px; width:100%;
  display:flex; flex-direction:column; align-items:center;
}

.roof-image {
  width:100%; height:auto; display:block;
  user-select:none; pointer-events:none;
  filter:drop-shadow(0 12px 32px rgba(0,0,0,.55));
}

#curtain-container {
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  height:520px;
  overflow:visible !important;
  pointer-events:none;
  z-index:10;
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
}
#curtain-container canvas {
  display:block; pointer-events:auto;
  background:transparent !important;
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
}

/* HERO BOTTOM COPY */
.content-bottom {
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:4rem; width:100%;
  padding-top:540px;
  padding-bottom:3rem;
  position:relative; z-index:20;
}
.sub-label {
  display:inline-block; font-size:.95rem; font-weight:500;
  letter-spacing:.02em; color:var(--muted); margin-bottom:.5rem;
}
.main-title {
  font-family:'Adamina',serif; font-size:3.5rem; line-height:1.12;
  font-weight:400; color:var(--text); letter-spacing:-.02em;
}
.desc-text { font-size:1.05rem; color:var(--muted); line-height:1.75; }

.post-card .desc-text,
.footer-tagline,
.footer-newsletter-desc,
.contact-item { color:var(--muted); }

/* ---- CHIP / TAG ---- */
.chip {
  display:inline-block; background:var(--tag-bg); color:var(--tag-text);
  padding:.38rem 1rem; border-radius:999px;
  font-size:.82rem; font-weight:500; letter-spacing:.04em; text-transform:uppercase;
  border:1px solid var(--border);
}

/* ================================================================
   SECTION WRAPPER
   ================================================================ */
.page-section {
  max-width:1440px; margin:0 auto; padding:0 4rem;
  position:relative; z-index:20;
}

.section-gap { padding:7rem 0 4rem; }

.section-header { text-align:center; max-width:720px; margin:0 auto 4rem; }
.section-label  { font-size:.8rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--accent); opacity:.8; }
.section-title  { font-family:'Adamina',serif; font-size:2.6rem; color:var(--text); margin-top:.6rem; }

/* ================================================================
   HELLO AUTHOR SECTION
   ================================================================ */
.author-section { padding:7rem 0; }

.author-inner {
  display:grid; grid-template-columns:1fr 1fr; gap:6rem;
  align-items:center;
}

.author-greeting {
  font-family:'Adamina',serif; font-size:4.5rem; line-height:1.05;
  font-weight:400; color:var(--text); margin-bottom:1.2rem;
}
.author-greeting em { color:var(--accent); font-style:normal; }
.author-role {
  font-size:1.1rem; color:var(--muted); margin-bottom:2rem; line-height:1.6;
}
.author-bio {
  font-size:1rem; color:var(--muted); line-height:1.8;
  margin-bottom:2.5rem; max-width:440px;
}

.author-links { display:flex; gap:1rem; flex-wrap:wrap; }
.author-btn {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.75rem 1.6rem; border-radius:999px;
  font-family:'Outfit',sans-serif; font-size:.98rem; font-weight:600;
  cursor:pointer; border:none; transition:all .3s var(--ease); text-decoration:none;
}
.author-btn-primary { background:var(--accent); color:var(--bg); }
.author-btn-primary:hover { background:#f3d796; transform:translateY(-2px); }
.author-btn-secondary { background:var(--tag-bg); color:var(--tag-text); border:1px solid var(--border); }
.author-btn-secondary:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }

/* Author photo card */
.author-photo-wrap { position:relative; }

.author-photo-frame {
  position: relative;
  border-radius: 27px;
  padding: 3px;
  overflow: hidden;
  background: rgba(229,195,120,.25);
}

.frame-spinner {
  position: absolute;
  inset: 50%;
  width: 200%; height: 200%;
  margin: -100%;
  background: conic-gradient(
    from 0deg,
    transparent   0%,
    #E5C378       8%,
    #2E4A3F       18%,
    transparent   30%,
    transparent   70%,
    rgba(229,195,120,.4)  78%,
    transparent   88%
  );
  animation: frame-orbit 5s linear infinite;
  pointer-events: none;
}
.frame-glow {
  position: absolute;
  inset: 50%;
  width: 200%; height: 200%;
  margin: -100%;
  background: conic-gradient(
    from 0deg,
    transparent 0%,
    rgba(229,195,120,.6) 8%,
    transparent 30%
  );
  animation: frame-orbit 5s linear infinite;
  filter: blur(14px);
  pointer-events: none;
  z-index: 0;
}
@keyframes frame-orbit {
  to { transform: rotate(360deg); }
}

.author-photo-card {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
  aspect-ratio: 3/4;
  z-index: 1;
  background: var(--bg);
}
.author-photo-card img {
  width:100%; height:100%; object-fit:cover;
}
.author-photo-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(27,58,47,.85) 100%);
}
.author-badge-date {
  position:absolute; top:1.5rem; right:1.5rem;
  background:var(--accent); color:var(--bg);
  padding:.4rem 1rem; border-radius:999px;
  font-size:.82rem; font-weight:700;
}
.author-badge-location {
  position:absolute; bottom:1.5rem; right:1.5rem;
  background:rgba(245,245,245,.15); color:var(--text);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border);
  padding:.4rem 1rem; border-radius:999px;
  font-size:.82rem;
}
.author-dot {
  position:absolute; left:-1.5rem; top:40%;
  width:14px; height:14px; border-radius:50%;
  background:var(--accent);
  box-shadow: 0 0 12px 4px rgba(229,195,120,.5);
  animation: dot-pulse 3s ease-in-out infinite;
}
@keyframes dot-pulse {
  0%,100% { transform:scale(1); opacity:1; }
  50%      { transform:scale(1.4); opacity:.7; }
}

/* ================================================================
   PORTFOLIO GALLERY + MONOCHROME TOGGLE
   ================================================================ */
.gallery-controls {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:3rem; flex-wrap:wrap; gap:1rem;
}
.mono-toggle-wrap {
  display:flex; align-items:center; gap:.8rem;
  font-size:.9rem; color:var(--muted);
}
.mono-label { font-weight:500; }
.mono-label.active { color:var(--accent); }

.toggle-switch {
  position:relative; display:inline-block; width:52px; height:28px;
  cursor:pointer;
}
.toggle-switch input { opacity:0; width:0; height:0; }
.toggle-track {
  position:absolute; inset:0;
  background:var(--tag-bg); border:1px solid var(--border);
  border-radius:999px; transition:background .3s;
}
.toggle-switch input:checked ~ .toggle-track {
  background:var(--accent);
}
.toggle-thumb {
  position:absolute; top:3px; left:3px;
  width:20px; height:20px; border-radius:50%;
  background:#fff; transition:transform .3s var(--ease);
  box-shadow:0 2px 6px rgba(0,0,0,.3);
}
.toggle-switch input:checked ~ .toggle-track .toggle-thumb {
  transform:translateX(24px);
}

.portfolio-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px,1fr));
  gap:2rem;
}

.portfolio-card {
  position:relative; border-radius:14px; overflow:hidden;
  border:1px solid var(--border); background:var(--card);
  cursor:pointer; transition:all .4s var(--ease);
}
.portfolio-card:hover {
  transform:translateY(-8px);
  box-shadow:0 20px 50px rgba(0,0,0,.45);
  border-color:var(--accent);
}
.portfolio-img-wrap { position:relative; width:100%; padding-top:72%; overflow:hidden; }
.portfolio-img {
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover;
  transition:transform .6s var(--ease), filter .4s;
}
.portfolio-card:hover .portfolio-img { transform:scale(1.08); }
.portfolio-img.mono { filter:grayscale(1) contrast(1.05); }

.portfolio-overlay {
  position:absolute; bottom:0; left:0; right:0; padding:1.8rem;
  background:linear-gradient(180deg,transparent 0%,rgba(27,58,47,.95) 100%);
}
.p-cat   { font-size:.82rem; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; }
.p-title { font-family:'Adamina',serif; font-size:1.3rem; color:var(--text); margin-top:.3rem; }

/* ================================================================
   TECHNICAL SKILLS SECTION
   ================================================================ */
.skills-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:4rem 6rem;
  margin-top:3rem;
}

.skills-group-title {
  font-family:'Outfit',sans-serif; font-size:1.2rem; font-weight:600;
  color:var(--text); margin-bottom:1.2rem;
}

.skills-tags { display:flex; flex-wrap:wrap; gap:.7rem; }
.skill-tag {
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--tag-bg); color:var(--tag-text);
  border:1px solid var(--border); border-radius:999px;
  padding:.45rem 1.1rem; font-size:.9rem; font-weight:500;
  transition:all .25s var(--ease); cursor:default;
}
.skill-tag:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }

.languages-row { display:flex; gap:3rem; flex-wrap:wrap; }
.lang-item { }
.lang-name { font-size:1.2rem; font-weight:600; color:var(--text); margin-bottom:.2rem; }
.lang-level { font-size:.88rem; color:var(--muted); }
.lang-dot { width:10px; height:10px; border-radius:50%; background:var(--accent); margin-top:.5rem; }

.hobbies-row { display:flex; gap:2.5rem; flex-wrap:wrap; margin-top:.5rem; }
.hobby-item { display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.hobby-icon { font-size:2.2rem; line-height:1; }
.hobby-label { font-size:.82rem; color:var(--muted); text-align:center; }

/* ================================================================
   BLOG POSTS SECTION
   ================================================================ */
.posts-section { padding:5rem 0 4rem; }
.posts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:2rem; }
.post-card {
  background:var(--card); border:1px solid var(--border); border-radius:14px;
  padding:2rem; transition:all .35s var(--ease);
}
.post-card:hover { transform:translateY(-4px); border-color:var(--accent); box-shadow:0 12px 30px rgba(0,0,0,.3); }
.post-meta { font-size:.85rem; color:var(--muted); margin:.8rem 0; }
.post-title-link { font-family:'Adamina',serif; font-size:1.5rem; color:var(--text); display:block; margin-bottom:.8rem; }
.read-more { color:var(--accent); font-weight:600; font-size:.95rem; }

/* ================================================================
   MODALS
   ================================================================ */
.modal-overlay {
  position:fixed; inset:0;
  background:rgba(8,22,16,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  z-index:2000; display:flex; justify-content:center; align-items:center;
  padding:2rem; opacity:0; visibility:hidden; transition:all .35s var(--ease);
}
.modal-overlay.active { opacity:1; visibility:visible; }
.modal-card {
  background:var(--bg); border:1px solid var(--border); border-radius:20px;
  max-width:920px; width:100%; max-height:90vh; overflow-y:auto;
  padding:3.5rem; position:relative;
  box-shadow:0 30px 70px rgba(0,0,0,.65);
  animation:modalIn .4s var(--ease);
}
.modal-card-sm { max-width:540px; }
@keyframes modalIn { from{transform:translateY(24px) scale(.97);opacity:0} to{transform:none;opacity:1} }
.modal-close {
  position:absolute; top:1.8rem; right:2rem;
  background:none; border:none; font-size:2.2rem; color:var(--muted);
  cursor:pointer; line-height:1; transition:color .2s;
}
.modal-close:hover { color:var(--text); }
.modal-title { font-family:'Adamina',serif; font-size:2.2rem; margin:.6rem 0 .8rem; color:var(--text); }
.modal-sub { color:var(--muted); margin-bottom:2rem; font-size:1.05rem; }

.form-group { margin-bottom:1.4rem; }
.form-label { display:block; margin-bottom:.5rem; font-size:.94rem; color:var(--tag-text); }
.form-input,.form-select {
  width:100%; padding:.9rem 1.2rem;
  background:var(--tag-bg); border:1px solid var(--border); border-radius:8px;
  color:var(--text); font-family:'Outfit',sans-serif; font-size:1rem;
  outline:none; transition:border-color .25s;
}
.form-input:focus,.form-select:focus { border-color:var(--accent); }
.btn-submit {
  width:100%; padding:1rem; background:var(--accent); color:var(--bg);
  border:none; border-radius:8px; font-size:1.05rem; font-weight:600;
  cursor:pointer; transition:background .25s;
}
.btn-submit:hover { background:#f3d796; }

#photo-lightbox-img { border-radius:12px; max-height:65vh; margin:1.5rem auto 0; width:100%; object-fit:contain; }

.toast-container { position:fixed; bottom:2rem; right:2rem; z-index:3000; display:flex; flex-direction:column; gap:1rem; }
.toast {
  background:var(--tag-bg); color:var(--tag-text); border:1px solid var(--accent);
  padding:1rem 1.6rem; border-radius:10px; font-size:.95rem;
  box-shadow:0 10px 28px rgba(0,0,0,.4); display:flex; align-items:center; gap:.8rem;
  transform:translateY(80px); opacity:0; transition:all .4s var(--ease);
}
/* ================================================================
   FOOTER
   ================================================================ */
.site-footer {
  background:var(--tag-bg); border-top:1px solid var(--border);
  position:relative; z-index:20; margin-top:7rem;
}
.footer-inner { max-width:1440px; margin:0 auto; padding:0 4rem; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.6fr; gap:4rem; padding:5rem 0 4rem; }
.footer-top.no-newsletter { grid-template-columns:1.6fr 1fr 1fr; }

.footer-brand .logo-text { font-size:1.8rem; color:var(--text); }
.footer-brand .logo-sub  { color:var(--accent); font-family:'Noto Serif JP',serif; }
.footer-tagline { color:var(--muted); font-size:.95rem; line-height:1.7; margin-top:1rem; max-width:280px; }
.footer-social  { display:flex; gap:1rem; margin-top:1.8rem; flex-wrap:wrap; }
.social-btn {
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:10px;
  background:rgba(245,245,245,.07); border:1px solid var(--border);
  color:var(--tag-text); font-size:1.1rem; cursor:pointer; text-decoration:none;
  transition:all .25s var(--ease);
}
.social-btn:hover { background:var(--accent); color:var(--bg); border-color:var(--accent); transform:translateY(-2px); }

.footer-col-title { font-family:'Adamina',serif; font-size:1.05rem; color:var(--text); margin-bottom:1.4rem; }
.footer-links, .footer-links-list { list-style:none; display:flex; flex-direction:column; gap:.8rem; padding:0; margin:0; }
.footer-links a, .footer-links button, .footer-links-list a, .footer-links-list button {
  background:none; border:none; padding:0;
  color:var(--muted); font-size:.95rem; font-family:'Outfit',sans-serif;
  cursor:pointer; text-decoration:none; transition:color .2s; text-align:left;
  display:block;
}
.footer-links a:hover, .footer-links button:hover, .footer-links-list a:hover, .footer-links-list button:hover { color:var(--accent); }

.contact-item { display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1rem; color:var(--muted); font-size:.95rem; line-height:1.5; }
.contact-icon {
  width:36px; height:36px; border-radius:8px;
  background:rgba(245,245,245,.07); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0;
}

.footer-newsletter-desc { color:var(--muted); font-size:.92rem; line-height:1.6; margin-bottom:1.2rem; }
.footer-form { display:flex; flex-direction:column; gap:.8rem; }
.footer-input {
  width:100%; padding:.75rem 1rem;
  background:rgba(245,245,245,.07); border:1px solid var(--border); border-radius:8px;
  color:var(--text); font-family:'Outfit',sans-serif; font-size:.95rem;
  outline:none; transition:border-color .25s;
}
.footer-input:focus { border-color:var(--accent); }
.footer-submit {
  padding:.75rem 1.2rem; background:var(--accent); color:var(--bg);
  border:none; border-radius:8px; font-size:.95rem; font-weight:600;
  cursor:pointer; transition:background .25s;
}
.footer-submit:hover { background:#f3d796; }
.footer-divider { border:none; border-top:1px solid var(--border); margin:0; }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.6rem 0; color:var(--muted); font-size:.85rem; flex-wrap:wrap; gap:1rem;
}
.footer-bottom a { color:var(--muted); }
.footer-bottom a:hover { color:var(--accent); }
.footer-bottom-links { display:flex; gap:1.8rem; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media(max-width:1100px){
  .author-inner { grid-template-columns:1fr; }
  .author-photo-wrap { max-width:360px; margin:0 auto; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .skills-grid { grid-template-columns:1fr; gap:3rem; }
}
@media(max-width:900px){
  .app-wrapper { padding:6rem 1.5rem 0; }
  .page-section { padding:0 1.5rem; }
  .navbar { padding:1.5rem 1.5rem; }
  .navbar.scrolled { padding:1rem 1.5rem; }
  .content-bottom { flex-direction:column; align-items:flex-start; gap:2rem; padding-top:500px; }
  .main-title { font-size:2.5rem; }
  .author-greeting { font-size:3rem; }
  .footer-inner { padding:0 1.5rem; }
}
@media(max-width:600px){
  .nav-right .nav-link { display:none; }
  .main-title { font-size:2rem; }
  .footer-top { grid-template-columns:1fr; gap:2.5rem; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .footer-bottom-links { justify-content:center; flex-wrap:wrap; }
}

/* ================================================================
   ARCHIVE — HERO HEADER
   ================================================================ */
.archive-hero {
  position: relative;
  background: var(--tag-bg);
  border-bottom: 1px solid var(--border);
  padding: 8rem 4rem 5rem;
  overflow: hidden;
}
.archive-hero::before {
  content: '屋根';
  position: absolute;
  right: 4rem; top: 50%;
  transform: translateY(-50%);
  font-family: 'Noto Serif JP', serif;
  font-size: 12rem;
  font-weight: 700;
  color: rgba(229,195,120,.06);
  pointer-events: none;
  line-height: 1;
  user-select: none;
}
.archive-hero-inner {
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.archive-hero-title {
  font-family: 'Adamina', serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  color: var(--text);
  font-weight: 400;
  margin: 1rem 0 .8rem;
  line-height: 1.1;
}
.archive-hero-desc {
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.75;
  max-width: 520px;
  margin-bottom: 1.5rem;
}
.archive-hero-bar {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.archive-post-count {
  font-size: .88rem;
  color: var(--muted);
  border: 1px solid var(--border);
  padding: .3rem .9rem;
  border-radius: 999px;
}

/* ================================================================
   ARCHIVE — POSTS GRID (yane-post-card)
   ================================================================ */
.archive-posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 2.2rem;
}

.yane-post-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  transition: all .4s var(--ease);
  display: flex;
  flex-direction: column;
}
.yane-post-card:hover {
  transform: translateY(-6px);
  border-color: rgba(229,195,120,.4);
  box-shadow: 0 20px 50px rgba(0,0,0,.35);
}

/* Card image area */
.yane-card-img-wrap {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 60%;
  overflow: hidden;
  text-decoration: none;
  flex-shrink: 0;
}
.yane-card-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.yane-post-card:hover .yane-card-img { transform: scale(1.07); }

.yane-card-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(27,58,47,.85) 100%);
  display: flex;
  align-items: flex-end;
  padding: 1.4rem;
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.yane-post-card:hover .yane-card-img-overlay { opacity: 1; }
.yane-card-read-cta {
  color: var(--accent);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .02em;
}

.yane-card-img-placeholder {
  background: var(--tag-bg);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Card body */
.yane-card-body {
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.yane-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.yane-card-cat {
  text-decoration: none;
  font-size: .78rem;
}
.yane-card-readtime {
  font-size: .82rem;
  color: var(--muted);
}
.yane-card-title {
  font-family: 'Adamina', serif;
  font-size: 1.35rem;
  line-height: 1.35;
  margin-bottom: .75rem;
  flex: 1;
}
.yane-card-title a {
  color: var(--text);
  text-decoration: none;
  transition: color .2s;
}
.yane-card-title a:hover { color: var(--accent); }

.yane-card-excerpt {
  color: var(--muted);
  font-size: .93rem;
  line-height: 1.7;
  margin-bottom: 1.2rem;
}
.yane-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.yane-card-author {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .88rem;
  color: var(--muted);
}
.yane-card-avatar {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50%;
  object-fit: cover;
}
.yane-card-date {
  font-size: .82rem;
  color: var(--muted);
}

/* Archive Pagination */
.archive-pagination {
  margin-top: 4rem;
  display: flex;
  justify-content: center;
}
.archive-pagination .nav-links {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
  justify-content: center;
}
.archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 10px;
  background: var(--tag-bg);
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: .95rem;
  text-decoration: none;
  transition: all .25s var(--ease);
}
.archive-pagination .page-numbers:hover,
.archive-pagination .page-numbers.current {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
}
.archive-pagination .prev, .archive-pagination .next {
  width: auto;
  padding: 0 1.2rem;
  font-weight: 600;
}

/* Archive empty state */
.archive-empty {
  text-align: center;
  padding: 6rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.archive-empty p { color: var(--muted); font-size: 1.1rem; }

/* ================================================================
   SINGLE POST — HERO BANNER
   ================================================================ */
.single-hero {
  position: relative;
  width: 100%;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.single-hero-img-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.single-hero-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  animation: hero-subtle-zoom 18s ease-in-out infinite alternate;
}
@keyframes hero-subtle-zoom {
  from { transform: scale(1); }
  to   { transform: scale(1.05); }
}
.single-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    180deg,
    rgba(27,58,47,.15) 0%,
    rgba(27,58,47,.6)  50%,
    rgba(10,24,18,.95) 100%
  );
}
.single-hero-no-img {
  position: absolute; inset: 0;
  background-color: var(--bg);
  background-image: linear-gradient(135deg, rgba(27,58,47,0.7) 0%, rgba(10,24,18,0.95) 100%), url('assets/images/bg.jpg');
  background-size: cover;
  background-blend-mode: overlay;
  z-index: 0;
}
.single-hero-content {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 9rem 4rem 4rem;
}
.single-hero-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.4rem;
  flex-wrap: wrap;
}
.single-hero-date,
.single-hero-read {
  font-size: .88rem;
  color: rgba(245,245,245,.75);
}
.single-hero-title {
  font-family: 'Adamina', serif;
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  color: var(--text);
  font-weight: 400;
  line-height: 1.15;
  max-width: 820px;
  margin-bottom: 2rem;
}
.single-hero-author {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.single-author-avatar .author-avatar-img {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  border: 2px solid var(--accent);
  object-fit: cover;
}
.single-author-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}
.single-author-label {
  font-size: .82rem;
  color: rgba(245,245,245,.6);
}

/* ================================================================
   SINGLE POST — BODY LAYOUT
   ================================================================ */
.single-body-wrap {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 4rem;
  max-width: 1440px;
  margin: 0 auto;
  padding: 5rem 4rem 7rem;
  align-items: start;
}

/* ---- Main article ---- */
.single-article {
  min-width: 0;
  position: relative;
}
.single-article::before {
  content: 'エッセイ // JOURNAL';
  position: absolute;
  left: -5.5rem;
  top: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--accent);
  opacity: 0.4;
  writing-mode: vertical-rl;
  text-transform: uppercase;
}
@media(max-width: 1400px) {
  .single-article::before { display: none; }
}

/* ---- Prose typography ---- */
.yane-prose {
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.85;
}
.yane-prose > p:first-of-type::first-letter {
  font-family: 'Adamina', serif;
  font-size: 3.8rem;
  float: left;
  line-height: 0.85;
  margin-right: 0.8rem;
  margin-top: 0.2rem;
  color: var(--accent);
  text-shadow: 2px 2px 0 var(--tag-bg);
}
.yane-prose p { margin-bottom: 1.5rem; }
.yane-prose h2 {
  font-family: 'Adamina', serif;
  font-size: 1.8rem;
  color: var(--text);
  margin: 3rem 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border);
}
.yane-prose h3 {
  font-family: 'Adamina', serif;
  font-size: 1.4rem;
  color: var(--text);
  margin: 2.2rem 0 .8rem;
}
.yane-prose h4 { font-size: 1.1rem; color: var(--text); margin: 1.5rem 0 .5rem; }
.yane-prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.yane-prose a:hover { color: #f3d796; }
.yane-prose strong { color: var(--text); font-weight: 600; }
.yane-prose em { color: var(--accent); font-style: italic; }
.yane-prose blockquote {
  border-left: 3px solid var(--accent);
  margin: 2.5rem 0;
  padding: 1.2rem 1.8rem;
  background: var(--card);
  border-radius: 0 10px 10px 0;
  font-family: 'Adamina', serif;
  font-size: 1.1rem;
  color: var(--text);
  font-style: italic;
}
.yane-prose ul, .yane-prose ol {
  padding-left: 1.6rem;
  margin-bottom: 1.5rem;
}
.yane-prose li { margin-bottom: .5rem; }
.yane-prose img {
  width: 100%;
  border-radius: 12px;
  margin: 2rem 0;
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
}
.yane-prose code {
  background: var(--tag-bg);
  padding: .15em .45em;
  border-radius: 4px;
  font-size: .9em;
  color: var(--accent);
}
.yane-prose pre {
  background: var(--tag-bg);
  border: 1px solid var(--border);
  padding: 1.4rem;
  border-radius: 10px;
  overflow-x: auto;
  margin: 2rem 0;
}
.yane-prose pre code { background: none; padding: 0; color: var(--text); }
.yane-prose hr {
  border: none;
  border-top: 1px solid var(--border);
  margin: 3rem 0;
}
.yane-prose figure { margin: 2rem 0; }
.yane-prose figcaption {
  text-align: center;
  font-size: .85rem;
  color: var(--muted);
  margin-top: .6rem;
  font-style: italic;
}

/* ---- Tags ---- */
.single-tags {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--border);
}
.single-tags-label {
  font-size: .85rem;
  color: var(--muted);
}
.single-tag-pill {
  display: inline-block;
  background: var(--tag-bg);
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: .3rem .85rem;
  font-size: .82rem;
  text-decoration: none;
  transition: all .2s var(--ease);
}
.single-tag-pill:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ---- Post nav (prev/next) ---- */
.single-post-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.5rem;
  margin-top: 4rem;
  padding-top: 3rem;
  border-top: 1px solid var(--border);
}
.single-nav-prev { text-align: left; }
.single-nav-next { text-align: right; }
.single-nav-divider {
  width: 1px;
  background: var(--border);
  margin: 0 auto;
}
.single-nav-label {
  display: block;
  font-size: .8rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: .5rem;
}
.single-nav-title {
  font-family: 'Adamina', serif;
  font-size: 1.05rem;
  color: var(--text);
  text-decoration: none;
  line-height: 1.35;
  transition: color .2s;
  display: block;
}
.single-nav-title:hover { color: var(--accent); }

/* ================================================================
   SINGLE POST — SIDEBAR
   ================================================================ */
.single-sidebar {
  position: sticky;
  top: 7rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

/* Author card */
.single-author-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2rem;
  text-align: center;
}
.single-author-card-avatar {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}
.author-avatar-img-lg {
  width: 72px !important;
  height: 72px !important;
  border-radius: 50%;
  border: 3px solid var(--accent);
  object-fit: cover;
}
.single-author-card-name {
  font-family: 'Adamina', serif;
  font-size: 1.2rem;
  color: var(--text);
  margin-bottom: .25rem;
}
.single-author-card-role {
  font-size: .82rem;
  color: var(--muted);
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.single-author-card-bio {
  font-size: .9rem;
  color: var(--muted);
  line-height: 1.65;
  margin-bottom: 1.4rem;
}

/* Related posts box */
.single-related-box {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.6rem;
}
.single-related-title {
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1.2rem;
}
.single-related-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  text-decoration: none;
  padding: .8rem 0;
  border-bottom: 1px solid var(--border);
  transition: all .2s;
}
.single-related-item:last-child { border-bottom: none; }
.single-related-item:hover .single-related-item-title { color: var(--accent); }
.single-related-thumb {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.related-thumb-img {
  width: 60px !important;
  height: 60px !important;
  object-fit: cover;
}
.single-related-item-title {
  font-size: .9rem;
  color: var(--text);
  line-height: 1.4;
  margin-bottom: .3rem;
  transition: color .2s;
}
.single-related-item-date {
  font-size: .78rem;
  color: var(--muted);
}

/* Back button */
.single-back-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--muted);
  font-size: .92rem;
  text-decoration: none;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: .65rem 1.4rem;
  background: var(--tag-bg);
  transition: all .25s var(--ease);
  align-self: center;
}
.single-back-btn:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* Comments wrap */
.single-comments-wrap {
  max-width: 820px;
  margin: 4rem auto 0;
  padding: 4rem;
  border-top: 1px solid var(--border);
}
.single-comments-wrap .comment-list,
.single-comments-wrap .comment-list li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.single-comments-wrap .comment-body {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  transition: border-color 0.3s;
}
.single-comments-wrap .comment-body:hover {
  border-color: var(--accent);
}
.single-comments-wrap .comment-meta { margin-bottom: .8rem; }
.single-comments-wrap .fn { color: var(--text); font-weight: 600; }
.single-comments-wrap .comment-date { color: var(--muted); font-size: .85rem; }
.single-comments-wrap .comment-content p { color: var(--muted); line-height: 1.7; }
.single-comments-wrap h2.comments-title {
  font-family: 'Adamina', serif;
  font-size: 1.8rem;
  color: var(--text);
  margin-bottom: 2rem;
}

/* Form Styling */
.comment-respond {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px dashed var(--border);
}
.comment-form-comment textarea,
.comment-form-author input,
.comment-form-email input,
.comment-form-url input {
  width: 100%;
  padding: .9rem 1.2rem;
  background: var(--tag-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 1rem;
  outline: none;
  transition: border-color .25s;
  margin-bottom: 1rem;
}
.comment-form-comment textarea:focus,
.comment-form-author input:focus,
.comment-form-email input:focus,
.comment-form-url input:focus {
  border-color: var(--accent);
}
.comment-form .submit {
  display: inline-block;
  padding: .85rem 2rem;
  background: var(--accent);
  color: var(--bg);
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .25s var(--ease);
}
.comment-form .submit:hover {
  background: #f3d796;
  transform: translateY(-2px);
}
.comment-notes, .logged-in-as {
  font-size: 0.88rem;
  color: var(--muted);
  margin-bottom: 1.5rem;
}
.logged-in-as a {
  color: var(--accent);
  text-decoration: none;
}

/* ================================================================
   RESPONSIVE — Blog additions
   ================================================================ */
@media(max-width:1100px){
  .single-body-wrap { grid-template-columns: 1fr; }
  .single-sidebar { position: static; }
}
@media(max-width:900px){
  .archive-hero { padding: 7rem 1.5rem 3.5rem; }
  .single-hero-content { padding: 8rem 1.5rem 3rem; }
  .single-body-wrap { padding: 3rem 1.5rem 5rem; }
  .single-post-nav { grid-template-columns: 1fr; }
  .single-nav-divider { display: none; }
  .single-nav-next { text-align: left; }
  .single-comments-wrap { padding: 0 1.5rem 4rem; }
}
@media(max-width:600px){
  .archive-posts-grid { grid-template-columns: 1fr; }
  .single-hero { min-height: 380px; }
  .single-hero-title { font-size: 1.8rem; }
}

/* ================================================================
   AESTHETICS STATIC PAGES (page.php / content-page.php)
   ================================================================ */
.site-main-content {
  padding: 10rem 4rem 8rem;
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
  min-height: 75vh;
}
.page-article {
  position: relative;
  background: rgba(27, 58, 47, 0.4);
  border: 1px solid rgba(229, 195, 120, 0.18);
  padding: 5rem 6rem;
  border-radius: 20px;
  box-shadow: 0 35px 80px rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  margin: 0 auto;
  max-width: 900px;
}
/* Side borders — fully controlled by Customizer CSS output */
.page-article::before,
.page-article::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 24px;
  background-repeat: repeat-y;
  background-size: 100% auto;
  z-index: 1;
}

.page-article .yane-tag {
  display: table;
  margin: 0 auto 1.2rem;
  background: var(--tag-bg);
  color: var(--tag-text);
  padding: .4rem 1.2rem;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--border);
}
.page-article .entry-title {
  font-family: 'Adamina', serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  color: var(--text);
  text-align: center;
  margin-bottom: 3.5rem;
  line-height: 1.2;
}
.page-article .entry-content {
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.85;
}
.page-article .entry-content p {
  margin-bottom: 1.6rem;
}
.page-article .entry-content h2 {
  font-family: 'Adamina', serif;
  font-size: 1.8rem;
  color: var(--text);
  margin: 3.5rem 0 1.2rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--border);
}
.page-article .entry-content h3 {
  font-family: 'Adamina', serif;
  font-size: 1.4rem;
  color: var(--text);
  margin: 2.5rem 0 1rem;
}
.page-article .entry-content a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.page-article .entry-content a:hover {
  color: #f3d796;
}

@media(max-width: 900px) {
  .site-main-content {
    padding: 7rem 1.5rem 5rem;
  }
  .page-article {
    padding: 4rem 3rem;
  }
  .page-article::before {
    width: 16px;
  }
  .page-article::after {
    width: 16px;
  }
}
@media(max-width: 600px) {
  .page-article {
    padding: 3rem 1.8rem;
  }
  .page-article::before, .page-article::after {
    display: none; /* Hide on very small screens to maximize text space */
  }
}

/* Custom Image Icons Styling */
.social-btn img.footer-custom-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  border-radius: inherit;
}
.author-btn img.author-custom-btn-icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  border-radius: inherit;
  vertical-align: middle;
}

/* Horizontal Scrolling Marquee Gallery */
.gallery-ticker-viewport {
  width: 100%;
  overflow: hidden;
  position: relative;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(46,74,63,0.05);
  padding: 1.5rem 0;
}
.gallery-ticker-track {
  display: flex;
  flex-direction: row;
  width: max-content;
  animation: galleryTickerMarqueeRTL 25s linear infinite;
}
.gallery-ticker-viewport:hover .gallery-ticker-track {
  animation-play-state: paused;
}
.gallery-ticker-list {
  display: flex;
  flex-direction: row;
  gap: 2rem;
  padding: 0 1rem;
}
.gallery-ticker-list .portfolio-card {
  width: 320px;
  flex-shrink: 0;
}

@keyframes galleryTickerMarqueeRTL {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes galleryTickerMarqueeLTR {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

.notes-ticker-viewport {
  overflow: hidden;
  position: relative;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(46,74,63,0.05);
  padding: 1.5rem;
}
.notes-ticker-viewport.orientation-vertical {
  height: 480px;
}
.notes-ticker-viewport.orientation-horizontal {
  height: auto;
  width: 100%;
}
.notes-ticker-track {
  display: flex;
  gap: 1.5rem;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
.notes-ticker-viewport.orientation-vertical .notes-ticker-track {
  flex-direction: column;
}
.notes-ticker-viewport.orientation-horizontal .notes-ticker-track {
  flex-direction: row;
  width: max-content;
}
.notes-ticker-viewport:hover .notes-ticker-track {
  animation-play-state: paused;
}
.notes-ticker-list {
  display: flex;
  gap: 1.5rem;
}
.notes-ticker-viewport.orientation-vertical .notes-ticker-list {
  flex-direction: column;
}
.notes-ticker-viewport.orientation-horizontal .notes-ticker-list {
  flex-direction: row;
  flex-shrink: 0;
  width: max-content;
}
.notes-ticker-viewport.orientation-horizontal .post-card {
  width: 320px;
  flex-shrink: 0;
}

@keyframes notesTickerMarqueeUp {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
@keyframes notesTickerMarqueeDown {
  0% { transform: translateY(-50%); }
  100% { transform: translateY(0); }
}
@keyframes notesTickerMarqueeRTL {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes notesTickerMarqueeLTR {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

/* Hide X (Twitter) and Pinterest share buttons/icons on single posts */
.single-article .sharedaddy,
.single-article .sd-sharing-enabled,
.single-article .addtoany_share_save_container,
.single-article .post-share-buttons,
.single-article .social-sharing,
.single-article .share-buttons,
.single-article .post-share,
.single-article .wp-block-social-links,
.single-article .jetpack-likes-widget-wrapper {
  display: none !important;
}

/* ================================================================
   SINGLE POST — SHARE ICONS (theme-native, Customizer-controlled)
   ================================================================ */
.single-share-icons {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 2rem 0 1.5rem;
  padding: 1.2rem 0;
  border-top: 1px solid var(--border);
}
.single-share-label {
  font-family: 'Outfit', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 0.4rem;
}
.share-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid var(--border);
  color: var(--text);
  background: rgba(245,245,245,.06);
  text-decoration: none;
  transition: background 0.25s var(--ease), color 0.25s var(--ease),
              border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.share-icon-btn:hover {
  transform: translateY(-3px);
}
.share-icon-x:hover {
  background: #000;
  border-color: #000;
  color: #fff;
}
.share-icon-pinterest:hover {
  background: #E60023;
  border-color: #E60023;
  color: #fff;
}

/* ================================================================
   NAV SEARCH BAR (Customizer-controlled)
   ================================================================ */
.nav-search-wrap {
  display: flex;
  align-items: center;
  position: relative;
}
.nav-search-toggle {
  background: none;
  border: none;
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  transition: background 0.25s var(--ease), color 0.25s var(--ease);
  padding: 0;
}
.nav-search-toggle:hover {
  background: rgba(245,245,245,.12);
  color: var(--accent);
}
.nav-search-toggle svg {
  width: 18px;
  height: 18px;
  display: block;
}
.nav-search-form {
  position: absolute;
  top: 50%;
  transform: translateY(-50%) scaleX(0);
  transform-origin: right center;
  right: 44px;
  background: var(--glass);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border);
  border-radius: 999px;
  display: flex;
  align-items: center;
  overflow: hidden;
  width: 0;
  opacity: 0;
  transition: width 0.35s var(--ease), opacity 0.3s var(--ease),
              transform 0.35s var(--ease);
  pointer-events: none;
}
/* Position: left — expand leftward from left edge of toggle */
.nav-search-wrap.search-pos-left .nav-search-form {
  right: auto;
  left: 44px;
  transform-origin: left center;
  transform: translateY(-50%) scaleX(0);
}
.nav-search-wrap.search-open .nav-search-form {
  width: 240px;
  opacity: 1;
  transform: translateY(-50%) scaleX(1);
  pointer-events: all;
}
.nav-search-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 0.92rem;
  padding: 0.55rem 0 0.55rem 1.1rem;
  width: 100%;
}
.nav-search-input::placeholder {
  color: var(--muted);
  opacity: 0.8;
}
.nav-search-submit {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  padding: 0.4rem 0.8rem;
  display: flex;
  align-items: center;
  transition: color 0.2s;
}
.nav-search-submit:hover { color: var(--accent); }
.nav-search-submit svg { width: 15px; height: 15px; display: block; }

/* ================================================================
   GALLERY PAGE — Artistic Masonry Grid
   ================================================================ */
.gallery-page-hero {
  min-height: 36vh;
  background: var(--bg);
  display: flex;
  align-items: flex-end;
  padding: 9rem 4rem 3.5rem;
  position: relative;
  overflow: hidden;
}
.gallery-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 60%, rgba(229,195,120,.10) 0%, transparent 65%),
              radial-gradient(ellipse at 80% 20%, rgba(27,58,47,.60) 0%, transparent 70%);
  pointer-events: none;
}
.gallery-hero-inner { position: relative; z-index: 1; max-width: 680px; }
.gallery-hero-label {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: 0.9;
}
.gallery-hero-title {
  font-family: 'Adamina', serif;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  color: var(--text);
  margin: 0.6rem 0 1rem;
  line-height: 1.1;
}
.gallery-hero-desc {
  font-size: 1rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 480px;
}
.gallery-hero-count {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.4rem;
  padding: 0.45rem 1rem;
  background: rgba(229,195,120,.10);
  border: 1px solid rgba(229,195,120,.22);
  border-radius: 999px;
  font-size: 0.85rem;
  color: var(--accent);
  font-weight: 500;
}

.gallery-masonry-section {
  padding: 4rem 4rem 8rem;
  max-width: 1600px;
  margin: 0 auto;
}

/* CSS masonry via columns */
.gallery-masonry {
  columns: 3;
  column-gap: 1.6rem;
}
@media(max-width: 1100px) { .gallery-masonry { columns: 2; } }
@media(max-width: 640px)  { .gallery-masonry { columns: 1; } }

.gallery-masonry-item {
  break-inside: avoid;
  margin-bottom: 1.6rem;
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  display: block;
  /* Entrance animation — staggered via inline style */
  opacity: 0;
  transform: translateY(30px) scale(0.97);
  transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
  box-shadow: 0 6px 24px rgba(0,0,0,.35);
}
.gallery-masonry-item.gal-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.gallery-masonry-item img {
  width: 100%;
  height: auto;
  display: block;
  /* Sepia/vintage tint */
  filter: sepia(0.25) contrast(1.05) brightness(0.96);
  transition: filter 0.45s var(--ease), transform 0.5s var(--ease);
}
.gallery-masonry-item:hover img {
  filter: sepia(0) contrast(1) brightness(1);
  transform: scale(1.04);
}
.gallery-masonry-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 2rem 1.4rem 1.2rem;
  background: linear-gradient(0deg, rgba(15,30,23,.95) 0%, transparent 100%);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}
.gallery-masonry-item:hover .gallery-masonry-caption {
  opacity: 1;
  transform: translateY(0);
}
.gallery-masonry-caption .gal-cat {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--accent);
  font-weight: 600;
  display: block;
  margin-bottom: 0.25rem;
}
.gallery-masonry-caption .gal-title {
  font-family: 'Adamina', serif;
  font-size: 1.05rem;
  color: var(--text);
  line-height: 1.3;
}

/* Lightbox overlay for gallery page */
.gal-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5,15,10,.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s var(--ease), visibility 0.3s;
}
.gal-lightbox.gal-lb-open {
  opacity: 1;
  visibility: visible;
}
.gal-lb-inner {
  position: relative;
  max-width: 1100px;
  width: 100%;
  animation: galLbIn 0.35s var(--ease);
}
@keyframes galLbIn {
  from { transform: scale(0.94); opacity: 0; }
  to   { transform: scale(1);    opacity: 1; }
}
.gal-lb-img {
  width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 12px;
  display: block;
  filter: none;
}
.gal-lb-caption {
  text-align: center;
  margin-top: 1.2rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.gal-lb-caption strong { color: var(--text); }
.gal-lb-close {
  position: absolute;
  top: -1.4rem;
  right: -0.5rem;
  background: none;
  border: none;
  color: var(--muted);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.2s;
}
.gal-lb-close:hover { color: var(--accent); }

@media(max-width: 768px) {
  .gallery-page-hero { padding: 8rem 1.5rem 2.5rem; }
  .gallery-masonry-section { padding: 3rem 1.5rem 5rem; }
}

/* ================================================================
   DARK MONOCHROME EXPANDING NAV SEARCH
   ================================================================ */
.menu-item-search,
.nav-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.search-toggle-btn,
.nav-search-toggle {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--text);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s var(--ease);
}
.search-toggle-btn:hover,
.nav-search-toggle:hover,
.search-open .nav-search-toggle,
.is-expanded .search-toggle-btn {
  background: rgba(229, 195, 120, 0.15);
  border-color: var(--accent);
  color: var(--accent);
  transform: scale(1.05);
}

.nav-search-form-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 320px;
  background: rgba(18, 18, 18, 0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 14px;
  padding: 10px;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.6), 0 0 15px rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px) scale(0.95);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0.3s;
  z-index: 1100;
}
.search-open .nav-search-form-dropdown,
.is-expanded .nav-search-form-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.dark-search-form .search-form-inner {
  display: flex;
  align-items: center;
  background: rgba(32, 32, 32, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.dark-search-form .search-form-inner:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 12px rgba(229, 195, 120, 0.25);
}

.dark-search-input {
  flex: 1;
  background: transparent;
  border: none;
  padding: 0.75rem 1rem;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 0.95rem;
  outline: none;
}
.dark-search-input::placeholder {
  color: var(--muted);
}

.dark-search-submit {
  background: transparent;
  border: none;
  color: var(--muted);
  padding: 0 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.25s ease, transform 0.25s ease;
}
.dark-search-submit:hover {
  color: var(--accent);
  transform: scale(1.1);
}

/* ================================================================
   ROTATED CARD MASONRY GRID & SCATTERED PHOTO COLLAGE
   ================================================================ */
.gallery-page-wrapper {
  min-height: 100vh;
  background-color: var(--bg);
}

.gallery-masonry-section {
  padding: 3rem 4rem 8rem;
  max-width: 1500px;
  margin: 0 auto;
}

.gallery-masonry {
  display: grid;
  grid-template-columns: repeat(var(--gal-cols, 3), 1fr);
  gap: 2.5rem;
  align-items: start;
}
.gallery-masonry.gal-cols-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-masonry.gal-cols-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-masonry.gal-cols-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-masonry.gal-cols-5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1200px) {
  .gallery-masonry,
  .gallery-masonry.gal-cols-3,
  .gallery-masonry.gal-cols-4,
  .gallery-masonry.gal-cols-5 {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
@media (max-width: 640px) {
  .gallery-masonry,
  .gallery-masonry.gal-cols-2,
  .gallery-masonry.gal-cols-3,
  .gallery-masonry.gal-cols-4,
  .gallery-masonry.gal-cols-5 {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }
}

.gallery-card-item {
  position: relative;
  border-radius: 14px;
  background: #141414;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
  transform: rotate(var(--card-tilt, 0deg)) translateY(0);
  transform-origin: center center;
  transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease, border-color 0.4s ease, z-index 0s;
  cursor: pointer;
  user-select: none;
  outline: none;
  z-index: 1;
}

.gallery-card-item:hover,
.gallery-card-item:focus {
  transform: rotate(0deg) translateY(-10px) scale(1.03) !important;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.75), 0 0 25px rgba(229, 195, 120, 0.18);
  border-color: rgba(229, 195, 120, 0.4);
  z-index: 20;
}

.gallery-card-inner {
  position: relative;
  padding: 12px 12px 16px 12px;
  border-radius: 14px;
  background: radial-gradient(circle at top left, rgba(40,40,40,0.6), rgba(20,20,20,0.95));
  overflow: hidden;
}

.gallery-card-inner img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
  filter: contrast(1.03) brightness(0.95);
  transition: filter 0.45s ease, transform 0.45s ease;
}

.gallery-card-item:hover .gallery-card-inner img {
  filter: contrast(1.05) brightness(1.05);
  transform: scale(1.02);
}

.gallery-masonry-caption {
  padding: 0.9rem 0.4rem 0.2rem;
}
.gallery-masonry-caption .gal-cat {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--accent);
  font-weight: 600;
  display: block;
  margin-bottom: 0.2rem;
}
.gallery-masonry-caption .gal-title {
  font-family: 'Adamina', serif;
  font-size: 1rem;
  color: var(--text);
  line-height: 1.35;
}

/* ================================================================
   ADMIN AJAX UPLOADER (Dark Monochrome Aesthetics)
   ================================================================ */
.gallery-admin-uploader-section {
  max-width: 900px;
  margin: 0 auto 3rem;
  padding: 0 4rem;
}

.gallery-uploader-card {
  background: rgba(22, 22, 22, 0.85);
  border: 2px dashed rgba(229, 195, 120, 0.35);
  border-radius: 18px;
  padding: 2.8rem 2rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.35s var(--ease);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
}
.gallery-uploader-card:hover,
.gallery-uploader-card.is-dragover {
  border-color: var(--accent);
  background: rgba(229, 195, 120, 0.08);
  transform: translateY(-4px);
  box-shadow: 0 20px 45px rgba(229, 195, 120, 0.12);
}
.gallery-uploader-card.is-uploading {
  opacity: 0.7;
  pointer-events: none;
}

.uploader-icon {
  color: var(--accent);
  margin-bottom: 1rem;
  display: inline-flex;
  padding: 1rem;
  background: rgba(229, 195, 120, 0.1);
  border-radius: 50%;
  border: 1px solid rgba(229, 195, 120, 0.2);
}

.uploader-text h3 {
  font-family: 'Adamina', serif;
  font-size: 1.25rem;
  color: var(--text);
  margin-bottom: 0.4rem;
}
.uploader-text p {
  font-size: 0.98rem;
  color: var(--muted);
  margin-bottom: 0.5rem;
}
.uploader-text .browse-link {
  color: var(--accent);
  text-decoration: underline;
  font-weight: 500;
}
.uploader-hint {
  display: block;
  font-size: 0.82rem;
  color: rgba(184, 199, 192, 0.7);
  margin-top: 0.4rem;
}

.gallery-upload-msg {
  margin-top: 1rem;
  padding: 0.85rem 1.4rem;
  border-radius: 10px;
  font-size: 0.92rem;
  text-align: center;
  font-weight: 500;
  animation: fadeInMsg 0.3s ease;
}
@keyframes fadeInMsg {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.gallery-upload-msg.msg-success {
  background: rgba(40, 167, 69, 0.18);
  border: 1px solid rgba(40, 167, 69, 0.4);
  color: #75b798;
}
.gallery-upload-msg.msg-error {
  background: rgba(220, 53, 69, 0.18);
  border: 1px solid rgba(220, 53, 69, 0.4);
  color: #ea868f;
}
.gallery-upload-msg.msg-info {
  background: rgba(229, 195, 120, 0.15);
  border: 1px solid rgba(229, 195, 120, 0.4);
  color: var(--accent);
}

/* ================================================================
   ADMIN DELETE BUTTON BADGE
   ================================================================ */
.yane-admin-delete-btn {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(15, 15, 15, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ff5555;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.yane-admin-delete-btn:hover {
  background: #dc3545;
  color: #ffffff;
  border-color: #dc3545;
  transform: scale(1.15) rotate(90deg);
}

/* ================================================================
   PRIVATE GALLERY ACCESS CONTROL NOTICE
   ================================================================ */
.gallery-private-section {
  max-width: 650px;
  margin: 4rem auto 8rem;
  padding: 0 2rem;
}
.gallery-private-card {
  background: rgba(20, 20, 20, 0.92);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 3.5rem 2.5rem;
  text-align: center;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.6);
}
.gallery-private-card .private-icon {
  color: var(--accent);
  margin-bottom: 1.2rem;
  display: inline-flex;
  padding: 1.2rem;
  background: rgba(229, 195, 120, 0.1);
  border-radius: 50%;
  border: 1px solid rgba(229, 195, 120, 0.2);
}
.gallery-private-card h2 {
  font-family: 'Adamina', serif;
  font-size: 1.8rem;
  color: var(--text);
  margin-bottom: 0.8rem;
}
.gallery-private-card p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.6;
}

/* ================================================================
   LIVE SEARCH RESULTS DROPDOWN STYLING
   ================================================================ */
.live-search-results {
  margin-top: 10px;
  max-height: 320px;
  overflow-y: auto;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 6px;
  display: none;
}
.live-search-loading,
.live-search-no-results {
  padding: 0.8rem 1rem;
  font-size: 0.88rem;
  color: var(--muted);
  text-align: center;
}
.live-results-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.live-result-item a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 10px;
  text-decoration: none;
  background: transparent;
  transition: background 0.2s ease;
}
.live-result-item a:hover {
  background: rgba(229, 195, 120, 0.12);
}
.live-result-thumb {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.live-result-info {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.live-result-title {
  font-size: 0.9rem;
  color: var(--text);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.live-result-type {
  font-size: 0.72rem;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ================================================================
   3D SPHERICAL STAGE & SQUIRCLE TILES (Matching Reference Design)
   ================================================================ */
.gallery-page-wrapper.spherical-theme {
  position: relative;
  overflow: hidden;
  background: #080808;
}

.ambient-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(140px);
  pointer-events: none;
  z-index: 0;
}
.glow-1 {
  top: 10%;
  left: 15%;
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, rgba(229, 195, 120, 0.12) 0%, transparent 70%);
}
.glow-2 {
  bottom: 20%;
  right: 10%;
  width: 550px;
  height: 550px;
  background: radial-gradient(circle, rgba(30, 60, 45, 0.25) 0%, transparent 70%);
}

.gallery-3d-stage {
  perspective: 1200px;
  perspective-origin: 50% 50%;
  padding: 2rem 3rem 8rem;
  max-width: 1600px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.gallery-spherical-wall {
  display: grid;
  grid-template-columns: repeat(var(--gal-cols, 4), 1fr);
  gap: 1.8rem;
  transform-style: preserve-3d;
  transform: rotateX(calc(var(--rx, 0) * 1deg)) rotateY(calc(var(--ry, 0) * 1deg));
  transition: transform 0.15s cubic-bezier(0.1, 0.8, 0.3, 1);
}

.gallery-squircle-card {
  position: relative;
  border-radius: 24px;
  background: #0d0d0d;
  border: 3px solid #181818;
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.7), 0 0 15px rgba(0, 0, 0, 0.5);
  transform: rotate(var(--card-tilt, 0deg));
  transform-style: preserve-3d;
  transition: transform 0.45s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.45s ease, border-color 0.35s ease;
  animation: cuteFloatSway 4s ease-in-out infinite alternate;
  cursor: pointer;
  outline: none;
}

@keyframes cuteFloatSway {
  0% {
    transform: translateY(0px) rotate(var(--card-tilt, 0deg));
  }
  50% {
    transform: translateY(-8px) rotate(calc(var(--card-tilt, 0deg) + 1deg));
  }
  100% {
    transform: translateY(0px) rotate(var(--card-tilt, 0deg));
  }
}

.gallery-squircle-card:hover,
.gallery-squircle-card:focus {
  animation-play-state: paused;
  transform: scale(1.08) rotate(0deg) translateZ(35px) !important;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.9), 0 0 35px rgba(229, 195, 120, 0.28);
  border-color: var(--accent);
  z-index: 50;
}

.squircle-inner {
  padding: 10px;
  border-radius: 22px;
  background: radial-gradient(circle at 30% 20%, rgba(35,35,35,0.7), rgba(12,12,12,0.98));
}

.squircle-img-wrapper {
  width: 100%;
  height: 250px;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
}

.squircle-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 18px;
  transition: transform 0.5s var(--ease), filter 0.5s ease;
  filter: contrast(1.05) brightness(0.96);
}

.gallery-squircle-card:hover .squircle-img-wrapper img {
  transform: scale(1.06);
  filter: contrast(1.08) brightness(1.05);
}

.cute-caption {
  padding: 0.8rem 0.5rem 0.2rem;
  text-align: left;
}
.cute-caption .gal-cat {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: var(--accent);
  text-transform: uppercase;
  font-weight: 600;
}
.cute-caption .gal-title {
  font-family: 'Adamina', serif;
  font-size: 0.98rem;
  color: var(--text);
  margin-top: 0.15rem;
}




