.cinema-page,.home-wedding { --cinema-blue:#168bf2; --serif:Georgia,"Times New Roman",serif; background:#07090b; }
.cinema-page::before { opacity:.022; }
.cinema-page a,.cinema-page button { -webkit-tap-highlight-color:transparent; }
.cinema-page button,.cinema-page nav a,.cinema-button { -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation; }
.cinema-header { grid-template-columns:auto 1fr auto; padding:1.25rem 4.6vw; gap:2.5rem; background:linear-gradient(#0008,transparent); }
.cinema-header .brand { width:clamp(8.5rem,12vw,12rem); }
.cinema-header .desktop-nav { justify-content:center; gap:clamp(1rem,2.3vw,2.7rem); font:1rem var(--serif); text-transform:none; letter-spacing:0; color:#eee; }
.cinema-header [aria-current="page"]::after { transform:scaleX(1);height:2px; }
.cinema-header .header-cta { border-radius:100px;border-color:#168bf2;font-size:.75rem;letter-spacing:.13em;padding:.85rem 1.4rem; }
.cinema-page .mobile-menu { background:#0c1016; color:#f7f7f7;padding:6rem 6vw 2rem;overflow-y:auto; }
.cinema-page .mobile-menu nav { gap:0; }
.cinema-page .mobile-menu nav>a,.cinema-page .mobile-menu nav>button { font:1.45rem/1.2 var(--serif);letter-spacing:0;padding:.62rem 0;border-bottom-color:#ffffff1a; }
.cinema-page .mobile-menu [aria-current="page"] { color:#63c9ff; }
.wedding-hero { min-height:680px;height:100svh;max-height:1100px;position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden; }
.hero-photograph,.hero-photograph::after { position:absolute;inset:0;z-index:-1; }
.hero-photograph img { width:100%;height:100%;object-fit:cover;object-position:50% 37%;animation:hero-breathe 15s ease-out both; }
.hero-photograph::after { content:"";z-index:1;background:linear-gradient(90deg,#000c 0%,#0008 29%,#0001 59%,#0002 80%,#0006),linear-gradient(0deg,#07090b 0%,transparent 22%,transparent 80%,#0004); }
.wedding-hero-copy { margin:2rem 0 0 7.1vw;width:45%;max-width:650px;position:relative;animation:cinema-enter 1.2s ease both; }
.cinema-kicker { color:#b9d6eb;font:400 .75rem/1.5 var(--sans);letter-spacing:.3em;text-transform:uppercase;margin:0 0 1.1rem; }
.wedding-hero .cinema-kicker { color:#e3e3e3;letter-spacing:.43em; }
.wedding-hero h1,.wedding-hero h2 { font:400 clamp(4.6rem,7.1vw,8.2rem)/.97 var(--serif);letter-spacing:-.055em;margin:0 0 1.4rem; }
.blue-rule { display:block;height:3px;width:48px;background:#168bf2;margin-top:1.5rem; }
.wedding-subtitle { max-width:480px;font:400 clamp(1.125rem,1.55vw,1.5rem)/1.45 var(--serif);margin:0 0 1.8rem;color:#f1f1f1;text-wrap:pretty; }
.cinema-actions { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
.cinema-button { min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:1rem 1.65rem;border:1px solid transparent;border-radius:3px;font:500 .75rem/1.35 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s,transform .25s; }
.cinema-button svg { width:18px;height:18px;fill:currentColor;flex-shrink:0; }
.cinema-button.primary { background:linear-gradient(135deg,#158aee,#0964d0);color:white;border-color:#3599ee;box-shadow:0 6px 30px #007cdd25; }
.cinema-button.outline { border-color:#ffffffb0;background:#0003;color:#fff; }
.cinema-button:hover { transform:translateY(-2px);border-color:#86cbff; }
.cinema-button.primary:hover { background:#177ee0; }
.cinema-button.outline:hover { background:#ffffff12; }
.hero-side-note { position:absolute;right:4vw;top:24%;margin:0;font:400 .75rem/2 var(--sans);text-align:center;letter-spacing:.3em;text-transform:uppercase;color:#ededed; }
.hero-side-note::before,.hero-side-note::after { content:"";display:block;margin:0 auto 1.3rem;width:1px;height:42px;background:#ffffff6b; }
.hero-side-note::after { margin:1.3rem auto 0; }
.cinema-values { position:absolute;left:7.1vw;bottom:4.2rem;display:flex;gap:2.3rem; }
.cinema-values>span { display:flex;align-items:center;gap:13px;color:#dadbdd;font:400 .75rem/1.6 var(--sans);letter-spacing:.15em;text-transform:uppercase; }
.cinema-values svg { width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.15;flex-shrink:0; }
.hero-scroll { position:absolute;right:4.6vw;bottom:3.8rem;display:flex;align-items:center;gap:1.2rem;font:italic 1.4rem var(--serif); }
.hero-scroll svg { width:24px;height:28px;fill:none;stroke:#ddd;stroke-width:1; }
.wedding-cases { position:relative;padding:4rem 4.6vw 4.6rem;scroll-margin-top:80px;overflow:hidden;background:radial-gradient(ellipse at 50% 0,#18202a66,transparent 72%),#07090b; }
.wedding-cases::before { content:"EPICFILMS";position:absolute;left:50%;top:-5.5rem;transform:translateX(-50%);font:400 22vw/1 var(--serif);letter-spacing:-.08em;color:rgba(255,255,255,.025);pointer-events:none; }
.cinema-section-heading { text-align:center;position:relative;margin:0 auto 2rem; }
.cinema-section-heading .cinema-kicker { margin-bottom:.6rem; }
.cinema-section-heading h2,.stills-heading h2 { font:400 clamp(2.4rem,3.6vw,4rem)/1.1 var(--serif);letter-spacing:-.035em;margin:0 0 .8rem; }
.cinema-section-heading>p:last-child { font-size:1rem;margin:0;color:#c4c6ca; }
.film-rail { display:grid;grid-template-columns:repeat(var(--film-count,2),minmax(0,1fr));gap:1.5rem;position:relative; }
.film-card { position:relative;display:block;min-width:0;width:100%;aspect-ratio:1.5;border:1px solid #ffffff30;padding:0;border-radius:7px;background:#131920;overflow:hidden;text-align:left;cursor:pointer;isolation:isolate; }
.film-card::after { position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(0deg,#000d,transparent 55%,#0002); }
.film-card img { position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .8s ease; }
.film-card:hover img { transform:scale(1.035); }
.case-label,.film-duration { position:absolute;top:14px;left:14px;font:500 .75rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;border:1px solid #c9d9e8aa;border-radius:5px;padding:6px 8px;background:#05090bb3;color:#bce4ff; }
.film-duration { left:auto;right:14px;border:0;color:white;letter-spacing:.04em;font-variant-numeric:tabular-nums; }
.film-play { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid #ffffffe0;background:#0004;backdrop-filter:blur(3px);transition:background .25s,box-shadow .25s; }
.film-play svg { width:24px;height:24px;fill:#fff;margin-left:3px; }
.film-card:hover .film-play { background:#147ee9cc;box-shadow:0 0 0 7px #ffffff12; }
.film-caption { position:absolute;bottom:21px;left:20px;right:15px;display:grid;gap:5px; }
.film-caption strong { font:400 clamp(1.05rem,1.5vw,1.45rem)/1.18 var(--serif);color:white; }
.film-caption>span { font:400 .75rem/1.4 var(--sans);letter-spacing:.17em;text-transform:uppercase;color:#e0e5eb; }
.rail-controls { display:none; }
.wedding-stills { padding:1.6rem 0 0; }
.stills-heading { text-align:center;padding:0 6vw 2rem; }
.stills-heading .cinema-kicker { margin-bottom:.7rem; }
.stills-heading h2 { font-style:italic; }
.stills-grid { display:grid;grid-template-columns:1fr 1.5fr 1fr;grid-template-rows:repeat(2,1fr);height:clamp(440px,42vw,710px);gap:6px; }
.stills-grid figure { margin:0;min-height:0;overflow:hidden; }
.stills-grid img { width:100%;height:100%;object-fit:cover; }
.still-bride { grid-column:1;grid-row:1/3; }
.still-bride img { object-position:50% 42%; }
.still-dance { grid-column:2;grid-row:1; }
.still-groom { grid-column:3;grid-row:1/3; }
.still-embrace { grid-column:2;grid-row:2; }
.wedding-contact { position:relative;isolation:isolate;min-height:640px;padding:8rem 7vw;display:grid;place-items:center;text-align:center;overflow:hidden; }
.contact-photograph { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%;z-index:-2; }
.wedding-contact::before { content:"";position:absolute;inset:0;background:linear-gradient(#07090b 0%,#0005 30%,#0008 70%,#07090b);z-index:-1; }
.contact-content { max-width:960px; }
.contact-content h2 { font:400 clamp(2.05rem,3.5vw,3.7rem)/1.2 var(--serif);letter-spacing:-.035em;margin:0 0 2rem;text-wrap:balance; }
.contact-content h2 em { font-weight:400;color:#eee; }
.contact-content .cinema-actions { justify-content:center; }
.cinema-footer { padding:2.2rem 4.6vw;display:flex;align-items:center;flex-wrap:wrap;gap:2rem;border-top:1px solid #ffffff16;color:#aeb6be; }
.cinema-footer .brand { width:9rem; }
.cinema-footer p { font:italic 1rem var(--serif);margin:0; }
.cinema-footer nav { display:flex;gap:1.2rem;margin-left:auto;font-size:.875rem; }
.cinema-footer small { font-size:.75rem; }
.film-dialog { padding:0;border:1px solid #ffffff29;border-radius:9px;background:#080a0e;color:white;max-width:calc(100vw - 32px);width:1080px;max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 24px 100px #0009; }
.film-dialog::backdrop { background:#020305ed;backdrop-filter:blur(9px); }
.film-dialog-shell { padding:1rem 1.2rem 1.2rem; }
.film-dialog-header { display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .8rem; }
.film-dialog-header h2 { font:400 1.3rem var(--serif);margin:0; }
.film-dialog-header .cinema-kicker { font-size:.75rem;letter-spacing:.17em;margin:0 0 .3rem;color:#95bbd7; }
.film-close { flex-shrink:0;width:44px;height:44px;font:300 2rem/1 var(--sans);border:1px solid #ffffff3d;border-radius:50%;background:transparent;cursor:pointer; }
.wedding-player { width:100%;height:74dvh;max-height:850px;background:#000;object-fit:contain;border-radius:3px; }
.film-error { text-align:center;font-size:.875rem;color:#e3c6c6; }
.film-error button { color:white;background:none;border:0;text-decoration:underline;cursor:pointer;min-height:44px; }
.cinema-page .briefing-dialog { font-family:var(--sans); }
.cinema-js .cinema-reveal { opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease; }
.cinema-js .cinema-reveal.is-visible { opacity:1;transform:none; }
.events-main { min-height:90svh;padding:12rem 7vw 7rem;display:grid;align-content:center;justify-items:start;background:radial-gradient(ellipse at 80% 25%,#12304c60,transparent 60%); }
.events-main h1 { font:400 clamp(4rem,10vw,9rem)/1 var(--serif);letter-spacing:-.06em;margin:0 0 1.5rem; }
.events-main p { max-width:36rem;font-size:1.1rem;color:#c6ccd2;margin-bottom:2rem; }
@keyframes hero-breathe { from{transform:scale(1.035)}to{transform:scale(1)} }
@keyframes cinema-enter { from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none} }
@media(min-width:1121px) { .cinema-header .header-cta { display:block; }.cinema-header .desktop-nav { display:flex; }.cinema-header .menu-toggle { display:none; } }
@media(max-width:1120px) {
  .cinema-header { grid-template-columns:1fr auto;gap:1rem;padding:1rem 5vw; }
  .cinema-header .desktop-nav,.cinema-header .header-cta { display:none; }
  .cinema-header .menu-toggle { display:block; }
  .wedding-hero-copy { width:52%;margin-left:6vw; }
  .wedding-hero h1,.wedding-hero h2 { font-size:clamp(4rem,8vw,6rem); }
  .hero-side-note { display:none; }
  .cinema-values { left:6vw;gap:1.3rem;bottom:3rem; }
  .hero-scroll { bottom:1rem;right:5vw;font-size:1.1rem; }
  .home-wedding .hero-scroll { display:none; }
  .cinema-values>span { font-size:.75rem;gap:8px;letter-spacing:.08em; }
  .film-rail { gap:1rem; }
  .film-card { aspect-ratio:1.05; }
  .film-caption { left:14px;bottom:16px; }
  .film-caption strong { font-size:1.15rem; }
  .case-label { font-size:.75rem;letter-spacing:.03em;left:10px;top:10px; }
  .film-duration { top:10px;right:10px; }
}
@media(max-width:700px) {
  .wedding-hero { min-height:740px;height:100svh;max-height:1000px;align-items:flex-end;padding-bottom:9.3rem; }
  .hero-photograph img { object-position:57% 25%; }
  .hero-photograph::after { background:linear-gradient(0deg,#07090b 0%,#000b 25%,#0006 48%,#0000 77%,#0006 100%); }
  .wedding-hero-copy { width:auto;max-width:none;margin:0 6vw; }
  .wedding-hero h1,.wedding-hero h2 { font-size:clamp(3.8rem,14.5vw,5.7rem);margin:0 0 1rem; }
  .blue-rule { margin-top:1.2rem;width:38px; }
  .wedding-hero .cinema-kicker { font-size:.75rem;letter-spacing:.3em;margin-bottom:.8rem; }
  .wedding-subtitle { font-size:1.13rem;max-width:26rem;margin:0 0 1.4rem; }
  .cinema-actions { gap:10px; }
  .wedding-hero .cinema-actions { display:grid;grid-template-columns:1fr 1.1fr; }
  .cinema-button { padding:.9rem .75rem;font-size:.75rem;letter-spacing:.05em;gap:7px; }
  .cinema-values { bottom:3.8rem;left:6vw;right:6vw;gap:10px;justify-content:space-between; }
  .cinema-values>span { font-size:.75rem;letter-spacing:0;line-height:1.4;gap:7px;flex:1;min-width:0;display:block; }
  .cinema-values>span:first-child { flex:1.6; }
  .cinema-values svg { display:block;width:21px;height:21px;margin-bottom:7px; }
  .hero-scroll { bottom:1.2rem;right:6vw;font-size:.95rem;gap:10px; }
  .hero-scroll svg { width:18px;height:20px; }
  .wedding-cases { padding:2.9rem 0 2.1rem; }
  .cinema-section-heading { padding:0 6vw;margin-bottom:1.6rem; }
  .cinema-section-heading .cinema-kicker { font-size:.75rem;letter-spacing:.18em; }
  .cinema-section-heading>p:last-child { font-size:1rem;line-height:1.55; }
  .film-rail { display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:6vw;padding:6px 6vw 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom; }
  .film-rail::-webkit-scrollbar { display:none; }
  .film-card { flex:0 0 84%;aspect-ratio:1.04;scroll-snap-align:start; }
  .film-caption strong { font-size:1.3rem; }
  .film-caption { bottom:20px;left:18px; }
  .film-play { width:58px;height:58px; }
  .rail-controls { display:flex;align-items:center;justify-content:center;gap:22px;margin-top:12px; }
  .rail-controls button { width:44px;height:44px;border:1px solid #ffffff34;background:transparent;border-radius:50%;font-size:1.3rem;cursor:pointer; }
  .rail-controls button:disabled { opacity:.3;cursor:default; }
  .rail-position { font-size:.75rem;letter-spacing:.18em;font-variant-numeric:tabular-nums;color:#8d9daa; }
  .rail-position span { color:white; }
  .stills-heading { padding:0 6vw 1.2rem; }
  .stills-heading h2 { font-size:2.25rem; }
  .stills-grid { height:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:4px; }
  .still-bride { grid-column:1;grid-row:1;aspect-ratio:.76; }
  .still-groom { grid-column:2;grid-row:1;aspect-ratio:.76; }
  .still-dance { grid-column:1/3;grid-row:2;aspect-ratio:1.81; }
  .still-embrace { grid-column:1/3;grid-row:3;aspect-ratio:1.9; }
  .wedding-contact { min-height:600px;padding:5rem 6vw; }
  .contact-photograph { object-position:54% 40%; }
  .contact-content h2 { font-size:2.25rem; }
  .contact-content .cinema-actions { flex-direction:column;align-items:stretch; }
  .contact-content .cinema-button { min-height:52px; }
  .cinema-footer { padding:2rem 6vw;gap:1.3rem; }
  .cinema-footer nav { margin-left:0;width:100%; }
  .cinema-footer p { width:100%; }
  .film-dialog { max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px); }
  .film-dialog-shell { padding:12px; }
  .film-dialog-header h2 { font-size:1.1rem; }
  .film-dialog-header .cinema-kicker { font-size:.75rem;letter-spacing:.06em; }
  .wedding-player { height:74dvh; }
  .events-main { min-height:85svh;padding:9rem 6vw 5rem; }
}
@media(max-width:360px) {
  .wedding-hero { min-height:760px; }
  .wedding-hero .cinema-actions { grid-template-columns:1fr; }
  .cinema-values svg { display:none; }
  .cinema-values>span { font-size:.7rem; }
  .wedding-hero h1,.wedding-hero h2 { font-size:3.65rem; }
}
@media(prefers-reduced-motion:reduce) {
  .cinema-page { scroll-behavior:auto; }
  .hero-photograph img,.wedding-hero-copy { animation:none; }
  .cinema-js .cinema-reveal { opacity:1;transform:none;transition:none; }
  .cinema-page *, .cinema-page *::before, .cinema-page *::after { scroll-behavior:auto!important;transition:none!important; }
}

.home-wedding .wedding-hero { scroll-margin-top:0; }
.home-wedding .wedding-cases { padding-bottom:5rem; }
.home-wedding-more { display:block;width:fit-content;margin:2rem auto 0;padding:12px 0;border-bottom:1px solid #168bf2;color:#d8eafa;font-size:.875rem;letter-spacing:.06em; }
.film-card,.rail-controls button,.film-close { -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation; }
