:root {
      --ink:   #191613;
      --paper: #f4f0ea;
      --ghost: #edeae4;
      --warm:  #c4a070;
      --muted: #7a7068;
      --serif: 'Cormorant Garamond', Georgia, serif;
      --sans:  'Raleway', sans-serif;
      --ease:  cubic-bezier(.25,.46,.45,.94);
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body { background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight: 300; line-height: 1.7; overflow-x: hidden; }

    /* PAGE SYSTEM */
    .page { display: none; }
    .page.active { display: block; animation: pageIn .65s var(--ease) forwards; }
    @keyframes pageIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }

    /* NAV */
    nav { position:fixed; top:0; left:0; right:0; z-index:200; display:flex; align-items:center; justify-content:space-between; padding:1.4rem 3rem; transition:background .4s var(--ease), box-shadow .4s; }
    nav.scrolled { background:rgba(244,240,234,.93); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(0,0,0,.06); }
    .nav-brand { font-family:var(--serif); font-size:.95rem; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--paper); cursor:pointer; transition:color .3s; }
    nav.scrolled .nav-brand { color:var(--ink); }
    .nav-links { display:flex; gap:1.8rem; list-style:none; }
    .nav-links a { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(244,240,234,.8); text-decoration:none; cursor:pointer; position:relative; transition:color .3s; white-space:nowrap; }
    .nav-links a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px; background:var(--warm); transition:width .35s var(--ease); }
    .nav-links a:hover::after, .nav-links a.active::after { width:100%; }
    .nav-links a.active { color:var(--warm); }
    nav.scrolled .nav-links a { color:var(--muted); }
    nav.scrolled .nav-links a.active { color:var(--warm); }
    .nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:4px; }
    .nav-toggle span { display:block; width:20px; height:1px; background:var(--paper); margin:5px 0; transition:background .3s; }
    nav.scrolled .nav-toggle span { background:var(--ink); }

    /* HERO */
    .hero { height:100vh; min-height:580px; background:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; overflow:hidden; }
    .hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 70% at 30% 60%, rgba(50,32,14,.6) 0%, transparent 70%), radial-gradient(ellipse 60% 60% at 75% 30%, rgba(20,28,38,.5) 0%, transparent 65%), linear-gradient(175deg, #1e1810 0%, #12100d 40%, #0e0c09 100%); }
    .hero::after { content:''; position:absolute; inset:0; pointer-events:none; z-index:1; background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,.012) 2px, rgba(255,255,255,.012) 3px); }
    .hero-content { position:relative; z-index:2; text-align:center; padding:0 2rem; }
    .hero-eyebrow { font-size:.58rem; letter-spacing:.4em; text-transform:uppercase; color:var(--warm); opacity:0; animation:up .9s var(--ease) .3s forwards; }
    .hero-name { font-family:var(--serif); font-size:clamp(3.2rem, 9vw, 8rem); font-weight:300; line-height:1.0; letter-spacing:.04em; color:var(--paper); margin:.9rem 0 .5rem; opacity:0; animation:up 1s var(--ease) .55s forwards; }
    .hero-name em { font-style:italic; color:rgba(244,240,234,.5); font-weight:300; }
    .hero-sub { font-family:var(--serif); font-size:clamp(.95rem,2vw,1.25rem); font-style:italic; font-weight:300; color:rgba(244,240,234,.45); letter-spacing:.05em; opacity:0; animation:up .9s var(--ease) .8s forwards; }
    .hero-cta { display:inline-block; margin-top:2.8rem; font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; color:var(--warm); text-decoration:none; cursor:pointer; border:1px solid rgba(196,160,112,.35); padding:.85rem 2.2rem; transition:background .3s, color .3s, border-color .3s; opacity:0; animation:up .8s var(--ease) 1.1s forwards; }
    .hero-cta:hover { background:var(--warm); color:var(--ink); border-color:var(--warm); }
    .hero-scroll { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; cursor:pointer; opacity:0; animation:up .7s var(--ease) 1.5s forwards; }
    .hero-scroll span { font-size:.5rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(244,240,234,.3); }
    .scroll-line { width:1px; height:44px; background:linear-gradient(to bottom, var(--warm), transparent); animation:pulse 2.2s ease-in-out infinite; }
    @keyframes pulse { 0%,100%{opacity:.35} 50%{opacity:1} }
    @keyframes up { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }

    /* LAYOUT */
    .container { max-width:1080px; margin:0 auto; padding:0 2.5rem; }
    .container-wide { max-width:1300px; margin:0 auto; padding:0 2rem; }
    section { padding:7rem 0; }
    .section-label { font-size:.57rem; letter-spacing:.34em; text-transform:uppercase; color:var(--warm); margin-bottom:1rem; display:block; }
    .section-heading { font-family:var(--serif); font-size:clamp(2rem,5vw,3.6rem); font-weight:300; line-height:1.15; color:var(--ink); }
    .section-heading em { font-style:italic; color:var(--muted); }
    .reveal { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
    .reveal.visible { opacity:1; transform:translateY(0); }

    /* ABOUT */
    .about { background:var(--paper); }
    .about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
    .about-text p { font-family:var(--serif); font-size:1.18rem; font-weight:300; line-height:1.85; color:var(--muted); margin-top:1.6rem; }
    .about-text p strong { color:var(--ink); font-weight:400; }
    .divider { width:38px; height:1px; background:var(--warm); margin:1.8rem 0; }
    .about-quote { background:var(--ghost); padding:2.8rem 2.4rem; border-left:2px solid var(--warm); }
    .about-quote blockquote { font-family:var(--serif); font-size:1.4rem; font-weight:300; font-style:italic; line-height:1.65; color:var(--ink); }
    .about-quote cite { display:block; margin-top:1.3rem; font-style:normal; font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--warm); }

    /* HOME WORK TEASER */
    .work-teaser { background:var(--ink); }
    .work-teaser-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; }
    .work-teaser-header a { font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--warm); text-decoration:none; cursor:pointer; border-bottom:1px solid rgba(196,160,112,.3); padding-bottom:2px; transition:border-color .3s; }
    .work-teaser-header a:hover { border-color:var(--warm); }
    .home-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
    .home-feature-card { position:relative; overflow:hidden; aspect-ratio:4/5; cursor:pointer; background:#1a1612; }
    .home-feature-card img { width:100%; height:100%; object-fit:cover; filter:brightness(.92) saturate(.85); transition:transform .7s var(--ease), filter .7s var(--ease); display:block; }
    .home-feature-card:hover img { transform:scale(1.04); filter:brightness(.75) saturate(.7); }
    .home-feature-card .card-label { position:absolute; bottom:0; left:0; right:0; padding:2.5rem 1.5rem 1.5rem; background:linear-gradient(to top, rgba(10,8,6,.85), transparent); opacity:0; transform:translateY(6px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
    .home-feature-card:hover .card-label { opacity:1; transform:translateY(0); }
    .card-label span { font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--paper); }
    .card-label .cat { color:var(--warm); font-size:.52rem; display:block; margin-bottom:.3rem; }

    /* GALLERY HERO */
    .gallery-hero { padding-top:10rem; padding-bottom:5rem; background:var(--paper); text-align:center; }
    .gallery-hero p { font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--muted); max-width:540px; margin:1.2rem auto 0; }

    /* PORTRAITS GRID */
    .portraits-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(25,22,19,.06); }
    .portrait-card { position:relative; overflow:hidden; aspect-ratio:3/4; cursor:pointer; background:var(--ghost); }
    .portrait-card img { width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.95) saturate(.88); transition:transform .7s var(--ease), filter .6s var(--ease); }
    .portrait-card:hover img { transform:scale(1.05); filter:brightness(.72) saturate(.7); }
    .portrait-card .p-label { position:absolute; bottom:0; left:0; right:0; padding:3rem 1.2rem 1.2rem; background:linear-gradient(to top, rgba(12,10,8,.9), transparent); transform:translateY(8px); opacity:0; transition:opacity .4s var(--ease), transform .4s var(--ease); }
    .portrait-card:hover .p-label { opacity:1; transform:translateY(0); }
    .p-label .name { font-family:var(--serif); font-size:1.2rem; font-weight:300; color:var(--paper); }
    .p-label .type { font-size:.52rem; letter-spacing:.24em; text-transform:uppercase; color:var(--warm); }

    /* COUPLE GRID */
    .couple-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:3.5rem; }
    .couple-card { position:relative; overflow:hidden; aspect-ratio:4/5; cursor:pointer; background:var(--ghost); }
    .couple-card img { width:100%; height:100%; object-fit:cover; display:block; filter:brightness(.95) saturate(.82); transition:transform .7s var(--ease), filter .6s var(--ease); }
    .couple-card:hover img { transform:scale(1.04); filter:brightness(.72) saturate(.7); }
    .couple-card .c-label { position:absolute; bottom:0; left:0; right:0; padding:3rem 1.5rem 1.5rem; background:linear-gradient(to top, rgba(12,10,8,.88), transparent); transform:translateY(6px); opacity:0; transition:opacity .4s var(--ease), transform .4s var(--ease); }
    .couple-card:hover .c-label { opacity:1; transform:translateY(0); }
    .c-label .name { font-family:var(--serif); font-size:1.25rem; font-weight:300; color:var(--paper); }
    .c-label .type { font-size:.52rem; letter-spacing:.24em; text-transform:uppercase; color:var(--warm); }

    /* MODAL */
    .modal-overlay { position:fixed; inset:0; z-index:500; background:rgba(15,12,10,.97); backdrop-filter:blur(8px); display:none; flex-direction:column; opacity:0; transition:opacity .4s var(--ease); }
    .modal-overlay.open { display:flex; }
    .modal-overlay.visible { opacity:1; }
    .modal-nav-bar { display:flex; align-items:center; justify-content:space-between; padding:1.4rem 2.5rem; border-bottom:1px solid rgba(244,240,234,.08); flex-shrink:0; }
    .modal-title { font-family:var(--serif); font-size:1.5rem; font-weight:300; color:var(--paper); }
    .modal-meta { font-size:.55rem; letter-spacing:.22em; text-transform:uppercase; color:var(--warm); margin-top:.2rem; }
    .modal-close { background:none; border:1px solid rgba(244,240,234,.15); color:var(--paper); width:36px; height:36px; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; transition:background .3s; }
    .modal-close:hover { background:rgba(244,240,234,.08); }
    .modal-body { flex:1; overflow:auto; padding:2rem 2.5rem 2.5rem; display:flex; flex-direction:column; }
    .modal-embed { position:relative; flex:1; min-height:400px; }
    .modal-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
    .modal-cover { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem; flex:1; }
    .modal-cover img { max-height:60vh; max-width:100%; object-fit:contain; filter:brightness(.94) saturate(.86); }
    .modal-cover-note { text-align:center; max-width:440px; }
    .modal-cover-note .label { font-size:.55rem; letter-spacing:.26em; text-transform:uppercase; color:var(--warm); margin-bottom:.8rem; display:block; }
    .modal-cover-note p { font-family:var(--serif); font-style:italic; font-size:.95rem; color:rgba(244,240,234,.4); line-height:1.7; }

    /* FILM PAGE */
    .film-dark-hero { height:65vh; min-height:440px; background:linear-gradient(155deg, #1c1510, #0d0b09 55%, #1a1610); display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; overflow:hidden; }
    .film-dark-hero::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,.007) 3px, rgba(255,255,255,.007) 4px); }
    .film-dark-hero-content { position:relative; z-index:1; text-align:center; padding:0 2rem; }
    .film-dark-hero h1 { font-family:var(--serif); font-size:clamp(2.8rem,8vw,6.5rem); font-weight:300; color:var(--paper); letter-spacing:.07em; line-height:1.05; }
    .film-dark-hero p { font-family:var(--serif); font-style:italic; font-size:1.05rem; color:rgba(244,240,234,.4); margin-top:.8rem; }
    .film-intro { background:var(--paper); padding:5rem 0 3rem; }
    .film-intro-inner { max-width:640px; margin:0 auto; text-align:center; }
    .film-intro-inner p { font-family:var(--serif); font-size:1.15rem; font-weight:300; font-style:italic; line-height:1.85; color:var(--muted); }
    .film-intro-inner .hr { width:36px; height:1px; background:var(--warm); margin:2.2rem auto; }
    .film-embed-section { background:var(--ghost); padding:4rem 0 6rem; }
    .embed-block { max-width:1100px; margin:0 auto; padding:0 2rem; }
    .embed-label { font-size:.56rem; letter-spacing:.3em; text-transform:uppercase; color:var(--warm); margin-bottom:1.5rem; display:block; }
    .lr-wrap { position:relative; padding-bottom:56%; height:0; overflow:hidden; box-shadow:0 24px 72px rgba(18,15,12,.2); border:1px solid rgba(122,112,104,.12); }
    .lr-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:none; }

    /* MOTION PAGE */
    .motion-page { padding-top:10rem; padding-bottom:8rem; }
    .motion-content p { font-family:var(--serif); font-size:1.1rem; font-weight:300; line-height:1.85; color:var(--muted); margin-top:1.4rem; }
    .motion-project { margin-top:5rem; }
    .project-head { margin-bottom:2rem; }
    .project-head h3 { font-family:var(--serif); font-size:2rem; font-weight:300; }
    .project-head p { font-family:var(--serif); font-style:italic; color:var(--muted); margin-top:.5rem; line-height:1.7; }
    .video-embed { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; background:var(--ink); box-shadow:0 20px 60px rgba(18,15,12,.18); }
    .video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
    .video-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; }
    .video-placeholder p { font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(244,240,234,.3); }
    .play-icon { width:56px; height:56px; border:1px solid rgba(244,240,234,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; }
    .play-icon::after { content:''; width:0; height:0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:16px solid rgba(244,240,234,.4); margin-left:4px; }

    /* CONTACT PAGE */
    .contact-page { padding-top:10rem; padding-bottom:8rem; }
    .contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; }
    .contact-left h2 { font-family:var(--serif); font-size:clamp(2rem,5vw,3.2rem); font-weight:300; line-height:1.2; }
    .contact-left h2 em { font-style:italic; color:var(--muted); }
    .contact-left p { font-family:var(--serif); font-size:1.05rem; color:var(--muted); margin-top:1.5rem; line-height:1.8; }
    .contact-left .email-link { display:inline-block; margin-top:2rem; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--warm); text-decoration:none; border-bottom:1px solid rgba(196,160,112,.3); padding-bottom:3px; transition:border-color .3s; }
    .contact-left .email-link:hover { border-color:var(--warm); }
    .contact-form { display:flex; flex-direction:column; gap:1.4rem; }
    .form-field { display:flex; flex-direction:column; gap:.45rem; }
    .form-field label { font-size:.56rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); }
    .form-field input, .form-field textarea { background:var(--ghost); border:1px solid rgba(122,112,104,.2); color:var(--ink); padding:.9rem 1rem; font-family:var(--sans); font-size:.85rem; font-weight:300; outline:none; transition:border-color .3s; resize:none; }
    .form-field input:focus, .form-field textarea:focus { border-color:var(--warm); }
    .form-field textarea { min-height:130px; }
    .btn-submit { align-self:flex-start; font-size:.6rem; letter-spacing:.26em; text-transform:uppercase; color:var(--warm); background:transparent; border:1px solid rgba(196,160,112,.35); padding:.9rem 2.2rem; cursor:pointer; font-family:var(--sans); font-weight:300; transition:background .3s, color .3s, border-color .3s; }
    .btn-submit:hover { background:var(--warm); color:var(--ink); border-color:var(--warm); }
    .form-success { display:none; font-family:var(--serif); font-style:italic; color:var(--warm); font-size:1rem; }

    /* FOOTER */
    footer { background:#0e0c09; padding:2.8rem 2.5rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
    .footer-brand { font-family:var(--serif); font-size:.88rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(244,240,234,.3); }
    .footer-copy { font-size:.55rem; letter-spacing:.14em; color:rgba(244,240,234,.2); }

    /* RESPONSIVE */
    @media (max-width:860px) {
      nav { padding:1.2rem 1.5rem; }
      .nav-links { position:fixed; top:0; right:-100%; height:100vh; width:65%; background:var(--ink); flex-direction:column; justify-content:center; align-items:center; gap:2.2rem; z-index:210; transition:right .4s var(--ease); }
      .nav-links.open { right:0; }
      .nav-links a { font-size:.75rem; color:rgba(244,240,234,.7) !important; }
      .nav-links a.active { color:var(--warm) !important; }
      .nav-toggle { display:block; z-index:300; }
      .about-grid, .contact-inner { grid-template-columns:1fr; gap:3rem; }
      .home-feature-grid { grid-template-columns:1fr; }
      .portraits-grid { grid-template-columns:repeat(2,1fr); }
      .couple-grid { grid-template-columns:1fr; }
      .work-teaser-header { flex-direction:column; align-items:flex-start; gap:1rem; }
    }
    @media (max-width:480px) {
      section { padding:4.5rem 0; }
      .portraits-grid { grid-template-columns:1fr 1fr; }
    }