/* ---------- floating dock nav ---------- */
.dock{position:fixed;inset-inline:0;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);margin-inline:auto;width:max-content;max-width:calc(100% - 24px);display:flex;align-items:center;gap:4px;padding:6px 6px 6px 10px;border-radius:999px;background:color-mix(in srgb,var(--ink) 92%,transparent);border:1px solid color-mix(in srgb,var(--cream) 16%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 40px -20px rgba(0,0,0,.6);z-index:60;transform:translateY(calc(100% + 40px));opacity:0;transition:transform .7s var(--ease),opacity .4s}
body.scrolled .dock{transform:none;opacity:1}
.dock-cta{padding:.8em 1.25em;font-size:.92rem;margin-inline-end:4px}
.dock-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--cream);opacity:.7;transition:opacity .25s,background-color .25s,transform .35s var(--ease)}
.dock-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dock-icon-mark svg{width:28px;height:28px;fill:currentColor;stroke:none} /* home = the brand mark (brand book, 24.9.2026) */
.dock-icon:hover{opacity:1;transform:translateY(-2px)}
.dock-icon.is-active{opacity:1;background:rgba(242,235,226,.14)}
@media (min-width:900px){
  .dock{bottom:22px;padding:8px 8px 8px 12px}
  .dock-cta{font-size:1rem;padding:.95em 1.5em}
  .dock-icon{width:48px;height:48px}
}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 42s linear infinite}
.marquee-group{display:flex;align-items:center;flex:none;gap:clamp(2.5rem,6vw,5rem);padding-inline-end:clamp(2.5rem,6vw,5rem)}
@keyframes marquee{to{transform:translateX(50%)}}
html.a11y-no-motion .marquee-track{animation-play-state:paused} /* only the accessibility toolbar pauses a strip (Sivan, 24.9: they never stop) */
.logo-item{white-space:nowrap;font-weight:700;font-size:clamp(1rem,1.6vw,1.35rem);letter-spacing:.02em;color:var(--ink);opacity:.5;display:flex;align-items:center;gap:.6em}
.logo-item::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);opacity:.6}
.logo-img{height:34px;width:auto;max-width:180px;object-fit:contain;opacity:.92;flex:none}
.logo-img.tall{height:54px}
@media (min-width:900px){.logo-img{height:40px}.logo-img.tall{height:64px}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}.marquee-group[aria-hidden]{display:none}.marquee-group{flex-wrap:wrap;justify-content:center}}

/* ---------- portfolio: layered mockup cards ---------- */
.work-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:700px){.work-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.work-grid{grid-template-columns:repeat(3,1fr);gap:1.75rem}}
.card{position:relative;aspect-ratio:4/4.6;border-radius:var(--radius-lg);overflow:hidden;background:var(--ink);color:var(--cream);cursor:pointer;isolation:isolate;box-shadow:0 40px 70px -40px rgba(28,15,31,.6);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 50px 80px -40px rgba(28,15,31,.7)}
.card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.layer{position:absolute;inset:0;will-change:transform;transition:transform .35s ease-out}
.layer-bg{z-index:0}
.layer-bg::after{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--accent) 45%,transparent),transparent 55%),radial-gradient(circle at 80% 90%,color-mix(in srgb,var(--lavender) 55%,transparent),transparent 50%)}
.layer-mock{z-index:1;display:grid;place-items:start center;padding:24% 8% 22%}
.mock{width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:0 30px 50px -20px rgba(0,0,0,.6);position:relative}
.mock video,.mock img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mock video{opacity:0;transition:opacity .6s}
.mock video.is-ready{opacity:1}
.layer-chip{z-index:2;pointer-events:none}
.chip-logo{position:absolute;top:8%;inset-inline-start:8%;height:30px;width:auto;max-width:44%;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35))}
.chip-text{position:absolute;top:8%;inset-inline-start:8%;font-weight:800;font-size:1.05rem;letter-spacing:.01em;text-shadow:0 8px 16px rgba(0,0,0,.35)}
.card-meta{position:absolute;inset-inline:8%;bottom:7%;z-index:3;display:flex;align-items:end;justify-content:space-between;gap:1rem}
.card-meta h3{font-size:1.15rem;font-weight:800;line-height:1.25;text-wrap:balance;min-height:calc(1.15rem*1.25*2);display:flex;align-items:flex-end}
.card-meta .tag{flex:none;border-color:color-mix(in srgb,var(--cream) 30%,transparent);color:var(--cream)}
/* "לפירוט" pill: glass on the dark card; the whole card is the button, this just says so */
.card-more{flex:none;display:inline-flex;align-items:center;gap:.4em;padding:.55em 1em .5em;border-radius:999px;font-size:.82rem;font-weight:700;line-height:1;color:var(--cream);background:color-mix(in srgb,var(--cream) 10%,transparent);border:1px solid color-mix(in srgb,var(--cream) 24%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color .25s,border-color .25s,transform .35s var(--ease)}
.card-more svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}
.card:hover .card-more{background:var(--accent);border-color:var(--accent);color:#fff}
.card:hover .card-more svg{transform:translateX(-3px)}
.card.is-open .card-more{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.card.is-open .card-more svg{transform:rotate(-90deg)}
.tag-video{display:inline-flex;align-items:center;gap:.4em;font-size:.72rem;font-weight:700;padding:.35em .75em;border-radius:999px;background:color-mix(in srgb,var(--ink) 70%,transparent);border:1px solid color-mix(in srgb,var(--cream) 22%,transparent);position:absolute;top:8%;inset-inline-end:8%;z-index:3}
.tag-video::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--neon);box-shadow:0 0 10px var(--neon)}
@media (hover:none){.layer-chip{animation:floatChip 7s ease-in-out infinite}}
@keyframes floatMock{50%{transform:translate(2%,-2%)}}
@keyframes floatChip{50%{transform:translate(-3%,3%)}}
@media (prefers-reduced-motion:reduce){.layer-mock,.layer-chip{animation:none}}

/* ---------- lightbox ---------- */
.lightbox{border:0;padding:0;margin:auto;background:var(--cream);color:var(--ink);border-radius:var(--radius-lg);width:min(92vw,720px);max-height:92vh;overflow:auto;box-shadow:0 40px 100px rgba(0,0,0,.4)} /* a smaller window on desktop (Sivan, 20.9) */
.lightbox::backdrop{background:rgba(33,47,45,.72);backdrop-filter:blur(8px)}
.lightbox[open]{animation:lb-in .45s var(--ease)}
@keyframes lb-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.lightbox-media{aspect-ratio:16/9;background:var(--green);position:relative;overflow:hidden}
.lightbox-media img,.lightbox-media video{width:100%;height:100%;object-fit:cover}
.lightbox-media .mock-wrap{position:absolute;inset:12% 10%}
.lightbox-info{padding:clamp(1.25rem,3vw,2rem)}
.lightbox-info .h3{margin:.3em 0 .6em}
.lightbox-close{position:absolute;top:12px;inset-inline-start:12px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(242,235,226,.92);color:var(--bordeaux);font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center;z-index:2}
.lightbox-close:hover{background:var(--white)}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;font-weight:700;font-size:var(--fs-h3)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";flex:none;width:12px;height:12px;border-inline-start:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .35s var(--ease);margin-inline-end:6px}
.faq-item[open] summary::after{transform:rotate(135deg)}
.faq-item p{padding:0 0 1.5rem;color:var(--ink-soft);max-width:65ch}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:var(--fs-small);font-weight:700}
.field input,.field select,.field textarea{font:inherit;color:var(--ink);background:var(--white);border:1.5px solid var(--line);border-radius:12px;padding:.85em 1em;width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--bordeaux);box-shadow:0 0 0 4px rgba(51,29,38,.08)}
.field textarea{min-height:120px;resize:vertical}
.form-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:640px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}}
.form-note{font-size:var(--fs-small);color:var(--ink-soft);margin-top:.75rem}
.inline-form{display:flex;gap:.6rem;flex-wrap:wrap}
.inline-form input{flex:1 1 240px;font:inherit;padding:1em 1.2em;border-radius:999px;border:1.5px solid var(--line);background:var(--white)}
.inline-form input:focus{outline:0;border-color:var(--bordeaux)}

/* ---------- wavy photo frame ---------- */
.wavy{clip-path:url(#wavy)}

/* ---------- consent checkbox ---------- */
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--fs-small);line-height:1.5;margin-top:1rem;color:var(--ink-soft)}
.consent input{margin-top:.1em;accent-color:var(--red);flex:none;width:24px;height:24px} /* was 16px: too small a target for a finger (audit 26.9) */
.consent a{color:var(--ink);font-weight:700}
.form-note a{color:inherit;font-weight:700}

.btn-ghost{background:transparent;border-color:color-mix(in srgb,var(--ink) 22%,transparent);color:var(--ink)}
.btn-ghost:hover{border-color:color-mix(in srgb,var(--ink) 45%,transparent)}
.marquee::before,.marquee::after{display:none}

/* ---------- top floating pill nav ---------- */
.topnav{position:fixed;top:14px;inset-inline:0;z-index:70;display:flex;justify-content:center;padding-inline:var(--gutter);pointer-events:none}
.topnav-pill{pointer-events:auto;display:flex;align-items:center;gap:clamp(.75rem,2vw,1.75rem);padding:.55rem .6rem .55rem 1.4rem;border-radius:999px;background:color-mix(in srgb,var(--cream) 9%,transparent);border:1px solid color-mix(in srgb,var(--cream) 18%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--cream);box-shadow:0 20px 50px -30px rgba(0,0,0,.6);transition:background-color .35s,color .35s,border-color .35s,box-shadow .35s;max-width:100%}
.topnav .brand{color:inherit;display:flex;align-items:center;padding-inline-start:.4rem}
.topnav .wordmark{height:20px}
.topnav-links{display:flex;gap:clamp(.6rem,1.6vw,1.4rem);font-weight:700;font-size:.95rem}
.topnav-links a{color:inherit;text-decoration:none;opacity:.8;padding:.35em .2em;border-radius:999px;transition:opacity .2s}
.topnav-links a:hover,.topnav-links a.is-current{opacity:1}
.topnav-cta{padding:.6em 1.15em;font-size:1.17rem;font-weight:800} /* 18.7px bold = "large text": white on the pink passes AA at 3:1 without changing the colour (audit 26.9) */
.topnav-cta .arrow{width:1em;height:1em}
.topnav-burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:color-mix(in srgb,currentColor 12%,transparent);color:inherit;cursor:pointer;position:relative}
.topnav-burger span{position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:2px;top:18px;transition:transform .3s,top .3s}
.topnav-burger span+span{top:25px}
.topnav-burger[aria-expanded="true"] span{top:21px;transform:rotate(45deg)}
.topnav-burger[aria-expanded="true"] span+span{transform:rotate(-45deg)}
body.scrolled .topnav-pill{background:color-mix(in srgb,var(--cream) 92%,transparent);color:var(--ink);border-color:color-mix(in srgb,var(--ink) 8%,transparent);box-shadow:0 20px 50px -28px rgba(28,15,31,.45)}
@media (min-width:900px){.dock{display:none}}
@media (max-width:899px){
  .topnav{display:none} /* phones: the floating dock is the menu (Sivan, 20.9 evening); the burger + pill are gone there */
  .topnav{top:10px}
  .topnav-pill{width:100%;justify-content:space-between;padding:.45rem .5rem .45rem 1rem;position:relative}
  .topnav-links{display:none;position:absolute;top:calc(100% + 8px);inset-inline:0;flex-direction:column;gap:.15rem;padding:.75rem;border-radius:22px;background:var(--cream);color:var(--ink);box-shadow:0 30px 60px -30px rgba(28,15,31,.5)}
  .topnav-links.is-open{display:flex}
  .topnav-links a{padding:.75em 1em;font-size:1.05rem;opacity:1}
  .topnav-cta{display:none}
  .topnav-burger{display:block}
  .lightbox-close{width:32px;height:32px;top:8px;inset-inline-start:8px;font-size:1.15rem} /* 44px covered the slide's corner on a phone (Sivan, 20.9) */
}

/* ---------- cursor glow: a soft pink halo that follows the pointer around the whole site ---------- */
.cursor-glow{position:fixed;top:0;left:0;width:clamp(130px,12vw,200px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent) 0%,color-mix(in srgb,var(--accent) 7%,transparent) 45%,transparent 72%);pointer-events:none;z-index:9999;transform:translate(-50%,-50%);opacity:0;transition:opacity .4s var(--ease);will-change:transform}
.cursor-glow.is-visible{opacity:1}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-glow{display:none}}
