/*
Theme Name: Adam Touil Photography
Theme URI: https://adamtouil.com
Author: Adam Touil
Description: Premium bilingual (EN/FR) photography portfolio. Warm light aesthetic, candid storytelling, gold accents. Built with custom post types and ACF for no-code photo management.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: adam-touil
*/

:root{
  --bg:#f7f3ec;--bg-warm:#efe9de;--ink:#1c1813;--ink-soft:#5a5247;
  --gold:#b8893d;--gold-bright:#d4a857;--gold-deep:#8f6a2c;
  --muted:rgba(28,24,19,.45);--line:rgba(28,24,19,.1);
  --font-display:'Fraunces',serif;--font-body:'Inter',sans-serif;--font-mono:'Space Mono',monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}
@media(min-width:901px){body{cursor:none}}
::selection{background:var(--gold);color:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* CURSOR */
.cursor{position:fixed;width:9px;height:9px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .4s,height .4s}
.cursor-ring{position:fixed;width:36px;height:36px;border:1px solid rgba(184,137,61,.4);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .5s cubic-bezier(.16,1,.3,1),height .5s cubic-bezier(.16,1,.3,1),border-color .4s,background .4s}
.cursor-ring.hover{width:66px;height:66px;border-color:var(--gold);background:rgba(184,137,61,.06)}
.cursor.hover{width:4px;height:4px}
@media(max-width:900px){.cursor,.cursor-ring{display:none}}

/* GRAIN */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* LOADER */
.loader{position:fixed;inset:0;background:var(--bg);z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column}
.loader-name{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.5rem);font-weight:300;letter-spacing:.12em;color:var(--ink);opacity:0;transform:translateY(30px)}
.loader-name b{color:var(--gold);font-weight:300;font-style:italic}
.loader-line{width:0;height:1px;background:var(--gold);margin-top:1.6rem}
.loader-tagline{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:1.1rem;opacity:0}

/* NAV */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;transition:background .4s,padding .4s,box-shadow .4s}
.site-nav.scrolled{background:rgba(247,243,236,.85);backdrop-filter:blur(12px);padding:1.2rem 3rem;box-shadow:0 1px 0 var(--line)}
.nav-logo{font-family:var(--font-display);font-size:1.2rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.nav-logo b{color:var(--gold);font-weight:400}
.nav-right{display:flex;align-items:center;gap:2.5rem}
.nav-links{display:flex;gap:2.2rem;list-style:none}
.nav-links a{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;position:relative;padding-bottom:5px}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--gold);transition:width .5s cubic-bezier(.16,1,.3,1)}
.nav-links a:hover::after{width:100%}
.nav-lang{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.12em;color:var(--gold);border:1px solid rgba(184,137,61,.35);padding:.45rem .9rem;transition:all .4s;display:flex;gap:.4rem}
.nav-lang a.active{color:var(--ink)}
.nav-lang a:hover{color:var(--gold-bright)}

@media(min-width:901px){.intro-active .nav-logo,.intro-active .nav-right{opacity:0}}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:0 3rem}
.hero-glow{position:absolute;top:30%;right:-5%;width:650px;height:650px;background:radial-gradient(circle,rgba(212,168,87,.18) 0%,transparent 70%);pointer-events:none;z-index:0}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:4rem;width:100%;max-width:1400px;margin:0 auto;align-items:center;position:relative;z-index:2}
.hero-eyebrow{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;opacity:0;transform:translateX(-30px)}
.hero-eyebrow .e-line{width:0;height:1px;background:var(--gold)}
.hero-eyebrow span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold)}
.hero-title{font-family:var(--font-display);font-weight:300;line-height:.95;letter-spacing:-.015em}
.hero-title .line{display:block;overflow:hidden;padding:.04em 0}
.hero-title .line .word{display:inline-block;font-size:clamp(2.8rem,7.5vw,7rem);transform:translateY(110%);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.hero-title em{font-style:italic;color:var(--gold)}
.hero-sub{margin-top:2.5rem;max-width:440px;font-size:clamp(.88rem,1.1vw,1rem);font-weight:300;line-height:1.75;color:var(--ink-soft);opacity:0;transform:translateY(20px)}
.hero-cta{margin-top:2.5rem;display:inline-flex;align-items:center;gap:.8rem;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;opacity:0;transform:translateY(20px)}
.hero-cta .hc-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);transition:transform .4s}
.hero-cta:hover .hc-dot{transform:scale(1.6)}
.hero-visual{position:relative;height:78vh;opacity:0}
.hv-img{position:absolute;overflow:hidden;box-shadow:0 30px 60px rgba(28,24,19,.18)}
.hv-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.hv-img:hover img{transform:scale(1.06)}
.hv-1{top:0;left:8%;width:62%;height:62%;z-index:2}
.hv-2{bottom:0;right:0;width:52%;height:54%;z-index:3}
.hv-tag{position:absolute;bottom:-1.2rem;left:-1.2rem;background:var(--gold);color:var(--bg);padding:.9rem 1.3rem;font-family:var(--font-mono);font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;z-index:4;line-height:1.5}

/* REVEAL */
.reveal{opacity:0;transform:translateY(50px);transition:all 1.1s cubic-bezier(.16,1,.3,1)}
.reveal.active{opacity:1;transform:translateY(0)}

/* STATEMENT */
.statement{padding:11rem 3rem;max-width:1050px;margin:0 auto}
.statement p{font-family:var(--font-display);font-size:clamp(1.5rem,3.8vw,3rem);font-weight:300;line-height:1.4;letter-spacing:-.01em}
.statement .w{display:inline-block;opacity:.18;transition:opacity .5s}
.statement .w.lit{opacity:1}
.statement em{font-style:italic;color:var(--gold)}

/* CATEGORIES */
.categories{padding:2rem 0 11rem}
.cat-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 3rem;margin-bottom:4rem;flex-wrap:wrap;gap:1rem}
.cat-head .label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}
.cat-head .title{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,3rem);font-weight:300}
.cat-head .title em{font-style:italic;color:var(--gold)}
.cat-list{display:flex;flex-direction:column}
.cat-row{position:relative;border-top:1px solid var(--line);padding:2rem 3rem;display:flex;align-items:center;justify-content:space-between;overflow:hidden;transition:padding-left .6s cubic-bezier(.16,1,.3,1),background .5s}
.cat-row:last-child{border-bottom:1px solid var(--line)}
.cat-row:hover{padding-left:4.5rem;background:var(--bg-warm)}
.cat-left{position:relative;z-index:2;display:flex;align-items:baseline;gap:2rem}
.cat-num{font-family:var(--font-mono);font-size:.62rem;color:var(--gold);letter-spacing:.1em}
.cat-name{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3.4rem);font-weight:300;letter-spacing:-.01em;transition:font-style .3s,color .3s}
.cat-row:hover .cat-name{font-style:italic;color:var(--gold)}
.cat-arrow{position:relative;z-index:2;font-family:var(--font-mono);font-size:1.2rem;color:var(--gold);opacity:0;transform:translateX(-20px);transition:all .5s cubic-bezier(.16,1,.3,1)}
.cat-row:hover .cat-arrow{opacity:1;transform:translateX(0)}

/* FLOAT THUMB */
.float-thumb{position:fixed;width:260px;height:330px;z-index:150;pointer-events:none;overflow:hidden;opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(-3deg);transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1);box-shadow:0 20px 50px rgba(28,24,19,.25)}
.float-thumb img{width:100%;height:100%;object-fit:cover}
.float-thumb.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}
@media(max-width:900px){.float-thumb{display:none}}

/* MARQUEE */
.marquee{padding:5rem 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee-track span{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,5rem);font-weight:300;white-space:nowrap;padding:0 1.5rem;letter-spacing:-.01em}
.marquee-track .outline{color:transparent;-webkit-text-stroke:1px rgba(28,24,19,.25)}
.marquee-track .dot{color:var(--gold);font-style:italic}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ABOUT */
.about{padding:10rem 3rem;display:grid;grid-template-columns:1.05fr 1fr;gap:6rem;max-width:1300px;margin:0 auto;align-items:center}
.about-visual{position:relative}
.about-visual .av-main{position:relative;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 60px rgba(28,24,19,.15)}
.about-visual .av-main img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.about-visual:hover .av-main img{transform:scale(1.04)}
.about-visual .av-frame{position:absolute;top:-1.5rem;left:-1.5rem;right:1.5rem;bottom:1.5rem;border:1px solid var(--gold);opacity:.4;z-index:-1}
.about-visual .av-badge{position:absolute;bottom:-1.3rem;right:-1rem;background:var(--gold);color:var(--bg);padding:1.1rem 1.5rem;font-family:var(--font-mono);font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;line-height:1.6}
.about-text .label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:1.8rem}
.about-text h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.18;margin-bottom:2.2rem;letter-spacing:-.01em}
.about-text h2 em{font-style:italic;color:var(--gold)}
.about-text p{font-size:.9rem;font-weight:300;line-height:1.95;color:var(--ink-soft);margin-bottom:1.4rem}
.about-text .signature{font-family:var(--font-display);font-size:2rem;font-style:italic;color:var(--gold);margin-top:1.8rem}
.stat-row{display:flex;gap:3.5rem;margin-top:3rem;padding-top:2.2rem;border-top:1px solid var(--line)}
.stat-num{font-family:var(--font-display);font-size:2.8rem;font-weight:300;color:var(--gold)}
.stat-label{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}

/* CTA */
.cta{padding:11rem 3rem;text-align:center;position:relative;overflow:hidden;background:var(--ink);color:var(--bg)}
.cta-glow{position:absolute;top:50%;left:50%;width:700px;height:700px;background:radial-gradient(circle,rgba(212,168,87,.15),transparent 70%);transform:translate(-50%,-50%);pointer-events:none}
.cta h2{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,5rem);font-weight:300;line-height:1.05;margin-bottom:1.8rem;position:relative}
.cta h2 em{font-style:italic;color:var(--gold-bright)}
.cta p{font-size:.9rem;color:rgba(247,243,236,.55);font-weight:300;margin-bottom:3rem;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.8;position:relative}
.cta-btn{position:relative;display:inline-block;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);background:var(--gold-bright);padding:1.4rem 3.5rem;overflow:hidden}
.cta-btn span{position:relative;z-index:2}
.cta-btn::before{content:'';position:absolute;inset:0;background:#fff;transform:translateX(-101%);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.cta-btn:hover::before{transform:translateX(0)}

/* FOOTER */
.site-footer{padding:3.2rem 3rem;display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:var(--bg);flex-wrap:wrap;gap:1rem}
.site-footer .f-name{font-family:var(--font-display);font-size:1rem;font-style:italic;color:var(--gold-bright)}
.site-footer span{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;color:rgba(247,243,236,.4)}
.site-footer .socials{display:flex;gap:2rem}
.site-footer .socials a{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;color:rgba(247,243,236,.5);text-transform:uppercase;transition:color .3s}
.site-footer .socials a:hover{color:var(--gold-bright)}

/* ===== CATEGORY ARCHIVE PAGE ===== */
.cat-hero{padding:11rem 3rem 4rem;max-width:1400px;margin:0 auto;position:relative}
.cat-hero-glow{position:absolute;top:40%;left:10%;width:500px;height:500px;background:radial-gradient(circle,rgba(212,168,87,.16),transparent 70%);pointer-events:none;z-index:0}
.cat-breadcrumb{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;position:relative;z-index:2}
.cat-breadcrumb a{color:var(--muted)}
.cat-hero-row{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:2rem;position:relative;z-index:2}
.cat-title{font-family:var(--font-display);font-size:clamp(3rem,9vw,7rem);font-weight:300;line-height:.95;letter-spacing:-.02em}
.cat-title em{font-style:italic;color:var(--gold)}
.cat-meta{text-align:right}
.cat-count{font-family:var(--font-display);font-size:2.5rem;font-weight:300;color:var(--gold);line-height:1}
.cat-count-label{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.cat-desc{max-width:520px;font-size:.92rem;font-weight:300;line-height:1.8;color:var(--ink-soft);margin-top:2.5rem;position:relative;z-index:2}
.archive-gallery{padding:3rem 3rem 8rem;max-width:1400px;margin:0 auto}
.archive-masonry{columns:3;column-gap:1.5rem}
.shot{break-inside:avoid;margin-bottom:1.5rem;position:relative;overflow:hidden;box-shadow:0 12px 30px rgba(28,24,19,.08);opacity:0;transform:translateY(40px)}
.shot.in{opacity:1;transform:translateY(0);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.shot img{width:100%;transition:transform 1.2s cubic-bezier(.16,1,.3,1),filter .8s;filter:saturate(.96)}
.shot:hover img{transform:scale(1.06);filter:saturate(1.1)}
.shot-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(28,24,19,.55),transparent 55%);opacity:0;transition:opacity .5s;display:flex;align-items:flex-end;padding:1.6rem}
.shot:hover .shot-overlay{opacity:1}
.shot-overlay .so-name{font-family:var(--font-display);font-size:1.2rem;font-style:italic;color:#fff;transform:translateY(15px);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.shot:hover .shot-overlay .so-name{transform:translateY(0)}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(28,24,19,.95);z-index:9500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s;backdrop-filter:blur(8px)}
.lightbox.open{opacity:1;pointer-events:all}
.lightbox img{max-width:85vw;max-height:82vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:scale(.9);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.lightbox.open img{transform:scale(1)}
.lb-close{position:absolute;top:2rem;right:2rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#fff}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border:1px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.3rem;transition:all .3s}
.lb-nav:hover{background:var(--gold);border-color:var(--gold)}
.lb-prev{left:2rem}.lb-next{right:2rem}
.lb-caption{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);text-align:center}
.lb-caption .lc-name{font-family:var(--font-display);font-size:1.3rem;font-style:italic;color:#fff}
.lb-caption .lc-count{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em;color:var(--gold-bright);margin-top:.4rem}

@media(max-width:900px){
  .site-nav,.site-nav.scrolled{padding:1.3rem 1.5rem}
  .nav-links{display:none}
  .nav-right{gap:1rem}
  .hero{padding:6rem 1.5rem 3rem}
  .hero-inner{grid-template-columns:1fr;gap:3rem}
  .hero-visual{height:60vh;order:-1}
  .statement{padding:7rem 1.5rem}
  .cat-head{padding:0 1.5rem}
  .cat-row{padding:1.5rem}
  .cat-row:hover{padding-left:2rem}
  .about{grid-template-columns:1fr;gap:5rem;padding:6rem 1.5rem}
  .stat-row{gap:2rem}
  .cat-hero{padding:8rem 1.5rem 3rem}
  .archive-gallery{padding:2rem 1.5rem 5rem}
  .archive-masonry{columns:1}
  .lb-nav{width:42px;height:42px}.lb-prev{left:.8rem}.lb-next{right:.8rem}
}
