*{box-sizing:border-box}
:root{
  --bg:#0b0b0b;
  --bg-2:#111;
  --text:#f3f3f0;
  --muted:#9b9b97;
  --line:#2a2a28;
  --soft:#171715;
  --accent:#d8d8d2;
  --shell:min(94vw,1500px);
}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:Inter,Arial,sans-serif;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
button,input,textarea{font:inherit}
.shell{width:var(--shell);margin-inline:auto}
.page-section{padding-top:150px;padding-bottom:110px}
.page-wipe{
  position:fixed;z-index:9999;inset:0;background:#f1f1ed;
  transform:translateY(-101%);pointer-events:none;
  transition:transform .65s cubic-bezier(.77,0,.18,1)
}
body.is-leaving .page-wipe{transform:translateY(0)}
.site-header{
  position:fixed;z-index:1000;left:0;right:0;top:0;
  padding:22px 3vw;display:flex;align-items:center;justify-content:space-between;
  mix-blend-mode:difference;color:#fff;transition:transform .35s ease
}
.brand{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.02em}
.brand-mark{
  width:32px;height:32px;border:1px solid rgba(255,255,255,.55);border-radius:50%;
  display:grid;place-items:center;font-size:10px;letter-spacing:.08em
}
.nav{display:flex;gap:30px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.nav a{position:relative}
.nav a:after{
  content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;
  transition:right .3s ease
}
.nav a:hover:after,.nav a.active:after{right:0}
.intro{padding-top:180px;padding-bottom:90px}
.eyebrow{
  font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);
  margin:0 0 18px
}
.intro h1,.section-head h1,.about-copy h1,.contact-layout h1,.project-hero h1{
  font-family:Manrope,Inter,sans-serif;font-weight:300;letter-spacing:-.045em;
  margin:0;line-height:.98
}
.intro h1{font-size:clamp(48px,7.7vw,124px);max-width:1150px}
.intro-copy{
  margin:34px 0 0 auto;max-width:520px;color:#b7b7b2;line-height:1.7;font-size:14px
}
.project-grid{
  display:grid;grid-template-columns:repeat(12,1fr);gap:70px 20px;padding-bottom:130px
}
.project-card{grid-column:span 6}
.project-card:nth-child(3n){grid-column:3/span 8}
.project-media{
  position:relative;overflow:hidden;background:var(--soft);aspect-ratio:4/5;
}
.project-card:nth-child(3n) .project-media{aspect-ratio:16/10}
.project-media img{
  height:100%;object-fit:cover;transform:scale(1.025);
  transition:transform 1s cubic-bezier(.2,.75,.2,1),filter .5s ease
}
.project-overlay{
  position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.35));
  opacity:.4;transition:opacity .4s ease
}
.project-card:hover img{transform:scale(1.07)}
.project-card:hover .project-overlay{opacity:.85}
.project-meta{
  display:flex;justify-content:space-between;gap:24px;padding-top:14px;align-items:flex-start
}
.project-meta h2{font-size:14px;font-weight:500;margin:0}
.project-meta p{font-size:11px;color:var(--muted);margin:2px 0 0;text-align:right}
.reveal{
  opacity:0;transform:translateY(34px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.2,1)
}
.reveal.in{opacity:1;transform:none}
.site-footer{
  width:var(--shell);margin:auto;padding:36px 0 42px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;font-size:11px;color:var(--muted)
}
.project-hero{padding-top:160px}
.project-head{
  width:var(--shell);margin:auto;display:grid;grid-template-columns:2fr 1fr;gap:40px;
  align-items:end;padding-bottom:42px
}
.project-hero h1{font-size:clamp(54px,9vw,140px)}
.project-detail{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:12px;color:var(--muted)}
.project-detail strong{display:block;color:var(--text);font-weight:400;margin-bottom:6px}
.hero-image{height:min(80vh,950px);overflow:hidden}
.hero-image img{height:100%;object-fit:cover}
.project-summary{
  width:var(--shell);margin:70px auto;display:grid;grid-template-columns:1fr 1fr
}
.project-summary p{
  grid-column:2;max-width:640px;font-family:Manrope;font-size:clamp(24px,3vw,44px);
  font-weight:300;line-height:1.22;letter-spacing:-.025em;margin:0
}
.project-gallery{width:var(--shell);margin:0 auto 120px;display:grid;gap:20px}
.project-gallery figure{margin:0;overflow:hidden}
.project-gallery figure:nth-child(3n+2){width:72%;margin-left:auto}
.project-gallery figure:nth-child(3n+3){width:58%}
.project-gallery img{max-height:1100px;object-fit:cover}
.next-project{
  width:var(--shell);margin:0 auto 120px;padding-top:35px;border-top:1px solid var(--line)
}
.next-project a{display:flex;justify-content:space-between;font-family:Manrope;font-size:clamp(32px,5vw,72px);font-weight:300}
.next-project a span:last-child{transition:transform .3s ease}.next-project a:hover span:last-child{transform:translateX(12px)}
.section-head{padding-bottom:70px}
.section-head h1{font-size:clamp(50px,7vw,100px)}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 20px}
.video-card{display:block}
.video-poster{aspect-ratio:16/10;overflow:hidden;position:relative;background:var(--soft)}
.video-poster img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.75,.2,1)}
.video-play{
  position:absolute;inset:0;display:grid;place-items:center;
}
.video-play span{
  width:62px;height:62px;border-radius:50%;background:rgba(10,10,10,.72);backdrop-filter:blur(10px);
  display:grid;place-items:center;font-size:12px;border:1px solid rgba(255,255,255,.25)
}
.video-card:hover img{transform:scale(1.05)}
.video-meta{display:flex;justify-content:space-between;padding-top:14px}
.video-meta h2{margin:0;font-size:14px;font-weight:500}.video-meta p{margin:0;font-size:11px;color:var(--muted)}
.about-layout{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:7vw;align-items:start
}
.about-image{height:75vh;max-height:920px;object-fit:cover}
.about-copy{padding-top:7vh}
.about-copy h1{font-size:clamp(42px,5vw,78px);margin-bottom:46px}
.about-copy #about-body p{font-size:15px;line-height:1.75;color:#b6b6b0;max-width:650px}
.client-block{margin-top:55px;padding-top:24px;border-top:1px solid var(--line)}
.client-block span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.client-block p{font-size:13px;line-height:1.7;color:var(--text)}
.contact-layout{
  min-height:80vh;display:grid;grid-template-columns:1.4fr .6fr;gap:8vw;align-items:start
}
.contact-layout h1{font-size:clamp(50px,7vw,105px);max-width:950px}
.contact-stack{padding-top:70px}
.contact-item{padding:19px 0;border-bottom:1px solid var(--line)}
.contact-item span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
.contact-item a,.contact-item p{font-size:15px;line-height:1.5;margin:0}
.editor-body{background:#101010}
.editor-shell{width:min(1180px,92vw);margin:0 auto;padding:70px 0 110px}
.editor-top{display:flex;gap:50px;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:34px}
.editor-top h1{font-family:Manrope;font-weight:300;font-size:52px;letter-spacing:-.04em;margin:0 0 12px}
.editor-top p{max-width:630px;color:var(--muted);line-height:1.5}
.editor-actions{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}
.button{
  border:0;border-radius:999px;background:#eee;color:#0a0a0a;padding:11px 17px;cursor:pointer;font-size:12px
}
.button.secondary{background:#242424;color:#efefeb}.button.danger{background:#3a1b1b;color:#ffc8c8}
.editor-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:28px 0}
.tab{
  border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 14px;border-radius:999px;cursor:pointer
}
.tab.active{background:#efefeb;color:#0a0a0a;border-color:#efefeb}
.editor-panel{display:none}.editor-panel.active{display:block}
.editor-card{background:#161616;border:1px solid #262626;border-radius:18px;padding:22px;margin-bottom:16px}
.editor-card h3{font-size:14px;margin:0 0 20px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.field input,.field textarea{
  width:100%;background:#0d0d0d;border:1px solid #303030;color:var(--text);
  border-radius:10px;padding:12px;outline:none
}
.field textarea{min-height:92px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:#686868}
.editor-note{margin-top:30px;color:var(--muted);font-size:12px;line-height:1.6}
code{background:#1c1c1c;padding:3px 6px;border-radius:6px}
@media(max-width:800px){
  .site-header{padding:16px 20px}.nav{gap:16px}.nav a:nth-child(4){display:none}
  .intro{padding-top:140px;padding-bottom:60px}
  .intro-copy{margin-left:0}
  .project-grid{display:block}.project-card{margin-bottom:48px}.project-card:nth-child(3n){width:100%}
  .project-head,.about-layout,.contact-layout{grid-template-columns:1fr}
  .project-detail{margin-top:20px}.hero-image{height:62vh}
  .project-summary{display:block;margin:48px auto}.project-summary p{font-size:30px}
  .project-gallery figure:nth-child(n){width:100%;margin:0}
  .video-grid{grid-template-columns:1fr}
  .about-copy{padding-top:20px}.about-image{height:58vh}
  .contact-stack{padding-top:10px}
  .site-footer{gap:20px;flex-direction:column}
  .editor-top{display:block}.editor-actions{justify-content:flex-start;margin-top:25px}
  .field-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
}
@media(max-width:520px){
  .brand span:last-child{display:none}.nav{font-size:10px;gap:13px}
  .intro h1{font-size:49px}.project-hero h1{font-size:52px}
}
/* Portfolio Studio */
.editor-body{background:#0c0c0c}.editor-shell{width:min(1440px,94vw)}
.admin-badge{display:inline-block;font-size:9px;letter-spacing:.14em;color:var(--muted);margin-bottom:8px}
.editor-help{color:var(--muted);font-size:12px;line-height:1.55;margin:5px 0 0}
.card-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:20px}.card-heading h3{margin:0;font-size:18px;font-weight:500}.card-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.compact-card{padding-bottom:18px}.new-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.new-row .field{min-width:280px}
.button.tiny{padding:9px 11px;font-size:10px;border-radius:9px}.button.needs-save{box-shadow:0 0 0 2px rgba(255,255,255,.18) inset}.button:disabled,.icon-button:disabled{opacity:.35;cursor:not-allowed}
.icon-button{width:34px;height:34px;border:1px solid #303030;background:#1e1e1e;color:#eee;border-radius:9px;cursor:pointer}.icon-button:hover:not(:disabled){background:#292929}
.editor-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:18px;align-items:start}
.preview-card{position:sticky;top:20px;background:#161616;border:1px solid #262626;border-radius:18px;overflow:hidden}.preview-top{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;border-bottom:1px solid #272727;font-size:9px;letter-spacing:.14em;color:var(--muted)}.preview-card iframe{display:block;width:100%;height:720px;border:0;background:#0b0b0b}
.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.color-control{display:grid;grid-template-columns:48px 1fr;gap:8px}.color-control input[type=color]{width:48px;height:43px;padding:3px;border:1px solid #333;border-radius:10px;background:#111}.field input[type=range]{padding:0;accent-color:#e8e8e4}
.project-admin-card{padding:20px}.project-meta-fields{padding-bottom:18px}.upload-zone{border:1px dashed #373737;border-radius:14px;padding:18px;margin:4px 0 18px;background:#121212}.upload-zone label{display:block;font-size:9px;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}.upload-zone p{font-size:11px;color:var(--muted);margin:8px 0 0}
.media-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.media-admin-card{background:#111;border:1px solid #262626;border-radius:14px;overflow:hidden}.media-thumb{position:relative;aspect-ratio:4/3;background:#090909}.media-thumb img{width:100%;height:100%;object-fit:cover}.cover-chip{position:absolute;left:9px;top:9px;background:#f0f0eb;color:#090909;font-size:8px;letter-spacing:.12em;padding:6px 8px;border-radius:999px}.media-admin-body{padding:10px}.inline-input{width:100%;border:1px solid #292929;background:#181818;color:#eee;border-radius:9px;padding:9px;font-size:11px;margin-bottom:9px}.media-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.empty-state{color:var(--muted);font-size:12px;padding:18px 0;margin:0}
.video-editor-layout{display:grid;grid-template-columns:240px 1fr;gap:22px}.video-poster-admin{aspect-ratio:16/10;background:#0e0e0e;border:1px solid #292929;border-radius:13px;overflow:hidden;position:relative}.video-poster-admin img{width:100%;height:100%;object-fit:cover}.empty-poster{height:100%;display:grid;place-items:center;color:var(--muted);font-size:11px}.upload-button{position:absolute;left:9px;bottom:9px;cursor:pointer}
.editor-toast{position:fixed;z-index:99999;right:20px;bottom:20px;max-width:420px;background:#e8e8e2;color:#0d0d0d;border-radius:12px;padding:12px 15px;font-size:12px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.22s ease}.editor-toast.show{opacity:1;transform:none}.editor-toast.error{background:#4a1818;color:#ffd7d7}.login-card{max-width:720px;margin-top:28px}
@media(max-width:1050px){.editor-dashboard-grid{grid-template-columns:1fr}.preview-card{position:relative;top:auto}.preview-card iframe{height:620px}.media-admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.new-row{grid-template-columns:1fr}.media-admin-grid{grid-template-columns:1fr}.video-editor-layout{grid-template-columns:1fr}.video-poster-admin{max-width:360px}.theme-grid{grid-template-columns:1fr}.card-heading{display:block}.card-actions{justify-content:flex-start;margin-top:12px}}
.project-media,.hero-image,.project-gallery figure,.video-poster,.about-image{border-radius:var(--portfolio-radius,0);overflow:hidden}.project-card:hover .project-media img{transform:scale(var(--portfolio-hover-scale,1.04))}
.file-selection{font-size:11px!important;color:#d6d6d2!important;word-break:break-word}.upload-zone.dragging{border-color:#8e8e88;background:#181818}.upload-zone input[type=file]{max-width:100%;color:#d6d6d2;font-size:12px}.upload-zone input[type=file]::file-selector-button{margin-right:10px;border:1px solid #393939;background:#1d1d1d;color:#f3f3f0;border-radius:999px;padding:8px 12px;cursor:pointer}


/* Album photo lightbox */
.project-gallery img, .gallery img { cursor: zoom-in; }
.photo-lightbox { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 32px; background: rgba(0,0,0,.92); opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; }
.photo-lightbox.is-open { opacity: 1; visibility: visible; }
.photo-lightbox__image { max-width: min(96vw, 1800px); max-height: 92vh; width: auto; height: auto; object-fit: contain; }
.photo-lightbox__close { position: fixed; top: 20px; right: 24px; z-index: 10000; width: 46px; height: 46px; border: 0; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: 34px; line-height: 1; cursor: pointer; backdrop-filter: blur(10px); }
.photo-lightbox__close:hover { background: rgba(255,255,255,.2); }
body.lightbox-open { overflow: hidden; }
@media (max-width: 700px) { .photo-lightbox { padding: 12px; } .photo-lightbox__image { max-width: 100%; max-height: 88vh; } .photo-lightbox__close { top: 12px; right: 12px; } }


/* Preserve full album images while scrolling */
.project-gallery img,
.gallery img,
.project-image img,
.project-photo img,
[data-lightbox-photo] {
  width: 100%;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center;
  display: block;
}

/* Prevent gallery wrappers from cropping images */
.project-gallery,
.gallery,
.project-image,
.project-photo {
  overflow: visible !important;
}

.project-gallery > *,
.gallery > * {
  min-height: 0 !important;
  height: auto !important;
}


/* Compact album gallery: preserve full frame without oversized scrolling images */
.project-gallery,
.gallery {
  width: min(100%, 1180px);
  margin-inline: auto;
}

.project-gallery > *,
.gallery > *,
.project-image,
.project-photo {
  width: min(100%, 900px);
  margin: 0 auto clamp(28px, 5vw, 72px);
}

.project-gallery img,
.gallery img,
.project-image img,
.project-photo img,
[data-lightbox-photo] {
  width: auto !important;
  max-width: min(100%, 900px) !important;
  max-height: 72vh !important;
  height: auto !important;
  margin-inline: auto;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
  cursor: zoom-in;
}

/* Zoomable fullscreen viewer */
.photo-lightbox {
  overflow: hidden;
}

.photo-lightbox__stage {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
  touch-action: none;
}

.photo-lightbox__image {
  max-width: 94vw !important;
  max-height: 88vh !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  transform-origin: center center;
  transition: transform 120ms ease;
  user-select: none;
  -webkit-user-drag: none;
}

.photo-lightbox__toolbar {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 10001;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px;
  border-radius: 999px;
  background: rgba(20,20,20,.72);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(12px);
}

.photo-lightbox__control {
  min-width: 42px;
  height: 38px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.11);
  color: #fff;
  font: inherit;
  font-size: 20px;
  cursor: pointer;
}

.photo-lightbox__control:hover {
  background: rgba(255,255,255,.2);
}

.photo-lightbox__zoom-label {
  min-width: 66px;
  font-size: 13px;
}

@media (max-width: 700px) {
  .project-gallery > *,
  .gallery > *,
  .project-image,
  .project-photo {
    width: 100%;
    margin-bottom: 28px;
  }

  .project-gallery img,
  .gallery img,
  .project-image img,
  .project-photo img,
  [data-lightbox-photo] {
    max-width: 100% !important;
    max-height: 62vh !important;
  }

  .photo-lightbox__toolbar {
    bottom: 14px;
  }
}
