:root{
    --rfl-bg:#0e0e0e;
    --rfl-bg-soft:#141414;
    --rfl-cream:#f4ede1;
    --rfl-paper:#fbf7f0;
    --rfl-gold:#c8a35a;
    --rfl-gold-soft:#d9b977;
    --rfl-ink:#111111;
    --rfl-ink-60:rgba(17,17,17,.6);
    --rfl-line:rgba(200,163,90,.35);
    --rfl-shadow:0 30px 60px -30px rgba(0,0,0,.55);
    --rfl-radius-s:4px;
    --rfl-radius-m:14px;
    --rfl-radius-l:28px;
    --rfl-serif:"Cormorant Garamond","Times New Roman",serif;
    --rfl-sans:"Inter","Helvetica Neue",Arial,sans-serif;
    --rfl-ease:cubic-bezier(.22,1,.36,1);
    --rfl-container:1400px;
}

.rfl-section{
    position:relative;
    width:100%;
    overflow:hidden;
    background:var(--rfl-paper);
    color:var(--rfl-ink);
    font-family:var(--rfl-sans);
    font-weight:300;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

.rfl-section *{box-sizing:border-box;}
.rfl-section img{max-width:100%; height:auto;}

.rfl-container{
    position:relative;
    max-width:var(--rfl-container);
    margin:0 auto;
    padding:0 32px;
}

.rfl-eyebrow{
    --rfl-eyebrow-seal:"福";
    display:inline-flex;
    align-items:center;
    gap:14px;
    font-family:var(--rfl-sans);
    font-size:11px;
    letter-spacing:.32em;
    text-transform:uppercase;
    font-weight:500;
    color:var(--rfl-gold);
    line-height:1;
}
.rfl-eyebrow::before{
    content:var(--rfl-eyebrow-seal);
    flex-shrink:0;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    background:#c43a2c;
    color:#fff;
    border-radius:6px;
    font-family:"Cormorant Garamond","Songti SC","STSong","Songti TC",serif;
    font-weight:600;
    font-size:28px;
    line-height:1;
    letter-spacing:0;
    text-transform:none;
    text-shadow:0 1px 0 rgba(0,0,0,.25);
    transform:rotate(-6deg);
    /* outer drop shadow + inner texture line + white frame ring */
    box-shadow:
        0 18px 30px -12px rgba(196,58,44,.6),
        inset 0 0 0 1px rgba(0,0,0,.18),
        0 0 0 4px transparent,
        0 0 0 5px rgba(255,255,255,.28);
    background-image:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), transparent 50%),
        repeating-linear-gradient(135deg, rgba(0,0,0,.04) 0 1px, transparent 1px 5px);
    background-blend-mode:overlay;
    transition:transform .8s var(--rfl-ease);
}
.rfl-eyebrow:hover::before{transform:rotate(0deg) scale(1.06);}
.rfl-eyebrow::after{
    content:"";
    flex-shrink:0;
    width:50px;
    height:7px;
    background:var(--rfl-gold);
    -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 8' preserveAspectRatio='none'><path d='M0 5 Q 18 1 38 4 T 78 3 L 90 3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/></svg>");
            mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 8' preserveAspectRatio='none'><path d='M0 5 Q 18 1 38 4 T 78 3 L 90 3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/></svg>");
    -webkit-mask-size:contain;
            mask-size:contain;
    -webkit-mask-repeat:no-repeat;
            mask-repeat:no-repeat;
    -webkit-mask-position:center;
            mask-position:center;
    opacity:.85;
}

.rfl-heading{
    font-family:var(--rfl-serif);
    font-weight:400;
    line-height:1.05;
    letter-spacing:-.01em;
    margin:0;
}

.rfl-heading--xl{font-size:clamp(44px,7vw,108px);}
.rfl-heading--lg{font-size:clamp(34px,5vw,72px);}
.rfl-heading--md{font-size:clamp(26px,3.4vw,46px);}

.rfl-text{
    font-size:16px;
    line-height:1.75;
    color:var(--rfl-ink-60);
    max-width:62ch;
}

.rfl-btn{
    --btn-bg:var(--rfl-ink);
    --btn-fg:var(--rfl-paper);
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:18px 34px;
    font-family:var(--rfl-sans);
    font-size:12px;
    font-weight:500;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--btn-fg);
    background:var(--btn-bg);
    border:1px solid var(--btn-bg);
    border-radius:999px;
    text-decoration:none;
    overflow:hidden;
    transition:color .55s var(--rfl-ease),border-color .55s var(--rfl-ease);
    cursor:pointer;
    isolation:isolate;
}
.rfl-btn::before{
    content:"";
    position:absolute;
    inset:0;
    background:var(--rfl-gold);
    transform:translateY(101%);
    transition:transform .55s var(--rfl-ease);
    z-index:-1;
}
.rfl-btn:hover{color:var(--rfl-ink);border-color:var(--rfl-gold);}
.rfl-btn:hover::before{transform:translateY(0);}
.rfl-btn .rfl-btn__arrow{
    width:14px;height:14px;display:inline-block;
    transition:transform .55s var(--rfl-ease);
}
.rfl-btn:hover .rfl-btn__arrow{transform:translateX(4px);}

.rfl-btn--ghost{--btn-bg:transparent;--btn-fg:var(--rfl-paper);border-color:rgba(255,255,255,.4);}
.rfl-btn--ghost:hover{color:var(--rfl-ink);}
.rfl-btn--gold{--btn-bg:var(--rfl-gold);--btn-fg:var(--rfl-ink);}
.rfl-btn--gold::before{background:var(--rfl-ink);}
.rfl-btn--gold:hover{color:var(--rfl-paper);border-color:var(--rfl-ink);}

.rfl-reveal{opacity:0;transform:translateY(28px);}
.rfl-reveal.is-in{opacity:1;transform:none;transition:opacity 1.1s var(--rfl-ease),transform 1.1s var(--rfl-ease);}

@media (max-width:768px){
    .rfl-container{padding:0 22px;}
    .rfl-btn{padding:15px 26px;font-size:11px;}
}
@media (max-width:420px){
    .rfl-container{padding:0 16px;}
    .rfl-btn{padding:14px 22px;font-size:10px;letter-spacing:.18em;gap:10px;}
    .rfl-heading--xl{font-size:clamp(40px,11vw,68px);}
    .rfl-heading--lg{font-size:clamp(30px,8vw,50px);}
    .rfl-eyebrow{font-size:10px; gap:10px;}
    .rfl-eyebrow::before{width:32px; height:32px; font-size:18px;}
}
