/* October 2026. An explicitly labeled artistic scene based on Julia's photos. */
.cinema-page {
  --ink:#252522; --ink-soft:#4a4b45; --paper:#f1f0eb; --white:#fcfbf7;
  --muted:#72716a; --accent:#59604e; --accent-dark:#1c211c;
  --line:#25252229; --gutter:clamp(1.25rem,5vw,6rem);
  background:var(--paper); overflow-x:clip; min-width:0;
}
.cinema-page > main { display:block!important; }
.cinema-page .site-header { color:#f5f2eb; background:#171513cf; border-color:#ffffff1f; backdrop-filter:blur(14px); }
.cinema-page .site-header.is-scrolled { background:#171513ed; color:#f5f2eb; }
.cinema-page .header-cta { color:#f5f2eb; border-color:#f5f2eb66; }
.cinema-page .header-cta:hover { color:#171513; background:#f5f2eb; }
.cinema-page .mobile-menu { background:#171513; }
.cinema-page .brand-mark { font-family:var(--display); letter-spacing:-.1em; }
.cinema-page h2 { letter-spacing:-.065em; }
.cinema {
  position:relative; color:#f5f2eb; background:#171513; isolation:isolate;
  --camera-scale:1; --camera-x:0%; --camera-y:0%; --camera-rotate:0deg; --intro-offset:8%;
  --magic-opacity:0;
  --magic-tilt:0deg; --enchantment-opacity:0;
  --curls-opacity:0; --curls-scale:1.045; --curl-process-opacity:0;
  --hair-shutter-opacity:0; --hair-shutter-x:-8%;
  --portrait-opacity:1; --evening-opacity:0; --evening-scale:1.07; --evening-x:2%;
}
.cinema.is-interactive { height:540svh; }
.cinema-stage { position:relative; height:100svh; min-height:640px; overflow:clip; }
.is-interactive .cinema-stage { position:sticky; top:0; }
.cinema-art { position:absolute; inset:0 0 0 34%; overflow:clip; perspective:1200px; opacity:var(--portrait-opacity); }
.cinema-art::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,#171513 0%,transparent 24%,transparent 90%,#171513aa),linear-gradient(0deg,#171513 0%,transparent 32%);
}
.cinema-camera {
  position:absolute; left:50%; bottom:0; height:100%; aspect-ratio:9/16;
  transform:translate(calc(-50% + var(--camera-x)),var(--camera-y)) scale(var(--camera-scale)) rotateY(var(--camera-rotate));
  transform-origin:50% 36%; will-change:transform;
  /* Feather the frame while keeping the centre of the approved face opaque. */
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(0deg,transparent,#000 24%,#000 88%,transparent);
  mask-composite:intersect;
}
.cinema-plate { display:block; position:absolute; inset:0; }
.cinema-plate img { width:100%; height:100%; object-fit:cover; }
/* The owner's actual photo is an opaque face layer; AI only supplies the
   surrounding dark background. Both layers share one fixed photo coordinate space. */
.cinema-original-face { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:fill; pointer-events:none; }
.cinema-original-face--makeup { mask-image:radial-gradient(ellipse 42% 34% at 50% 42%,#000 88%,transparent 100%); }
.cinema-original-face--curls { mask-image:radial-gradient(ellipse 36% 30% at 51% 42%,#000 88%,transparent 100%); }
.cinema-curls { position:absolute; inset:0 0 0 34%; overflow:clip; opacity:var(--curls-opacity); pointer-events:none; }
.cinema-curls-camera {
  position:absolute; height:100%; bottom:0; left:50%; aspect-ratio:9/16;
  transform:translateX(-50%) scale(var(--curls-scale)); transform-origin:50% 40%;
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(0deg,transparent,#000 24%,#000 88%,transparent);
  mask-composite:intersect;
}
.cinema-curls-camera img { display:block; width:100%; height:100%; object-fit:fill; }
.cinema-curls::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg,#171513 0%,#171513aa 14%,transparent 36%),linear-gradient(90deg,#171513,transparent 24%,transparent 90%,#17151388);
}
.cinema-hair-shutter {
  position:absolute; inset:0 0 0 32%; opacity:var(--hair-shutter-opacity); pointer-events:none; z-index:1;
  background:linear-gradient(110deg,#171513,#30281f 40%,#171513 60%);
}
.cinema-hair-shutter::after {
  content:""; position:absolute; inset:0; opacity:.35;
  background:linear-gradient(110deg,transparent 35%,#bb976144 49%,transparent 60%);
  transform:translateX(var(--hair-shutter-x));
}
.cinema-curl-process {
  position:absolute; inset:0 0 0 34%; pointer-events:none; opacity:var(--curl-process-opacity);
}
.cinema-curl-process svg { position:absolute; left:50%; bottom:0; height:100%; width:auto; aspect-ratio:9/16; transform:translateX(-50%); overflow:visible; }
.curl-strand { fill:none; stroke:url(#curl-light); stroke-width:1.1; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.cinema-evening { background:radial-gradient(ellipse at 72% 50%,#33271d55,transparent 62%); position:absolute; inset:0; overflow:clip; opacity:var(--evening-opacity); pointer-events:none; }
.cinema-evening-camera {
  position:absolute; left:69%; bottom:0; height:calc(100% - 4.5rem); aspect-ratio:714/1280;
  transform:translateX(calc(-50% + var(--evening-x))) scale(var(--evening-scale));
  transform-origin:50% 35%; will-change:transform;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent),linear-gradient(0deg,transparent,#000 20%,#000 90%,transparent);
  mask-composite:intersect;
}
.cinema-evening-camera img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.cinema-evening::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#171513 0%,#171513eb 20%,#17151377 42%,transparent 65%),linear-gradient(0deg,#171513 0%,#17151388 12%,transparent 32%); }
.cinema-magic {
  position:absolute; inset:0 0 0 32%; width:68%; height:100%; overflow:visible;
  pointer-events:none; opacity:var(--magic-opacity); z-index:1;
}
.cinema-magic-orbit { transform:rotate(var(--magic-tilt)); transform-origin:50% 50%; }
.magic-trail { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.magic-trail-aura { stroke:#d7ad66; stroke-width:18; opacity:.075; }
.magic-trail-gold { stroke:#ddb66f; stroke-width:4.5; opacity:.35; }
.magic-trail-core { stroke:#ffe6b2; stroke-width:1.1; opacity:.9; }
.cinema-enchantment {
  position:absolute; inset:0; pointer-events:none; z-index:1;
  background:radial-gradient(ellipse at 68% 42%,#ffe8b2 0%,#bd8c44 32%,transparent 72%);
  mix-blend-mode:screen; opacity:var(--enchantment-opacity);
}
.cinema-title { position:absolute; top:25%; left:var(--gutter); z-index:2; width:52%; }
.cinema-kicker { font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:2rem; color:#d4d0c7; }
.cinema-title h1 { font-size:clamp(4rem,7.7vw,9rem); letter-spacing:-.07em; line-height:1.08; margin:0; font-weight:400; }
.cinema-title h1 em { color:#e5e5d9; font-style:normal; }
.cinema-intro { font-size:clamp(1.1rem,1.5vw,1.5rem); line-height:1.45; margin:1.8rem 0; }
.cinema-book { display:inline-flex; align-items:center; gap:3rem; padding:.65rem 0; border-bottom:1px solid #f5f2eb80; font-size:.85rem; }
.cinema-book span { font-size:1.5rem; transition:transform .25s ease; }
.cinema-book:hover span { transform:translate(3px,-3px); }
.cinema-caption { position:absolute; top:40%; left:var(--gutter); width:31%; opacity:0; pointer-events:none; z-index:2; }
.cinema-caption > span { color:#b9b8a7; font-size:.75rem; letter-spacing:.13em; }
.cinema-caption > p { font-family:var(--display); font-size:clamp(2rem,3.7vw,4rem); line-height:1.25; letter-spacing:-.055em; margin:1rem 0; }
.cinema-caption > small { color:#d4d0c7; font-size:.9rem; line-height:1.6; display:block; max-width:18rem; }
.cinema-bottom { position:absolute; bottom:4.5rem; left:var(--gutter); right:var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:2rem; z-index:3; }
.cinema-instruction { margin:0; font-size:.75rem; color:#c6c2b9; }
.cinema-actions { display:flex; gap:1.8rem; align-items:center; }
.cinema-actions a,.cinema-actions button { font-size:.75rem; padding:.65rem 0; border:0; border-bottom:1px solid #ffffff40; color:inherit; background:none; cursor:pointer; }
.cinema-actions a span { padding-left:1rem; }
.cinema-chapters { position:absolute; left:var(--gutter); right:var(--gutter); bottom:2.4rem; display:flex; gap:6px; z-index:3; }
.cinema-chapters[hidden] { display:none; }
.cinema-chapters button { flex:1; cursor:pointer; padding:10px 0; border:0; background:transparent; position:relative; }
.cinema-chapters button::after { content:""; position:absolute; inset:50% 0 auto; height:2px; background:#ffffff30; }
.cinema-chapters button[aria-current]::after { background:#edeeda; }
.cinema-chapters button span { position:absolute; width:1px; height:1px; overflow:hidden; }
.cinema-disclosure { position:absolute; bottom:.55rem; left:var(--gutter); margin:0; font-size:.6rem; color:#c6c2b9; letter-spacing:.02em; z-index:3; }
.cinema-manifesto { padding:6rem var(--gutter); display:grid; grid-template-columns:1.5fr 1fr; gap:3rem; border-bottom:1px solid var(--line); align-items:center; }
.cinema-manifesto > p { font-family:var(--display); font-size:clamp(2rem,3.5vw,4rem); letter-spacing:-.055em; line-height:1.3; margin:0; }
.cinema-manifesto em { color:var(--accent); font-style:normal; }
.cinema-manifesto > div { display:grid; gap:.8rem; font-size:.85rem; padding-left:2rem; border-left:1px solid var(--line); }
.cinema-page .portfolio .section-heading { text-align:left; display:grid; align-items:end; grid-template-columns:1.3fr 1fr; }
.cinema-page .portfolio .eyebrow { justify-content:flex-start; }
.cinema-page .portfolio .section-heading > p { margin:0; max-width:26rem; }
.cinema-page .portfolio-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:3rem 1.5rem; }
.cinema-page .portfolio-item:nth-child(n) { grid-column:span 2; margin:0; }
.cinema-page .portfolio-item:nth-child(1),.cinema-page .portfolio-item:nth-child(2) { grid-column:span 3; }
.cinema-page .portfolio-item:nth-child(2) { margin-top:7rem; }
.cinema-page .portfolio-item:nth-child(n) img { aspect-ratio:.82; }
.cinema-page .portfolio-item:nth-child(3n) img { aspect-ratio:1; }
.cinema-page .portfolio-item:nth-child(10) { grid-column:3 / span 4; }
.cinema-page .portfolio-item:nth-child(10) img { aspect-ratio:1.65; }
.cinema-page .portfolio-item > span { font-size:.75rem; padding-top:1rem; }
.cinema-page .about { background:#e3e5dc; }
.cinema-page .about-text-only .about-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,6vw,7rem); align-items:start; max-width:1280px; margin-inline:auto; }
.about-text-only .about-heading h2 { font-size:clamp(2rem,3.6vw,4rem); line-height:1.3; }
.about-text-only .about-text { margin-top:0; }
.about-text-only .principles { grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); }
.about-text-only .principles article { display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.4rem 1rem; padding:1.15rem 0; border-bottom:1px solid var(--line); }
.about-text-only .principles h3 { margin:0; font-size:1rem; }
.about-text-only .principles p { grid-column:2; margin:0; }

.cinema-page .about-portrait { width:100%; padding:0; }
.cinema-page .about-portrait img { height:auto; aspect-ratio:4/5; border-radius:0; }
.cinema-page .about-portrait figcaption {
  position:static; display:grid; gap:.3rem; margin:1rem 0 0; padding:0;
  text-align:left; font-size:1rem; font-weight:600; line-height:1.5;
  letter-spacing:0; text-transform:none;
}
.cinema-page .about-portrait figcaption strong { font:inherit; }
.cinema-page .about-portrait figcaption span { font-size:.8125rem; font-weight:400; line-height:1.5; letter-spacing:.01em; }
.cinema-page .studio-image img { height:auto; min-height:0; aspect-ratio:4/3; object-fit:contain; }
.cinema-page .services { background:#20241f; }
.cinema-page .services h2 em,.cinema-page .final-cta h2 em { color:#c3cbb6; }
.cinema-page .service-number { color:#c3cbb6; }
.cinema-page .service-row p,.cinema-page .section-heading-light > p { color:#d3d6cf; }
.cinema-page .reviews { background:#e5e6df; }
.cinema-page .review-card > p { font-family:var(--sans); font-size:1rem; }
.cinema-page .review-card { min-height:25rem; }
.cinema-page .final-cta,.cinema-page .site-footer { background:#171513; }
.cinema-page .final-cta { min-height:0; padding:4.5rem var(--gutter); }
.cinema-page .site-footer p { color:#c6c2b9; }
.link-icon { display:inline-block; width:1.1em; height:1.1em; flex:none; vertical-align:-.18em; }
.service-link-label { display:none; }
.cinema-book .link-icon { width:1.4rem; height:1.4rem; transition:transform .25s ease; }
.cinema-book:hover .link-icon { transform:translate(3px,-3px); }
.cinema-page .footer-editorial {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.8rem 4rem; align-items:start;
  padding:2.8rem max(var(--gutter),calc((100% - 1040px)/2)) 1.4rem;
}
.footer-editorial > * { min-width:0; }
.footer-editorial .footer-identity { display:grid; justify-items:start; gap:.8rem; grid-column:1; grid-row:1; }
.footer-editorial .footer-identity p { text-align:left; line-height:1.7; max-width:22rem; font-size:.78rem; }
.footer-editorial .footer-location { font-size:.75rem; color:#c6c2b9; }
.footer-editorial .footer-label { display:block; font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; color:#a4a499; margin-bottom:.8rem; }
.footer-editorial .footer-services { grid-column:1/-1; grid-row:2; display:flex; flex-direction:row; flex-wrap:wrap; gap:.7rem 1.6rem; font-size:.78rem; line-height:1.6; padding-top:1.3rem; border-top:1px solid #ffffff24; }
.footer-editorial .footer-services .footer-label { display:none; }
.footer-editorial .footer-contact { grid-column:2; grid-row:1; }
.footer-editorial .footer-phone { display:inline-block; font-size:1.4rem; white-space:nowrap; letter-spacing:-.025em; margin-bottom:1rem; }
.footer-editorial .footer-messengers { display:flex; flex-wrap:wrap; gap:.6rem 1.3rem; font-size:.78rem; margin-bottom:.8rem; }
.footer-editorial .footer-messengers a { padding-bottom:.2rem; border-bottom:1px solid #ffffff35; }
.footer-editorial .footer-contact > p { font-size:.7rem; text-align:left; line-height:1.7; }
.footer-editorial .footer-bottom { grid-column:1/-1; grid-row:3; display:flex; justify-content:space-between; gap:1.5rem; padding-top:0; margin-top:0; }
.footer-editorial .footer-bottom p,.footer-editorial .footer-bottom a { font-size:.75rem; color:#a4a499; text-align:left; }
.footer-editorial .link-icon,.social-links .link-icon,.contact-list .link-icon { display:none; }
.footer-editorial a:hover { color:#e5e5d9; }
.cinema-page .studio-grid { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:start; gap:clamp(2rem,6vw,7rem); }
.cinema-page .studio-copy h2 { font-size:clamp(2.2rem,3.6vw,4.5rem); }
.cinema-page .contact-list > div { grid-template-columns:9rem minmax(0,1fr); align-items:baseline; gap:1.25rem; padding-block:1.2rem; }
.cinema-page .contact-list dt { white-space:nowrap; font-size:.7rem; letter-spacing:.06em; line-height:1.6; }
.cinema-page .contact-list dd { min-width:0; margin:0; font-size:1rem; line-height:1.6; }
.cinema-page .social-links { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.6rem; }
.cinema-page .social-links a { display:inline-flex; align-items:center; justify-content:center; min-width:6.2rem; min-height:44px; padding:.65rem 1rem; border:1px solid var(--line); border-radius:99px; font-size:.78rem; line-height:1.4; }
.cinema-page .social-links a:hover { color:var(--paper); background:var(--accent); border-color:var(--accent); }
.cta-messengers { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.cta-messengers .button { width:17rem; max-width:100%; min-height:3.5rem; justify-content:center; margin:0; padding:1rem 1.5rem; }
.cinema-page .mobile-dock a + a { background:#303c2e; }
.cinema-page.inner-page .service-hero { background:#e3e5dc; }
.cinema-page.inner-page .service-hero-image { border-radius:0; }
.cinema-page.inner-page .service-hero-image--original { align-self:center; width:100%; max-width:540px; height:auto; min-height:0; max-height:none; aspect-ratio:auto; justify-self:end; }
.cinema-page.inner-page .service-hero-image--original img { display:block; width:100%; height:auto; min-height:0; aspect-ratio:auto; object-fit:contain; }
.cinema-page.inner-page .service-program { background:#20241f; }
.cinema-page.inner-page .service-program h2 em,.cinema-page.inner-page .service-program-list span { color:#c3cbb6; }
.cinema-page :focus-visible { outline-color:#a1aa90; }
@media(min-width:1800px) {
  .cinema-title { left:max(var(--gutter),calc((100vw - 1600px)/2)); }
}
@media(max-width:800px) {
  .cinema-page .about-text-only .about-grid { grid-template-columns:minmax(0,1fr); gap:1.8rem; }
  .about-text-only .about-heading h2 { font-size:clamp(2rem,8vw,3.4rem); }
  .cinema-page .link-icon { display:none; }
  .cinema-page .service-row { grid-template-columns:1.5rem minmax(0,1fr) auto; }
  .cinema-page .service-row > a { width:auto; height:auto; aspect-ratio:auto; min-height:44px; border:0; border-radius:0; font-size:.75rem; }
  .cinema-page .service-row > a:hover { background:transparent; color:inherit; transform:none; }
  .service-link-label { display:inline; padding:.4rem 0; border-bottom:1px solid #ffffff60; }
  .cinema-page .footer-editorial { grid-template-columns:minmax(0,1fr); gap:1.8rem; padding:2rem var(--gutter) 6rem; }
  .footer-editorial .footer-identity { grid-column:1; grid-row:1; }
  .footer-editorial .footer-phone { font-size:1.3rem; margin-bottom:.8rem; }
  .footer-editorial .footer-contact { grid-column:1; grid-row:2; }
  .footer-editorial .footer-messengers { gap:.65rem 1.15rem; }
  .footer-editorial .footer-services { grid-row:3; gap:.6rem 1.25rem; font-size:.75rem; }
  .footer-editorial .footer-label { font-size:.58rem; }
  .footer-editorial .footer-bottom { grid-row:4; flex-wrap:wrap; gap:.6rem; margin-top:0; }
  .cinema-page .studio-grid { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
  .cinema-page .contact-list > div { grid-template-columns:1fr; gap:.35rem; padding-block:1rem; }
  .cinema-page .social-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cinema-stage { min-height:620px; height:calc(100svh - 4.25rem); }
  .cinema.is-interactive { height:480svh; }
  .cinema-art { inset:0; }
  .cinema-camera {
    height:100%; left:64%;
    transform:translate(calc(-50% + var(--camera-x)),calc(var(--camera-y) + var(--intro-offset))) scale(var(--camera-scale)) rotateY(var(--camera-rotate));
  }
  .cinema-magic { inset:0 -15% 0 -15%; width:130%; height:88%; }
  .cinema-curls,.cinema-curl-process { inset:0; }
  .cinema-curls-camera { height:calc(100% - 3.3rem); left:50%; }
  .cinema-curl-process svg { left:64%; }
  .cinema-hair-shutter { inset:0; }
  .cinema-curls::after { background:linear-gradient(0deg,#171513 0%,#171513ed 16%,#17151366 33%,transparent 56%); }
  .cinema-evening-camera { inset:auto; bottom:1.5rem; left:50%; height:calc(100% - 4.5rem); transform-origin:50% 25%; }
  .cinema-evening-camera img { object-position:center; }
  .cinema-evening::after { background:linear-gradient(0deg,#171513 0%,#171513ed 14%,#17151377 31%,transparent 58%,#17151320 90%,#171513 100%); }
  .cinema-art::after { background:linear-gradient(0deg,#171513 0%,#171513d9 15%,transparent 48%,#17151320 75%,#171513 100%),linear-gradient(90deg,#17151377,transparent 65%); }
  .cinema-title { top:6.5rem; width:90%; }
  .cinema-kicker { font-size:.58rem; letter-spacing:.06em; margin-bottom:1.1rem; }
  .cinema-title h1 { font-size:clamp(2.8rem,11vw,5rem); }
  .cinema-intro { font-size:1rem; margin:1rem 0; max-width:8rem; }
  .cinema-book { position:absolute; top:calc(100svh - 22.5rem); left:0; font-size:.75rem; gap:1.5rem; }
  .cinema-caption { top:auto; bottom:10rem; width:85%; }
  .cinema-caption > p { font-size:clamp(1.9rem,7.8vw,3rem); margin:.45rem 0; }
  .cinema-caption > small { max-width:none; font-size:.8rem; }
  .cinema-bottom { bottom:4.8rem; display:block; }
  .cinema-actions { gap:1.2rem; justify-content:space-between; margin-top:.6rem; }
  .cinema-actions a,.cinema-actions button { font-size:.68rem; }
  .cinema-instruction { font-size:.68rem; }
  .cinema-disclosure { bottom:1rem; font-size:.5rem; max-width:85%; }
  .cinema-chapters { bottom:2.5rem; }
  .cinema-manifesto { grid-template-columns:1fr; padding-block:3.5rem; gap:1.8rem; }
  .cinema-manifesto > div { padding-left:0; border:0; font-size:.75rem; }
  .cinema-page .portfolio .section-heading { grid-template-columns:1fr; }
  .cinema-page .portfolio-grid { grid-template-columns:1fr 1fr; gap:2rem 1rem; }
  .cinema-page .portfolio-item:nth-child(n) { grid-column:auto; margin:0; }
  .cinema-page .portfolio-item:nth-child(even) { margin-top:2rem; }
  .cinema-page .portfolio-item:nth-child(5),.cinema-page .portfolio-item:nth-child(10) { grid-column:1 / -1; margin:0; }
  .cinema-page .portfolio-item:nth-child(5) img,.cinema-page .portfolio-item:nth-child(10) img { aspect-ratio:1.5; }
}
@media(max-height:650px) and (min-width:801px) {
  .cinema-stage { min-height:560px; }
  .cinema-title { top:22%; }
  .cinema-title h1 { font-size:4rem; }
  .cinema-kicker { margin-bottom:1rem; }
  .cinema-intro { margin:1rem 0; }
}
@media(prefers-reduced-motion:reduce) {
  .cinema.is-interactive { height:auto; }
  .cinema-camera,.cinema-evening-camera { will-change:auto; }
  .cinema-magic,.cinema-enchantment,.cinema-curl-process,.cinema-hair-shutter { display:none; }
}
