:root {
  --ink: #14131a;
  --paper: #f7f2ea;
  --warm: #ebe2d8;
  --mist: #dfe7ff;
  --blue: #91a5ff;
  --sand: #ffe6c9;
  --coral: #ff8f87;
  --muted: #746e7c;
  --shadow: 0 34px 100px rgba(16,14,24,.22);
  --max: 1480px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Montserrat", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  color: var(--ink);
  background: linear-gradient(180deg, #15141d 0 16%, #272433 34%, #ded6cf 58%, #f8f2ea 100%);
  overflow-x: hidden;
}
body:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
  z-index: -2;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(26px);
  background: rgba(20,19,26,.62);
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: #fff;
}
.nav {
  max-width: var(--max);
  margin: 0 auto;
  padding: 20px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand { display: flex; align-items: center; gap: 14px; font-weight: 760; letter-spacing: -.02em; }
.brand-mark { width: 46px; height: 46px; border-radius: 18px; background: linear-gradient(135deg, var(--blue), #f1d2ff 52%, var(--sand)); box-shadow: 0 18px 48px rgba(145,165,255,.42); }
.brand small { display: block; margin-top: 4px; color: rgba(255,255,255,.62); font-weight: 520; letter-spacing: 0; }
.nav-links { display: flex; align-items: center; gap: 28px; color: rgba(255,255,255,.72); font-weight: 680; }
.menu-toggle { display:none; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  color: inherit;
  font-weight: 760;
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 55px rgba(0,0,0,.14);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.btn:hover { transform: translateY(-3px); background: rgba(255,255,255,.2); box-shadow: 0 24px 70px rgba(0,0,0,.2); }
.btn-primary { background: linear-gradient(135deg, #9aadff, #eadfff 58%, #ffe2bf); color: #101018; border-color: rgba(255,255,255,.55); }

.section { max-width: var(--max); margin: 0 auto; padding: 104px 32px; position: relative; }
.section-inner { padding-top: 64px; }
.hero { min-height: 92vh; display: grid; grid-template-columns: .88fr 1.12fr; gap: 52px; align-items: center; color: #fff; padding-top: 76px; }
.eyebrow { display: inline-flex; align-items: center; padding: 12px 18px; border-radius: 999px; background: linear-gradient(135deg, rgba(145,165,255,.28), rgba(255,226,191,.14)); border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.76); font-weight: 680; box-shadow: 0 18px 58px rgba(0,0,0,.22); }
.eyebrow.light { color:#2a2732; background:linear-gradient(135deg, rgba(145,165,255,.24), rgba(255,226,191,.32)); border-color:rgba(0,0,0,.06); box-shadow:none; }
h1, h2, h3 { margin: 0; font-family: "Montserrat", "Avenir Next", "Segoe UI", system-ui, sans-serif; font-weight: 700; letter-spacing: -.055em; }
.hero h1 { max-width: 900px; margin-top: 30px; font-size: clamp(52px, 6.2vw, 92px); line-height: .94; }
.hero-lead { max-width: 760px; margin-top: 26px; color: rgba(255,255,255,.68); font-size: clamp(19px, 2vw, 27px); line-height: 1.55; letter-spacing: -.025em; }
.hero-actions, .filter-row { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }

.hero-stage { min-height: 720px; position: relative; perspective: 1200px; }
.halo { position: absolute; inset: 8% 3% 2% 0; border-radius: 72px; background: radial-gradient(circle at 30% 20%, rgba(145,165,255,.45), transparent 30%), radial-gradient(circle at 82% 34%, rgba(255,143,135,.32), transparent 28%), linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); border: 1px solid rgba(255,255,255,.1); box-shadow: inset 0 1px 0 rgba(255,255,255,.16), var(--shadow); }
.hero-mock { position:absolute; border-radius:38px; overflow:hidden; border:1px solid rgba(255,255,255,.18); box-shadow:0 38px 110px rgba(0,0,0,.32); background:#111019; }
.hero-mock img { width:100%; height:100%; object-fit:cover; }
.hero-mock-main { width:76%; right:0; top:12%; transform:rotateY(-10deg) rotateZ(-1.5deg); }
.hero-mock-secondary { width:48%; left:0; bottom:8%; transform:rotateY(8deg) rotateZ(3deg); }

.tools-marquee { overflow:hidden; padding: 20px 0; border-block: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); backdrop-filter: blur(20px); }
.marquee-track { width:max-content; display:flex; gap:14px; animation: marquee 34s linear infinite; }
.marquee-track span { padding:12px 18px; border-radius:999px; background:linear-gradient(135deg, rgba(233,240,255,.72), rgba(255,230,201,.7)); border:1px solid rgba(255,255,255,.48); color:#34313d; font-weight:760; white-space:nowrap; }
@keyframes marquee { to { transform: translateX(-50%); } }

.panel { border-radius: 46px; padding: clamp(28px, 4vw, 58px); background: rgba(255,255,255,.58); border: 1px solid rgba(255,255,255,.74); box-shadow: var(--shadow); backdrop-filter: blur(28px); }
.section-title { font-size: clamp(34px, 4.2vw, 64px); line-height: .98; color: var(--ink); }
.section-intro { max-width: 920px; margin-top: 22px; color: var(--muted); font-size: clamp(18px, 1.65vw, 25px); line-height: 1.55; letter-spacing: -.02em; }
.filters { margin-top: 34px; padding: 16px; border-radius: 999px; background: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.65); display: inline-flex; flex-wrap: wrap; gap: 10px; box-shadow: 0 20px 70px rgba(42,36,50,.12); }
.filter-btn { border: 0; cursor: pointer; border-radius: 999px; padding: 14px 20px; background: transparent; color: #625c6a; font-weight: 800; font-size: 15px; }
.filter-btn.active { background: #15141d; color: white; box-shadow: 0 14px 36px rgba(21,20,29,.22); }
.tag { display: inline-flex; align-items: center; gap: 9px; padding: 11px 15px; border-radius: 999px; background: linear-gradient(135deg, rgba(233,240,255,.72), rgba(255,230,201,.7)); border: 1px solid rgba(255,255,255,.48); color: #34313d; font-weight: 760; box-shadow: 0 16px 46px rgba(18,16,25,.14); }
.tag.dark { color: white; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.16); }
.tag.active { background: linear-gradient(135deg, #93a7ff, #f4e2ff 58%, #ffd9ba); color: #12111a; }

.project-case { margin-top:56px; display:grid; grid-template-columns:.78fr 1.22fr; gap:34px; align-items:center; }
.project-case.alt { grid-template-columns:1.05fr .95fr; }
.case-copy { align-self:center; }
.project-kicker { color:#817988; font-weight:860; letter-spacing:-.01em; margin-bottom:16px; }
.project-title { font-size:clamp(44px, 5.4vw, 82px); line-height:.92; color:var(--ink); }
.case-copy p { margin:24px 0 0; color:var(--muted); font-size:clamp(18px, 1.5vw, 23px); line-height:1.55; }
.small-note { font-size:16px !important; opacity:.86; }
.case-visual, .case-placeholder { min-height:620px; border-radius:56px; overflow:hidden; box-shadow:var(--shadow); background: radial-gradient(circle at 22% 16%, rgba(145,165,255,.35), transparent 28%), radial-gradient(circle at 80% 72%, rgba(255,230,201,.55), transparent 26%), linear-gradient(135deg, #211f2c, #5a5365 54%, #d7d0ca); }
.case-visual { display:grid; place-items:center; padding:38px; }
.case-visual img { width:100%; height:100%; object-fit:contain; filter: drop-shadow(0 34px 60px rgba(0,0,0,.28)); }
.case-visual-vnoise { background: linear-gradient(135deg, #f2dc20, #f7f2ea 45%, #272433); }
.case-placeholder { display:grid; place-items:center; padding:40px; text-align:center; color:rgba(255,255,255,.62); font-weight:760; font-size:20px; }

.problem-focus { margin-top: 44px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 28px; }
.problem-intro { border-radius: 42px; padding: 38px; background: #15141d; color: white; box-shadow: var(--shadow); }
.problem-intro h3 { font-size: clamp(30px, 3.4vw, 52px); line-height: 1; }
.problem-intro p { margin-top: 20px; color: rgba(255,255,255,.66); font-size: 20px; line-height: 1.55; }
.problem-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.problem-item { min-height: 190px; border-radius: 34px; padding: 26px; position: relative; background: rgba(255,255,255,.58); border: 1px solid rgba(255,255,255,.72); box-shadow: 0 24px 70px rgba(42,36,50,.13); }
.problem-icon { width: 48px; height: 48px; display: inline-grid; place-items: center; margin-bottom: 22px; border-radius: 18px; background: linear-gradient(135deg, #93a7ff, #f4e2ff 56%, #ffd9ba); color: #14131a !important; font-size: 23px; font-weight: 850; box-shadow: 0 18px 46px rgba(70,64,90,.16); }
.problem-item strong { display: block; font-size: 22px; letter-spacing: -.035em; margin-bottom: 10px; }
.problem-item span:not(.problem-icon) { color: var(--muted); line-height: 1.45; }

.compare-panel { margin-top:96px; display:grid; grid-template-columns:.68fr 1.32fr; gap:34px; align-items:start; }
.comparison-table { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.compare-col { border-radius:34px; padding:26px; background:rgba(255,255,255,.62); border:1px solid rgba(255,255,255,.74); box-shadow:0 24px 70px rgba(42,36,50,.13); }
.compare-col.bad { background:rgba(30,28,38,.88); color:#fff; }
.compare-col h3 { font-size:26px; margin-bottom:18px; letter-spacing:-.04em; }
.compare-row { display:grid; grid-template-columns:30px 1fr; gap:10px; padding:14px 0; border-top:1px solid rgba(116,110,124,.18); color:inherit; line-height:1.45; font-weight:650; }
.compare-row span { width:26px; height:26px; display:grid; place-items:center; border-radius:999px; font-weight:900; }
.bad .compare-row span { background:rgba(255,80,80,.16); color:#ff8f87; }
.good .compare-row span { background:rgba(145,165,255,.24); color:#3b50c8; }

.before { margin-top: 96px; }
.before-grid { margin-top: 32px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 26px; align-items: stretch; }
.before-card { min-height: 480px; border-radius: 44px; overflow: hidden; position: relative; box-shadow: var(--shadow); background: #15141d; }
.before-card.after { min-height: 560px; margin-top: -46px; }
.before-card:before { content: attr(data-label); position: absolute; left: 24px; top: 24px; z-index: 2; padding: 12px 16px; border-radius: 999px; background: linear-gradient(135deg, rgba(233,240,255,.9), rgba(255,230,201,.9)); color: #22202a; font-weight: 860; }
.before-card img { width:100%; height:100%; object-fit:cover; }
.before-card.after img { object-fit:contain; padding:32px; background:linear-gradient(135deg, #f7f2ea, #dfe7ff 56%, #2b2938); }

.role-table { margin-top:30px; display:grid; gap:14px; }
.role-table div { padding:18px 20px; border-radius:24px; background:rgba(255,255,255,.58); border:1px solid rgba(255,255,255,.72); box-shadow:0 16px 45px rgba(42,36,50,.09); }
.role-table strong, .role-table span { display:block; }
.role-table strong { margin-bottom:6px; letter-spacing:-.02em; }
.role-table span { color:var(--muted); line-height:1.5; }

.about-section { padding-bottom:140px; }
.about-grid { display:grid; grid-template-columns:.52fr 1.48fr; gap:34px; align-items:stretch; }
.portrait-card { min-height:560px; position:relative; overflow:hidden; border-radius:38px; background: radial-gradient(circle at 72% 18%, rgba(145,165,255,.45), transparent 28%), linear-gradient(135deg, #15141d, #4f485b 58%, #ded6cf); box-shadow:0 28px 80px rgba(16,14,24,.18); }
.portrait-photo { position:absolute; inset:22px 22px 104px; display:grid; place-items:center; border-radius:30px; background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.04)), radial-gradient(circle at 48% 34%, rgba(255,255,255,.5), transparent 22%); border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.58); font-weight:760; }
.portrait-caption { position:absolute; left:22px; right:22px; bottom:22px; padding:20px; border-radius:24px; background:rgba(255,255,255,.68); backdrop-filter:blur(20px); color:#17161f; }
.portrait-caption strong, .portrait-caption span { display:block; }
.portrait-caption strong { font-size:22px; letter-spacing:-.03em; }
.portrait-caption span { margin-top:6px; color:#6c6574; font-size:14px; font-weight:700; }
.timeline-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:54px; align-items:start; }
.timeline { position:relative; padding-left:28px; }
.timeline:before { content:""; position:absolute; left:11px; top:10px; bottom:10px; width:2px; background:linear-gradient(180deg, rgba(145,165,255,.9), rgba(255,226,191,.8)); }
.timeline-item { position:relative; padding-bottom:46px; padding-left:42px; }
.timeline-dot { position:absolute; left:-25px; top:8px; width:24px; height:24px; border-radius:999px; background:linear-gradient(135deg, #93a7ff, #f4e2ff 58%, #ffd9ba); box-shadow:0 12px 34px rgba(70,64,90,.18); border:4px solid rgba(255,255,255,.8); }
.timeline-year { display:inline-flex; margin-bottom:12px; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.7); font-size:13px; font-weight:800; color:#5f5968; }
.timeline-content { padding:28px; border-radius:30px; background:rgba(255,255,255,.54); border:1px solid rgba(255,255,255,.72); box-shadow:0 20px 60px rgba(42,36,50,.1); }
.timeline-content h3 { font-size:26px; margin-bottom:12px; }
.timeline-content p { margin:0; color:var(--muted); line-height:1.6; font-size:17px; }

.reveal { opacity: 0; transform: translateY(28px); animation: rise .85s ease forwards; }
.delay-1 { animation-delay: .12s; }
.delay-2 { animation-delay: .24s; }
@keyframes rise { to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1080px) {
  .hero, .project-case, .project-case.alt, .problem-focus, .compare-panel, .before-grid, .timeline-grid, .about-grid { grid-template-columns: 1fr; }
  .hero-stage { min-height: 620px; }
  .case-visual, .case-placeholder { min-height:520px; }
  .before-card.after { margin-top: 0; }
  .portrait-card { min-height:460px; }
}

@media (max-width: 760px) {
  .nav { padding: 16px 18px; }
  .menu-toggle { display:inline-flex; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.12); color:#fff; padding:10px 14px; font-weight:800; }
  .nav-links { position:fixed; inset:78px 18px auto; display:none; flex-direction:column; align-items:stretch; padding:18px; border-radius:26px; background:rgba(20,19,26,.92); box-shadow:var(--shadow); }
  .nav-links.is-open { display:flex; }
  .section { padding: 76px 18px; }
  .hero { padding-top: 56px; min-height:auto; }
  .hero h1 { font-size: clamp(48px, 14vw, 72px); }
  .hero-lead { font-size: 18px; }
  .hero-stage { min-height: 500px; }
  .hero-mock-main { width:94%; right:-8%; top:14%; }
  .hero-mock-secondary { width:58%; left:-4%; }
  .panel { border-radius: 32px; padding: 26px; }
  .filters { border-radius: 26px; display: flex; }
  .filter-btn { flex: 1 1 auto; padding: 12px 14px; }
  .case-visual, .case-placeholder { min-height:360px; border-radius:34px; padding:20px; }
  .problem-list, .comparison-table { grid-template-columns: 1fr; }
  .before-card, .before-card.after { min-height: 330px; border-radius: 32px; }
  .before-card.after img { padding:18px; }
}
