@font-face{font-family:'Almoni';font-weight:400;src:url(assets/almoni-regular.otf);font-display:swap}
@font-face{font-family:'Almoni';font-weight:500;src:url(assets/almoni-medium.otf);font-display:swap}
@font-face{font-family:'Almoni';font-weight:600;src:url(assets/almoni-demibold.otf);font-display:swap}
@font-face{font-family:'Almoni';font-weight:700;src:url(assets/almoni-bold.otf);font-display:swap}
:root{--ink:#10302D;--green:#1F4A46;--deep:#143532;--sage:#DCE7E0;--sand:#F5F0E6;--cream:#FBF8F2;--orange:#D9541E;--orange-t:#B8431A;--gold:#F2A66B;--pad:clamp(20px,5vw,96px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Almoni',Arial,sans-serif;color:var(--ink);background:var(--sand);overflow-x:hidden;direction:rtl}
img{max-width:100%;display:block}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,p{margin:0}
svg.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* sections */
section{position:relative;min-height:100vh;padding:clamp(56px,9vh,110px) var(--pad) calc(52px + clamp(40px,8vh,90px));overflow:hidden;display:flex;align-items:center}
section.dark{background:var(--green);color:#fff}
section.cream{background:var(--cream)}
section.sage{background:#DCE7E0}
.wrap{position:relative;z-index:2;width:100%;max-width:1480px;margin:0 auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,72px);align-items:center}
.grid2.wide-l{grid-template-columns:.8fr 1.2fr}
.grid2.wide-r{grid-template-columns:1.2fr .8fr}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:clamp(17px,1.5vw,22px);font-weight:600;color:var(--orange-t);margin-bottom:18px}
.dark .eyebrow{color:var(--gold)}
.eyebrow svg{width:34px;height:20px;flex:none}
.h1{font-size:clamp(40px,6vw,92px);line-height:1.04;font-weight:700}
.h2{font-size:clamp(34px,4.4vw,66px);line-height:1.08;font-weight:700;letter-spacing:-.01em}
.lead{font-size:clamp(20px,1.9vw,28px);line-height:1.5;font-weight:600;color:var(--green)}
.dark .lead{color:#fff}
.txt{font-size:clamp(17px,1.45vw,22px);line-height:1.65}
.stack>*+*{margin-top:clamp(14px,2vh,24px)}
mark{background:none;color:var(--gold);font-weight:700}
.light mark{color:var(--orange-t)}

/* photo + caption */
.ph{position:relative;overflow:hidden;border-radius:clamp(20px,2.4vw,36px);background:#c9d6cf}
.ph::before,.pic::before{content:"";position:absolute;inset:-24px;background:var(--bg) center/cover;filter:blur(26px) saturate(1.1);opacity:.6;pointer-events:none}
.ph img.par{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center!important;transform:translate3d(0,var(--py,0px),0);will-change:transform;filter:drop-shadow(0 8px 24px rgba(0,0,0,.2))}
.cap{position:absolute;left:10px;top:16px;z-index:3;writing-mode:vertical-rl;transform:rotate(180deg);font-size:14px;font-weight:500;color:#fff;letter-spacing:.02em;text-shadow:0 1px 3px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.45);white-space:nowrap;pointer-events:none}

/* icons */
.ico{width:clamp(52px,4.6vw,68px);height:clamp(52px,4.6vw,68px);border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;flex:none;font-size:clamp(26px,2.3vw,34px);color:var(--green)}
.dark .ico{background:rgba(255,255,255,.12);color:var(--gold)}
.ico.o{background:var(--orange);color:#fff}
.card{background:#fff;border-radius:clamp(20px,2vw,30px);padding:clamp(20px,2.2vw,32px);box-shadow:0 1px 0 rgba(16,48,45,.06),0 14px 34px -18px rgba(16,48,45,.3)}
.dark .card{background:rgba(255,255,255,.08);box-shadow:none;border:1px solid rgba(255,255,255,.14)}
.row{display:flex;gap:18px;align-items:flex-start}

/* arcs */
.arc{position:absolute;border:2px solid currentColor;border-radius:50%;opacity:.16;pointer-events:none;z-index:1;animation:spin 60s linear infinite}
.arc.r{animation-direction:reverse;animation-duration:90s}
@keyframes spin{to{transform:rotate(360deg)}}
.arc::after{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;border-radius:50%;background:currentColor}

/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.l{transform:translateX(-50px)}.rv.r{transform:translateX(50px)}.rv.z{transform:scale(.94)}
.rv.in{opacity:1;transform:none}
.float{animation:float 5s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes float{50%{transform:translateY(-10px)}}

/* hero */
#hero{padding:0;min-height:100vh;color:#fff;background:#10302D;justify-content:center}
#hero .bg{position:absolute;inset:-3%;background:#10302D;transform:translate3d(var(--hx,0px),calc(var(--py,0px) + var(--hy,0px)),0);will-change:transform;transition:transform .25s ease-out}
#hero .bg::before{content:"";position:absolute;inset:-30px;background:url(assets/cover-day.jpg) center/cover;filter:blur(30px)}
#hero .bg::after{content:"";position:absolute;inset:0;background:url(assets/cover-day.jpg) center/contain no-repeat}
#hero .shade{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(14,42,39,.9),rgba(14,42,39,.78) 45%,rgba(14,42,39,.5))}
#hero .logo{translate:var(--lx,0) var(--ly,0);position:relative;z-index:3;width:min(86vw,980px);opacity:0;transform:scale(.92);animation:heroIn 1.6s .2s cubic-bezier(.2,.7,.2,1) forwards;margin-bottom:52px}
@keyframes heroIn{to{opacity:1;transform:none}}
#hero .down{position:absolute;bottom:92px;left:50%;margin-left:-26px;width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;z-index:3;animation:bob 2s ease-in-out infinite;text-decoration:none}
@keyframes bob{50%{transform:translateY(10px)}}

/* project */
.towerph{aspect-ratio:1500/2060;width:min(100%,calc(78vh * 1500 / 2060));margin-inline:auto}
.hl{position:relative}

/* gallery */
.gal .main{position:relative;aspect-ratio:4/3;max-height:74vh;width:100%}
.gal .main img.s{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center!important;opacity:0;transition:opacity .7s ease,transform 1.2s ease;transform:scale(1.06)}
.gal .main img.s.on{opacity:1;transform:scale(1)}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.thumbs button{width:clamp(64px,7vw,104px);aspect-ratio:3/2;border-radius:14px;overflow:hidden;border:3px solid transparent;padding:0;background:none;opacity:.6;transition:all .25s}
.thumbs button:hover{opacity:1;transform:translateY(-3px)}
.thumbs button.on{border-color:var(--orange);opacity:1}
.thumbs button{background:#cfdcd4}.thumbs img{width:100%;height:100%;object-fit:contain}

/* map */
.mapbox{position:relative;border-radius:clamp(20px,2.4vw,36px);overflow:hidden;box-shadow:0 24px 60px -28px rgba(16,48,45,.6);aspect-ratio:2481/1754;max-height:78vh;width:100%;background:#9bb}
.mapbox .m{position:absolute;inset:0;transform-origin:0 0;transition:transform .45s cubic-bezier(.2,.7,.2,1);will-change:transform}
.mapbox .m.drag{transition:none}
.mapbox{cursor:grab}.mapbox.zoomed{touch-action:none}.mapbox.drag{cursor:grabbing}
.mapbox .m img{user-select:none;-webkit-user-drag:none}
.zb:disabled{opacity:.4;cursor:default}
.mapbox .m img{width:100%;height:100%;object-fit:cover}
.pulse{position:absolute;left:40.7%;top:81%;width:0;height:0}
.pulse i{position:absolute;left:-26px;top:-26px;width:52px;height:52px;border-radius:50%;border:3px solid var(--orange);animation:pulse 2.2s ease-out infinite}
.pulse i:nth-child(2){animation-delay:1.1s}
@keyframes pulse{0%{transform:scale(.3);opacity:1}100%{transform:scale(2.6);opacity:0}}
.zb{width:54px;height:54px;border-radius:50%;border:0;background:#fff;color:var(--green);display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 6px 18px -6px rgba(0,0,0,.45);transition:transform .2s}
.zb:hover{transform:scale(1.08)}
.zb.on{background:var(--orange);color:#fff}
.zbs{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;gap:10px;z-index:4}
.maphead{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(18px,3vh,32px);gap:20px}
.maphead img{width:clamp(130px,16vw,210px)}

/* spec */
.specs{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.4vw,22px);margin-top:clamp(28px,5vh,56px)}
.sp{border-radius:28px;padding:clamp(20px,2vw,30px);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;text-align:right;display:flex;flex-direction:column;gap:14px;transition:all .45s cubic-bezier(.2,.7,.2,1);min-height:clamp(260px,38vh,420px)}
.sp .ico{background:var(--orange);color:#fff;width:72px;height:72px;font-size:36px;transition:transform .5s}
.sp:hover{background:rgba(255,255,255,.15);transform:translateY(-6px)}
.sp.on{background:var(--cream);color:var(--ink);transform:translateY(-14px)}
.sp.on .ico{transform:rotate(-12deg) scale(1.08)}
.sp .n{font-size:20px;font-weight:600;opacity:.7}
.sp h3{font-size:clamp(22px,1.9vw,28px);line-height:1.2}
.sp p{font-size:clamp(16px,1.3vw,21px);line-height:1.55}

/* devs */
.dvs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,36px);margin-top:clamp(24px,4vh,44px)}
.dv{background:#fff;border-radius:clamp(24px,2.6vw,38px);padding:clamp(24px,3vw,44px);box-shadow:0 1px 0 rgba(16,48,45,.06),0 18px 40px -22px rgba(16,48,45,.35);transition:transform .4s}
.dv:hover{transform:translateY(-6px)}
.dv .lg{display:block;height:clamp(64px,8vh,92px);padding-bottom:22px;border-bottom:2px solid #E6EEE8;margin-bottom:24px;box-sizing:content-box}
.dv .lg img{height:100%;width:auto;max-width:340px;object-fit:contain}
.dv .hd{font-size:clamp(20px,1.9vw,28px);line-height:1.35;font-weight:700;color:var(--green);margin-bottom:18px}
.dv p{font-size:clamp(16px,1.4vw,21px);line-height:1.6;padding-right:18px;border-right:4px solid var(--gold);color:#24403D}
.dv p+p{margin-top:14px}

/* project viewer */
.pv{display:grid;grid-template-columns:1.9fr 1fr;gap:clamp(14px,1.8vw,26px);margin-top:clamp(18px,3vh,32px)}
.pv .frame{position:relative;background:#E3ECE6;border-radius:clamp(20px,2.4vw,32px);height:min(72vh,660px);min-height:300px;overflow:hidden}
.pv .frame::before{content:"";position:absolute;inset:-30px;background:var(--bg) center/cover;filter:blur(28px) saturate(1.1);opacity:.55}
.pv .frame .w{position:absolute;inset:14px;line-height:0;animation:swap .7s ease}
@keyframes swap{from{opacity:0;transform:scale(.97)}}
.pv .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 10px 30px rgba(0,0,0,.25))}
.pv .list{display:flex;flex-direction:column;gap:12px;justify-content:space-between}
.tl{display:flex;align-items:center;gap:16px;width:100%;flex:1;padding:10px;border-radius:24px;background:#fff;border:3px solid transparent;color:var(--ink);text-align:right;opacity:.8;transition:all .3s}
.tl:hover{opacity:1;transform:translateX(-6px)}
.tl.on{border-color:var(--orange);opacity:1;box-shadow:0 10px 24px -14px rgba(16,48,45,.5)}
.tl .im{width:clamp(100px,11vw,190px);aspect-ratio:3/2;flex:none;display:flex;align-items:center;justify-content:center;background:#EEF3EF;border-radius:16px;overflow:hidden}
.tl .im img{max-width:100%;max-height:100%;object-fit:contain}
.tl .nm{font-size:clamp(18px,1.6vw,24px);font-weight:700;line-height:1.25}
.pvhead{display:flex;align-items:center;justify-content:space-between;gap:20px}
.pvhead img{height:clamp(56px,9vh,92px);width:auto}

/* contact */
#contact{padding:0;align-items:stretch}
#contact .half{display:grid;grid-template-columns:1fr 1fr;width:100%;min-height:100vh}
#contact .pic{position:relative;overflow:hidden;min-height:50vh}
#contact .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 50%!important;transform:translate3d(0,var(--py,0),0) scale(1.08)}
#contact .pic::before{display:none}
#contact .info{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(18px,3vh,32px);padding:clamp(40px,6vh,80px) clamp(24px,4vw,64px) calc(52px + 40px);position:relative}
#contact .info .logo{width:min(70%,460px)}
#contact .bar{width:90px;height:4px;background:var(--orange);border-radius:4px}
#contact .ct{display:flex;gap:22px;align-items:center;font-size:clamp(24px,2.6vw,38px);font-weight:600;flex-wrap:wrap;justify-content:center}
#contact .ct a{text-decoration:none;position:relative}
#contact .ct a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .35s}
#contact .ct a:hover::after{transform:scaleX(1)}
.pill{display:flex;align-items:center;gap:clamp(18px,2.6vw,36px);background:#fff;border-radius:999px;padding:14px clamp(22px,2.6vw,40px);flex-wrap:wrap;justify-content:center}
.pill img{height:clamp(40px,5vw,62px);width:auto}
.pill .sep{width:2px;height:44px;background:#D6E0D9}

/* bottom strip */
#strip{position:fixed;left:0;right:0;bottom:0;height:52px;background:var(--deep);color:#fff;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,2.6vw,40px)}
#strip .brand{position:relative;width:180px;height:34px;flex:none;display:flex;align-items:center}
#strip .brand img{height:32px;width:auto;max-width:none}
#strip .dots{display:flex;gap:8px;align-items:center}
#strip .dots a{display:block;width:10px;height:10px;border-radius:99px;background:#fff;opacity:.3;transition:all .3s}
#strip .dots a:hover{opacity:.7}
#strip .dots a.on{width:34px;opacity:1;background:var(--orange)}
#strip .sp2{width:180px;flex:none}
#strip .arrows{display:flex;gap:8px;justify-content:flex-start}
.ar{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,.55);background:transparent;color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}
.ar:hover{background:var(--orange);border-color:var(--orange)}
.ar:disabled{opacity:.3;pointer-events:none}
#prog{position:absolute;left:0;top:0;height:3px;background:var(--orange);width:0;right:auto}
#strip{direction:rtl}
#prog{right:0;left:auto}

/* responsive */
@media (max-width:900px){
  .grid2,.grid2.wide-l,.grid2.wide-r,.dvs,.pv,#contact .half{grid-template-columns:1fr}
  .specs{grid-template-columns:1fr 1fr}
  .towerph{aspect-ratio:4/3}
  #strip .sp2{width:auto}
  #strip .dots{display:none}
  #strip .brand{width:150px}
  #strip .dots{gap:6px}
  #strip .dots a{width:8px;height:8px}#strip .dots a.on{width:22px}
  .pv .list{flex-direction:row;overflow-x:auto}
  .tl{min-width:230px;flex:none}
  #contact .pic{min-height:46vh}
  section{min-height:auto}
}
@media (max-width:560px){
  .specs{grid-template-columns:1fr}
  .maphead img{display:none}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .arc,.float,.pulse i,#hero .down{animation:none}
  html{scroll-behavior:auto}
}

.zb.sm{width:42px;height:42px;font-size:22px}
.pad{position:absolute;left:18px;bottom:18px;z-index:4;display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px);gap:6px}

.gaps p+p{margin-top:1.1em}
.h2.one{font-size:clamp(28px,3.4vw,52px)}
@media (min-width:1100px){.h2.one{white-space:nowrap}}

/* interactivity */
.spot{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.09),transparent 60%);opacity:0;transition:opacity .4s}
section:hover>.spot{opacity:1}
section:not(.dark) .spot{background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),rgba(217,84,30,.09),transparent 60%)}
.tilt{position:relative}
.tilt.hov{transition:transform .18s ease-out,box-shadow .3s,opacity .9s!important;box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.ico{transition:rotate .35s,scale .35s,background .3s;cursor:default}
.ico:hover{rotate:-10deg;scale:1.14}
.ico:active{scale:.92}
.ph,.frame,.pic{cursor:zoom-in}
.glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.22),transparent 60%);opacity:0;transition:opacity .3s;z-index:3}
.hov>.glare{opacity:1}
/* lightbox */
#lb{position:fixed;inset:0;z-index:100;background:rgba(10,24,22,.94);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
#lb.on{display:flex}#lb.show{opacity:1}
#lb .stage{position:relative;max-width:94vw;max-height:84vh;line-height:0;transform:scale(.94);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
#lb.show .stage{transform:none}
#lb img{max-width:94vw;max-height:84vh;width:auto;height:auto;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.6);user-select:none}
#lb .cap{left:12px;top:14px}
#lb button{position:absolute;width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.6);background:rgba(255,255,255,.08);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}
#lb button:hover{background:var(--orange);border-color:var(--orange)}
#lb .x{top:22px;right:22px}
#lb .pv2{right:22px;top:50%;margin-top:-26px}#lb .nx2{left:22px;top:50%;margin-top:-26px}
#lb button[hidden]{display:none}

.fw{display:flex;flex-direction:column;gap:8px;min-width:0}
.capo{align-self:flex-start;font-size:14px;font-weight:500;color:#51615e;letter-spacing:.02em;line-height:1.2;padding:0 6px}

.mapbox{max-height:64vh}
.mapctl{display:flex;gap:clamp(16px,3vw,40px);align-items:center;justify-content:center;flex-wrap:wrap;margin-top:clamp(12px,2vh,20px)}
.mapctl .zbs,.mapctl .pad{position:static;display:flex;flex-direction:row;gap:10px;grid-template-columns:none}
.mapctl .pad .zb,.mapctl .zbs .zb{width:48px;height:48px;background:#fff;color:var(--green);box-shadow:0 4px 14px -6px rgba(16,48,45,.5);border:2px solid var(--green)}
.mapctl .zb.sm{width:48px;height:48px}
.mapctl .zb:hover{background:var(--green);color:#fff}
.mapctl .zb:disabled{opacity:.35;background:#fff;color:var(--green)}
.mapctl .pad{padding-inline-start:clamp(16px,3vw,40px);border-inline-start:2px solid #cdd9d2}
