/* Self-hosted fonts (SIL Open Font License): Cormorant Garamond, Inter */
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-garamond.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}
/* DreamRender: dark, image-first. */
:root{
  --bg:#0c0c0e; --bg2:#141417; --bg3:#1c1c20; --line:#2a2a30;
  --text:#ece8e1; --muted:#a39e95; --dim:#6f6b64; --accent:#c8894f; --accent2:#e0a873;
  --max:1240px; --r:10px;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent2)}
p a,.prose a{color:var(--accent2);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .5em;letter-spacing:.01em}
h1{font-size:clamp(2.3rem,5.5vw,4.4rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem)}
h3{font-size:1.45rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.eyebrow{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.lead{font-size:1.15rem;color:var(--muted);max-width:44em}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#000;padding:8px 12px;z-index:100}
.skip:focus{left:8px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(12,12,14,.86);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px}
.brand-word{font-family:var(--sans);font-size:1.15rem;letter-spacing:.28em;text-transform:uppercase;font-weight:300}
.brand-word b{font-weight:600;color:var(--accent2)}
.nav{display:flex;gap:26px;align-items:center}
.nav a{font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nav a[aria-current="page"],.nav a:hover{color:var(--text)}
.nav .btn{color:#111}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 12px;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}
@media (max-width:900px){
  .nav-toggle{display:block}
  .nav{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--bg2);border-bottom:1px solid var(--line);display:none;padding:8px 24px 18px}
  .nav.open{display:flex}
  .nav a{padding:12px 0;width:100%;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:14px;width:auto;border:0}
}

/* Buttons */
.btn{display:inline-block;background:var(--accent);color:#111;padding:12px 22px;border-radius:999px;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border:0;cursor:pointer}
.btn:hover{background:var(--accent2);color:#111}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent2)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* Hero */
.hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:flex-end;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,14,.15) 0%,rgba(12,12,14,.35) 55%,rgba(12,12,14,.95) 100%)}
.hero .wrap{position:relative;z-index:1;padding-bottom:72px;width:100%}
.hero p{max-width:38em;font-size:1.15rem;color:#d9d4cb}
.hero .credit{position:absolute;right:24px;bottom:18px;z-index:1;font-size:.75rem;color:var(--dim)}
.page-hero{padding:72px 0 28px;border-bottom:1px solid var(--line)}

section{padding:76px 0}
section.tight{padding:48px 0}
.alt{background:var(--bg2)}

/* Grids */
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.card h3{margin-bottom:.35em}
.card p{margin:.2em 0;color:var(--muted)}
.value .num{font-family:var(--serif);font-size:2.2rem;color:var(--accent)}

/* Clients */
.clients{display:flex;flex-wrap:wrap;gap:10px 28px;color:var(--muted);font-size:.9rem;letter-spacing:.14em;text-transform:uppercase}

/* Feature tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:10px;grid-auto-flow:dense}
.tiles a{position:relative;overflow:hidden;border-radius:6px;background:var(--bg3)}
.tiles a img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.tiles a:hover img{transform:scale(1.04)}
.tiles .wide{grid-column:span 2}.tiles .tall{grid-row:span 2}
.tiles figcaption,.thumb figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:.82rem;line-height:1.35}
.tiles figcaption span,.thumb figcaption span{display:block;color:var(--muted);font-size:.74rem}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}}
@media (max-width:600px){.tiles{grid-template-columns:1fr 1fr;grid-auto-rows:140px}.tiles .tall{grid-row:span 1}}

/* Portfolio */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.filters button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:8px 16px;border-radius:999px;font:inherit;font-size:.82rem;letter-spacing:.08em;cursor:pointer}
.filters button[aria-pressed="true"],.filters button:hover{border-color:var(--accent);color:var(--text)}
.filters button .c{color:var(--dim);margin-left:6px}
.gallery{columns:3 320px;column-gap:12px}
.thumb{break-inside:avoid;margin:0 0 12px;position:relative;border-radius:6px;overflow:hidden;background:var(--bg3);cursor:zoom-in}
.thumb img{width:100%;height:auto}
.thumb button{all:unset;display:block;cursor:zoom-in}
.thumb button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.thumb[hidden]{display:none}

/* Lightbox */
.lb{position:fixed;inset:0;background:rgba(6,6,8,.96);z-index:200;display:none;flex-direction:column}
.lb.open{display:flex}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:56px 64px 8px}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}
.lb-cap{padding:12px 24px 22px;text-align:center;font-size:.95rem}
.lb-cap span{display:block;color:var(--muted);font-size:.82rem}
.lb button{position:absolute;background:rgba(255,255,255,.06);border:1px solid var(--line);color:var(--text);width:46px;height:46px;border-radius:50%;font-size:1.3rem;cursor:pointer}
.lb button:hover{border-color:var(--accent)}
.lb-close{top:12px;right:14px}.lb-prev{left:14px;top:50%}.lb-next{right:14px;top:50%}
@media (max-width:600px){.lb-stage{padding:56px 6px 6px}.lb-prev,.lb-next{top:auto;bottom:16px}}

/* Services */
.service{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:36px;align-items:center;padding:44px 0;border-top:1px solid var(--line)}
.service:nth-child(even) .service-img{order:2}
.service-img img{border-radius:8px;width:100%;aspect-ratio:3/2;object-fit:cover}
.service dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:18px 0 0;font-size:.92rem}
.service dt{color:var(--dim);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;padding-top:4px}
.service dd{margin:0;color:var(--muted)}
@media (max-width:800px){.service{grid-template-columns:1fr}.service:nth-child(even) .service-img{order:0}}

/* Steps */
.steps{counter-reset:s;display:grid;gap:18px;max-width:820px}
.step{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--serif);font-size:2rem;color:var(--accent);line-height:1}
.step h3{margin:0 0 .2em;font-size:1.3rem}.step p{margin:0;color:var(--muted)}

/* Films */
.films{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.film .frame{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000}
.film .frame picture{display:block;width:100%;height:100%}
.film .frame img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .3s}
.film .frame button{all:unset;position:absolute;inset:0;cursor:pointer;display:flex;z-index:2;align-items:center;justify-content:center}
.film .frame button::after{content:"";width:64px;height:64px;border-radius:50%;background:rgba(200,137,79,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23111'/%3E%3C/svg%3E") center/28px no-repeat}
.film .frame button:hover+img,.film .frame:hover img{opacity:1}
.film .frame button:focus-visible{outline:2px solid var(--accent)}
.film iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.film h3{font-size:1.15rem;margin:12px 0 2px;font-family:var(--sans);font-weight:500}
.film p{margin:0;color:var(--muted);font-size:.88rem}

/* FAQ */
.faq details{border-top:1px solid var(--line);padding:18px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-size:1.1rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";color:var(--accent);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--muted);margin:10px 0 0;max-width:46em}

/* About */
.about{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start}
.about img{border-radius:8px}
.about ul{padding-left:1.1em;color:var(--muted)} .about li{margin:.5em 0}
@media (max-width:800px){.about{grid-template-columns:1fr}.about img{max-width:260px}}

/* Form */
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;max-width:860px}
.form .full{grid-column:1/-1}
.form label{display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:12px 14px;font:inherit}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent)}
.form fieldset{border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin:0}
.form legend{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 6px}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px}
.checks label{display:flex;gap:10px;align-items:center;text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--text);margin:0}
.checks input{width:auto}
.form .hp{display:none}
.form-note{font-size:.88rem;color:var(--muted)}
.form-status{grid-column:1/-1;font-size:.95rem}
.form-status.ok{color:#9fd39f}.form-status.err{color:#e79a8a}
@media (max-width:640px){.form{grid-template-columns:1fr}.checks{grid-template-columns:1fr}}

/* CTA + footer */
.cta{text-align:center}
.cta p{margin:0 auto}
.site-footer{border-top:1px solid var(--line);padding:48px 0 36px;color:var(--muted);font-size:.9rem}
.site-footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px}
.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent2)}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{margin:.35em 0}
.site-footer .small{grid-column:1/-1;color:var(--dim);font-size:.8rem;border-top:1px solid var(--line);padding-top:18px}
@media (max-width:700px){.site-footer .wrap{grid-template-columns:1fr}}
