
/* ===== Retro Horror Override (keep original layout, change mood) ===== */
html, body { background:#050508; color:#f0ede6; }
body::before{
  content:"";
  position:fixed; inset:0;
  background:
    radial-gradient(900px 600px at 20% 5%, rgba(255,60,100,.18), transparent 60%),
    radial-gradient(800px 600px at 85% 15%, rgba(70,255,220,.10), transparent 60%),
    radial-gradient(900px 700px at 55% 110%, rgba(255,255,255,.05), transparent 60%);
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.65;
  z-index:-1;
}
body::after{
  content:"";
  position:fixed; inset:-40px;
  background: radial-gradient(circle at 50% 35%, transparent 25%, rgba(0,0,0,.65) 100%);
  pointer-events:none;
  z-index:100;
  opacity:.45;
}
.p-2023winter{ background:transparent; }
.p-2023winter.is-color1{ background: rgba(255,60,100,.06); }
.p-2023winter.is-color2{ background: rgba(70,255,220,.04); }

.c-loader{ background:#0e0e14; }
.c-loader__logo{ color:#f0ede6; }
.l-kv__content::before,.l-kv__content::after{ background: rgba(255,255,255,.16)!important; }
.l-kv__lead, .l-kv__ttl, .l-kv__txt{ color:#f0ede6; }
.l-header__logo img{ filter: invert(1) contrast(1.05); }

/* grain overlay */
.u-grain{
  pointer-events:none;
  position:fixed; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
  opacity:.10;
  z-index:99;
}

/* added: model/event blocks */
.rh-section{ padding:80px 0; }
.rh-wrap{ width:min(1180px, calc(100% - 40px)); margin:0 auto; }
.rh-head{ display:flex; justify-content:space-between; gap:14px; align-items:flex-end; margin-bottom:24px; }
.rh-head h2{ margin:0; letter-spacing:.12em; font-size:18px; }
.rh-head p{ margin:0; opacity:.75; font-size:12px; line-height:1.8; max-width:64ch; }
.rh-card{
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
}
.rh-model{ display:grid; grid-template-columns: .9fr 1.1fr; }
@media (max-width: 900px){ .rh-model{ grid-template-columns:1fr; } }
.rh-model__img{ min-height:360px; background:#0b0b10; }
.rh-model__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.rh-model__body{ padding:20px; }
.rh-model__name{ margin:0; font-size:22px; letter-spacing:.06em; }
.rh-model__bio{ margin:10px 0 0; opacity:.86; line-height:1.9; font-size:13px; }
.rh-sns{ margin-top:14px; display:flex; flex-wrap:wrap; gap:10px; }
.rh-sns a{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px; border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  font-size:12px;
}
.rh-sns a:hover{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.24); }
.rh-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:900px){ .rh-grid2{ grid-template-columns:1fr; } }
.rh-box{ padding:18px; position:relative; }
.rh-box h3{ margin:0; font-size:16px; letter-spacing:.10em; text-transform:uppercase; }
.rh-box p, .rh-box li{ margin:10px 0 0; opacity:.86; line-height:1.9; font-size:13px; }
.rh-box ul{ margin:10px 0 0; padding-left:18px; }


/* ===== FIX: Mobile position for 15.jpg section (p-2023winter07__img02) ===== */
@media (max-width: 899px){
  .p-2023winter07__img02{
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    width: 100% !important;
    margin-top: 14px;
  }
  .p-2023winter07__img02 img{
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    object-position: center;
  }
}



/* ===== Video visibility fixes ===== */

/* KV video layer (fallback image remains) */
.l-kv__img{ position:relative; overflow:hidden; }
.rh-kvVideo{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter: contrast(1.05) saturate(.9) brightness(.92);
  transform: scale(1.03);
}
@media (max-width: 899px){
  .rh-kvVideo{ transform: scale(1.06); }
}

/* Teaser trigger (make it feel like the original "video area") */
#js-videoArea.c-link1{
  display:block;
  margin-top: 18px;
  padding: 18px 16px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,17,32,2.35);
  position:relative;
  overflow:hidden;
  letter-spacing: .12em;
}
#js-videoArea.c-link1::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.65)),
    url("../img/02.webp") center/cover no-repeat;
  opacity:.75;
  transform: scale(1.03);
}
#js-videoArea.c-link1::after{
  content:"Play";
  position:absolute;
  right: 14px;
  top: 12px;
  font-weight:800;
  font-size:12px;
  color: rgba(240,237,230,.92);
  padding: 7px 10px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.35);
}
#js-videoArea.c-link1{
  color: rgba(240,237,230,.92);
}
#js-videoArea.c-link1 > *{ position:relative; z-index:1; }

/* Modal styles (missing in previous build) */
.rh-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  background: rgba(0,0,0,.86);
  display:none;
  padding: min(6vh, 40px) 16px;
}
.rh-modal.is-open{ display:block; }
.rh-modal__inner{
  width: min(980px, 100%);
  height: 100%;
  margin: 0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap: 12px;
}
.rh-modal__close{
  align-self:flex-end;
  border:1px solid rgba(255,255,255,.20);
  background: rgba(0,0,0,.40);
  color: rgba(240,237,230,.92);
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 700;
  letter-spacing: .12em;
}
#js-modalPlayer{
  width:100%;
  max-height: 72vh;
  height:auto;
  border-radius: 14px;
  background:#000;
  border:1px solid rgba(255,255,255,.12);
}
body.is-fixed{ overflow:hidden; }


/* ===== Section 08 extra images (19/20) ===== */
.p-2023winter08 .u-inner1{ position:relative; }
.p-2023winter08__img03,
.p-2023winter08__img04{
  position:absolute;
  z-index:2;
  border-radius: 0px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 55px rgba(0,0,0,.40);
}
.p-2023winter08__img03 img,
.p-2023winter08__img04 img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter: contrast(1.05) saturate(.9) brightness(.92);
}

/* desktop positions */
.p-2023winter08__img03{
  width: min(340px, 30vw);
  aspect-ratio: 4/5;
  left: 6%;
  top: 14%;
  transform: rotate(-3deg);
}
.p-2023winter08__img04{
  width: min(360px, 32vw);
  aspect-ratio: 4/5;
  right: 6%;
  bottom: 10%;
  transform: rotate(3deg);
}

/* mobile: keep it clean, stack lightly */
@media (max-width: 899px){
  /* make 19/20 smaller so they don't hide 18 */
  .p-2023winter08__img03{
    width: 40vw;
    left: -4vw;
    top: 5%;
    transform: rotate(-2deg);
    z-index: 1;
    opacity: .92;
  }
  .p-2023winter08__img04{
    width: 42vw;
    right: 4vw;
    bottom: 8%;
    transform: rotate(2deg);
    z-index: 1;
    opacity: .92;
  }
  /* keep main images readable */
  .p-2023winter08__img01,
  .p-2023winter08__img02{
    z-index: 2;
  }
}

/* ===== Loader improve: show immediately + clear "Loading" ===== */
.c-loader{
  position: fixed;
  inset: 0;
  z-index: 99999;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,.92);
  backdrop-filter: blur(6px);
}
.c-loader__inner{
  width:min(520px, calc(100% - 44px));
  text-align:center;
  padding: 22px 18px;
}
.c-loader__logo{
  display:block !important;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1.5;
  font-size: 12px;
  color: rgba(240,237,230,.90);
  margin-bottom: 14px;
}
.c-loader__hint{
  margin-top: 10px;
  font-size: 11px;
  letter-spacing:.14em;
  text-transform: uppercase;
  color: rgba(240,237,230,.55);
}
.c-loader__bar{
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
}
.c-loader__bar > i{
  display:block;
  height:100%;
  width: 30%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,77,109,.0), rgba(255,77,109,.85), rgba(100,255,218,.75), rgba(255,77,109,.0));
  animation: rhLoading 1.2s ease-in-out infinite;
}
@keyframes rhLoading{
  0%{ transform: translateX(-120%); }
  100%{ transform: translateX(420%); }
}

/* === rh-teaser-peek-fix: ensure PLAY TEASER shows a PART of 02.webp === */
#js-videoArea.c-link1::before{
  background-position: 75% 40%;
  opacity: .35; /* subtle peek */
  filter: grayscale(1) contrast(1.12) brightness(.92);
}
@media (max-width: 899px){
  #js-videoArea.c-link1::before{
    background-position: 78% 40%;
    opacity: .35;
  }
}


/* =========================================================
   Mobile perf: pause animations/transitions offscreen
   (keeps on-screen behavior the same)
   ========================================================= */
@media (max-width: 899px){
  .is-offscreen, .is-offscreen *{
    animation: none !important;
    transition: none !important;
  }
}


/* [rh-niconne-font]
   Font: Niconne (Google Fonts)
   Apply to: title / LOOK title / subtitle / PLAY TEASER / buttons
*/
:root{
  --font-script: "Niconne", "Snell Roundhand", "Snell Bold BT", cursive;
}

/* Title / look headings / teaser / buttons */
.c-ttl,
#js-videoArea,
.c-btn, a.c-btn, button,
.p-2023winter h1, .p-2023winter h2, .p-2023winter h3{
  font-family: var(--font-script) !important;
  font-weight: 400 !important;
  letter-spacing: .02em;
  font-size:1.5rem;
}


/* Additional Niconne targets */
.c-loader__logo,
.c-txt1,
.c-scroll,
.l-kv__lead.js-fadeUp1{
  font-family: var(--font-script) !important;
}
.rh-head h2{ margin:0; letter-spacing:.12em; font-size:18px; }
