:root{--bg:#121110;--ink:#ece7de;--mute:#8f887c;--line:#2c2a27;--pad:clamp(20px,4vw,56px)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:300 16px/1.7 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.top{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);color:#fff;mix-blend-mode:difference}
.brand{font-weight:500;letter-spacing:.18em;font-size:14px}
.brand span{font-weight:300;letter-spacing:.18em;margin-left:.6em;text-transform:uppercase;font-size:11px}
nav{display:flex;gap:clamp(16px,3vw,40px);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
nav a,.top a{position:relative}
nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav a:hover::after{transform:scaleX(1)}
.hero{position:relative;height:100svh;min-height:520px;overflow:hidden;color:#fff}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(transparent,var(--bg))}
.hero-text,.scroll{z-index:1}
.hero-text{position:absolute;left:var(--pad);bottom:12vh;right:var(--pad)}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:20px;opacity:.85}
h1{font-weight:200;font-size:clamp(30px,5.4vw,76px);line-height:1.12;letter-spacing:-.01em}
.scroll{position:absolute;right:var(--pad);bottom:5vh;font-size:22px;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(8px)}}
section{padding:clamp(72px,11vw,150px) var(--pad)}
h2{font-weight:300;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:clamp(32px,5vw,64px);font-size:12px;color:var(--mute);letter-spacing:.1em}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(32px,5vw,72px) clamp(16px,2.5vw,36px)}
.card{grid-column:span 6;cursor:pointer}
.card:nth-child(4n+1){grid-column:span 7}
.card:nth-child(4n+2){grid-column:span 5;margin-top:clamp(0px,8vw,120px)}
.card:nth-child(4n+3){grid-column:span 5}
.card:nth-child(4n){grid-column:span 7;margin-top:clamp(0px,6vw,90px)}
.thumb{overflow:hidden;background:#1c1a18;aspect-ratio:16/10}
.thumb img{filter:brightness(.92);width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity .6s}
.card:hover .thumb img{transform:scale(1.045)}
.meta{display:flex;gap:18px;align-items:baseline;padding-top:16px}
.meta .n{font-size:11px;color:var(--mute);letter-spacing:.14em;min-width:2em}
.meta h3{font-weight:400;font-size:17px;letter-spacing:.01em;line-height:1.3}
.meta p{font-size:13px;color:var(--mute)}
.about{background:#1a1816}
.about-body{display:grid;grid-template-columns:7fr 4fr;gap:clamp(32px,8vw,120px);margin-top:36px}
.about p{font-size:clamp(20px,2.3vw,30px);line-height:1.5;font-weight:200}
.about ul{list-style:none;font-size:14px;color:var(--mute);align-self:end}
.about li b{color:var(--ink);font-weight:500;letter-spacing:.08em}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:36px}
.contact h3{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);font-weight:400;margin-bottom:10px}
.contact p{font-size:clamp(16px,1.6vw,21px)}
.contact a{border-bottom:1px solid var(--line);transition:border-color .2s}
.contact a:hover{border-color:var(--ink)}
footer{display:flex;justify-content:space-between;padding:28px var(--pad);border-top:1px solid var(--line);font-size:12px;color:var(--mute);letter-spacing:.06em}
.lb{position:fixed;inset:0;z-index:50;background:rgba(8,8,7,.97);display:flex;align-items:center;justify-content:center;padding:56px 72px}
.lb[hidden]{display:none}
.lb figure{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.lb img{max-height:calc(100vh - 140px);max-width:100%;object-fit:contain;background:#111}
.lb figcaption{color:#cfc8bc;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.lb button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;font:300 28px Inter,sans-serif;padding:14px;opacity:.7;transition:opacity .2s}
.lb button:hover{opacity:1}
.lb-close{top:14px;right:20px;font-size:38px!important}
.lb-nav.prev{left:12px}.lb-nav.next{right:12px}
@media(max-width:800px){
 .brand span{display:none}
 .card,.card:nth-child(n){grid-column:1/-1;margin-top:0}
 .about-body,.contact-grid{grid-template-columns:1fr}
 .lb{padding:56px 8px}
 .lb-nav{top:auto!important;bottom:6px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* σελίδα έργου */
.pj{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column}
.pj[hidden]{display:none}
.pj-bar{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px var(--pad);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.14em;color:var(--mute);position:relative}
.pj-btn{background:none;border:0;color:var(--ink);font:300 24px Inter,sans-serif;cursor:pointer;padding:6px 12px;opacity:.75}
.pj-btn:hover{opacity:1}
.pj-x{position:absolute;right:calc(var(--pad) - 12px);font-size:34px}
.pj-scroll{overflow-y:auto;flex:1}
.pj-inner{max-width:1280px;margin:0 auto;padding:clamp(20px,4vw,48px) var(--pad) 96px}
.pj-hero{width:100%;max-height:70vh;object-fit:cover;background:#1c1a18}
.pj-head{margin:clamp(28px,5vw,56px) 0 clamp(24px,4vw,44px)}
.pj-head .eyebrow{color:var(--mute);margin-bottom:12px}
.pj-head h2{font-weight:200;font-size:clamp(30px,4.6vw,60px);line-height:1.1;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.pj-body{display:grid;grid-template-columns:5fr 6fr;gap:clamp(32px,6vw,96px)}
.pj-desc p{font-size:clamp(16px,1.4vw,19px);line-height:1.75;margin-bottom:1.1em}
.pj-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px 36px;align-content:start}
.pj-cols h4{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.pj-cols ul{list-style:none;font-size:14px;line-height:1.55}
.pj-cols li{padding:5px 0 5px 14px;position:relative;color:#cfc9bf}
.pj-cols li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:1px;background:var(--mute)}
.board-btn{margin-top:clamp(40px,6vw,72px);background:none;border:1px solid var(--line);color:var(--ink);font:300 13px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;padding:16px 26px;cursor:pointer;transition:border-color .2s,background .2s}
.board-btn:hover{border-color:var(--ink);background:#1c1a18}
.lb{z-index:60}
@media(max-width:800px){.pj-body{grid-template-columns:1fr}.pj-cols{grid-template-columns:1fr}}
.pj-cols section{padding:0}

/* ---- v3: πιο μοντέρνο + λευκή ενότητα έργων ---- */
::selection{background:#ece7de;color:#121110}
.hero-meta{position:absolute;left:var(--pad);bottom:5vh;display:flex;gap:28px;list-style:none;font-size:12px;letter-spacing:.22em;text-transform:uppercase;z-index:1;color:#d8d2c7}
.hero-meta li+li::before{content:"";display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:28px;opacity:.5}
h1{font-weight:200;font-size:clamp(34px,6.4vw,100px);line-height:1.04;letter-spacing:-.025em}
.hero-text{bottom:16vh}
.display{font-weight:200;font-size:clamp(44px,8vw,128px);line-height:.98;letter-spacing:-.035em;text-transform:none;color:var(--ink)}
.display.sm{font-size:clamp(36px,5vw,72px)}
.about .display,.contact .display{margin-bottom:8px}

.works{background:#f6f5f2;--ink:#111110;--mute:#8a867f;--line:#dedbd5;color:var(--ink);padding-top:clamp(80px,12vw,170px)}
.works .section-head{display:flex;justify-content:space-between;align-items:flex-end;border:0;padding:0;margin-bottom:clamp(48px,8vw,110px)}
.works .section-head span{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);padding-bottom:12px}
.works .thumb{background:#e9e7e2;aspect-ratio:3/2;position:relative}
.works .thumb img{filter:none}
.view{position:absolute;right:14px;bottom:14px;z-index:2;background:#fff;color:#111;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:9px 14px;border-radius:99px;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
.card:hover .view,.card:focus-visible .view{opacity:1;transform:none}
.works .meta{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.works .meta h3{font-weight:300;font-size:clamp(18px,1.6vw,22px)}
.works .meta .n{color:var(--ink);font-weight:400}

.top{transition:padding .3s,backdrop-filter .3s}
.top.scrolled{padding-top:14px;padding-bottom:14px}
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.about{background:#121110;padding-top:clamp(90px,13vw,190px)}
.about p{font-size:clamp(22px,2.7vw,38px);letter-spacing:-.01em}
.contact{padding-bottom:clamp(90px,12vw,170px)}
.contact p{font-size:clamp(18px,2vw,28px);font-weight:200}
@media(max-width:800px){.hero-meta{display:none}.hero-text{bottom:12vh}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* ---- v4: σφιχτές σειρές (justified rows) ---- */
.works{--rh:clamp(230px,26vw,400px)}
.grid{display:flex;flex-wrap:wrap;gap:clamp(28px,3.2vw,52px) clamp(10px,1.2vw,18px)}
.grid::after{content:"";flex:100 1 0}
.grid>.card:nth-child(n){grid-column:auto;margin:0;flex:var(--a) 1 calc(var(--a)*var(--rh));min-width:0}
.works .thumb{aspect-ratio:auto;height:var(--rh)}
.works .thumb img{height:100%}
.works .meta{margin-top:12px;padding-top:12px}
@media(max-width:800px){
  .grid>.card:nth-child(n){flex:1 1 100%}
  .works .thumb{height:auto;aspect-ratio:3/2}
}

/* ---- v5: ρυθμικές σειρές (bento) ---- */
.grid{display:block}
.grid::after{display:none}
.row{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(10px,1.2vw,18px);margin-bottom:clamp(36px,4.5vw,64px)}
.row>.card:nth-child(n){grid-column:span var(--sp);flex:none;margin:0}
.row.r2{--h:clamp(260px,31vw,460px)}
.row.r3{--h:clamp(220px,22vw,320px)}
.row.r1{--h:clamp(260px,38vw,560px)}
.row .thumb{height:var(--h);aspect-ratio:auto}
@media(max-width:800px){
  .row{display:block;margin:0}
  .row>.card{margin-bottom:34px}
  .row .thumb{height:auto;aspect-ratio:3/2}
}
.works{padding-top:clamp(96px,10vw,140px)}
