@font-face{
  font-family:'Noto Sans Hebrew';
  font-weight:100 900;
  src:url(fonts/noto-sans-hebrew.woff2) format('woff2');
  unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;
  font-display:swap;
}
@font-face{
  font-family:'Noto Sans Hebrew';
  font-weight:100 900;
  src:url(fonts/noto-sans-hebrew-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+2000-206F,U+2212;
  font-display:swap;
}

:root{
  --bg:#F1EEE6;
  --bg-alt:#E7E0D2;
  --panel:#FBF9F4;
  --ink:#23201B;
  --ink-soft:#5C574B;
  --ink-faint:#686357;
  --accent:#5B6B4E;
  --accent-deep:#3B4732;
  --accent-tint:#DEE3D4;
  --line:#CBC1AC;
  --metal:#1D1B17;
  --radius:2px;
  --content-w:1180px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#17150F; --bg-alt:#201D16; --panel:#1C1A14; --ink:#ECE7D9;
    --ink-soft:#B3AC98; --ink-faint:#8E8876; --accent:#9CAE87; --accent-deep:#C4D3B1;
    --accent-tint:#2B3324; --line:#3A362B; --metal:#0E0D0A; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#17150F; --bg-alt:#201D16; --panel:#1C1A14; --ink:#ECE7D9;
  --ink-soft:#B3AC98; --ink-faint:#8E8876; --accent:#9CAE87; --accent-deep:#C4D3B1;
  --accent-tint:#2B3324; --line:#3A362B; --metal:#0E0D0A; color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#F1EEE6; --bg-alt:#E7E0D2; --panel:#FBF9F4; --ink:#23201B;
  --ink-soft:#5C574B; --ink-faint:#686357; --accent:#5B6B4E; --accent-deep:#3B4732;
  --accent-tint:#DEE3D4; --line:#CBC1AC; --metal:#1D1B17; color-scheme:light;
}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--accent-deep); outline-offset:3px;
}
.skip-link{
  position:absolute; inset-inline-start:16px; top:-60px; z-index:100;
  background:var(--metal); color:var(--bg);
  padding:12px 22px; border-radius:var(--radius);
  text-decoration:none; font-size:14.5px; font-weight:500;
  transition:top .2s ease;
}
.skip-link:focus{ top:16px; }
.sr-only{
  position:absolute; width:1px;height:1px; padding:0;margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
/* direction follows the <html dir="..."> attribute (its UA default), so this
   file works unmodified for both the Hebrew (rtl) and English (ltr) pages. */
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Noto Sans Hebrew',system-ui,sans-serif; font-weight:300;
  font-size:16.5px; line-height:1.7; -webkit-font-smoothing:antialiased;
  overflow-x:hidden; text-align:start;
}
h1,h2,h3{ font-family:'Noto Sans Hebrew',sans-serif; font-weight:300; margin:0; text-wrap:balance; }
p{margin:0;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{ max-width:var(--content-w); margin-inline:auto; padding-inline:clamp(20px,5vw,56px); }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-size:13px; letter-spacing:.14em; color:var(--accent-deep); font-weight:500;
}
.eyebrow::before{ content:""; width:22px;height:1px; background:var(--accent-deep); display:inline-block; }
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  padding:.95em 1.7em; border-radius:var(--radius); font-size:15.5px; font-weight:500;
  letter-spacing:.02em; cursor:pointer; border:1px solid transparent;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
  text-decoration:none;
}
.btn-primary{ background:var(--metal); color:var(--bg); }
:root[data-theme="dark"] .btn-primary, @media (prefers-color-scheme:dark){.btn-primary{background:var(--ink);color:var(--metal);}}
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px;}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1;transform:none;}

/* NAV */
header.site{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
.nav-row{ display:flex;align-items:center;justify-content:space-between; padding-block:16px; }
.logo{ font-family:'Noto Sans Hebrew',sans-serif; font-size:21px; letter-spacing:.01em; text-decoration:none; color:var(--ink); display:flex;align-items:center; }
.logo b{color:var(--accent-deep);font-weight:300;}
.logo-mark{ height:46px;width:auto;display:block; }
/* The wordmark PNG is dark ink on a transparent background, so on a dark
   header it disappears into the background - invert it to light ink whenever
   the page is actually rendering dark, regardless of which mechanism (OS
   preference vs. the explicit data-theme toggle) put it there. */
@media (prefers-color-scheme:dark){ .logo-mark{ filter:invert(1) brightness(1.6); } }
:root[data-theme="dark"] .logo-mark{ filter:invert(1) brightness(1.6); }
:root[data-theme="light"] .logo-mark{ filter:none; }
nav.links{display:flex;gap:clamp(16px,3vw,34px);font-size:14.5px;color:var(--ink-soft);}
nav.links a{text-decoration:none;position:relative;padding-block:2px;}
nav.links a::after{
  content:"";position:absolute;inset-inline:0;bottom:-3px;height:1px;
  background:var(--accent-deep);transform:scaleX(0);transform-origin:right;
  transition:transform .3s ease;
}
/* transform-origin has no logical keyword, so mirror it by hand for English (ltr) pages */
html[dir="ltr"] nav.links a::after{ transform-origin:left; }
nav.links a.active::after{transform:scaleX(1);background:#C97C86;}
nav.links a.active{color:var(--ink);}
nav.links a.active::before{
  content:"";position:absolute;inset-inline:0;top:100%;margin-top:7px;height:8px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='M12 20.5S3.5 15 3.5 8.6A4.6 4.6 0 0 1 12 6a4.6 4.6 0 0 1 8.5 2.6C20.5 15 12 20.5 12 20.5Z'/%3E%3C/svg%3E") center/auto 9px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='M12 20.5S3.5 15 3.5 8.6A4.6 4.6 0 0 1 12 6a4.6 4.6 0 0 1 8.5 2.6C20.5 15 12 20.5 12 20.5Z'/%3E%3C/svg%3E") center/auto 9px no-repeat;
}
.nav-cta{font-size:14px;flex-shrink:0;}
/* Language switch (injected by site.js as the last item in the main nav,
   right after Blog). It's a plain nav.links child so it already inherits
   the underline-on-hover treatment; only the muted color/size sets it
   apart as a secondary action rather than another page link. */
.lang-switch{ color:var(--ink-faint); font-size:13px; letter-spacing:.03em; }
.lang-switch:hover{ color:var(--accent-deep); }

@media (max-width:760px){
  .nav-row{flex-wrap:wrap;row-gap:14px;}
  nav.links{order:3;flex-basis:100%;justify-content:center;flex-wrap:wrap;gap:12px 20px;font-size:13.5px;}
  .logo-mark{height:clamp(24px,8vw,32px);}
}

/* HERO (home) */
.hero{ position:relative; min-height:min(92vh,880px); display:flex;align-items:flex-end; overflow:hidden; }
.hero img{ position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;object-fit:cover; }
.hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(20,18,13,.82) 0%, rgba(20,18,13,.46) 38%, rgba(20,18,13,.08) 62%, transparent 78%);
}
.hero-corner{ position:absolute;width:26px;height:26px; border-color:rgba(241,238,230,.75); border-style:solid;border-width:0; }
.hc-tl{top:24px;inset-inline-start:24px;border-top-width:1px;border-inline-start-width:1px;}
.hc-tr{top:24px;inset-inline-end:24px;border-top-width:1px;border-inline-end-width:1px;}
.hc-bl{bottom:24px;inset-inline-start:24px;border-bottom-width:1px;border-inline-start-width:1px;}
.hc-br{bottom:24px;inset-inline-end:24px;border-bottom-width:1px;border-inline-end-width:1px;}
.hero-inner{
  position:relative;z-index:2; width:100%;
  padding:clamp(28px,6vw,64px) clamp(20px,5vw,56px) clamp(40px,7vw,72px);
  max-width:var(--content-w);margin-inline:auto;
}
.hero-panel{
  position:relative; display:inline-block; max-width:38em;
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius:var(--radius);
  padding:clamp(24px,4vw,44px) clamp(24px,4.5vw,48px);
  box-shadow:0 18px 48px rgba(20,18,13,.16);
}
.hero-panel .eyebrow{color:var(--accent-deep);}
.hero-panel .eyebrow::before{background:var(--accent-deep);}
.hero-wordmark{
  display:block; font-family:'Noto Sans Hebrew',sans-serif; font-weight:300;
  font-size:14.5px; letter-spacing:.06em; color:var(--ink-faint); margin-bottom:12px; direction:ltr;
}
.hero h1{ color:var(--ink); font-size:clamp(30px,4.6vw,52px); line-height:1.2; margin-block:.5em .42em; max-width:16em; }
.hero p.lead{ font-size:clamp(15.5px,1.5vw,18px); color:var(--ink-soft); max-width:34em; margin-bottom:1.9em; }
.hero .cta-row{display:flex;gap:16px;flex-wrap:wrap;}
@media (max-width:640px){ .hero-panel{ display:block; max-width:none; } }
.hero .btn-ghost{border-color:var(--line);color:var(--ink);}

/* PAGE HERO (interior pages) */
.page-hero{ position:relative; padding-block:clamp(120px,18vw,180px) clamp(48px,8vw,80px); overflow:hidden; }
.page-hero.with-img{ color:#F3EFE5; }
.page-hero.with-img img{ position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.page-hero.with-img .hero-scrim{ background:linear-gradient(0deg, rgba(20,18,13,.86) 10%, rgba(20,18,13,.5) 55%, rgba(20,18,13,.22) 100%); }
.page-hero:not(.with-img){ background:var(--bg-alt); }
.page-hero-inner{ position:relative;z-index:2; }
.page-hero h1{ font-size:clamp(30px,4.4vw,48px); margin-block:.5em .3em; max-width:18em; }
.page-hero p.lead{ font-size:clamp(15px,1.4vw,17.5px); max-width:38em; color:var(--ink-soft); }
.page-hero.with-img p.lead{ color:#DCD6C6; }
.breadcrumb{ font-size:13px; color:var(--ink-faint); position:relative;z-index:2; }
.page-hero.with-img .breadcrumb{ color:#C9C2AE; }
.breadcrumb a{ text-decoration:none; }

/* SECTION generic */
section{padding-block:clamp(64px,10vw,120px);}
section.tight{padding-block:clamp(40px,6vw,72px);}
.section-head{max-width:640px;margin-bottom:clamp(32px,5vw,56px);}
.section-head h2{font-size:clamp(26px,3.4vw,38px);margin-top:.4em;}
.section-head p.lead{color:var(--ink-soft);margin-top:14px;font-size:16.5px;max-width:38em;}

/* PHILOSOPHY / QUOTE */
.philosophy{background:var(--bg-alt);}
.quote-block{ display:grid;grid-template-columns:1fr;gap:8px; margin-bottom:clamp(40px,6vw,64px); }
blockquote{ font-family:'Noto Sans Hebrew',sans-serif; font-size:clamp(28px,4.2vw,46px); line-height:1.3; margin:0; max-width:15em; color:var(--metal); }
:root[data-theme="dark"] blockquote{color:var(--ink);}
@media (prefers-color-scheme:dark){ blockquote{color:var(--ink);} }
.quote-body{ max-width:38em; color:var(--ink-soft); font-size:16.5px; margin-top:18px; }
.principles{ display:grid;grid-template-columns:repeat(3,1fr);gap:1px; background:var(--line); border:1px solid var(--line); }
.principle{ background:var(--panel); padding:clamp(24px,3vw,34px) clamp(20px,2.6vw,28px); }
.principle svg{width:30px;height:30px;stroke:var(--accent-deep);margin-bottom:16px;}
.principle h3{font-size:16.5px;font-family:'Noto Sans Hebrew';font-weight:500;margin-bottom:8px;}
.principle p{font-size:14.8px;color:var(--ink-soft);line-height:1.6;}
@media (max-width:760px){ .principles{grid-template-columns:1fr;} }

/* FEATURED PROJECT */
.featured{ display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px); align-items:center; }
.featured-media{position:relative;}
.featured-media img{border-radius:var(--radius);}
.featured-credit{ font-size:12.5px;color:var(--ink-faint);margin-top:10px;letter-spacing:.03em; }
.featured-text h2{font-size:clamp(24px,3.2vw,34px);margin-bottom:.6em;}
.featured-text p{color:var(--ink-soft);margin-bottom:1.15em;font-size:16px;}
.featured-text p:last-of-type{margin-bottom:0;}
.featured-motto{ margin-top:26px;padding-top:22px;border-top:1px solid var(--line); font-family:'Noto Sans Hebrew',sans-serif; font-size:19px; color:var(--accent-deep); }
@media (max-width:860px){ .featured{grid-template-columns:1fr;} }

/* CREDO STRIP (home page, "האני מאמין" story) */
.credo-row{ display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px); align-items:center; }
.credo-row + .credo-row{ margin-top:clamp(56px,8vw,96px); }
.credo-media img{ width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius); }
.credo-text{ text-align:right; }
.credo-text p{ font-family:'Noto Sans Hebrew',sans-serif;font-weight:300;font-size:clamp(19px,2.4vw,26px);line-height:1.55;color:var(--ink);max-width:22em;margin-inline-start:auto; }
.credo-text strong{ font-weight:600; }
.credo-row.credo-lead .credo-text p{ font-size:clamp(32px,4.6vw,54px);line-height:1.25; }
@media (max-width:760px){
  .credo-row{ grid-template-columns:1fr; }
}

.masonry-intro{
  background:var(--panel);
  padding-block:clamp(56px,8vw,104px);
}
.masonry-intro p{
  text-align:center;max-width:38em;margin-inline:auto;
  padding-inline:clamp(20px,5vw,56px);
  font-family:'Noto Sans Hebrew',sans-serif;font-weight:300;font-size:clamp(19px,2.4vw,26px);line-height:1.6;color:var(--ink);
}

/* CREDO BANNER (translucent overlay on bottom of full-bleed hero, test variant) */
.credo-hero{ position:relative;padding-block:0;overflow:hidden; }
.credo-hero > img{ width:100%;height:auto;display:block; }
.credo-hero .credo-banner{
  position:absolute;inset-inline:0;bottom:0;
  min-height:clamp(150px,22%,340px);
  display:flex;align-items:center;
  background:rgba(214,204,196,.82);
  padding-block:clamp(28px,4vw,52px);
  text-align:start;
}
.credo-hero .credo-banner .wrap{ width:100%; }
.credo-banner h1{ font-family:'Noto Sans Hebrew',sans-serif;font-weight:300;font-size:clamp(32px,4.8vw,56px);line-height:1.2;color:#23201b;margin:0; }
.credo-banner p{ font-family:'Noto Sans Hebrew',sans-serif;font-weight:300;font-size:clamp(19px,2.4vw,26px);line-height:1.55;color:#23201b;max-width:26em;margin:.7em 0 0; }
.credo-banner strong{ font-weight:600; }

/* PORTFOLIO GRID */
.portfolio-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,28px); }
.pcard{position:relative;overflow:hidden;border-radius:var(--radius);text-decoration:none;color:inherit;display:block;}
.pcard .frame{aspect-ratio:3/4;overflow:hidden;}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.pcard .cap{padding-top:16px;}
.pcard .loc{font-size:12.5px;letter-spacing:.1em;color:var(--accent-deep);font-weight:500;}
.pcard h3{font-family:'Noto Sans Hebrew',sans-serif;font-size:20px;margin-block:6px 6px;font-weight:300;}
.pcard p{font-size:14px;color:var(--ink-soft);line-height:1.55;}
@media (max-width:820px){ .portfolio-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto;} }

/* WORK IN PROGRESS PROJECTS (title-only placeholders) */
.wip-grid{ display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line); }
.wip-card{ background:var(--panel);padding:clamp(20px,2.6vw,28px); }
.wip-card .wip-loc{ font-size:12.5px;letter-spacing:.1em;color:var(--accent-deep);font-weight:500; }
.wip-card h3{ font-size:17px;margin-top:8px;font-weight:300;color:var(--ink-soft); }
.wip-card .wip-meta{ font-size:13px;margin-top:6px;color:var(--ink-faint); }

/* GALLERY (case study pages) */
.gallery{ display:grid;grid-template-columns:repeat(6,1fr);gap:14px; }
.gallery figure{margin:0;overflow:hidden;border-radius:var(--radius);}
.gallery img{width:100%;height:100%;object-fit:cover;}
.gallery .g-wide{grid-column:span 4;aspect-ratio:16/10;}
.gallery .g-narrow{grid-column:span 2;aspect-ratio:3/4;}
.gallery .g-half{grid-column:span 3;aspect-ratio:4/3;}
@media (max-width:760px){
  .gallery{grid-template-columns:1fr;}
  .gallery .g-wide, .gallery .g-narrow, .gallery .g-half{grid-column:span 1;aspect-ratio:4/3;}
}

/* GALLERY, FULL UNCROPPED IMAGES + LIGHTBOX */
.gallery-full{ columns:3 260px; column-gap:clamp(14px,2vw,22px); }
.gallery-full figure{ break-inside:avoid; margin:0 0 clamp(14px,2vw,22px); border-radius:var(--radius); overflow:hidden; cursor:zoom-in; }
.gallery-full img{ width:100%;height:auto;display:block;transition:opacity .25s ease; }
@media (max-width:640px){ .gallery-full{columns:2 160px;} }

body.lb-open{overflow:hidden;}
.lightbox{
  position:fixed;inset:0;z-index:120; background:rgba(15,13,9,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .25s ease, visibility 0s linear .25s;
}
.lightbox.open{ opacity:1;visibility:visible;transition:opacity .25s ease; }
.lightbox .lb-img{ max-width:88vw;max-height:86vh;width:auto;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5); }
.lightbox button{ position:absolute;background:none;border:none;color:#F3EFE5;cursor:pointer; }
/* Close/prev/next stay in fixed physical corners on purpose (standard gallery
   convention: left=prev, right=next, unlike the rest of the site these don't
   mirror between the Hebrew and English pages). */
.lb-close{ top:20px;right:24px;font-size:34px;line-height:1;width:44px;height:44px; }
.lb-prev{ left:12px;top:50%;transform:translateY(-50%);font-size:30px;width:56px;height:56px; }
.lb-next{ right:12px;top:50%;transform:translateY(-50%);font-size:30px;width:56px;height:56px; }
@media (max-width:640px){ .lb-prev,.lb-next{width:44px;height:44px;font-size:24px;} }

/* PROJECT STORY */
.story-block{ max-width:44em; }
.story-block p{ color:var(--ink-soft); margin-bottom:1.2em; font-size:16.5px; }
.story-block p:last-child{margin-bottom:0;}
.story-block .pull{
  font-family:'Noto Sans Hebrew',sans-serif; font-size:clamp(20px,2.6vw,26px); color:var(--metal);
  margin-block:1.4em; line-height:1.4; max-width:20em;
}
:root[data-theme="dark"] .story-block .pull{color:var(--ink);}
@media (prefers-color-scheme:dark){ .story-block .pull{color:var(--ink);} }

.meta-panel{ border:1px solid var(--line); background:var(--panel); padding:clamp(22px,3vw,30px); }
.meta-panel .m-row{ display:flex;justify-content:space-between;gap:16px; padding-block:11px; border-bottom:1px solid var(--line); font-size:14px; }
.meta-panel .m-row:last-child{border-bottom:none;}
.meta-panel .m-label{color:var(--ink-faint);}
.meta-panel .m-val{color:var(--ink-soft);text-align:end;}

.about-facts{ margin-top:clamp(36px,5vw,52px); }
.about-facts .af-title{ font-size:12px;letter-spacing:.12em;color:var(--accent-deep);font-weight:500;padding-bottom:14px;border-bottom:1px solid var(--line); }
.about-facts .m-row{ color:var(--ink-soft); }

.project-split{ display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px); }
@media (max-width:860px){ .project-split{grid-template-columns:1fr;} }

.about-portrait{ aspect-ratio:3/4; border-radius:160px 160px 4px 4px; overflow:hidden; border:1px solid var(--line); }
.about-portrait img{ width:100%;height:100%;object-fit:cover;object-position:top center; }

.project-nav{ display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:28px;flex-wrap:wrap; }
.project-nav a{ text-decoration:none; font-size:14.5px; color:var(--ink-soft); }
.project-nav .pn-label{display:block;font-size:11.5px;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:4px;}
.project-nav .pn-name{font-family:'Noto Sans Hebrew',sans-serif;font-size:19px;color:var(--ink);}

/* SERVICES */
.services-list{ display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line); }
.service-item{ background:var(--panel);padding:20px 24px;font-size:15.5px;color:var(--ink-soft);display:flex;gap:12px;align-items:flex-start; }
.service-item .num{ font-family:'Noto Sans Hebrew',sans-serif;color:var(--accent-deep);font-size:15px;flex-shrink:0; }
@media (max-width:700px){ .services-list{grid-template-columns:1fr;} }

.process-steps{ counter-reset:step; display:flex;flex-direction:column; }
.process-step{ display:grid;grid-template-columns:64px 1fr;gap:20px;padding-block:26px;border-top:1px solid var(--line); }
.process-step:first-child{border-top:none;}
.process-step .step-num{ font-family:'Noto Sans Hebrew',sans-serif;font-size:34px;color:var(--accent-tint);-webkit-text-stroke:1px var(--accent-deep);color:transparent; }
.process-step h3{font-size:18px;font-weight:500;font-family:'Noto Sans Hebrew';margin-bottom:8px;}
.process-step p{color:var(--ink-soft);font-size:15.5px;max-width:42em;}

.trust-strip{ display:flex;flex-wrap:wrap;gap:10px 28px;font-size:13.5px;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:20px;margin-top:clamp(32px,5vw,48px); }

/* CONTACT / TITLE BLOCK */
.contact{background:var(--bg-alt);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);}
.contact-copy h1{font-size:clamp(28px,3.6vw,42px);margin-bottom:.5em;}
.contact-copy p{color:var(--ink-soft);max-width:32em;margin-bottom:1.6em;}
.contact-meta{display:flex;flex-direction:column;gap:10px;font-size:14.5px;color:var(--ink-soft);}
.contact-meta a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
.contact-meta .meta-link{display:inline-flex;align-items:center;gap:8px;}
.contact-meta .meta-icon{width:16px;height:16px;flex-shrink:0;color:var(--accent-deep);}

.titleblock{ border:1px solid var(--line); background:var(--panel); }
.tb-row{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--line);}
.tb-row:last-child{border-bottom:none;}
.tb-label{ font-size:11.5px;letter-spacing:.12em;color:var(--ink-faint); padding:12px 16px 0; }
.tb-field{ width:100%;border:none;background:transparent;color:var(--ink); font-family:'Noto Sans Hebrew';font-weight:300;font-size:16px;padding:6px 16px 14px;outline:none; }
.tb-field::placeholder{color:var(--ink-faint);}
textarea.tb-field{resize:vertical;min-height:76px;font-family:'Noto Sans Hebrew';}
select.tb-field{ appearance:none;-webkit-appearance:none;cursor:pointer;padding-inline-start:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23686357' stroke-width='1.5'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left 16px center; }
/* background-position has no logical keyword either - mirror it by hand */
html[dir="ltr"] select.tb-field{ background-position:right 16px center; }
select.tb-field:has(option[value=""]:checked){ color:var(--ink-faint); }
.tb-submit{ width:100%;border:none;padding:16px; background:var(--metal);color:var(--bg); font-family:'Noto Sans Hebrew';font-size:15.5px;font-weight:500;letter-spacing:.02em; cursor:pointer;transition:opacity .2s ease; }
.tb-submit:disabled{opacity:.6;cursor:default;}
.form-note{ display:none; margin-top:14px;padding:14px 16px; font-size:13.5px;line-height:1.6; border:1px solid var(--line); }
.form-note.show{display:block;}
.form-note.success{ color:var(--accent-deep); border-color:var(--accent-deep); }
.form-note.error{ color:#9C4A3C; border-color:#9C4A3C; }
@media (max-width:820px){ .contact-grid{grid-template-columns:1fr;} }

/* PORTFOLIO CATEGORY CARDS (arch) */
.cat-grid{ display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px); }
.cat-card{ text-decoration:none;color:inherit;display:block; }
.cat-card .cat-frame{
  aspect-ratio:3/4; border-radius:160px 160px 4px 4px; overflow:hidden; position:relative;
  border:1px solid var(--line);
}
.cat-card .cat-frame img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.88) saturate(.92);
  transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.cat-card .cat-loc{ font-size:12.5px;letter-spacing:.1em;color:var(--accent-deep);font-weight:500;margin-top:16px; }
.cat-card h3{ font-family:'Noto Sans Hebrew',sans-serif;font-size:22px;margin-block:4px 0;font-weight:300; }
@media (max-width:820px){ .cat-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto;} }
@media (hover:none){ .cat-card .cat-frame img{ filter:brightness(1) saturate(1); } }

/* MASONRY / SELECTED WORK (3 explicit columns, each hand-curated - see index.html) */
.masonry{ display:flex; gap:clamp(14px,2vw,22px); align-items:flex-start; }
.masonry-col{ flex:1; min-width:0; display:flex; flex-direction:column; gap:clamp(14px,2vw,22px); }
.masonry figure{ margin:0; border-radius:var(--radius); overflow:hidden; position:relative; cursor:zoom-in; }
.masonry img{ width:100%;height:auto;display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.masonry figcaption{
  position:absolute; inset-inline:0; bottom:0; padding:10px 14px;
  font-size:12px; color:#F3EFE5; letter-spacing:.03em;
  background:linear-gradient(0deg, rgba(20,18,13,.78) 0%, transparent 100%);
  opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
}
@media (max-width:640px){ .masonry{gap:10px;} .masonry-col{gap:10px;} }
@media (hover:none){ .masonry figcaption{ opacity:1; transform:translateY(0); } .masonry img{ filter:brightness(.86); } }

/* EDITORIAL QUOTE BREAK (full width) */
.quote-break{ text-align:center;padding-block:clamp(56px,9vw,96px); }
.quote-break blockquote{
  max-width:22em; margin-inline:auto; font-size:clamp(24px,3.6vw,42px);
}
.quote-break .qb-mark{ color:var(--accent); }
.quote-break cite{ display:block;margin-top:22px;font-style:normal;font-size:13px;letter-spacing:.12em;color:var(--ink-faint); }

/* STORY NARRATIVE (from the pitch-deck content) */
.story-narrative .quote-body,
.story-narrative .story-block p,
.story-narrative .fear-item span,
.story-narrative .tl-caption,
.timeline-strip span{
  font-family:'Noto Sans Hebrew',sans-serif;
}
.fears-row{ display:flex;flex-wrap:wrap;gap:clamp(22px,4vw,52px); margin-top:clamp(30px,4vw,42px); }
.fear-item{ display:flex;align-items:center;gap:11px; }
.fear-item svg{ width:27px;height:27px;stroke:var(--accent-deep);flex-shrink:0; }
.fear-item span{ font-size:15px;color:var(--ink-soft); }

.timeline-strip{
  display:flex;flex-wrap:wrap;align-items:baseline; font-size:14px;color:var(--ink-soft);
  margin-top:6px; padding-top:clamp(24px,3vw,32px); border-top:1px solid var(--line);
}
.timeline-strip span{ padding-inline-end:14px;margin-inline-end:14px;border-inline-end:1px solid var(--line); }
.timeline-strip span:last-child{ border-inline-end:none;padding-inline-end:0;margin-inline-end:0; }
.timeline-strip .tl-final{ font-family:'Noto Sans Hebrew',sans-serif;color:var(--accent-deep);font-size:18px; }
.tl-caption{ font-size:13.5px;color:var(--ink-faint);margin-top:16px; }
.tl-caption a{ color:var(--accent-deep);text-decoration:underline; }

/* PROCESS GALLERY (floor plan / elevation / massing / render) */
.process-gallery{ display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,20px); margin-top:clamp(30px,4vw,42px); }
.process-item figure{ margin:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel); }
.process-item img{ width:100%;aspect-ratio:3/4;object-fit:contain;background:#fff; }
.process-item figcaption{ font-size:12.5px;color:var(--ink-faint);margin-top:10px;line-height:1.5; }
@media (max-width:820px){ .process-gallery{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .timeline-strip{font-size:13px;} }

/* BLOG GRID */
.blog-grid{ columns:3 260px; column-gap:clamp(18px,2.4vw,28px); }
.blog-post{
  break-inside:avoid; margin-bottom:clamp(20px,2.6vw,28px);
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.blog-post .bp-media{ aspect-ratio:1/1; overflow:hidden; }
.blog-post .bp-media img{ width:100%;height:100%;object-fit:cover;display:block; }
.blog-post .bp-body{ padding:16px 18px 20px; }
.blog-post .bp-project{ display:block;font-size:11.5px;letter-spacing:.08em;color:var(--accent-deep);font-weight:500;margin-bottom:8px; }
.blog-post .bp-caption{ font-size:14px;color:var(--ink-soft);line-height:1.7;white-space:pre-line; }
.blog-post .bp-caption a{ color:var(--accent-deep); }
.blog-post .bp-meta{
  display:flex;align-items:center;justify-content:space-between; margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line); font-size:12px;color:var(--ink-faint);
}
.blog-post .bp-likes{ display:flex;align-items:center;gap:5px; }
.blog-post .bp-likes svg{ width:13px;height:13px; }
@media (max-width:760px){ .blog-grid{columns:2 200px;} }
@media (max-width:480px){ .blog-grid{columns:1; } }

/* INSTAGRAM BAND */
.ig-band{ background:var(--metal); color:#F3EFE5; text-align:center; }
.ig-band .wrap{ max-width:640px; }
.ig-band .eyebrow{ color:#CFC8B4;justify-content:center; }
.ig-band .eyebrow::before{ background:#CFC8B4; }
.ig-band blockquote{ color:#F3EFE5;font-size:clamp(20px,2.8vw,28px);max-width:none;margin-block:.5em .7em; }
.ig-band p{ color:#CFC8B4;margin-bottom:1.6em; }
.ig-band .btn-ghost{ border-color:rgba(243,239,229,.4);color:#F3EFE5; }

/* FOOTER */
footer{ border-top:1px solid var(--line); padding-block:26px; font-size:13px;color:var(--ink-faint); }
.foot-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.foot-row nav{display:flex;gap:20px;flex-wrap:wrap;}
.foot-row a{text-decoration:none;}

/* HOVER-ONLY EFFECTS
   Gated behind (hover:hover) so touch screens never get a CSS :hover state at
   all. Without this, iOS/Android browsers treat the first tap on a link that
   has a :hover style as "trigger hover", and only a second tap follows the
   link - links look broken/unresponsive on phones even though they work fine
   with a mouse on desktop. */
@media (hover:hover){
  .btn-primary:hover{transform:translateY(-1px);}
  .btn-ghost:hover{border-color:var(--ink-soft);}
  nav.links a:hover::after{transform:scaleX(1);}
  .hero .btn-ghost:hover{border-color:var(--ink-soft);}
  .breadcrumb a:hover{ color:var(--accent-deep); }
  .pcard:hover img{transform:scale(1.06);}
  .gallery-full figure:hover img{ opacity:.88; }
  .lightbox button:hover{ color:var(--accent-tint); }
  .project-nav a:hover{color:var(--accent-deep);}
  .contact-meta a:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
  .tb-submit:hover{opacity:.88;}
  .cat-card:hover .cat-frame img{ transform:scale(1.05); filter:brightness(1) saturate(1); }
  .masonry figure:hover img{ transform:scale(1.04); filter:brightness(.72); }
  .masonry figure:hover figcaption{ opacity:1; transform:translateY(0); }
  .ig-band .btn-ghost:hover{ border-color:#F3EFE5; }
  .foot-row a:hover{color:var(--accent-deep);}
  .a11y-toggle:hover{ opacity:.9; }
}

/* ACCESSIBILITY TOOLBAR
   Floating widget (injected by site.js on every page) implementing the
   controls promised in accessibility.html: font size, high contrast,
   link underlining and motion stop. State persists via localStorage. */
/* Typography here is set in fixed px (not rem), so scaling the root font-size
   would do nothing - zoom scales the whole rendered page instead, same effect
   as the browser's own Ctrl/Cmd+= page zoom. */
html.a11y-font-1{ zoom:1.15; }
html.a11y-font-2{ zoom:1.3; }
html.a11y-font-3{ zoom:1.45; }

html.a11y-underline-links a{ text-decoration:underline !important; }

html.a11y-stop-motion, html.a11y-stop-motion *{
  animation:none !important; transition:none !important; scroll-behavior:auto !important;
}
html.a11y-stop-motion .reveal{ opacity:1 !important; transform:none !important; }

html.a11y-contrast body{ background:#000 !important; color:#fff !important; }
html.a11y-contrast *{ background-color:#000 !important; color:#fff !important; border-color:#7a7a7a !important; }
html.a11y-contrast a{ color:#ffe066 !important; text-decoration:underline !important; }
html.a11y-contrast img{ opacity:.92; }
html.a11y-contrast .logo-mark{ filter:invert(1) brightness(1.6) !important; opacity:1 !important; background-color:transparent !important; }
html.a11y-contrast .a11y-toggle{ background:#ffe066 !important; color:#000 !important; }

.a11y-toggle{
  position:fixed; z-index:200; bottom:18px; left:18px;
  width:50px; height:50px; border-radius:50%;
  background:var(--metal); color:var(--bg); border:none;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.a11y-toggle svg{ width:24px; height:24px; }
.a11y-panel{
  position:fixed; z-index:200; bottom:78px; left:18px;
  width:250px; max-width:calc(100vw - 36px);
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 12px 34px rgba(0,0,0,.22);
  padding:16px; display:none;
}
.a11y-panel.open{ display:block; }
.a11y-panel h2{ font-size:14px; margin:0 0 10px; color:var(--ink); }
.a11y-panel button{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  background:none; border:1px solid var(--line); border-radius:var(--radius);
  padding:9px 12px; margin-bottom:8px; font-size:13.5px; color:var(--ink);
  cursor:pointer; font-family:inherit; text-align:start;
}
.a11y-panel button[aria-pressed="true"]{ background:var(--accent-tint); border-color:var(--accent-deep); }
.a11y-panel .a11y-reset{ color:var(--ink-faint); border-style:dashed; margin-bottom:0; justify-content:center; }
@media (max-width:480px){ .a11y-toggle{ left:12px; bottom:12px; } .a11y-panel{ left:12px; bottom:72px; } }
