/* Ozworks.ai landing v2 | minimal, logomark-driven */

@font-face { font-family: "Outfit"; font-weight: 100 900; font-display: swap; src: url(../fonts/outfit-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Outfit"; font-weight: 100 900; font-display: swap; src: url(../fonts/outfit-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --oz-1: #425198; --oz-2: #58498c; --oz-3: #773d7c; --oz-4: #974e6e; --oz-5: #e24c4a;
  --bg: #0f0f12;
  --ink: #efefef;
  --ink-2: rgb(239 239 239 / .6);
  --ink-3: rgb(239 239 239 / .35);
  --line: rgb(239 239 239 / .1);
  --grad: linear-gradient(100deg, var(--oz-1), var(--oz-2) 20%, var(--oz-3) 42%, var(--oz-4) 64%, var(--oz-5));
  --ease: cubic-bezier(.16, 1, .3, 1);
  --g: clamp(16px, 4vw, 64px);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html.lenis, html.lenis body { height: auto; }
/* no rubber-band bounce at the top on mobile: the hero must rest exactly at its opening state */
html, body { overscroll-behavior-y: none; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 300 17px/1.5 "Outfit", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, p, ol { margin: 0; padding: 0; }
::selection { background: var(--oz-3); color: #fff; }
:focus-visible { outline: 2px solid var(--oz-4); outline-offset: 4px; border-radius: 4px; }

/* one soft light source that follows the story */
.glow {
  position: fixed; z-index: 0; left: 50%; top: 50%;
  width: 70vmax; height: 70vmax; margin: -35vmax 0 0 -35vmax; border-radius: 50%;
  background: radial-gradient(circle, rgb(119 61 124 / .34) 0%, rgb(88 73 140 / .2) 22%, rgb(66 81 152 / .1) 40%, rgb(66 81 152 / .03) 56%, transparent 68%);
  pointer-events: none; will-change: transform, opacity;
}
main, .foot, .nav { position: relative; z-index: 1; }

/* hero light: breathing brand blend + cursor glow that takes the color of the logo part beneath it */
@property --cg { syntax: "<color>"; inherits: false; initial-value: #773d7c; }
.breath { position: absolute; inset: 0; pointer-events: none; }
.breath i {
  position: absolute; left: 50%; top: 42%; width: 80vmin; height: 80vmin; margin: -40vmin 0 0 -40vmin; border-radius: 50%;
  animation: breathe 7s ease-in-out infinite alternate; will-change: transform, opacity;
}
.breath i:nth-child(1) { background: radial-gradient(circle, rgb(66 81 152 / .42), rgb(66 81 152 / .14) 35%, transparent 62%); translate: -14vmin -6vmin; }
.breath i:nth-child(2) { background: radial-gradient(circle, rgb(119 61 124 / .4), rgb(119 61 124 / .13) 35%, transparent 62%); translate: 0 6vmin; animation-delay: -2.3s; }
.breath i:nth-child(3) { background: radial-gradient(circle, rgb(226 76 74 / .3), rgb(226 76 74 / .1) 35%, transparent 62%); translate: 14vmin -2vmin; animation-delay: -4.6s; }
@keyframes breathe { from { transform: scale(.85); opacity: .55; } to { transform: scale(1.18); opacity: 1; } }

.cglow {
  --cg: #773d7c;
  position: absolute; left: 0; top: 0; width: 560px; height: 560px; margin: -280px 0 0 -280px; border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--cg) 55%, transparent) 0%, color-mix(in srgb, var(--cg) 22%, transparent) 30%, color-mix(in srgb, var(--cg) 6%, transparent) 50%, transparent 66%);
  pointer-events: none; opacity: 0; will-change: transform;
  transition: --cg .7s ease, opacity .6s ease;
}
.cglow.on { opacity: 1; }
.cglow.top { --cg: #8fa0ff; }
.cglow.bot { --cg: #e24c4a; }

/* nav */
.nav {
  position: fixed; z-index: 20; top: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px var(--g);
}
.nav img { height: 24px; width: auto; }
.pill {
  padding: 10px 18px; border-radius: 999px; font-size: 14px; font-weight: 400;
  background: rgb(255 255 255 / .05); border: 1px solid var(--line);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  transition: background .4s, border-color .4s;
}
.pill:hover { background: rgb(255 255 255 / .1); border-color: rgb(255 255 255 / .22); }

/* hero */
.hero { height: 300vh; }
.hero__stage {
  position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden;
  display: grid; place-items: center; align-content: center; gap: 5vh;
}
.mark { width: clamp(150px, min(22vw, 34vh), 300px); aspect-ratio: 35.06 / 33.85; position: relative; }
.mark { will-change: transform; }
/* each half is its own composited layer: no SVG clipping, no repaint while moving */
.half { position: absolute; inset: 0; pointer-events: none; will-change: transform, opacity; backface-visibility: hidden; }
.half--top { transform-origin: 46% 40%; }
.half--bot { transform-origin: 55% 60%; }
.half svg { display: block; width: 100%; height: 100%; overflow: visible; }
.half path { pointer-events: visiblePainted; }

.hero__title { text-align: center; line-height: 1; }
.hero__title span { display: block; }
.t1 { font-size: clamp(48px, 7vw, 104px); font-weight: 500; letter-spacing: -.04em; }
.t2 {
  margin-top: .35em; font-size: clamp(16px, 1.6vw, 22px); font-weight: 300; letter-spacing: .32em; text-transform: uppercase;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent;
  padding-left: .32em; /* balance tracking */
  will-change: transform, opacity; backface-visibility: hidden;
}
.hero__say {
  position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%);
  text-align: center; font-size: clamp(34px, 5vw, 80px); font-weight: 400; line-height: 1.05; letter-spacing: -.035em;
  opacity: 0; pointer-events: none;
}
.hero__say em { font-style: normal; font-weight: 300; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; padding-bottom: .08em; display: inline-block; }

/* instagram grid */
.ig { max-width: 1240px; margin: 0 auto; padding: 6vh var(--g) 16vh; }
.ig__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 28px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.ig__id { display: flex; align-items: center; gap: 16px; }
.ig__avatar {
  position: relative; width: 64px; height: 64px; flex: none; border-radius: 50%; display: grid; place-items: center;
  background: #16161b;
}
.ig__avatar::before { /* story ring in brand gradient */
  content: ""; position: absolute; inset: -3px; border-radius: 50%; padding: 2px;
  background: conic-gradient(var(--oz-1), var(--oz-3), var(--oz-5), var(--oz-4), var(--oz-1));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: spin 8s linear infinite;
}
.ig__avatar img { width: 30px; height: auto; }
@keyframes spin { to { transform: rotate(360deg); } }
.ig__id strong { display: block; font-size: 20px; font-weight: 500; letter-spacing: -.01em; }
.ig__id small { display: block; font-size: 14px; color: var(--ink-2); }

.grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin-top: 4px; }
.tile {
  all: unset; box-sizing: border-box; cursor: pointer; position: relative; overflow: hidden;
  aspect-ratio: 3 / 4; background: #16161b;
}
.tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease), filter .5s; }
.tile__ov {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; padding: 14px;
  background: linear-gradient(180deg, transparent 40%, rgb(10 10 12 / .85));
  opacity: 0; transition: opacity .45s var(--ease);
}
.tile__ov b { font-weight: 500; font-size: 15px; line-height: 1.25; }
.tile__ov span { font-size: 13px; color: var(--ink-2); }
.tile__reel { position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; fill: #fff; filter: drop-shadow(0 1px 3px rgb(0 0 0 / .6)); }
.tile:hover img, .tile:focus-visible img { transform: scale(1.06); filter: saturate(1.1); }
.tile:hover .tile__ov, .tile:focus-visible .tile__ov { opacity: 1; }

.btn {
  position: relative; display: inline-flex; padding: 12px 26px; font-size: 15px; border-radius: 999px; font-weight: 500; font-size: 16px;
  background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .14);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .14);
  overflow: hidden; isolation: isolate; transition: transform .5s var(--ease);
}
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--grad); opacity: 0; transition: opacity .5s var(--ease); }
.btn:hover::before { opacity: 1; }
.btn:active { transform: scale(.97); }

.foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 28px var(--g) 36px; color: var(--ink-3); font-size: 14px; border-top: 1px solid var(--line); }
.foot a:hover { color: var(--ink); }

/* modal */
.modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 16px; }
.modal[hidden] { display: none; }
.modal__bg { position: absolute; inset: 0; background: rgb(10 10 12 / .65); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.modal__box { position: relative; width: min(420px, 100%); display: grid; gap: 10px; }
.modal__frame { height: min(700px, calc(100dvh - 110px)); border-radius: 16px; overflow: hidden; background: #1a1a1f; }
.modal__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.modal__x { position: absolute; top: -12px; right: -12px; z-index: 1; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgb(255 255 255 / .2); background: #1a1a1f; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.modal__open { text-align: center; padding: 12px; font-size: 15px; color: var(--ink-2); }
.modal__open:hover { color: #fff; }

/* mobile */
@media (max-width: 767px) {
  .nav { padding: 16px; }
  .nav img { height: 20px; }
  .hero { height: 240vh; }
  .grid { grid-template-columns: repeat(3, 1fr); gap: 2px; }
  .grid .tile:nth-child(n+10) { display: none; }
  .ig__head { gap: 12px; padding-bottom: 20px; }
  .ig__id { gap: 12px; min-width: 0; }
  .ig__avatar { width: 46px; height: 46px; }
  .ig__avatar img { width: 22px; }
  .ig__id strong { font-size: 16px; }
  .ig__id small { font-size: 12px; }
  .ig__head .btn { padding: 10px 18px; font-size: 14px; flex: none; }
  .tile__ov { display: none; }
  .cglow { display: none; }
  .foot { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .hero { height: auto; }
  .hero__stage { position: relative; }
  .hero__say { display: none; }
  * { transition-duration: .001ms !important; }
}
