/* PERFESS /lfk/: editorial layout, atmospheric hero, restrained glass controls. */
body.lfk-page {
  --gold: #44f20a; --gold-lt: #9dff5c; --gold-dk: #2ec400;
  --gold-a10: rgba(68,242,10,.10); --gold-a20: rgba(68,242,10,.20); --copper: #19d3b5;
  --ink: #eefcf6; --ink60: rgba(238,252,246,.73); --ink35: rgba(238,252,246,.48);
  --bg: #04171c; --bg2: #072228; --border: rgba(173,227,211,.15); --border-gold: rgba(68,242,10,.28);
  --leaf: 28px 8px 28px 8px; --out: cubic-bezier(.16,1,.3,1);
  background: var(--bg);
  font-family: 'Inter',Arial,sans-serif;
}
.lfk-page .wrap { width: min(1320px, calc(100% - 88px)); }
.lfk-page main { overflow-x: clip; }
.lfk-page :is(a, button):focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.lfk-page [id] { scroll-margin-top: 116px; }

/* Transparent at the top, more opaque while scrolling. */
.lfk-page .header { height: 82px; background: rgba(4,23,28,.32); border-color: rgba(153,225,208,.16); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); transition: background .25s ease, border-color .25s ease; }
.lfk-page .header.is-scrolled { background: rgba(4,23,28,.91); border-color: var(--border-gold); }
.lfk-page .nav { grid-template-columns: minmax(0,1fr) auto; gap: 24px; }
.lfk-page .nav-links { justify-content: flex-start; gap: clamp(14px,1.65vw,27px); }
.lfk-page .nav a:not(.btn) { font-size: 14px; letter-spacing: 0; }
.lfk-page .nav a.active { color: var(--gold); }
.lfk-page .nav-phone { font-size: 16px !important; }
.lfk-page .nav-hours { font-size: 10px; color: var(--ink60); }
.lfk-page .nav-actions { gap: 20px; }
.lfk-page .book-spark { display: none; }
.lfk-page .mobile-menu { background: rgba(4,23,28,.98); }
.lfk-page .cookie-banner { background: rgba(4,23,28,.96); }
.lfk-page .footer { background: #031217; }
.lfk-page .main-fc-btn { background: var(--gold); color: var(--bg); box-shadow: 0 4px 22px rgba(68,242,10,.18); }
.lfk-page .fc-item.phone svg { stroke: var(--gold); }

/* Library icons are local files, with no runtime CDN dependency. */
.lfk-icon { flex: 0 0 auto; width: 48px; height: 48px; object-fit: contain; filter: invert(84%) sepia(98%) saturate(3101%) hue-rotate(44deg) brightness(102%) contrast(96%); }
.lfk-icon-reference { filter: none; }
.lfk-btn-icon { flex: 0 0 auto; width: 24px; height: 24px; transition: transform .2s ease; }
.lfk-page .btn { gap: 20px; min-height: 58px; height: auto; padding: 16px 30px; border-radius: var(--leaf); font-size: 15px; font-weight: 700; letter-spacing: -.025em; text-transform: none; transition: transform .2s ease, box-shadow .25s ease, background-color .25s ease, border-color .25s ease; }
.lfk-page .btn-gold { background: var(--gold); color: #09200b; box-shadow: 0 8px 26px rgba(68,242,10,.14); }
.lfk-page .btn-outline { color: var(--ink); border: 1px solid rgba(157,226,210,.45); background: rgba(5,35,39,.34); box-shadow: inset 0 1px 0 rgba(238,252,246,.06); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.lfk-page .btn-outline .lfk-btn-icon { filter: invert(96%) sepia(9%) saturate(285%) hue-rotate(85deg); }
.lfk-page .btn:active { transform: translateY(1px) scale(.985); }
.lfk-page .nav-book { min-height: 46px; padding: 12px 22px; font-size: 13px; }

/* The moving ribbon below the hero provides its diagonal section boundary. */
.lfk-hero { position: relative; display: grid; align-items: center; min-height: min(940px,100svh); padding: 150px 0 170px; overflow: hidden; isolation: isolate; }
.lfk-hero-surface { position: absolute; inset: 0; z-index: -1; background: #04171c url('/images/lfk/lfk-hero-atmosphere-v2.webp') center / cover no-repeat; }
.lfk-hero-gradient { display: block; width: 100%; height: 100%; pointer-events: none; }
.lfk-hero-grid { position: relative; z-index: 2; pointer-events: none; }
.lfk-hero-copy { width: 53%; max-width: 690px; pointer-events: auto; }
.lfk-hero .eyebrow { margin-bottom: 28px; font-size: clamp(10px,.9vw,12px); letter-spacing: .19em; line-height: 1.6; }
.lfk-hero .eyebrow::before { display: none; }
.lfk-hero h1 { margin: 0 0 24px; font-family: 'Inter',Arial,sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: -.06em; }
.lfk-hero h1 span { display: block; color: #fff; -webkit-text-stroke: 0; font-size: var(--lfk-title-top-size,clamp(66px,7.6vw,114px)); letter-spacing: -.055em; line-height: 1.02; white-space: nowrap; }
.lfk-hero h1 em { display: block; margin-top: 8px; color: var(--gold); -webkit-text-stroke: 0; font-size: clamp(160px,17.8vw,270px); font-style: normal; line-height: .86; letter-spacing: -.065em; }
.lfk-hero .lead { max-width: 550px; margin-top: 28px; font-size: clamp(19px,1.65vw,25px); font-weight: 400; line-height: 1.45; letter-spacing: -.03em; color: var(--ink); }
.lfk-hero-btns { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 36px; }
.lfk-hero-btns .btn { min-width: 250px; min-height: 64px; font-size: 17px; }
.lfk-hero-scene { position: absolute; inset: 68px 0 0; z-index: 1; pointer-events: none; }
.lfk-model { position: absolute; right: max(1.5%,calc((100% - 1440px) / 2)); bottom: -6%; height: 102%; max-width: none; width: auto; }

.lfk-ticker { position: relative; z-index: 5; width: 106%; margin: -36px 0 0 -3%; padding: 15px 0; overflow: hidden; color: #09200b; background: var(--gold); transform: rotate(-1.6deg); }
.lfk-ticker-track { display: flex; width: max-content; }
.lfk-ticker-group { display: flex; flex-shrink: 0; }
.lfk-ticker-group > span { flex-shrink: 0; padding-right: 32px; font-family: 'Inter',Arial,sans-serif; font-size: clamp(18px,1.8vw,26px); font-weight: 700; line-height: 1.3; letter-spacing: -.025em; text-transform: uppercase; white-space: nowrap; }
.lfk-ticker-group > span::after { content: '/'; margin-left: 32px; opacity: .45; }
.lfk-h2 { position: relative; margin: 0 0 28px; color: var(--ink); font-family: 'Inter',Arial,sans-serif; font-size: clamp(27px,3vw,42px); font-weight: 700; line-height: 1.12; letter-spacing: -.05em; text-transform: uppercase; }
.lfk-h2 em { color: var(--gold); font-style: normal; }
.lfk-directions-sec { position: relative; padding: 44px 0 26px; }
.lfk-directions-layout { display: grid; grid-template-columns: 1.35fr 1fr; align-items: stretch; gap: 36px; }
.lfk-directions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.lfk-direction { display: flex; align-items: center; gap: 22px; min-height: 144px; padding: 24px 24px 24px 0; }
.lfk-direction:nth-child(2n) { border-left: 1px solid var(--border-gold); padding-left: 30px; padding-right: 0; }
.lfk-direction:nth-child(n + 3) { border-top: 1px solid var(--border-gold); }
.lfk-direction > div { min-width: 0; }
.lfk-direction h3 { color: var(--ink); font-family: 'Inter',Arial,sans-serif; font-size: clamp(18px,1.7vw,23px); font-weight: 700; line-height: 1.18; letter-spacing: -.035em; }
.lfk-direction p { margin-top: 8px; color: var(--ink60); font-size: 13px; line-height: 1.45; }
.lfk-hall { overflow: hidden; margin: 0; min-height: 288px; border-radius: 14px 5px 14px 5px; }
.lfk-hall img { width: 100%; height: 100%; object-fit: cover; object-position: 54% 50%; }
.lfk-experience { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px; margin-top: 30px; padding: 25px 0 0; border-top: 1px solid var(--border-gold); }
.lfk-experience-item { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 0 20px; }
.lfk-experience-item + .lfk-experience-item { border-left: 1px solid var(--border-gold); }
.lfk-experience strong { display: block; color: var(--gold); font-size: clamp(36px,4.2vw,58px); font-weight: 700; line-height: 1; letter-spacing: -.055em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lfk-experience p { margin-top: 8px; color: var(--ink60); font-size: 15px; line-height: 1.4; }

.lfk-time-sec { padding: 12px 0 72px; }
.lfk-schedule-panel { padding: 30px 32px 32px; border: 1px solid rgba(110,212,180,.27); border-radius: var(--leaf); background: rgba(7,34,40,.44); }
.lfk-schedule-panel .lfk-h2 { margin-bottom: 28px; font-size: clamp(24px,2.5vw,34px); }
.lfk-timetable { display: grid; grid-template-columns: 1fr .8fr 1.25fr 1.15fr; gap: 24px; align-items: center; }
.lfk-slot, .lfk-place { display: flex; align-items: center; gap: 18px; min-width: 0; }
.lfk-slot .lfk-icon, .lfk-place .lfk-icon { width: 38px; height: 38px; }
.lfk-slot + .lfk-slot, .lfk-place, .lfk-schedule-book { border-left: 1px solid var(--border-gold); padding-left: 24px; }
.lfk-slot span { display: block; margin-bottom: 8px; color: var(--ink60); font-size: 13px; line-height: 1.35; }
.lfk-slot strong { display: block; font-size: clamp(30px,3vw,42px); line-height: 1; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.lfk-place strong { display: block; font-size: 19px; font-weight: 600; line-height: 1.3; letter-spacing: -.03em; }
.lfk-place p { margin-top: 7px; color: var(--ink60); font-size: 13px; line-height: 1.4; }
.lfk-schedule-book { display: grid; gap: 16px; }
.lfk-phone { display: flex; align-items: center; gap: 12px; font-size: 17px; font-weight: 600; letter-spacing: -.04em; white-space: nowrap; }
.lfk-phone .lfk-icon { width: 22px; height: 22px; }
.lfk-schedule-book .btn { min-height: 50px; padding: 12px 22px; }

/* One-time motion, progressively enhanced after image decoding. */
@media (prefers-reduced-motion: no-preference) {
  .lfk-ticker-track { animation: lfk-ticker-run 30s linear infinite; }
  .lfk-hero.is-ready .lfk-model { animation: lfk-model-enter 950ms 60ms var(--out) both; }
  .lfk-hero.is-ready .lfk-r1 { animation: lfk-copy-enter 620ms 100ms var(--out) both; }
  .lfk-hero.is-ready .lfk-r2 { animation: lfk-copy-enter 720ms 160ms var(--out) both; }
  .lfk-hero.is-ready .lfk-r3 { animation: lfk-copy-enter 620ms 260ms var(--out) both; }
  .lfk-hero.is-ready .lfk-r4 { animation: lfk-copy-enter 620ms 340ms var(--out) both; }
  .lfk-hero.is-ready .lfk-hero-surface { animation: lfk-atmosphere-enter 1300ms ease-out both; }
  .lfk-motion-ready .lfk-reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease-out, transform .6s var(--out); }
  .lfk-motion-ready .lfk-reveal.is-visible { opacity: 1; transform: none; }
}
@keyframes lfk-model-enter { from { opacity: 0; transform: translate3d(20px,36px,0) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes lfk-copy-enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes lfk-atmosphere-enter { from { opacity: .5; } to { opacity: 1; } }
@keyframes lfk-ticker-run { to { transform: translateX(-25%); } }
@media (hover: hover) and (pointer: fine) {
  .lfk-page .btn-gold:hover { transform: translateY(-2px); background: #70ff37; box-shadow: 0 10px 30px rgba(68,242,10,.23); }
  .lfk-page .btn-outline:hover { transform: translateY(-2px); background: rgba(21,72,67,.56); border-color: rgba(207,255,235,.72); }
  .lfk-page .btn-gold:hover .lfk-btn-icon { transform: translateX(4px); }
  .lfk-phone:hover { color: var(--gold); }
}

@media (max-width: 1200px) {
  .lfk-page .nav { grid-template-columns: auto minmax(0,1fr) auto; grid-template-areas: 'burger . booking'; }
  .lfk-page .nav-book-mobile { min-height: 44px; border-radius: 18px 6px 18px 6px; }
  .lfk-hero { min-height: 760px; padding-top: 148px; padding-bottom: 160px; }
  .lfk-hero-copy { width: 55%; }
  .lfk-hero h1 span { font-size: var(--lfk-title-top-size,7.6vw); }
  .lfk-hero h1 em { font-size: 18vw; }
  .lfk-hero .lead { max-width: 400px; font-size: 21px; }
  .lfk-hero-btns { gap: 12px; }
  .lfk-hero-btns .btn { min-width: 0; padding: 16px 22px; gap: 14px; }
  .lfk-model { right: -5%; height: 98%; bottom: -1%; }
  .lfk-direction { gap: 16px; padding-right: 16px; }
  .lfk-direction:nth-child(2n) { padding-left: 20px; }
  .lfk-direction .lfk-icon { width: 40px; height: 40px; }
  .lfk-directions-layout { grid-template-columns: 1.4fr 1fr; gap: 26px; }
  .lfk-timetable { grid-template-columns: 1fr 1fr; gap: 26px; }
  .lfk-place { padding-left: 0; border-left: 0; }
  .lfk-schedule-book { gap: 12px; }
}
@media (max-width: 900px) {
  .lfk-page .wrap { width: calc(100% - 48px); }
  .lfk-hero { display: grid; align-items: center; min-height: min(820px,94svh); padding: 140px 0; }
  .lfk-hero-copy { width: 57%; max-width: 430px; }
  .lfk-hero h1 span { font-size: var(--lfk-title-top-size,clamp(50px,8.6vw,76px)); }
  .lfk-hero h1 em { font-size: clamp(132px,22vw,190px); }
  .lfk-hero .eyebrow { max-width: 340px; font-size: 9px; letter-spacing: .13em; }
  .lfk-hero .lead { max-width: 330px; margin-top: 22px; font-size: 19px; }
  .lfk-hero-btns { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 26px; }
  .lfk-hero-btns .btn { width: 220px; min-height: 56px; padding: 14px 20px; font-size: 15px; }
  .lfk-hero-scene { position: absolute; inset: 82px 0 0; height: auto; margin: 0; }
  .lfk-model { height: 100%; bottom: 0; right: -14%; }
  .lfk-hero-surface { background-position: 61% center; }
  .lfk-directions-sec { padding-top: 42px; }
  .lfk-directions-layout { grid-template-columns: 1fr; gap: 28px; }
  .lfk-hall { min-height: 0; aspect-ratio: 2 / 1; }
  .lfk-direction { min-height: 128px; }
  .lfk-direction h3 { font-size: 22px; }
  .lfk-experience { gap: 20px; margin-top: 26px; }
  .lfk-experience-item { gap: 18px; padding: 0 8px; }
  .lfk-experience-item + .lfk-experience-item { padding-left: 20px; }
  .lfk-experience .lfk-icon { width: 42px; height: 42px; }
  .lfk-experience strong { font-size: 45px; }
  .lfk-experience p { max-width: 230px; font-size: 13px; }
  .lfk-time-sec { padding-top: 12px; padding-bottom: 52px; }
}
@media (max-width: 600px) {
  .lfk-page .wrap { width: calc(100% - 36px); }
  .lfk-page .header { height: 72px; }
  .lfk-page [id] { scroll-margin-top: 94px; }
  .lfk-page .nav-book-mobile { width: 100px !important; font-size: 12px; }
  .lfk-page .btn { min-height: 54px; font-size: 15px; }
  .lfk-hero { display: block; min-height: max(680px,min(780px,100svh)); padding: 0; }
  .lfk-hero-grid { position: absolute; inset: 118px 18px 68px; width: auto; max-width: none; margin: 0; }
  .lfk-hero-copy { width: 100%; max-width: none; }
  .lfk-hero .eyebrow { gap: 12px; max-width: 340px; margin-bottom: 22px; font-size: 9px; letter-spacing: .14em; }
  .lfk-hero .eyebrow::before { width: 25px; }
  .lfk-hero h1 { margin-bottom: 20px; }
  .lfk-hero h1 span { font-size: var(--lfk-title-top-size,clamp(40px,10vw,50px)); }
  .lfk-hero h1 em { margin-top: 5px; font-size: clamp(104px,29vw,132px); }
  .lfk-hero .lead { max-width: 48%; margin-top: 22px; font-size: 17px; line-height: 1.45; }
  .lfk-hero-btns { position: absolute; inset: auto 0 0; flex-direction: row; align-items: stretch; width: 100%; max-width: none; gap: 10px; margin: 0; }
  .lfk-hero-btns .btn { flex: 1 1 0; width: auto; min-height: 54px; padding: 14px 15px; gap: 10px; font-size: 14px; }
  .lfk-hero-btns .lfk-btn-icon { width: 20px; height: 20px; }
  .lfk-hero-scene { position: absolute; inset: 290px -18px 124px 0; height: auto; max-height: none; margin: 0; overflow: hidden; }
  .lfk-model { right: -3%; height: 115%; bottom: -15%; }
  .lfk-ticker { margin-top: -28px; padding: 14px 0; }
  .lfk-ticker-group > span { padding-right: 24px; }
  .lfk-ticker-group > span::after { margin-left: 24px; }
  .lfk-directions-sec { padding-top: 38px; padding-bottom: 18px; }
  .lfk-h2 { font-size: clamp(26px,7vw,38px); line-height: 1.12; margin-bottom: 20px; }
  .lfk-directions { grid-template-columns: 1fr; }
  .lfk-direction { min-height: 106px; gap: 23px; padding: 23px 0; }
  .lfk-direction:nth-child(2n) { padding: 23px 0; border-left: 0; }
  .lfk-direction + .lfk-direction { border-top: 1px solid var(--border-gold); }
  .lfk-direction .lfk-icon { width: 44px; height: 44px; }
  .lfk-direction h3 { font-size: 21px; }
  .lfk-direction p { font-size: 13px; }
  .lfk-hall { aspect-ratio: 1.55 / 1; }
  .lfk-experience { grid-template-columns: 1fr; gap: 22px; padding-top: 26px; }
  .lfk-experience-item { justify-content: flex-start; gap: 22px; padding: 0; }
  .lfk-experience-item + .lfk-experience-item { padding: 22px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .lfk-experience .lfk-icon { width: 44px; height: 44px; }
  .lfk-experience strong { font-size: 43px; }
  .lfk-experience p { max-width: none; font-size: 13px; }
  .lfk-schedule-panel { padding: 25px 22px 26px; }
  .lfk-schedule-panel .lfk-h2 { font-size: 25px; }
  .lfk-timetable { grid-template-columns: 1fr; gap: 22px; }
  .lfk-slot + .lfk-slot, .lfk-place, .lfk-schedule-book { padding: 22px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .lfk-slot { gap: 20px; }
  .lfk-slot strong { font-size: 38px; }
  .lfk-slot span { font-size: 14px; }
  .lfk-place { gap: 20px; }
  .lfk-schedule-book { gap: 20px; }
  .lfk-phone { min-height: 44px; font-size: 20px; }
  .lfk-schedule-book .btn { width: 100%; }
}
@media (max-width: 360px) {
  .lfk-hero-btns .btn { flex-basis: 100%; justify-content: space-between; padding-left: 22px; padding-right: 22px; }
  .lfk-hero-btns { flex-wrap: wrap; }
  .lfk-hero-scene { top: 276px; bottom: 188px; }
  .lfk-hero-grid { left: 16px; right: 16px; }
  .lfk-page .wrap { width: calc(100% - 32px); }
}

/* Allocate actual layout space for the artwork instead of scaling outside it. */
.lfk-direction .lfk-icon-reference, .lfk-experience .lfk-icon-reference { width: 88px; height: 88px; }
@media (max-width: 1200px) {
  .lfk-direction .lfk-icon-reference, .lfk-experience .lfk-icon-reference { width: 80px; height: 80px; }
}
@media (max-width: 600px) {
  .lfk-direction { gap: 18px; }
  .lfk-direction .lfk-icon-reference, .lfk-experience .lfk-icon-reference { width: 80px; height: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  .lfk-page *, .lfk-page *::before, .lfk-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .lfk-page .lfk-reveal { opacity: 1; transform: none; }
  .lfk-page .btn:hover { transform: none; }
}
