/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Aug 31 2026 | 04:27:06 */
/* Add your CSS code here.

For example:
.example {
    color: red;
}

For brushing up on your CSS knowledge, check out http://www.w3schools.com/css/css_syntax.asp

End of comment */ 

  :root{
    --ink:#0a0a0a;
    --paper:#faf8f4;
    --stone:#eee8dc;
    --red:#c31f2d;
    --red-deep:#7c0f18;
    --gray:#6f6b64;
    --line: rgba(250,248,244,0.18);
    --ease: cubic-bezier(.16,.84,.44,1);
  }

.site_header_class{
    position: fixed;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 200;
}
.site_header_class.solid{
	background: rgba(10, 10, 10, 0.92) !important;
    backdrop-filter: blur(10px) !important;
    padding: 16px 6vw !important;
    border-color: rgba(250, 248, 244, 0.08) !important;
}
.hero, .hero-bg {
	    min-height: max(100svh, 720px) !important;
}
 .hero-glow{
    position:absolute;inset:0;z-index:1;pointer-events:none;
    background:radial-gradient(560px circle at var(--mx,50%) var(--my,20%), rgba(195,31,45,0.22), transparent 62%);
    transition:background .1s linear;
  }
.hero-particles{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.mote {
    position: absolute;
    bottom: -10px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: rgba(195, 31, 45, 0.65);
    animation: floatUp linear infinite;
}
 @keyframes floatUp{
    0%{transform:translateY(0) translateX(0);opacity:0;}
    10%{opacity:.8;}
    90%{opacity:.5;}
    100%{transform:translateY(-100vh) translateX(var(--drift,20px));opacity:0;}
  }

.heroscrollwrapper {
    position: absolute;
    bottom: 2.4rem;
    left: 6vw;
    z-index: 2;
}
.scroll-cue {
    display: flex;
    align-items: center;
    gap: .7rem;
    color: rgba(250, 248, 244, 0.65);
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}
.scroll-cue .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--red);
    animation: bob 1.8s ease-in-out infinite;
}

.hero-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(10, 10, 10, 0.85) 0%, rgba(10, 10, 10, 0.55) 45%, rgba(10, 10, 10, 0.72) 100%), linear-gradient(0deg, rgba(10, 10, 10, 0.9) 0%, rgba(10, 10, 10, 0.25) 40%, rgba(10, 10, 10, 0.5) 100%);
    z-index: 1;
}
.hero_bg_wrapper1 {
    position: absolute;
    inset: 0;
}

.hero h1 em {
    font-style: italic;
    font-weight: 400;
    color: var(--red);
}
.hero-sub {
    max-width: 520px !important;
}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}

  .hero h1 .ch{
    display:inline-block;
    opacity:0;
    transform:translateY(60%) rotate(4deg);
    animation:chUp .8s var(--ease) forwards;
  }
  @keyframes chUp{to{opacity:1;transform:translateY(0) rotate(0);}}

/* ================= MARQUEE ================= */
  .marquee{
    background:var(--ink);color:var(--paper);
    padding:1.6rem 0;
    overflow:hidden;
    border-top:1px solid rgba(250,248,244,0.1);
    border-bottom:1px solid rgba(250,248,244,0.1);
  }
  .marquee-track{
    display:flex;width:max-content;
    animation:scroll-left 28s linear infinite;
  }
  .marquee span{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-weight:500;
    font-size:clamp(1.4rem,3vw,2.3rem);
    padding:0 2.4rem;
    white-space:nowrap;
    color:rgba(250,248,244,0.9);
  }
  .marquee span.accent{color:var(--red);font-style:normal;font-weight:600;}
  @keyframes scroll-left{from{transform:translateX(0);}to{transform:translateX(-50%);}}



.about-portrait img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    filter: grayscale(0.15) contrast(1.05);
}
.about-portrait .tag {
	    max-width: 220px;
	}

 /* ---------- reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(38px);transition:opacity 1s var(--ease), transform 1s var(--ease);}
  .reveal.visible{opacity:1;transform:translateY(0);}
  .reveal.delay1{transition-delay:.12s;}
  .reveal.delay2{transition-delay:.24s;}
  .reveal.delay3{transition-delay:.36s;}

  /* ---------- carving line signature ---------- */
  .carve-line{width:100%;height:14px;display:block;overflow:visible;}
  .carve-line path{
    fill:none;
    stroke:var(--red);
    stroke-width:3;
    stroke-linecap:round;
    stroke-dasharray:1;
    stroke-dashoffset:1;
    pathLength:1;
    transition:stroke-dashoffset 1.4s var(--ease);
  }
  .carve-line.visible path{stroke-dashoffset:0;}


.about-copy p {
	    max-width: 620px;
}



.btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    transition: transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}

.btn-magnetic .elementor-button {
  transition: transform 0.3s ease;
  will-change: transform;
}
.brand span {
    color: var(--red);
}
.film-copy p {
	    max-width: 480px;
}

.video_custom  .elementor-custom-embed-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--red);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    transition: transform .45s var(--ease), background .45s var(--ease);
}

.video_custom .elementor-custom-embed-image-overlay:after {
    content: "";
        position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 96px;
    height: 96px;
    border-radius: 50%;
    border: 1.5px solid rgba(250, 248, 244, 0.6);
    z-index: 2;
    animation: ring 2.6s ease-out infinite;
}
 @keyframes ring{0%{width:96px;height:96px;opacity:0.9;}100%{width:150px;height:150px;opacity:0;}}
.mw-760{
	    max-width: 760px;
}
#contact::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.14), transparent 45%);
}

.contact_hover a{
	    transition: border-color .35s, letter-spacing .35s;
}
.contact_hover a:hover {
    border-color: var(--paper) !important;
    letter-spacing: 0.01em;
}
.contact-note_inner strong{
	display: block !important;
    color: var(--paper) !important;
    font-family: 'Fraunces', serif !important;
    font-style: italic !important;
    font-size: 1.2rem !important;
    margin-bottom: .6rem !important;
    font-weight: 500 !important;
}
.contact-note_inner br{
	display: none;
}
.btn-solid:hover {
    transform: translateY(-3px) !important;
}
.site_nav_header a::after {
    transform: scaleX(0) !important;
    transform-origin: left;
    transition: transform .45s var(--ease) !important;
}

.site_nav_header a:hover::after {
    transform: scaleX(1) !important;
}
.hero-form_inner{
	    max-width: 420px;
    margin-left: auto;
    border-top: 3px solid var(--red) !important;
	backdrop-filter: blur(20px) saturate(1.3) !important;
    -webkit-backdrop-filter: blur(20px) saturate(1.3) !important;
}

.form_custom .field {
        position: relative;
    margin-bottom: 1.7rem;    
}
.form_custom .field input, .form_custom .field textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1.5px solid rgba(250, 248, 244, 0.3);
    color: var(--paper);
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    padding: 0.55rem 0;
    resize: none;
    transition: border-color .35s var(--ease);
    border-radius: 0;
}
.form_custom .field.label_focused {}

.form_custom .field label {
    position: absolute;
    left: 0;
    top: 0.55rem;
    color: rgba(250, 248, 244, 0.5);
    font-size: 1rem;
    pointer-events: none;
    transition: all .3s var(--ease);
}

.form_custom .field.label_focused label {
    top: -0.85rem;
    font-size: 0.7rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--red);
}

.form_custom .field.label_focused input, .form_custom .field.label_focused textarea {
    outline: none;
    border-color: rgba(250, 248, 244, 0.55);
}

.form_custom .field:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    height: 2px;
    width: 100%;
    background: var(--red);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--ease);
}

.form_custom .field.label_focused:after {
    transform: scaleX(1);
}

.form_custom .field textarea {
    height: 64px;
}

.form_custom .field span {
    display: flex;
}

.form_custom .btn-solid1 {
    width: 100%;
    border: none;
    cursor: pointer;
    margin-top: .4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    background: var(--red);
    color: var(--paper);
    padding: 1.05rem 2.1rem;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 999px;
    transition: transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}

.form_custom .btn-solid1:hover {
    transform: translateY(-3px);
    background: #e0212f;
}
.masonry {
    columns: 4 240px;
    column-gap: 1.4rem;
}

.masonry  .tile {
      position: relative;
      break-inside: avoid;
      margin-bottom: 1.4rem;
      overflow: hidden;
      cursor: pointer;
    }

.masonry .tile img {
      width: 100%;
      display: block;
      transition: transform 1.1s var(--ease);
      filter: saturate(0.95);
    }

.masonry .tile:hover img {
      transform: scale(1.08) rotate(-0.6deg);
    }

    .masonry .tile .scrim {
      position: absolute;
      inset: 0;
      background: linear-gradient(0deg, rgba(10, 10, 10, 0.86) 0%, rgba(10, 10, 10, 0) 55%);
      opacity: 0;
      transition: opacity .4s var(--ease);
      display: flex;
      align-items: flex-end;
      padding: 1.2rem;
    }

   .masonry  .tile:hover .scrim {
      opacity: 1;
    }

.masonry .tile .scrim .cap {
      color: var(--paper);
    }

    .masonry .tile .scrim .cap .t {
      font-family: 'Fraunces', serif;
      font-style: italic;
      font-size: 1.05rem;
    }

   .masonry  .tile .scrim .cap .m {
      font-size: 0.76rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--red);
      margin-top: .3rem;
    }

.gallery-foot {
      margin-top: 3.5rem;
      display: flex;
      justify-content: center;
    }

    .link-underline {
      position: relative;
      font-weight: 600;
      font-size: 1rem;
      letter-spacing: 0.02em;
      padding-bottom: 5px;
    }

    .link-underline::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      height: 2px;
      width: 100%;
      background: var(--ink);
      transform: scaleX(1);
      transform-origin: right;
      transition: transform .5s var(--ease), background .3s;
    }

    .link-underline:hover::after {
      transform-origin: left;
      background: var(--red);
    }


    /* ================= LIGHTBOX ================= */
    .lightbox {
      position: fixed;
      inset: 0;
      z-index: 500;
      background: rgba(6, 6, 6, 0.96);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .4s var(--ease);
      padding: 6vw;
    }

    .lightbox.open {
      opacity: 1;
      pointer-events: auto;
    }

    .lightbox img {
      max-height: 82vh;
      max-width: 82vw;
      object-fit: contain;
      transform: scale(0.94);
      transition: transform .4s var(--ease);
    }

    .lightbox.open img {
      transform: scale(1);
    }

    .lightbox .cap {
      position: absolute;
      bottom: 6vh;
      left: 0;
      right: 0;
      text-align: center;
      color: var(--paper);
    }

    .lightbox .cap .t {
      font-family: 'Fraunces', serif;
      font-style: italic;
      font-size: 1.3rem;
    }

    .lightbox .cap .m {
      font-size: 0.78rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--red);
      margin-top: .4rem;
    }

    .lb-close {
      position: absolute;
      top: 2.4rem;
      right: 2.4rem;
      width: 46px;
      height: 46px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      color: var(--paper);
      font-size: 1.6rem;
      border: 1px solid rgba(250, 248, 244, 0.4);
      border-radius: 50%;
      transition: border-color .3s, transform .3s;
    }

    .lb-close:hover {
      border-color: var(--red);
      transform: rotate(90deg);
    }

@media (max-width:1024px){
	.hero-form_inner{
	    max-width: 768px;
    margin-inline: auto;
	}
}

.cinfo-links a {
    font-family: 'Fraunces', serif;
    font-size: clamp(1.4rem, 2.2vw, 1.9rem);
    font-weight: 500;
    border-bottom: 1.5px solid rgba(10, 10, 10, 0.2);
    padding-bottom: .3rem;
    width: fit-content;
    transition: border-color .35s, color .35s, letter-spacing .35s;
}
 .cinfo-links a:hover{border-color:var(--red);color:var(--red);letter-spacing:0.01em;}
 p.note {
    color: var(--gray);
    line-height: 1.7;
    font-size: 1rem;
    max-width: 420px;
    margin-bottom: 2.2rem;
}
  p.note strong {
    display: block;
    color: var(--ink);
    font-family: 'Fraunces', serif;
    font-style: italic;
    font-size: 1.25rem;
    margin-bottom: .5rem;
    font-weight: 500;
}

/* =========================================
   ROSE CONTACT FORM
========================================= */

.rose-contact-form {
    width: 100%;
    max-width: 100%;
}


/* Heading
----------------------------------------- */

.rose-form-heading {
    margin-bottom: 24px;
}

.rose-form-heading span {
    display: block;
    color: #c91f32;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 5px;
    line-height: 1.4;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.rose-form-heading h2 {
    margin: 0;
    color: #111;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 42px;
    font-weight: 500;
    line-height: 1.1;
}


/* Inquiry buttons
----------------------------------------- */

.rose-form-types {
    margin-bottom: 28px;
}

.rose-form-types .wpcf7-form-control {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rose-form-types .wpcf7-list-item {
    margin: 0;
}

.rose-form-types .wpcf7-list-item label {
    display: inline-block;
    cursor: pointer;
}


/* Hide original radio */

.rose-form-types input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}


/* Tab appearance */

.rose-form-types .wpcf7-list-item-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 22px;
    border: 1px solid #d1d1d1;
    border-radius: 25px;
    color: #333;
    background: #fff;
    font-size: 14px;
    line-height: 1;
    transition: all 0.25s ease;
}


/* Active tab */

.rose-form-types input[type="radio"]:checked + .wpcf7-list-item-label {
    background: #111;
    border-color: #111;
    color: #fff;
}


/* Hover */

.rose-form-types .wpcf7-list-item-label:hover {
    border-color: #111;
}


/* =========================================
   FORM FIELDS
========================================= */

.rose-form-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 28px;
    row-gap: 0;
}

.rose-field {
    width: 100%;
}

.rose-field input,
.rose-field textarea {
    width: 100%;
    border: 0 !important;
    border-bottom: 1px solid #cfcfcf !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #222;
    font-size: 16px;
    padding: 12px 0;
    outline: none;
    font-family: inherit;
}

.rose-field input {
    height: 55px;
}

.rose-field textarea {
    min-height: 80px;
    height: 80px;
    resize: vertical;
    padding-top: 12px;
}


/* Placeholder */

.rose-field input::placeholder,
.rose-field textarea::placeholder {
    color: #777;
    opacity: 1;
}


/* Focus */

.rose-field input:focus,
.rose-field textarea:focus {
    border-bottom-color: #111 !important;
}


/* Message spans full width */

.rose-message-field {
    grid-column: 1 / -1;
}


/* =========================================
   SEND BUTTON
========================================= */

.rose-submit {
    margin-top: 42px;
}

.rose-submit input[type="submit"] {
    border: 0;
    border-radius: 50px;
    background: #cf1f32;
    color: #fff;
    padding: 18px 34px;
    min-width: 145px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: all 0.25s ease;
}

.rose-submit input[type="submit"]:hover {
    background: #a91828;
    transform: translateY(-1px);
}


/* Remove CF7 default spacing */

.rose-contact-form p {
    margin: 0;
}

.rose-contact-form .wpcf7-spinner {
    margin-left: 10px;
}


/* Validation */

.rose-contact-form .wpcf7-not-valid {
    border-bottom-color: #cf1f32 !important;
}

.rose-contact-form .wpcf7-not-valid-tip {
    color: #cf1f32;
    font-size: 12px;
    margin-top: 5px;
}


/* Success message */

.rose-contact-form .wpcf7-response-output {
    margin: 25px 0 0 !important;
    padding: 12px 15px !important;
    border: 1px solid #ddd !important;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 767px) {

    .rose-form-heading h2 {
        font-size: 34px;
    }

    .rose-form-types .wpcf7-form-control {
        gap: 7px;
    }

    .rose-form-types .wpcf7-list-item-label {
        padding: 9px 17px;
        font-size: 13px;
    }

    .rose-form-fields {
        grid-template-columns: 1fr;
    }

    .rose-message-field {
        grid-column: auto;
    }

    .rose-field input {
        height: 52px;
    }

    .rose-submit {
        margin-top: 32px;
    }
}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 480px) {

    .rose-form-heading span {
        letter-spacing: 3px;
        font-size: 11px;
    }

    .rose-form-heading h2 {
        font-size: 30px;
    }

    .rose-form-types .wpcf7-form-control {
        gap: 6px;
    }

    .rose-form-types .wpcf7-list-item-label {
        padding: 9px 14px;
        font-size: 12px;
    }

    .rose-submit input[type="submit"] {
        padding: 16px 30px;
    }
}

.cta-strip .wrap {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}
.cta-strip h2 {
    font-size: clamp(2.2rem, 4.6vw, 3.4rem);
}