:root{
    --ink:#12160d;
    --ink-soft:rgba(243,241,230,.7);
    --ink-mute:rgba(243,241,230,.55);
    --paper:#f3f1e6;
    --paper-ink:#181c12;
    --paper-mute:rgba(24,28,18,.6);
    --accent:#4fbf3d;
    --accent-2:#97dd7f;
    --line:rgba(243,241,230,.14);
    --line-dark:rgba(24,28,18,.12);
    --ease:cubic-bezier(.22,1,.36,1);
    --s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:96px;--s7:140px;
    color-scheme: dark light;
  }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --ink:#12160d; --paper:#f3f1e6; } }
  :root[data-theme="dark"]{ --ink:#12160d; --paper:#f3f1e6; }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{
    scroll-behavior:smooth;
    scroll-padding-top: env(safe-area-inset-top,0px);
    height:100%;
  }
  body{
    height:100%;
    font-family:'Onest', -apple-system, sans-serif;
    background:var(--ink);
    color:var(--ink-soft);
    -webkit-font-smoothing:antialiased;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}

  h1,h2,h3{font-weight:300; text-wrap:balance; hyphens:none;}
  h1{font-size:clamp(2.4rem, 6.6vw, 6.4rem); line-height:.92; letter-spacing:-.03em;}
  h2{font-size:clamp(1.9rem, 4.4vw, 3.6rem); line-height:.98; letter-spacing:-.025em;}
  p{font-size:clamp(15px,1.05vw,18px); line-height:1.62; text-wrap:pretty;}
  .label{
    font-size:12px; text-transform:uppercase; letter-spacing:.2em;
    font-weight:500; opacity:.65;
  }

  .wrap{max-width:1440px; margin:0 auto; padding-left:var(--s4); padding-right:var(--s4);}
  @media (max-width:720px){ .wrap{padding-left:var(--s2); padding-right:var(--s2);} }

  /* reveal animation */
  .rise{opacity:0; transform:translateY(28px); filter:blur(14px);}
  .is-in .rise{
    opacity:1; transform:none; filter:blur(0);
    transition:opacity 900ms var(--ease) var(--d,0ms),
               transform 900ms var(--ease) var(--d,0ms),
               filter 900ms var(--ease) var(--d,0ms);
  }
  @media (prefers-reduced-motion: reduce){
    .rise{transition-delay:0ms !important; opacity:1; transform:none; filter:blur(0);}
  }

  /* ===== BLOCK 1 — partners ===== */
  .partners{
    background:var(--paper); color:var(--paper-ink);
    padding:var(--s4) 0 var(--s3);
  }
  .partners__row{
    display:flex; align-items:center; flex-wrap:wrap;
    gap:var(--s5); padding-bottom:var(--s4);
    border-bottom:1px solid var(--line-dark);
  }
  .partners__brand{display:flex; align-items:center; gap:var(--s2);}
  .partners__brand img{height:160px; width:auto;}
  .partners__brand-name{font-size:14px; line-height:1.35; max-width:26ch; opacity:.85;}
  .partners__brand-name b{font-weight:500; display:block; font-size:15px;}
  .partners__logos{display:flex; align-items:center; gap:var(--s5); margin-left:auto;}
  .partners__logos img{height:92px; width:auto;}
  .partners__note{
    padding-top:var(--s3);
    max-width:820px;
    font-size:13px; line-height:1.7; color:var(--paper-mute);
  }
  @media (max-width:720px){
    .partners__row{gap:var(--s3);}
    .partners__logos{margin-left:0; gap:var(--s3);}
    .partners__brand img{height:44px;}
    .partners__logos img{height:56px;}
  }

  /* ===== BLOCK 2 — hero, scheme C 60/40 ===== */
  .hero{
    min-height:100svh;
    display:grid;
    grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
    background:var(--ink);
    position:relative;
  }
  @media (max-width:900px){ .hero{grid-template-columns:minmax(0,1fr); min-height:auto;} }

  .hero__text{
    display:flex; flex-direction:column; justify-content:center;
    padding: var(--s6) var(--s5) var(--s6) var(--s4);
    gap:var(--s3);
    max-width:640px;
    min-width:0;
  }
  @media (max-width:900px){ .hero__text{padding:var(--s6) var(--s2) var(--s4);} }

  .hero__label{color:var(--accent-2);}
  .hero__title{margin-top:var(--s2);}
  .hero__sub{
    max-width:52ch; color:var(--ink-soft); font-size:clamp(15px,1.15vw,18px);
  }
  .hero__note{
    max-width:52ch; color:var(--ink-mute); font-size:14px; line-height:1.7;
  }

  .hero__cta{
    margin-top:var(--s2);
    display:flex; align-items:center; gap:var(--s3); flex-wrap:wrap;
  }
  .btn{
    position:relative; overflow:hidden; display:inline-flex; align-items:center;
    height:52px; padding:0 30px; min-width:44px;
    background:var(--accent); color:#0d130a;
    font-family:inherit; font-size:14px; font-weight:500;
    letter-spacing:.01em; cursor:pointer; border:none;
  }
  .btn__fill{position:absolute; inset:0; background:var(--accent-2);
    transform:scaleX(0); transform-origin:left;
    transition:transform 500ms var(--ease);}
  .btn:hover .btn__fill{transform:scaleX(1);}
  .btn__label{position:relative; z-index:2;}
  .btn--ghost{
    background:transparent; color:var(--ink-soft);
    border:1px solid var(--line);
  }
  .btn--ghost .btn__fill{background:rgba(243,241,230,.08);}
  .cta-reassure{font-size:12px; color:var(--ink-mute);}

  .hero__panel{
    position:relative; overflow:hidden;
    border-left:1px solid var(--line);
    background:
      radial-gradient(120% 100% at 100% 0%, rgba(90,171,73,.16), transparent 55%),
      #0c0f08;
    min-height:420px;
    min-width:0;
  }
  .hero__panel svg{position:absolute; inset:0; width:100%; height:100%; display:block;}
  @media (max-width:900px){ .hero__panel{min-height:340px; border-left:none; border-top:1px solid var(--line);} }

  /* ===== BLOCK 3 — 3D model ===== */
  .model{
    background:var(--paper); color:var(--paper-ink);
    padding: var(--s6) 0;
  }
  .model__head{
    display:grid; grid-template-columns:1fr 1fr; gap:var(--s5);
    padding-bottom:var(--s5);
  }
  @media (max-width:900px){ .model__head{grid-template-columns:1fr; gap:var(--s3);} }
  .model__head p{max-width:52ch; color:var(--paper-mute);}

  .model__stage{
    position:relative;
    width:100%;
    aspect-ratio: 16 / 9;
    max-height:720px;
    background:#1b2016;
    border:1px solid var(--line-dark);
    overflow:hidden;
  }
  @media (max-width:720px){ .model__stage{ aspect-ratio: 4 / 5; } }
  .model__canvas-wrap{position:absolute; inset:0;}
  .model__canvas-wrap canvas{display:block; width:100% !important; height:100% !important;}
  .model__hint{
    position:absolute; left:var(--s3); bottom:var(--s3);
    font-size:12px; letter-spacing:.08em; text-transform:uppercase;
    color:rgba(243,241,230,.55);
    display:flex; align-items:center; gap:10px;
  }
  .model__hint .dot{width:6px;height:6px;background:var(--accent-2); display:inline-block;}
  .model__loading{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:rgba(243,241,230,.5); font-size:13px; letter-spacing:.08em; text-transform:uppercase;
    transition:opacity 500ms var(--ease);
  }

  .model__explode{
    position:absolute; right:var(--s3); top:50%; transform:translateY(-50%);
    width:44px;
    display:flex; flex-direction:column; align-items:center;
    z-index:5;
  }
  .model__explode-tag{
    font-size:10px; letter-spacing:.1em; text-transform:uppercase;
    color:rgba(243,241,230,.5); white-space:nowrap;
  }
  .model__explode-track{ position:relative; width:44px; height:380px; margin:12px 0; }
  @media (max-width:720px){ .model__explode-track{ height:220px; } }
  .model__explode input[type=range]{
    position:absolute; top:50%; left:50%;
    width:380px; height:24px;
    transform: translate(-50%,-50%) rotate(-90deg);
    margin:0; padding:0;
    -webkit-appearance:none; appearance:none;
    background:transparent; cursor:ns-resize;
  }
  @media (max-width:720px){ .model__explode input[type=range]{ width:220px; } }
  .model__explode input[type=range]::-webkit-slider-runnable-track{
    height:3px; background:rgba(243,241,230,.22);
  }
  .model__explode input[type=range]::-moz-range-track{
    height:3px; background:rgba(243,241,230,.22);
  }
  .model__explode input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none;
    width:16px; height:16px; border-radius:50%;
    background:var(--accent-2); margin-top:-6.5px;
    box-shadow:0 0 0 4px rgba(151,221,127,.18);
  }
  .model__explode input[type=range]::-moz-range-thumb{
    width:16px; height:16px; border-radius:50%; border:none;
    background:var(--accent-2); box-shadow:0 0 0 4px rgba(151,221,127,.18);
  }
  .model__future{
    margin-top:var(--s5); padding-top:var(--s5); border-top:1px solid var(--line-dark);
    display:grid; grid-template-columns:1fr 2fr; gap:var(--s5);
  }
  @media (max-width:900px){ .model__future{grid-template-columns:1fr; gap:var(--s2);} }
  .model__future-title{
    font-size:clamp(1.5rem, 2.6vw, 2.1rem); font-weight:400;
    letter-spacing:-.01em; color:var(--paper-ink);
  }
  .model__future p{color:var(--paper-mute); max-width:60ch;}

  /* ===== BLOCK 4 — footer ===== */
  .footer{
    background:var(--ink); color:var(--ink-soft);
    padding: var(--s7) 0 var(--s4);
    position:relative;
  }
  .footer__top{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:var(--s4); flex-wrap:wrap;
    padding-bottom:var(--s6);
  }
  .footer__title{max-width:14ch;}
  .footer__tag{color:var(--ink-mute); max-width:38ch; font-size:14px;}
  .footer__contacts{
    display:flex; flex-direction:column; gap:var(--s2);
    border-top:1px solid var(--line); padding-top:var(--s4);
  }
  .footer__contact-row{
    display:flex; gap:var(--s5); flex-wrap:wrap; align-items:baseline;
  }
  .footer__contact-link{
    font-size:clamp(1.4rem,3.2vw,2.4rem); font-weight:300; letter-spacing:-.02em;
    position:relative; display:inline-block;
  }
  .footer__contact-link::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px;
    background:var(--accent-2); transform:scaleX(0); transform-origin:left;
    transition:transform 520ms var(--ease);
  }
  .footer__contact-link:hover::after{transform:scaleX(1);}
  .footer__meta{
    margin-top:var(--s6); padding-top:var(--s3); border-top:1px solid var(--line);
    display:flex; justify-content:space-between; gap:var(--s3); flex-wrap:wrap;
    font-size:12px; color:var(--ink-mute); letter-spacing:.03em;
  }
