﻿/* Styles extracted from the original HTML prototype. */
:root{
      --bg:#fffaf0;
      --white:#fff;
      --text:#05070a;
      --muted:#26313d;
      --muted-2:#3a4654;
      --blue:#d6a20b;
      --blue-2:#f5c542;
      --blue-3:#fff2bf;
      --cyan:#ffd95a;
      --line:#f2dfaa;
      --shadow:0 24px 70px rgba(116, 86, 22, .14);
      --shadow-soft:0 14px 40px rgba(116, 86, 22, .10);
      --border:#efe1b8;
      --radius:24px;
      --cursor-wire: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><circle cx='12' cy='12' r='7' fill='%23d6a20b' fill-opacity='0.20'/><circle cx='12' cy='12' r='4.5' fill='%23d6a20b'/><circle cx='12' cy='12' r='1.7' fill='white'/></svg>") 12 12, crosshair;
      --cursor-wire-active: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><circle cx='12' cy='12' r='8.5' fill='%23d6a20b' fill-opacity='0.20'/><circle cx='12' cy='12' r='5.4' fill='%23b88300'/><path d='M12 5.8 L13.6 11.1 L11.4 11.1 L13 18.2 L10.4 12.7 L12.6 12.7 Z' fill='white'/></svg>") 12 12, grabbing;
    }

    *{box-sizing:border-box}
    html{
      max-width:100%;
      overflow-x:hidden;
      scroll-behavior:smooth;
      scroll-padding-top:92px;
    }
    body{
      margin:0;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
      color:var(--text);
      background:#fffaf0;
      overflow-x:hidden;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
    }

    a{text-decoration:none;color:inherit}
    button,input,textarea{font:inherit}

    .circuit-bg{
      position:fixed;
      inset:0;
      z-index:-10;
      pointer-events:none;
      background:
        radial-gradient(circle at 24% 12%, rgba(245,197,66,.10), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,250,240,.82));
      background-size:cover;
      background-position:center top;
    }

    .container{
      width:min(1180px, calc(100% - 160px));
      margin:0 auto;
    }

    .nav .container{
      width:min(1280px, calc(100% - 48px));
    }

    footer.container{
      width:100%;
      max-width:none;
    }

    /* Loader */
    .loader{
      position:fixed;
      inset:0;
      z-index:1000;
      display:grid;
      place-items:center;
      background:
        radial-gradient(circle at center, rgba(18,34,55,.96), rgba(8,16,30,.98) 44%, #050b16 100%);
      color:#fff;
      transition:opacity .45s ease, visibility .45s ease;
    }
    .loader.hide{opacity:0;visibility:hidden}
    .loader-center{
      text-align:center;
      opacity:.95;
      transform:translateY(4px);
    }
    .loader-title{
      font-weight:800;
      font-size:13px;
      letter-spacing:-.02em;
    }
    .loader-subtitle{
      margin-top:6px;
      color:rgba(255,255,255,.42);
      font-size:10px;
    }
    .bulb-rail{
      position:absolute;
      top:0;
      height:100%;
      width:52px;
      display:flex;
      flex-direction:column;
      justify-content:center;
      gap:14px;
      align-items:center;
    }
    .bulb-rail.left{left:24px}
    .bulb-rail.right{right:24px}
    .loader-bulb{
      width:12px;
      height:12px;
      border-radius:50%;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      box-shadow:inset 0 0 10px rgba(0,0,0,.75);
      transition:.22s ease;
    }
    .loader-bulb.on{
      background:#f8ffbc;
      border-color:#ffffc8;
      box-shadow:0 0 14px #f7ff93, 0 0 34px rgba(94,225,255,.58);
    }

    .page{
      padding-top:70px;
      opacity:0;
      transform:translateY(12px);
      transition:opacity .45s ease, transform .45s ease;
    }
    .page.ready{
      opacity:1;
      transform:none;
    }

    /* Navbar */
    .nav{
      position:fixed;
      top:0;
      left:0;
      right:0;
      z-index:80;
      padding-top:0;
      pointer-events:none;
    }
    .nav-inner{
      width:100%;
      margin:0 auto;
      min-height:70px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:22px;
      padding:12px 18px;
      border-radius:0 0 24px 24px;
      border:0;
      border-bottom:1px solid rgba(200,221,245,.9);
      background:rgba(255,255,255,.86);
      box-shadow:0 12px 32px rgba(116, 86, 22, .08);
      pointer-events:auto;
    }
    .logo{
      display:flex;
      align-items:center;
      gap:13px;
      color:#05070a;
      font-weight:950;
      letter-spacing:-.02em;
      text-shadow:0 1px 0 rgba(255,255,255,.72), 0 10px 24px rgba(0,0,0,.10);
    }
    .logo > span:last-child{color:#05070a}
    .logo-icon{
      width:38px;
      height:38px;
      border-radius:50%;
      display:grid;
      place-items:center;
      color:#2f260f;
      font-size:18px;
      background:linear-gradient(135deg, #f7d95c, #d49a00);
      box-shadow:0 10px 24px rgba(214,162,11,.30);
    }
    .nav-links{
      display:flex;
      gap:34px;
      color:#718299;
      font-weight:650;
      font-size:15px;
    }
    .nav-links a{
      transition:.2s ease;
    }
    .nav-links a:hover{
      color:var(--blue);
    }
    .nav-button{
      min-height:46px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 26px;
      border-radius:999px;
      background:linear-gradient(135deg, #d49a00, #f5c542);
      color:#2f260f;
      font-weight:800;
      box-shadow:0 10px 22px rgba(214,162,11,.24);
      transition:transform .18s ease, box-shadow .18s ease;
    }
    .nav-button:hover{
      transform:translateY(-2px);
      box-shadow:0 14px 28px rgba(214,162,11,.30);
    }

    .mobile-menu-toggle,
    .mobile-menu-scrim,
    .mobile-menu{
      display:none;
    }

    .mobile-menu-toggle{
      width:44px;
      height:44px;
      border:1px solid rgba(95,95,86,.18);
      border-radius:16px;
      background:rgba(255,255,255,.92);
      box-shadow:0 10px 24px rgba(116,86,22,.10);
      align-items:center;
      justify-content:center;
      flex-direction:column;
      gap:5px;
      cursor:pointer;
      margin-left:auto;
      color:#05070a;
    }

    .mobile-menu-toggle span{
      width:20px;
      height:2px;
      border-radius:999px;
      background:#05070a;
      transition:transform .18s ease, opacity .18s ease;
    }

    body.mobile-menu-open{
      overflow:hidden;
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(1){
      transform:translateY(7px) rotate(45deg);
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(2){
      opacity:0;
    }

    body.mobile-menu-open .mobile-menu-toggle span:nth-child(3){
      transform:translateY(-7px) rotate(-45deg);
    }

    .mobile-menu-scrim{
      position:fixed;
      inset:0;
      z-index:88;
      background:rgba(5,7,10,.34);
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .18s ease, visibility .18s ease;
    }

    .mobile-menu{
      position:fixed;
      top:0;
      right:0;
      z-index:89;
      width:min(330px, calc(100vw - 44px));
      height:100vh;
      height:100dvh;
      padding:18px;
      flex-direction:column;
      gap:18px;
      background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,244,232,.98));
      border-left:1px solid rgba(95,95,86,.20);
      box-shadow:-22px 0 60px rgba(20,20,18,.24);
      opacity:0;
      clip-path:inset(0 0 0 100%);
      visibility:hidden;
      pointer-events:none;
      transition:clip-path .22s cubic-bezier(.2,.8,.2,1), opacity .18s ease, visibility .22s ease;
    }

    body.mobile-menu-open .mobile-menu-scrim{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }

    body.mobile-menu-open .mobile-menu{
      opacity:1;
      clip-path:inset(0);
      visibility:visible;
      pointer-events:auto;
    }

    .mobile-menu-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      min-height:52px;
      padding:0 2px 12px;
      border-bottom:1px solid rgba(95,95,86,.14);
      color:#05070a;
      font-weight:950;
      letter-spacing:-.02em;
      font-size:20px;
    }

    .mobile-menu-close{
      width:42px;
      height:42px;
      border:0;
      border-radius:50%;
      background:#fff1b8;
      color:#05070a;
      font-size:24px;
      font-weight:900;
      cursor:pointer;
    }

    .mobile-menu-links{
      display:grid;
      gap:10px;
    }

    .mobile-menu-links a{
      min-height:48px;
      display:flex;
      align-items:center;
      padding:0 16px;
      border-radius:16px;
      color:#05070a;
      background:rgba(255,255,255,.76);
      border:1px solid rgba(95,95,86,.12);
      font-weight:850;
      box-shadow:0 10px 24px rgba(49,45,33,.06);
    }

    .mobile-menu-cta{
      min-height:52px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top:auto;
      border-radius:999px;
      color:#2f260f;
      background:linear-gradient(135deg,#d49a00,#f5c542);
      font-weight:950;
      box-shadow:0 14px 32px rgba(214,162,11,.28);
    }

    /* Hero */
    .hero{
      min-height:calc(100vh - 120px);
      display:grid;
      align-items:center;
      padding:84px 0 70px;
    }
    .hero-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:58px;
      align-items:center;
      max-width:1500px;
      margin:0 auto;
    }
    .hero-copy{
      position:relative;
      z-index:1;
      max-width:690px;
      padding:28px 30px 30px;
      border-radius:28px;
      background:linear-gradient(90deg, rgba(255,255,255,.88), rgba(255,255,255,.66) 72%, rgba(255,255,255,.30));
      box-shadow:0 20px 60px rgba(28,24,15,.12);
      backdrop-filter:blur(1.5px);
    }
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 14px;
      border-radius:999px;
      border:1px solid #f2dfaa;
      background:rgba(255,255,255,.84);
      color:#74859a;
      font-weight:700;
      font-size:14px;
      box-shadow:0 8px 24px rgba(20,93,180,.06);
    }
    .eyebrow::before{
      content:"";
      width:7px;
      height:7px;
      border-radius:50%;
      background:#d6a20b;
      box-shadow:0 0 0 6px rgba(214,162,11,.12);
    }
    .hero h1{
      margin:30px 0 22px;
      max-width:650px;
      font-size:58px;
      line-height:1.08;
      letter-spacing:-.055em;
      font-weight:850;
      color:#020305;
      text-shadow:
        0 1px 0 rgba(255,255,255,.92),
        0 2px 0 rgba(255,255,255,.72),
        0 4px 14px rgba(255,255,255,.70),
        0 12px 32px rgba(0,0,0,.22);
    }
    .hero h1 .blue{
      background:none;
      -webkit-background-clip:initial;
      color:#d18400;
      filter:none;
      text-shadow:
        0 1px 0 rgba(255,255,255,.90),
        0 2px 0 rgba(99,61,0,.34),
        0 8px 20px rgba(88,54,0,.28);
    }
    .hero-text{
      margin:0;
      max-width:650px;
      color:#1f2935;
      font-size:18px;
      line-height:1.62;
      font-weight:720;
      text-shadow:
        0 1px 0 rgba(255,255,255,.95),
        0 3px 12px rgba(255,255,255,.72);
    }
    .hero-actions{
      display:flex;
      gap:16px;
      margin-top:32px;
    }
    .btn{
      min-height:54px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:0;
      border-radius:999px;
      padding:0 26px;
      font-weight:800;
      cursor:pointer;
      transition:.25s ease;
    }
    .btn-primary{
      color:#2f260f;
      background:linear-gradient(135deg,#d49a00,#f5c542);
      box-shadow:0 14px 32px rgba(214,162,11,.30);
    }
    .btn-primary:hover{
      transform:translateY(-2px);
      box-shadow:0 18px 42px rgba(214,162,11,.38);
    }
    .btn-secondary{
      color:#354154;
      background:#fff;
      border:1px solid #e1eaf6;
      box-shadow:0 12px 26px rgba(116,86,22,.07);
    }
    .btn-secondary:hover{
      transform:translateY(-2px);
      border-color:#e2d0a1;
    }
    .hero-mini{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:14px;
      margin-top:28px;
      max-width:610px;
    }
    .mini-card{
      min-height:86px;
      padding:18px 20px;
      border-radius:18px;
      border:1px solid #e1eaf6;
      background:rgba(255,255,255,.88);
      box-shadow:0 14px 32px rgba(116,86,22,.08);
    }
    .mini-card strong{
      display:block;
      font-size:13px;
      color:#233044;
      margin-bottom:7px;
    }
    .mini-card span{
      display:block;
      color:#79889c;
      line-height:1.35;
      font-size:12.5px;
      font-weight:550;
    }

    /* Electric panel */
    .panel-area{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:18px;
      overflow:visible;
      perspective:1400px;
    }
    .electric-panel{
      width:min(500px, 100%);
      aspect-ratio:1/1;
      border-radius:36px;
      padding:24px;
      position:relative;
      background:rgba(255,255,255,.88);
      border:1px solid #dceaf9;
      box-shadow:0 22px 54px rgba(116,86,22,.13);
      overflow:visible;
      isolation:isolate;
      transform-style:preserve-3d;
    }
    .electric-panel::before{
      content:"";
      position:absolute;
      inset:22px;
      border-radius:26px;
      background:linear-gradient(180deg,#eff8ff,#dceeff);
      border:1px solid #d5e7fb;
      z-index:0;
      box-shadow:0 14px 34px rgba(116,86,22,.07);
    }
    
    
    
    .panel-inside{
      position:absolute;
      inset:42px;
      z-index:1;
      border-radius:22px;
      background:linear-gradient(180deg,#f7f7f0,#dedbcf);
      border:1px solid rgba(95,95,86,.28);
      opacity:0;
      transform:scale(.98);
      transition:opacity .28s ease, transform .28s ease;
      overflow:hidden;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.70);
    }
    .panel-inside::before{
      content:"";
      position:absolute;
      inset:12px;
      border-radius:18px;
      border:1px solid rgba(58,58,52,.22);
      background:linear-gradient(180deg, rgba(255,255,255,.28), rgba(80,80,72,.05));
      pointer-events:none;
    }
    .panel-photo-frame{
      position:absolute;
      inset:14px;
      border-radius:16px;
      display:grid;
      place-items:center;
      overflow:hidden;
      background:#1f2328;
      border:1px solid rgba(58,58,52,.20);
      box-shadow:inset 0 0 0 5px rgba(255,255,255,.18), 0 8px 18px rgba(0,0,0,.12);
    }
    .panel-photo-frame img{
      width:100%;
      height:100%;
      display:block;
      object-fit:contain;
      object-position:center;
    }
    .panel-door{
      position:absolute;
      inset:42px;
      z-index:2;
      border-radius:22px;
      background:linear-gradient(180deg,#edf7ff,#d9ecff);
      border:1px solid #d2e4f8;
      display:grid;
      place-items:center;
      transition:transform .46s cubic-bezier(.18,.82,.18,1), box-shadow .46s cubic-bezier(.18,.82,.18,1);
      transform-origin:left center;
      transform:perspective(1200px) rotateY(0deg);
      transform-style:preserve-3d;
      backface-visibility:visible;
      box-shadow:0 16px 34px rgba(20,90,170,.10);
      will-change:transform;
      pointer-events:none;
    }
    .panel-door::before{
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      background:
        linear-gradient(90deg, rgba(105,124,145,.24), transparent 10%, transparent 84%, rgba(255,255,255,.5)),
        linear-gradient(180deg,#d8e5f0,#eef6ff);
      border:1px solid rgba(125,145,166,.28);
      box-shadow:inset 10px 0 20px rgba(72,91,112,.12);
      transform:translateZ(-2px) rotateY(180deg);
      backface-visibility:hidden;
    }
    .panel-door::after{
      content:"";
      position:absolute;
      right:22px;
      top:50%;
      transform:translateY(-50%);
      width:6px;
      height:52px;
      border-radius:999px;
      background:#c0d3e8;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);
    }
    .door-center{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:18px;
      color:#70839a;
      font-weight:800;
      letter-spacing:.26em;
      font-size:13px;
      position:relative;
      z-index:1;
      backface-visibility:hidden;
    }
    .bolt-square{
      width:64px;
      height:64px;
      display:grid;
      place-items:center;
      color:#2f260f;
      font-size:30px;
      border-radius:18px;
      background:linear-gradient(135deg,#f5c542,#d49a00);
      box-shadow:0 14px 30px rgba(214,162,11,.28);
    }
    .electric-panel:hover .panel-door,
    .electric-panel.panel-animating .panel-door,
    .electric-panel.panel-settled .panel-door{
      transform:perspective(1200px) translateX(-6px) rotateY(-118deg);
      box-shadow:22px 18px 38px rgba(20,90,170,.14);
    }
    .electric-panel:hover .panel-inside,
    .electric-panel.panel-animating .panel-inside,
    .electric-panel.panel-settled .panel-inside{
      opacity:1;
      transform:scale(1);
    }
    .panel-hint{
      color:#8999ad;
      font-weight:700;
      font-size:14px;
    }

    /* Sections */
    section{
      padding:84px 0;
    }
    .section-head{
      max-width:940px;
      margin:0 0 46px;
    }
    .section-head.center{
      text-align:left;
    }
    .section-head h2{
      margin:0 0 12px;
      font-size:42px;
      line-height:1.12;
      letter-spacing:-.045em;
      font-weight:850;
    }
    .section-head p{
      margin:0;
      color:#718299;
      font-size:18px;
      line-height:1.5;
      font-weight:520;
    }

    /* Tasks */
    .task-grid{
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:34px;
    }
    .task-card{
      position:relative;
      min-height:168px;
      padding:36px 34px 30px;
      border-radius:24px;
      background:rgba(255,255,255,.90);
      border:1px solid #e0ebf7;
      box-shadow:0 22px 52px rgba(116,86,22,.10);
      transition:.28s ease;
    }
    .task-card:hover{
      transform:translateY(-4px);
      border-color:#f1cf68;
      box-shadow:0 26px 70px rgba(214,162,11,.16), 0 0 0 1px rgba(214,162,11,.08);
    }
    .task-card.in-view{
      transform:translateY(-4px);
      border-color:#f1cf68;
      box-shadow:0 26px 70px rgba(214,162,11,.16), 0 0 0 1px rgba(214,162,11,.08);
    }
    .task-lamp{
      position:absolute;
      top:-32px;
      left:50%;
      transform:translateX(-50%);
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:0;
      opacity:1;
    }
    .task-lamp::before{
      content:"";
      width:2px;
      height:22px;
      background:#3d4650;
      box-shadow:0 0 0 1px rgba(255,255,255,.45);
    }
    .task-lamp::after{
      content:"";
      width:36px;
      height:36px;
      display:grid;
      place-items:center;
      border-radius:50%;
      color:#8494a9;
      font-size:16px;
      background:radial-gradient(circle at 42% 34%, #f6f0dc 0 16%, #c5b27a 42%, #7e744f 70%, #34312b 100%);
      border:2px solid #d8cfac;
      box-shadow:0 8px 18px rgba(42,35,20,.24), inset 0 4px 7px rgba(255,255,255,.30), inset 0 -7px 12px rgba(20,18,13,.42);
      transition:.28s ease;
    }
    .task-card:hover .task-lamp::after{
      filter:none;
      color:#f59e0b;
      background:radial-gradient(circle at 45% 35%, #fff 0 18%, #fff1a6 40%, #f5c542 68%, #a97503 100%);
      border-color:#ffe266;
      box-shadow:0 0 24px rgba(255,226,102,.95), 0 0 48px rgba(214,162,11,.30), inset 0 -5px 10px rgba(80,54,0,.24);
    }
    .task-card.in-view .task-lamp::after{
      filter:none;
      color:#f59e0b;
      background:radial-gradient(circle at 45% 35%, #fff 0 18%, #fff1a6 40%, #f5c542 68%, #a97503 100%);
      border-color:#ffe266;
      box-shadow:0 0 24px rgba(255,226,102,.95), 0 0 48px rgba(214,162,11,.30), inset 0 -5px 10px rgba(80,54,0,.24);
    }
    .task-card h3,
    .service-card h3{
      margin:0 0 16px;
      font-size:21px;
      letter-spacing:-.025em;
      font-weight:800;
    }
    .task-card p,
    .service-card p{
      margin:0;
      color:#6f7f94;
      font-size:16px;
      line-height:1.55;
      font-weight:530;
    }

    /* Services */
    .service-grid{
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:30px;
    }
    .service-card{
      position:relative;
      min-height:220px;
      padding:34px 30px;
      border-radius:24px;
      background:rgba(255,255,255,.90);
      border:1px solid #e0ebf7;
      box-shadow:0 14px 34px rgba(116,86,22,.07);
      overflow:hidden;
      transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
      isolation:isolate;
    }
    .service-card::before{
      content:"";
      position:absolute;
      inset:0;
      opacity:0;
      transition:opacity .18s ease;
      z-index:-1;
      background:
        url("data:image/svg+xml,%3Csvg width='360' height='260' viewBox='0 0 360 260' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23d6a20b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' opacity='.34'%3E%3Cpath d='M12 46h64v-24h54v58h84'/%3E%3Cpath d='M46 202h78v-42h66v38h68v-22h82'/%3E%3Cpath d='M20 120h70v32h58v-66h72v34h58v-24h64'/%3E%3Cpath d='M196 26h76v34h70'/%3E%3Cpath d='M210 230h46v-28h52v22h36'/%3E%3C/g%3E%3Cg fill='%23d6a20b' opacity='.28'%3E%3Ccircle cx='12' cy='46' r='3'/%3E%3Ccircle cx='214' cy='80' r='3'/%3E%3Ccircle cx='46' cy='202' r='3'/%3E%3Ccircle cx='340' cy='176' r='3'/%3E%3Ccircle cx='20' cy='120' r='3'/%3E%3Ccircle cx='342' cy='96' r='3'/%3E%3Ccircle cx='196' cy='26' r='3'/%3E%3Ccircle cx='342' cy='60' r='3'/%3E%3Ccircle cx='210' cy='230' r='3'/%3E%3Ccircle cx='344' cy='224' r='3'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(135deg,rgba(214,162,11,.06),rgba(255,255,255,0));
      background-size:cover;
      background-position:center;
    }
    .service-card:hover{
      transform:translateY(-4px);
      border-color:#f1cf68;
      box-shadow:0 18px 40px rgba(214,162,11,.13);
    }
    .service-card.in-view{
      transform:translateY(-4px);
      border-color:#f1cf68;
      box-shadow:0 18px 40px rgba(214,162,11,.13);
    }
    .service-card:hover::before{
      opacity:1;
    }
    .service-card.in-view::before{
      opacity:1;
    }
    .price{
      display:inline-block;
      margin-top:18px;
      color:#d6a20b;
      font-weight:850;
      font-size:16px;
    }


    /* Projects */
    .projects-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:26px;
      align-items:start;
    }
    .project-card{
      position:relative;
      border-radius:28px;
      background:rgba(255,255,255,.93);
      border:1px solid #e0ebf7;
      box-shadow:0 16px 36px rgba(116,86,22,.09);
      overflow:hidden;
      transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }
    .project-card:hover{
      transform:translateY(-3px);
      border-color:#f1cf68;
      box-shadow:0 18px 44px rgba(214,162,11,.12);
    }
    .project-card.open{
      grid-column:1 / -1;
      transform:none;
    }
    .project-preview{
      min-height:116px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      padding:28px 30px;
      cursor:pointer;
      user-select:none;
    }
    .project-title-wrap{
      display:flex;
      align-items:center;
      gap:18px;
      min-width:0;
    }
    .project-icon{
      width:54px;
      height:54px;
      flex:0 0 auto;
      border-radius:18px;
      display:grid;
      place-items:center;
      color:#2f260f;
      font-size:24px;
      background:linear-gradient(135deg,#f5c542,#d49a00);
      box-shadow:0 14px 30px rgba(214,162,11,.23);
    }
    .project-preview h3{
      margin:0 0 6px;
      font-size:22px;
      letter-spacing:-.025em;
      font-weight:850;
      color:#1f2937;
    }
    .project-preview p{
      margin:0;
      color:#738399;
      font-size:14px;
      font-weight:650;
    }
    .project-open-indicator{
      width:42px;
      height:42px;
      flex:0 0 auto;
      display:grid;
      place-items:center;
      border-radius:50%;
      border:1px solid #dbe6f3;
      background:#fff;
      color:#d6a20b;
      font-size:24px;
      font-weight:800;
      transition:transform .18s ease, background .18s ease;
    }
    .project-card.open .project-open-indicator{
      transform:rotate(45deg);
      background:#fff7da;
    }
    .project-expanded{
      display:none;
      overflow:hidden;
    }
    .project-card.open .project-expanded{
      display:block;
    }
    .project-expanded-inner{
      min-height:0;
      display:grid;
      grid-template-columns:minmax(0, .86fr) minmax(420px, 1.14fr);
      gap:34px;
      padding:0 30px 32px;
    }
    .project-nav{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:0 30px 30px;
    }
    .project-nav-btn{
      min-height:46px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid rgba(214,162,11,.28);
      border-radius:999px;
      padding:0 22px;
      background:#fff7da;
      color:#2f260f;
      font-weight:850;
      cursor:pointer;
      transition:transform .16s ease, background .16s ease, border-color .16s ease;
    }
    .project-nav-btn:hover{
      transform:translateY(-2px);
      background:#f5c542;
      border-color:#d6a20b;
    }
    .project-nav-next{
      margin-left:auto;
    }
    .project-text{
      padding:30px;
      border-radius:24px;
      background:#f8fbff;
      border:1px solid #e2edf8;
    }
    .project-text h4{
      margin:0 0 14px;
      font-size:24px;
      line-height:1.18;
      letter-spacing:-.035em;
      font-weight:850;
    }
    .project-text p{
      margin:0 0 18px;
      color:#67788f;
      font-size:16px;
      line-height:1.55;
      font-weight:540;
    }
    .project-tags{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin:20px 0 22px;
    }
    .project-tag{
      display:inline-flex;
      min-height:34px;
      align-items:center;
      padding:0 13px;
      border-radius:999px;
      background:#fff;
      border:1px solid #dce9f6;
      color:#55708e;
      font-size:13px;
      font-weight:800;
    }
    .project-list-title{
      margin:18px 0 10px;
      color:#2b3748;
      font-size:15px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.07em;
    }
    .project-list{
      margin:0;
      padding:0;
      list-style:none;
      display:grid;
      gap:10px;
    }
    .project-list li{
      position:relative;
      padding-left:26px;
      color:#536478;
      line-height:1.42;
      font-weight:650;
    }
    .project-list li::before{
      content:"";
      position:absolute;
      left:0;
      top:.55em;
      width:10px;
      height:10px;
      border-radius:50%;
      background:#d6a20b;
      box-shadow:0 0 0 5px rgba(214,162,11,.10);
    }
    .project-gallery{
      min-width:0;
      border-radius:24px;
      background:#f8fbff;
      border:1px solid #e2edf8;
      padding:18px;
    }
    .project-main-photo{
      min-height:354px;
      border-radius:20px;
      overflow:hidden;
      position:relative;
      background:var(--project-photo);
      background-size:cover;
      background-position:center;
      border:1px solid #d6e8f9;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
      transition:background-image .12s ease;
    }
    .project-main-photo::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(5,34,66,.00), rgba(5,34,66,.28));
      pointer-events:none;
    }
    .project-main-label{
      position:absolute;
      left:18px;
      bottom:18px;
      display:inline-flex;
      align-items:center;
      min-height:34px;
      padding:0 14px;
      border-radius:999px;
      color:white;
      font-size:13px;
      font-weight:850;
      background:rgba(13,50,87,.56);
      border:1px solid rgba(255,255,255,.24);
    }
    .project-thumbs{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:12px;
      margin-top:14px;
    }
    .project-thumb{
      height:82px;
      border:0;
      border-radius:16px;
      background:var(--project-photo);
      background-size:cover;
      background-position:center;
      cursor:pointer;
      position:relative;
      overflow:hidden;
      box-shadow:inset 0 0 0 1px rgba(214,162,11,.12);
      transition:transform .16s ease, box-shadow .16s ease;
    }
    .project-thumb:hover,
    .project-thumb.active{
      transform:translateY(-2px);
      box-shadow:inset 0 0 0 3px rgba(214,162,11,.35), 0 10px 24px rgba(214,162,11,.12);
    }
    .project-thumb::after{
      content:attr(data-label);
      position:absolute;
      left:8px;
      right:8px;
      bottom:8px;
      min-height:22px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      color:white;
      font-size:10px;
      font-weight:850;
      background:rgba(10,34,62,.50);
    }


    .projects-grid.has-open{
      grid-template-columns:1fr;
    }
    .project-card.is-hiding{
      pointer-events:none;
    }
    .project-card.is-hidden{
      display:none;
    }
    .project-card.open.from-left{
      transform-origin:top left;
      animation:none;
    }
    .project-card.open.from-right{
      transform-origin:top right;
      animation:none;
    }
    .project-main-photo{
      background-size:cover;
      background-repeat:no-repeat;
      background-color:#eef6ff;
    }
    .project-main-caption{
      position:absolute;
      left:18px;
      right:18px;
      bottom:62px;
      display:block;
      padding:10px 14px;
      border-radius:16px;
      color:white;
      font-size:13px;
      line-height:1.35;
      font-weight:750;
      background:rgba(13,50,87,.48);
      border:1px solid rgba(255,255,255,.20);
    }
    .project-thumbs{
      grid-template-columns:repeat(4, minmax(0, 1fr));
    }
    .project-thumb{
      background-size:cover;
      background-position:center;
    }
    .project-card.open .project-expanded-inner{
      animation:projectContentIn .2s ease both;
    }
    @keyframes projectContentIn{
      from{opacity:0; transform:translateY(12px)}
      to{opacity:1; transform:translateY(0)}
    }


    @media (max-width:1100px){
      .project-expanded-inner{
        grid-template-columns:1fr;
      }
    }
    @media (max-width:760px){
      .projects-grid{
        grid-template-columns:1fr;
      }
      .project-card.open{
        grid-column:auto;
      }
      .project-expanded-inner{
        padding:0 18px 22px;
      }
      .project-nav{
        padding:0 18px 22px;
        flex-direction:column;
      }
      .project-nav-btn{
        width:100%;
      }
      .project-preview{
        padding:22px 20px;
      }
      .project-main-photo{
        min-height:270px;
      }
      .project-thumbs{
        grid-template-columns:repeat(2,1fr);
      }
      .request-cta{
        display:grid;
        padding:22px;
      }
      .request-cta .btn{
        width:100%;
      }
    }


    /* Game */
    .game-wrap{
      display:grid;
      grid-template-columns:360px minmax(0, 1fr);
      gap:30px;
      align-items:stretch;
    }
    .info-panel,
    .game-board,
    .calc-panel,
    .request-panel,
    .faq-card{
      border-radius:28px;
      background:rgba(255,255,255,.92);
      border:1px solid #e0ebf7;
      box-shadow:0 22px 56px rgba(116,86,22,.10);
    }
    .info-panel{
      padding:32px;
    }
    .info-panel h3{
      margin:0 0 18px;
      font-size:20px;
      font-weight:800;
    }
    .info-panel p{
      margin:0 0 22px;
      color:#6f7f94;
      font-size:16px;
      line-height:1.55;
      font-weight:530;
    }
    .info-title{
      margin:22px 0 12px;
      color:#8a98ab;
      font-weight:850;
      text-transform:uppercase;
      font-size:14px;
      letter-spacing:.08em;
    }
    .connect-list{
      display:grid;
      gap:8px;
      color:#354154;
      font-size:15px;
      line-height:1.35;
      font-weight:650;
    }
    .legend{
      display:grid;
      gap:10px;
      margin-top:12px;
    }
    .legend-item{
      display:flex;
      align-items:center;
      gap:10px;
      color:#354154;
      font-weight:650;
      font-size:15px;
    }
    .legend-line{
      width:30px;
      height:7px;
      border-radius:999px;
      background:var(--c);
    }
    .status{
      margin-top:24px;
      padding:18px 20px;
      border-radius:18px;
      background:#f6f8fb;
      color:#65758a;
      font-weight:650;
      line-height:1.45;
    }
    .status.good{
      color:#0d8c5d;
      background:#e9fbf2;
    }
    .reset-btn{
      margin-top:22px;
      height:46px;
      display:inline-flex;
      align-items:center;
      gap:10px;
      border-radius:999px;
      border:1px solid #dbe6f3;
      padding:0 20px;
      background:#fff;
      color:#4b5b70;
      font-weight:750;
      cursor:pointer;
      transition:.22s ease;
    }
    .reset-btn:hover{
      border-color:#dfc06a;
      transform:translateY(-1px);
    }
    .game-board{
      min-height:660px;
      position:relative;
      overflow:hidden;
      padding:0;
    }
    .game-board::before{
      content:"";
      position:absolute;
      inset:64px 54px;
      border-radius:18px;
      background:
        linear-gradient(90deg, transparent 0 18%, #e9d28b 18% 18.4%, transparent 18.4% 23%, #e9d28b 23% 23.4%, transparent 23.4% 77%, #e9d28b 77% 77.4%, transparent 77.4% 82%, #e9d28b 82% 82.4%, transparent 82.4%),
        linear-gradient(180deg, transparent 0 16%, #e9d28b 16% 16.5%, transparent 16.5% 21%, #e9d28b 21% 21.5%, transparent 21.5% 79%, #e9d28b 79% 79.5%, transparent 79.5% 84%, #e9d28b 84% 84.5%, transparent 84.5%);
      opacity:.7;
    }
    .game-svg{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      z-index:5;
      pointer-events:none;
    }
    .term-col{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      z-index:6;
      display:grid;
      gap:16px;
      width:min(255px, calc(50% - 100px));
    }
    .term-col.left{left:26px}
    .term-col.right{right:26px}
    .terminal{
      min-height:64px;
      border-radius:18px;
      border:1px solid #dbe6f3;
      background:#fff;
      box-shadow:0 8px 20px rgba(116,86,22,.08);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:13px 20px;
      cursor:grab;
      user-select:none;
      touch-action:none;
      transition:.18s ease;
    }
    .terminal:hover{
      transform:translateY(-2px);
      border-color:#e7c66a;
    }
    .terminal.dragging{
      cursor:var(--cursor-wire-active);
      border-color:var(--wire);
      box-shadow:0 0 0 2px color-mix(in srgb, var(--wire) 22%, transparent), 0 12px 28px rgba(116,86,22,.10);
    }
    .game-board, .game-board *{
      cursor:default;
    }
    .terminal, .terminal *{
      cursor:var(--cursor-wire);
    }
    body.dragging-wire,
    body.dragging-wire *{
      cursor:var(--cursor-wire-active) !important;
    }
    .terminal.done{
      border-color:var(--wire);
      box-shadow:0 0 0 2px color-mix(in srgb, var(--wire) 18%, transparent), 0 8px 20px rgba(116,86,22,.08);
    }
    .term-dot{
      width:24px;
      height:24px;
      border-radius:50%;
      border:5px solid var(--wire);
      background:#fff;
      flex:0 0 auto;
    }
    .term-text{
      flex:1;
      min-width:0;
      line-height:1.15;
    }
    .right .term-text{
      text-align:right;
    }
    .term-name{
      display:block;
      font-size:15px;
      font-weight:850;
      color:#2a3446;
      white-space:nowrap;
    }
    .term-sub{
      display:block;
      margin-top:4px;
      font-size:11px;
      color:#8b99aa;
      font-weight:650;
    }
    .center-lamp{
      position:absolute;
      z-index:4;
      left:50%;
      top:50%;
      width:118px;
      height:118px;
      border-radius:50%;
      transform:translate(-50%,-50%);
      display:grid;
      place-items:center;
      background:linear-gradient(180deg,#eef4fb,#dbe6f0);
      box-shadow:inset 0 0 0 1px #cbd8e6, 0 18px 42px rgba(116,86,22,.10);
      color:#8294aa;
      transition:.28s ease;
    }
    .center-lamp .lamp-ico{
      width:46px;
      height:46px;
      border-radius:50%;
      background:
        radial-gradient(circle at 50% 38%, #fffdf0 0 20%, #ffe779 42%, #d6a20b 70%, #8d6a12 100%);
      box-shadow:inset 0 -6px 12px rgba(89,65,14,.22), 0 0 18px rgba(255,224,88,.35);
    }
    .center-lamp .lamp-label{
      position:absolute;
      bottom:-32px;
      font-size:14px;
      color:#7d8ca0;
      font-weight:700;
    }
    .center-lamp.on{
      background:radial-gradient(circle at 50% 38%, #fffbd2, #ffe779 62%, #ffd54d);
      box-shadow:0 0 24px rgba(255,224,88,.75),0 0 70px rgba(214,162,11,.16);
      color:#f59e0b;
    }

    /* Calculator */
    .calc-wrap{
      display:grid;
      grid-template-columns:1.12fr .95fr;
      gap:34px;
      align-items:start;
    }
    .request-wrap{
      max-width:760px;
      margin-inline:auto;
    }
    .request-cta{
      max-width:820px;
      margin-inline:auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:24px;
      padding:30px;
      border-radius:28px;
      background:rgba(255,255,255,.94);
      border:1px solid rgba(95,95,86,.18);
      box-shadow:0 22px 56px rgba(116,86,22,.12);
    }
    .request-cta h3{
      margin:0 0 8px;
      color:#05070a;
      font-size:22px;
      font-weight:900;
      letter-spacing:-.025em;
    }
    .request-cta p{
      margin:0;
      color:#26313d;
      font-weight:650;
      line-height:1.45;
    }
    .calc-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:22px;
    }
    .calc-card{
      position:relative;
      min-height:186px;
      padding:34px 28px;
      border-radius:24px;
      background:rgba(255,255,255,.92);
      border:1px solid #e0ebf7;
      box-shadow:0 18px 48px rgba(116,86,22,.08);
      cursor:pointer;
      transition:.24s ease;
    }
    .calc-card:hover{
      transform:translateY(-3px);
      border-color:#e2c170;
    }
    .calc-card.selected{
      border-color:#e5bd3e;
      box-shadow:0 18px 48px rgba(214,162,11,.13), 0 0 0 2px rgba(214,162,11,.08);
    }
    .calc-card h3{
      margin:0 0 10px;
      font-size:18px;
      font-weight:850;
      letter-spacing:-.02em;
    }
    .calc-card p{
      margin:0 0 16px;
      color:#728196;
      font-size:14px;
      line-height:1.4;
      font-weight:550;
    }
    .calc-card .card-price{
      color:#d6a20b;
      font-weight:850;
      font-size:18px;
    }
    .select-icon{
      position:absolute;
      top:34px;
      right:28px;
      width:38px;
      height:38px;
      border-radius:50%;
      display:grid;
      place-items:center;
      background:#f1f6fc;
      color:#8fa0b4;
      font-weight:850;
      font-size:24px;
      transition:.2s ease;
    }
    .calc-card.selected .select-icon{
      color:#2f260f;
      background:#d6a20b;
      font-size:19px;
    }
    .request-panel{
      padding:34px;
    }
    .request-panel h3{
      margin:0 0 22px;
      font-size:20px;
      font-weight:850;
    }
    .request-calc-link{
      display:grid;
      gap:12px;
      margin-bottom:24px;
      padding:18px;
      border-radius:22px;
      background:linear-gradient(180deg, #fff8dc, #f4e5ad);
      border:1px solid rgba(171,126,18,.28);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
    }
    .request-calc-link strong{
      color:#05070a;
      font-size:16px;
      font-weight:900;
    }
    .request-calc-link span{
      color:#26313d;
      line-height:1.45;
      font-weight:620;
    }
    .request-calc-link .btn{
      width:max-content;
    }
    .selected-list{
      display:grid;
      gap:12px;
      margin-bottom:26px;
    }
    .selected-row{
      min-height:45px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:0 14px 0 18px;
      border-radius:999px;
      background:#fff;
      border:1px solid #e5eef8;
      color:#6d7d91;
      font-weight:650;
    }
    .selected-row button{
      border:0;
      background:transparent;
      color:#98a7b9;
      cursor:pointer;
      font-size:20px;
      line-height:1;
    }
    .selected-row.entering{
      animation: selectedIn .32s ease both;
    }
    .selected-row.removing{
      animation: selectedOutLeft .28s ease both;
    }
    @keyframes selectedIn{
      from{opacity:0; transform:translateX(-34px);}
      to{opacity:1; transform:translateX(0);}
    }
    @keyframes selectedOutLeft{
      from{opacity:1; transform:translateX(0);}
      to{opacity:0; transform:translateX(-42px);}
    }
    .empty{
      color:#8a98ab;
      padding:12px 0;
      font-weight:650;
    }
    .total{
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      padding-top:20px;
      border-top:1px solid #edf2f8;
      margin-bottom:24px;
    }
    .total span{
      color:#7d8ba0;
      font-size:16px;
      font-weight:650;
    }
    .total strong{
      color:#d6a20b;
      font-size:34px;
      letter-spacing:-.035em;
    }
    .form{
      display:grid;
      gap:14px;
    }
    .form label{
      display:grid;
      gap:7px;
      color:#76869a;
      font-weight:700;
      font-size:13px;
    }
    input,textarea{
      width:100%;
      border:1px solid #dfe9f5;
      border-radius:999px;
      background:#fff;
      min-height:48px;
      padding:0 18px;
      color:#2e3a4d;
      outline:none;
      transition:.18s ease;
    }
    textarea{
      min-height:100px;
      border-radius:18px;
      padding:14px 18px;
      resize:vertical;
    }
    input:focus,textarea:focus{
      border-color:#e5bd3e;
      box-shadow:0 0 0 4px rgba(214,162,11,.08);
    }
    .send{
      min-height:56px;
      border:0;
      border-radius:999px;
      color:#2f260f;
      font-weight:850;
      background:linear-gradient(135deg,#d49a00,#f5c542);
      box-shadow:0 14px 30px rgba(214,162,11,.26);
      cursor:pointer;
      margin-top:6px;
      transition:.25s ease;
    }
    .send:hover{
      transform:translateY(-2px);
    }

    /* FAQ */
    .faq-list{
      display:grid;
      gap:16px;
      max-width:1500px;
    }
    .faq-card{
      padding:0;
      overflow:hidden;
    }
    .faq-q{
      min-height:70px;
      width:100%;
      padding:0 30px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      border:0;
      background:transparent;
      cursor:pointer;
      color:#273247;
      font-weight:850;
      text-align:left;
    }
    .faq-a{
      max-height:0;
      overflow:hidden;
      transition:max-height .25s ease;
    }
    .faq-card.open .faq-a{
      max-height:160px;
    }
    .faq-a p{
      margin:0;
      padding:0 30px 24px;
      color:#718299;
      line-height:1.55;
      font-weight:550;
    }

    footer{
      padding:28px 0 0;
      color:#26313d;
      text-align:center;
      font-weight:600;
      background:transparent;
    }

    .reveal{
      opacity:0;
      transform:translateY(28px);
      transition:opacity .42s ease, transform .42s ease;
    }
    .reveal.visible{
      opacity:1;
      transform:translateY(0);
    }

    :root{
      --wall-shift:0px;
      --wall-bg-width:1600px;
      --wall-lift:0px;
    }

    body{
      position:relative;
      background:#8e9593;
      isolation:isolate;
    }

    body::after{
      content:"";
      position:fixed;
      inset:auto 0 0;
      height:28vh;
      z-index:-1;
      pointer-events:none;
      background:linear-gradient(180deg, rgba(142,149,147,0), #8e9593 82%);
    }

    .page{
      position:relative;
      z-index:1;
    }

    body:not(.calculator-body) .circuit-bg{
      inset:-34vh -20vw -42vh;
      z-index:0;
      overflow:hidden;
      background-color:#8e9593;
      background-image:none;
      transform:translate3d(0, var(--wall-lift), 0);
      transform-origin:center center;
      will-change:transform;
      contain:paint;
      backface-visibility:hidden;
    }

    body:not(.calculator-body) .circuit-bg::before{
      content:"";
      position:absolute;
      left:50%;
      top:0;
      width:var(--wall-bg-width);
      height:calc(var(--wall-bg-width) * 2.10764);
      min-width:100%;
      min-height:140%;
      background-image:url("./assets/brick-wall-user-photo.webp");
      background-repeat:no-repeat;
      background-size:100% 100%;
      background-position:center top;
      transform:translate3d(-50%, var(--wall-shift), 0);
      transform-origin:center top;
      will-change:transform;
      backface-visibility:hidden;
    }

    body:not(.calculator-body) .circuit-bg::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(180deg, rgba(142,149,147,.08), transparent 12%, transparent 88%, rgba(142,149,147,.20));
    }

    body.calculator-body{
      background:#fffaf0;
    }

    body.calculator-body .circuit-bg{
      z-index:0;
      transform:none;
      transition:none;
      will-change:auto;
      contain:paint;
      background:
        linear-gradient(180deg, rgba(255,255,255,.52), rgba(255,255,255,.62)),
        url("data:image/svg+xml,%3Csvg width='360' height='360' viewBox='0 0 360 360' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23e8d18a' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round' opacity='.60'%3E%3Cpath d='M0 40h56v-28h52v46h48'/%3E%3Cpath d='M0 112h74v44h58v-28h52v44h70'/%3E%3Cpath d='M0 260h44v-42h82v34h60v-58h52'/%3E%3Cpath d='M236 0v64h42v50h-30v56h112'/%3E%3Cpath d='M124 0v74h-30v48h72v42'/%3E%3Cpath d='M210 360v-54h44v-38h56v-50h50'/%3E%3Cpath d='M0 330h74v-46h66'/%3E%3Cpath d='M360 98h-64v34h-42v34'/%3E%3Cpath d='M360 286h-58v34h-68'/%3E%3C/g%3E%3Cg fill='%23d8ad32' opacity='.72'%3E%3Ccircle cx='56' cy='40' r='3'/%3E%3Ccircle cx='108' cy='12' r='3'/%3E%3Ccircle cx='156' cy='58' r='3'/%3E%3Ccircle cx='74' cy='112' r='3'/%3E%3Ccircle cx='132' cy='156' r='3'/%3E%3Ccircle cx='254' cy='172' r='3'/%3E%3Ccircle cx='44' cy='260' r='3'/%3E%3Ccircle cx='126' cy='218' r='3'/%3E%3Ccircle cx='238' cy='194' r='3'/%3E%3Ccircle cx='278' cy='64' r='3'/%3E%3Ccircle cx='296' cy='98' r='3'/%3E%3Ccircle cx='166' cy='164' r='3'/%3E%3Ccircle cx='254' cy='306' r='3'/%3E%3Ccircle cx='140' cy='284' r='3'/%3E%3Ccircle cx='74' cy='330' r='3'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg, #fffaf0 0%, #fffdf7 48%, #eef2f2 100%);
      background-size:auto, 360px 360px, auto;
      background-position:center top, center top, center;
    }

    .hero{
      position:relative;
      margin-bottom:72px;
    }

    .hero::before{
      content:none;
      position:absolute;
      left:50%;
      top:-72px;
      width:min(1180px, calc(100vw - 96px));
      height:18px;
      transform:translateX(-50%);
      border-radius:0 0 18px 18px;
      background:linear-gradient(90deg, rgba(134,149,163,.18), rgba(255,255,255,.88), rgba(134,149,163,.18));
      box-shadow:0 24px 50px rgba(75,94,113,.13);
      pointer-events:none;
    }

    main > section.container.reveal{
      position:relative;
      margin-top:92px;
      margin-bottom:92px;
      padding:56px;
      content-visibility:auto;
      contain-intrinsic-size:720px;
      border:24px solid transparent;
      border-radius:20px;
      background:
        linear-gradient(180deg, rgba(252,252,248,.98), rgba(231,230,222,.97)) padding-box,
        linear-gradient(135deg, #f6f6ee 0%, #c8c7bd 15%, #fdfcf6 31%, #aaa99f 48%, #7b7d76 50%, #d7d5c8 68%, #fbfaf2 100%) border-box;
      box-shadow:
        18px 28px 70px rgba(28,28,25,.22),
        -10px -10px 34px rgba(255,255,255,.18),
        inset 0 0 0 1px rgba(78,78,72,.46),
        inset 0 0 0 10px rgba(255,255,255,.28),
        inset 0 18px 32px rgba(255,255,255,.58),
        inset 0 -22px 34px rgba(70,70,64,.18);
    }

    main > section.container.reveal > *{
      position:relative;
      z-index:1;
    }

    .hero h1{
      color:#020305;
      text-shadow:
        0 1px 0 rgba(255,255,255,.92),
        0 2px 0 rgba(255,255,255,.72),
        0 4px 14px rgba(255,255,255,.70),
        0 12px 32px rgba(0,0,0,.22);
    }

    .hero-text{
      color:#1f2935;
      font-weight:720;
      text-shadow:
        0 1px 0 rgba(255,255,255,.95),
        0 3px 12px rgba(255,255,255,.72);
    }

    main > section.container.reveal::before{
      content:"";
      position:absolute;
      inset:-36px;
      border-radius:25px;
      border:1px solid rgba(50,51,47,.48);
      background:
        radial-gradient(circle at 30px 30px, #242522 0 3px, #77776f 3px 7px, #e8e5d4 7px 11px, transparent 12px),
        radial-gradient(circle at calc(100% - 30px) 30px, #242522 0 3px, #77776f 3px 7px, #e8e5d4 7px 11px, transparent 12px),
        radial-gradient(circle at 30px calc(100% - 30px), #242522 0 3px, #77776f 3px 7px, #e8e5d4 7px 11px, transparent 12px),
        radial-gradient(circle at calc(100% - 30px) calc(100% - 30px), #242522 0 3px, #77776f 3px 7px, #e8e5d4 7px 11px, transparent 12px),
        linear-gradient(90deg, rgba(63,64,59,.34) 0 7px, rgba(246,246,238,.34) 7px 12px, transparent 12px calc(100% - 60px), rgba(55,56,52,.34) calc(100% - 60px) calc(100% - 45px), transparent calc(100% - 45px)),
        linear-gradient(180deg, transparent 0 22px, rgba(59,60,55,.18) 22px 24px, transparent 24px calc(100% - 24px), rgba(59,60,55,.18) calc(100% - 24px) calc(100% - 22px), transparent calc(100% - 22px)),
        linear-gradient(180deg, rgba(255,255,255,.50), rgba(132,132,123,.14));
      box-shadow:
        inset 0 0 0 10px rgba(255,255,255,.22),
        inset 0 0 0 18px rgba(72,72,66,.10),
        inset 12px 0 20px rgba(255,255,255,.18),
        inset -18px 0 24px rgba(45,45,41,.18);
      pointer-events:none;
    }

    main > section.container.reveal::after{
      content:none;
      display:none;
      pointer-events:none;
    }

    #projects{
      margin-top:32px;
    }

    footer.container{
      position:relative;
      margin-top:48px;
      padding:24px 0 0;
      background:transparent;
      border-top:0;
      color:#26313d;
      text-shadow:none;
    }

    footer.container::before{
      content:none;
    }

    .logo,
    .section-head h2,
    .hero h1,
    .task-card h3,
    .service-card h3,
    .project-preview h3,
    .project-text h4,
    .calc-card h3,
    .request-panel h3,
    .faq-q,
    .term-name{
      color:#05070a;
    }

    .nav-links,
    .eyebrow,
    .hero-text,
    .section-head p,
    .mini-card span,
    .panel-hint,
    .task-card p,
    .service-card p,
    .project-preview p,
    .project-text p,
    .project-meta,
    .status,
    .calc-card p,
    .empty,
    .total span,
    .form label,
    .faq-a,
    footer.container{
      color:#26313d;
    }

    .hero-text,
    .section-head p,
    .task-card p,
    .service-card p,
    .project-text p,
    .calc-card p,
    .faq-a{
      font-weight:620;
    }

    .calc-page{
      padding-bottom:54px;
    }

    .calc-hero{
      padding:96px 0 34px;
    }

    .calc-hero h1{
      margin:0 0 16px;
      max-width:920px;
      color:#05070a;
      font-size:54px;
      line-height:1.05;
      letter-spacing:-.055em;
      font-weight:900;
    }

    .calc-hero p{
      max-width:760px;
      margin:0;
      color:#26313d;
      font-size:18px;
      line-height:1.55;
      font-weight:650;
    }

    .calc-layout{
      display:grid;
      grid-template-columns:minmax(0, 1fr) 390px;
      gap:30px;
      align-items:start;
    }

    .calc-usage-note{
      margin:-8px 0 22px;
      padding:16px 18px;
      border-radius:20px;
      background:linear-gradient(180deg, #fff9df, #f5e8b1);
      border:1px solid rgba(171,126,18,.28);
      color:#2f260f;
      font-size:15px;
      line-height:1.45;
      font-weight:800;
      box-shadow:0 14px 30px rgba(49,45,33,.07);
    }

    .calc-toolbar{
      display:grid;
      grid-template-columns:minmax(260px, 1fr);
      gap:14px;
      margin-bottom:16px;
    }

    .calc-search,
    .calc-category{
      min-height:54px;
      border:1px solid rgba(95,95,86,.20);
      border-radius:999px;
      background:rgba(255,255,255,.92);
      color:#05070a;
      padding:0 20px;
      box-shadow:0 14px 30px rgba(49,45,33,.08);
    }

    .calc-category{
      cursor:pointer;
    }

    .calc-category-list{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:12px;
      margin-bottom:22px;
    }

    .calc-category-card{
      min-height:82px;
      padding:0;
      border-radius:20px;
      border:1px solid rgba(95,95,86,.18);
      background:rgba(255,255,255,.88);
      color:#26313d;
      text-align:left;
      box-shadow:0 14px 30px rgba(49,45,33,.07);
      transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
      overflow:hidden;
    }

    .calc-category-toggle{
      width:100%;
      min-height:80px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:16px 18px;
      border:0;
      background:transparent;
      color:inherit;
      text-align:left;
      cursor:pointer;
    }

    .calc-category-toggle i{
      width:30px;
      height:30px;
      flex:0 0 auto;
      display:grid;
      place-items:center;
      border-radius:50%;
      color:#2f260f;
      background:#fff1b8;
      font-style:normal;
      font-size:20px;
      font-weight:950;
      transition:transform .18s ease, background .18s ease;
    }

    .calc-category-card.active .calc-category-toggle i{
      transform:rotate(45deg);
      background:#f5c542;
    }

    .calc-category-card:hover,
    .calc-category-card.active{
      transform:translateY(-2px);
      border-color:#d9b33a;
      background:linear-gradient(180deg,#fff9df,#f5e8b1);
      box-shadow:0 18px 38px rgba(83,62,15,.14);
    }

    .calc-category-toggle strong,
    .calc-category-toggle em{
      display:block;
    }

    .calc-category-toggle strong{
      color:#05070a;
      font-weight:900;
      line-height:1.2;
    }

    .calc-category-toggle em{
      margin-top:7px;
      color:#6b4d05;
      font-size:13px;
      font-style:normal;
      font-weight:800;
    }

    .mobile-service-list{
      display:none;
    }

    .estimate-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:16px;
    }

    .estimate-card{
      min-height:180px;
      padding:24px;
      border-radius:24px;
      background:rgba(255,255,255,.94);
      border:1px solid rgba(95,95,86,.18);
      box-shadow:0 18px 44px rgba(49,45,33,.10);
      display:grid;
      gap:12px;
      align-content:start;
      transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    }

    .estimate-card:hover{
      transform:translateY(-3px);
      border-color:#d9b33a;
      box-shadow:0 24px 58px rgba(83,62,15,.16);
    }

    .estimate-card.is-added{
      border-color:#d6a20b;
      background:linear-gradient(180deg, #fff3bd, #fffdf3 78%);
      box-shadow:0 24px 58px rgba(214,162,11,.26);
      animation:estimateCardAdded .28s ease both;
    }

    .estimate-card.has-qty:not(.is-added){
      border-color:rgba(214,162,11,.32);
    }

    .estimate-card-top{
      display:grid;
      grid-template-columns:minmax(0, 1fr) auto;
      gap:16px;
      align-items:flex-start;
    }

    .estimate-card h3{
      margin:0;
      color:#05070a;
      font-size:18px;
      line-height:1.18;
      letter-spacing:-.025em;
      font-weight:900;
    }

    .estimate-card p{
      margin:0;
      color:#26313d;
      line-height:1.42;
      font-weight:620;
    }

    .estimate-category{
      display:inline-flex;
      width:max-content;
      max-width:100%;
      min-height:28px;
      align-items:center;
      padding:0 10px;
      border-radius:999px;
      color:#3a2b05;
      background:#fff1b8;
      border:1px solid rgba(171,126,18,.24);
      font-size:12px;
      font-weight:850;
      white-space:normal;
      overflow-wrap:anywhere;
    }

    .estimate-price{
      color:#d6a20b;
      font-size:18px;
      font-weight:950;
      white-space:nowrap;
      justify-self:end;
    }

    .estimate-add{
      width:max-content;
      min-height:42px;
      border:0;
      border-radius:999px;
      padding:0 18px;
      color:#2f260f;
      background:linear-gradient(135deg,#d49a00,#f5c542);
      font-weight:900;
      cursor:pointer;
      box-shadow:0 12px 26px rgba(214,162,11,.22);
      transition:transform .18s ease, box-shadow .18s ease;
    }

    .estimate-add:hover{
      transform:translateY(-1px);
      box-shadow:0 16px 34px rgba(214,162,11,.30);
    }

    @keyframes estimateCardAdded{
      0%{
        transform:translateY(-2px) scale(1.01);
        background:linear-gradient(180deg, #ffe58a, #fff3bd);
        box-shadow:0 24px 62px rgba(214,162,11,.34);
      }
      46%{
        transform:translateY(-3px) scale(1.012);
        background:linear-gradient(180deg, #fff0ad, #fff9df);
      }
      100%{
        transform:none;
        background:linear-gradient(180deg, #fff3bd, #fffdf3 78%);
        box-shadow:0 24px 58px rgba(214,162,11,.26);
      }
    }

    .service-card-state{
      display:grid;
      gap:8px;
      width:max-content;
      max-width:100%;
      padding:10px;
      border-radius:18px;
      background:linear-gradient(180deg, #fff5c8, #fff9df);
      border:1px solid rgba(214,162,11,.28);
      box-shadow:0 12px 26px rgba(214,162,11,.14);
    }

    .service-added-status{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      color:#3a2b05;
      font-size:13px;
      line-height:1;
      font-weight:950;
    }

    .service-added-status span{
      color:#7c6114;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.05em;
    }

    .service-card-qty{
      display:grid;
      grid-template-columns:34px minmax(38px, auto) 34px;
      align-items:center;
      justify-content:start;
      gap:8px;
    }

    .service-card-qty button{
      width:34px;
      height:34px;
      border:0;
      border-radius:50%;
      color:#2f260f;
      background:#fff;
      box-shadow:inset 0 0 0 1px rgba(171,126,18,.22), 0 8px 18px rgba(83,62,15,.12);
      font-size:19px;
      font-weight:950;
      cursor:pointer;
      transition:transform .16s ease, background .16s ease;
    }

    .service-card-qty button:hover{
      transform:translateY(-1px);
      background:#fff8dc;
    }

    .service-card-qty span{
      min-width:38px;
      color:#05070a;
      text-align:center;
      font-size:22px;
      font-weight:950;
      line-height:1;
    }


    .estimate-panel{
      position:sticky;
      top:92px;
      padding:26px;
      border-radius:28px;
      background:rgba(255,255,255,.95);
      border:1px solid rgba(95,95,86,.18);
      box-shadow:0 24px 62px rgba(49,45,33,.14);
    }

    .estimate-panel h2{
      margin:0 0 16px;
      color:#05070a;
      font-size:24px;
      letter-spacing:-.035em;
      font-weight:900;
    }

    .estimate-list{
      display:grid;
      gap:12px;
      max-height:48vh;
      overflow:auto;
      padding-right:4px;
      margin-bottom:18px;
    }

    .estimate-empty{
      padding:18px;
      border-radius:18px;
      color:#26313d;
      background:#f7f2df;
      font-weight:650;
      grid-column:1 / -1;
    }

    .estimate-row{
      display:grid;
      gap:10px;
      padding:14px;
      border-radius:18px;
      background:#f8f6ed;
      border:1px solid rgba(95,95,86,.14);
      transform-origin:center;
      will-change:transform, opacity;
    }

    .estimate-row-enter{
      animation:estimateRowIn .34s cubic-bezier(.2,.8,.2,1) both;
    }

    .estimate-row-leave{
      pointer-events:none;
      animation:estimateRowOut .28s cubic-bezier(.4,0,1,1) both;
    }

    @keyframes estimateRowIn{
      from{
        opacity:0;
        transform:translate3d(-42px, 0, 0) scale(.98);
      }
      to{
        opacity:1;
        transform:translate3d(0, 0, 0) scale(1);
      }
    }

    @keyframes estimateRowOut{
      from{
        opacity:1;
        transform:translate3d(0, 0, 0) scale(1);
      }
      to{
        opacity:0;
        transform:translate3d(-48px, 0, 0) scale(.98);
      }
    }

    .estimate-row-title{
      color:#05070a;
      font-weight:850;
      line-height:1.25;
    }

    .estimate-row-bottom{
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:center;
    }

    .qty-control{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border-radius:999px;
      background:#fff;
      border:1px solid rgba(95,95,86,.18);
      padding:4px;
    }

    .qty-control button,
    .remove-line{
      border:0;
      cursor:pointer;
      font-weight:900;
    }

    .qty-control button{
      width:28px;
      height:28px;
      border-radius:50%;
      color:#2f260f;
      background:#f5c542;
    }

    .qty-control span{
      min-width:28px;
      text-align:center;
      color:#05070a;
      font-weight:900;
    }

    .remove-line{
      color:#6b4d05;
      background:transparent;
    }

    .estimate-total{
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:16px;
      padding-top:18px;
      border-top:1px solid rgba(95,95,86,.16);
    }

    .estimate-total span{
      color:#26313d;
      font-weight:750;
    }

    .estimate-total strong{
      color:#05070a;
      font-size:34px;
      letter-spacing:-.04em;
      font-weight:950;
    }

    .estimate-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:18px;
    }

    .estimate-actions .btn{
      min-height:46px;
    }

    .calc-note{
      margin-top:14px;
      color:#26313d;
      font-size:13px;
      line-height:1.45;
      font-weight:620;
    }

    body.modal-open{
      overflow:hidden;
    }

    .request-modal{
      position:fixed;
      top:0;
      left:0;
      width:100vw;
      height:100vh;
      width:100dvw;
      height:100dvh;
      z-index:1200;
      display:grid;
      place-items:center;
      padding:24px;
      overflow:auto;
      overscroll-behavior:contain;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .18s ease, visibility .18s ease;
    }

    .request-modal.open{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }

    .request-modal-backdrop{
      position:fixed;
      inset:0;
      background:rgba(20,18,14,.52);
    }

    .request-modal-panel{
      position:relative;
      width:min(560px, 100%);
      max-height:calc(100dvh - 48px);
      margin:auto;
      overflow:auto;
      padding:34px;
      border-radius:28px;
      background:rgba(255,255,255,.97);
      border:1px solid rgba(95,95,86,.22);
      box-shadow:0 24px 58px rgba(15,13,10,.28);
      transform:translateY(18px) scale(.98);
      transition:transform .18s ease;
    }

    .request-modal.open .request-modal-panel{
      transform:translateY(0) scale(1);
    }

    .request-modal-close{
      position:absolute;
      top:18px;
      right:18px;
      width:42px;
      height:42px;
      display:grid;
      place-items:center;
      border:0;
      border-radius:50%;
      background:#fff3c4;
      color:#2f260f;
      cursor:pointer;
      font-size:24px;
      font-weight:900;
      box-shadow:0 10px 24px rgba(116,86,22,.12);
    }

    .request-modal-panel h3{
      margin:0 54px 10px 0;
      color:#05070a;
      font-size:28px;
      line-height:1.15;
      font-weight:950;
      letter-spacing:-.035em;
    }

    .request-modal-panel p{
      margin:0 0 22px;
      color:#26313d;
      line-height:1.45;
      font-weight:650;
    }

    .request-form-note{
      display:flex;
      align-items:center;
      gap:10px;
      margin:0 0 18px;
      padding:12px 14px;
      border-radius:16px;
      color:#2f260f;
      background:linear-gradient(135deg, rgba(255,241,166,.96), rgba(245,197,66,.72));
      border:1px solid rgba(214,162,11,.28);
      font-weight:850;
      line-height:1.35;
      text-decoration:none;
      box-shadow:0 10px 24px rgba(116,86,22,.10), inset 0 1px 0 rgba(255,255,255,.72);
    }

    .request-form-note::before{
      content:"";
      width:10px;
      height:10px;
      flex:0 0 10px;
      border-radius:50%;
      background:#d6a20b;
      box-shadow:0 0 0 5px rgba(214,162,11,.14);
    }

    .request-status{
      min-height:0;
      color:#26313d;
      font-size:14px;
      font-weight:750;
      white-space:pre-wrap;
      overflow-wrap:anywhere;
    }

    .request-status.success{
      color:#166534;
    }

    .request-status.error{
      color:#9f1239;
    }

    .request-toast{
      position:fixed;
      right:max(18px, env(safe-area-inset-right));
      bottom:max(18px, env(safe-area-inset-bottom));
      z-index:1300;
      display:flex;
      align-items:center;
      gap:14px;
      max-width:min(430px, calc(100vw - 32px));
      padding:16px 18px;
      border:1px solid rgba(242,183,5,.48);
      border-radius:20px;
      background:rgba(17,24,39,.84);
      color:#fff;
      box-shadow:0 18px 48px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.16);
      backdrop-filter:blur(12px);
      -webkit-backdrop-filter:blur(12px);
      opacity:0;
      pointer-events:none;
      transform:translate3d(18px, 18px, 0);
      transition:opacity .22s ease, transform .22s ease;
    }

    .request-toast.visible{
      opacity:1;
      pointer-events:auto;
      transform:translate3d(0, 0, 0);
    }

    .request-toast-text{
      line-height:1.35;
      font-weight:850;
    }

    .request-toast-close{
      flex:0 0 auto;
      width:34px;
      height:34px;
      display:grid;
      place-items:center;
      border:0;
      border-radius:999px;
      background:rgba(255,255,255,.14);
      color:#fff;
      font-size:24px;
      line-height:1;
      font-weight:900;
      cursor:pointer;
      transition:background .16s ease, transform .16s ease;
    }

    .request-toast-close:hover,
    .request-toast-close:focus-visible{
      background:rgba(242,183,5,.9);
      color:#111827;
      transform:scale(1.04);
      outline:none;
    }

    .request-honeypot{
      position:absolute !important;
      left:-9999px !important;
      width:1px !important;
      height:1px !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    .request-modal-panel .form{
      display:grid;
      gap:16px;
    }

    .request-modal-panel .form label{
      display:grid;
      gap:8px;
      color:#05070a;
      font-weight:850;
    }

    .request-modal-panel .form input,
    .request-modal-panel .form textarea{
      width:100%;
      border:1px solid rgba(95,95,86,.20);
      border-radius:16px;
      background:#fffdf6;
      color:#05070a;
      padding:14px 16px;
      outline:none;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
    }

    .request-modal-panel .form textarea{
      min-height:116px;
      resize:vertical;
    }

    @media (max-width:1100px){
      .hero-grid,
      .game-wrap,
      .calc-wrap{
        grid-template-columns:1fr;
      }
      .hero h1{
        font-size:46px;
      }
      .hero{
        padding-top:56px;
      }
      main > section.container.reveal{
        padding:42px;
        border-width:20px;
        margin-top:76px;
        margin-bottom:76px;
      }
      .task-grid,
      .service-grid{
        grid-template-columns:repeat(2,1fr);
      }
      .game-board{
        min-height:720px;
      }
      .calc-layout{
        grid-template-columns:1fr;
      }
      .estimate-panel{
        position:relative;
        top:auto;
      }
    }

    @media (max-width:760px){
      html{
        scroll-padding-top:76px;
      }
      .container{
        width:min(100% - 28px, 1180px);
      }
      .nav{
        top:0;
        padding-top:0;
      }
      .page,
      .page.ready{
        transform:none;
      }
      .nav .container{
        width:min(100% - 16px, 1180px);
      }
      .nav-inner{
        min-height:62px;
        padding:9px 10px;
        gap:10px;
        border-radius:0 0 18px 18px;
      }
      .logo{
        gap:9px;
        font-size:15px;
      }
      .logo-icon{
        width:34px;
        height:34px;
        font-size:16px;
      }
      .mobile-menu-toggle{
        display:flex;
        position:fixed;
        top:9px;
        right:max(10px, env(safe-area-inset-right));
        z-index:96;
        margin-left:0;
      }
      html.mobile-menu-open .mobile-menu-toggle,
      body.mobile-menu-open .mobile-menu-toggle{
        opacity:0;
        visibility:hidden;
        pointer-events:none;
      }
      .mobile-menu-scrim{
        display:block;
      }
      .mobile-menu{
        display:flex;
      }
      .nav-links{
        display:none;
      }
      .nav-button{
        display:none;
      }
      .hero{
        min-height:auto;
        padding:34px 0 44px;
        margin-bottom:26px;
      }
      .hero-grid{
        gap:28px;
      }
      .eyebrow{
        max-width:100%;
        padding:7px 11px;
        font-size:12px;
        line-height:1.25;
      }
      .hero h1{
        margin:18px 0 14px;
        font-size:clamp(32px, 9vw, 40px);
        line-height:1.05;
        letter-spacing:-.05em;
      }
      .hero-text{
        font-size:15.5px;
        line-height:1.52;
      }
      .hero-actions{
        display:grid;
        gap:10px;
        margin-top:22px;
      }
      .btn{
        width:100%;
        min-height:48px;
        padding:0 18px;
      }
      .hero-mini{
        display:none;
      }
      .panel-area{
        gap:10px;
      }
      .electric-panel{
        width:min(360px, 100%);
        padding:14px;
        border-radius:24px;
      }
      .electric-panel::before{
        inset:13px;
        border-radius:18px;
      }
      .panel-inside,
      .panel-door{
        inset:26px;
        border-radius:16px;
      }
      .panel-photo-frame{
        inset:9px;
        border-radius:12px;
      }
      .door-center{
        gap:12px;
        font-size:10px;
        letter-spacing:.18em;
      }
      .bolt-square{
        width:48px;
        height:48px;
        border-radius:14px;
        font-size:24px;
      }
      .panel-door::after{
        right:14px;
        height:38px;
      }
      .hero::before{
        width:calc(100vw - 28px);
      }
      main > section.container.reveal{
        padding:26px 14px 22px;
        border-width:12px;
        border-radius:16px;
        margin-top:44px;
        margin-bottom:44px;
        contain-intrinsic-size:520px;
      }
      main > section.container.reveal::before{
        inset:-17px;
        border-radius:21px;
      }
      main > section.container.reveal::after{
        left:50%;
        top:-25px;
        min-height:36px;
        padding:0 14px 0 48px;
        max-width:calc(100% - 52px);
        white-space:nowrap;
      }
      .hero-mini,
      .task-grid,
      .service-grid,
      .calc-grid{
        grid-template-columns:1fr;
      }
      section{
        padding:44px 0;
      }
      .section-head{
        margin-bottom:28px;
      }
      .section-head h2{
        font-size:clamp(28px, 8vw, 34px);
        line-height:1.08;
      }
      .section-head p{
        font-size:15.5px;
        line-height:1.48;
      }
      .task-grid,
      .service-grid{
        gap:18px;
      }
      .task-card,
      .service-card{
        min-height:auto;
        padding:24px 22px;
        border-radius:20px;
      }
      .task-card h3,
      .service-card h3{
        font-size:20px;
        margin-bottom:10px;
      }
      .task-card p,
      .service-card p{
        font-size:15px;
        line-height:1.45;
      }
      .task-lamp{
        top:-24px;
      }
      .task-lamp::before{
        height:16px;
      }
      .task-lamp::after{
        width:30px;
        height:30px;
      }
      .projects-grid{
        gap:16px;
      }
      .project-card{
        border-radius:20px;
      }
      .project-preview{
        min-height:auto;
        padding:20px 18px;
        gap:12px;
      }
      .project-title-wrap{
        gap:12px;
      }
      .project-icon{
        width:44px;
        height:44px;
        border-radius:14px;
        font-size:20px;
      }
      .project-preview h3{
        font-size:18px;
        line-height:1.12;
      }
      .project-preview p{
        font-size:13px;
        line-height:1.35;
      }
      .project-open-indicator{
        width:38px;
        height:38px;
        flex:0 0 38px;
      }
      .project-expanded{
        padding:0 14px 16px;
      }
      .project-expanded-inner{
        gap:20px;
      }
      .project-text h4{
        font-size:24px;
      }
      .project-text p,
      .project-list li{
        font-size:14.5px;
        line-height:1.48;
      }
      .project-tags{
        gap:7px;
      }
      .project-tag{
        min-height:28px;
        font-size:11px;
      }
      .project-main-photo{
        min-height:250px;
        border-radius:18px;
      }
      .project-main-label{
        left:12px;
        top:12px;
        min-height:28px;
        font-size:11px;
      }
      .project-main-caption{
        padding:12px;
        font-size:12px;
      }
      .project-thumbs{
        grid-template-columns:repeat(4, minmax(0,1fr));
        gap:8px;
      }
      .project-thumb{
        min-height:58px;
        border-radius:12px;
      }
      .project-nav{
        grid-template-columns:1fr;
        gap:10px;
        margin-top:16px;
      }
      .project-nav-btn{
        width:100%;
        min-height:44px;
        justify-content:center;
      }
      .info-panel{
        padding:22px;
      }
      .game-wrap{
        gap:18px;
      }
      .term-col{
        width:118px;
        gap:10px;
      }
      .term-col.left{left:12px}
      .term-col.right{right:12px}
      .terminal{
        min-height:56px;
        padding:9px;
        gap:8px;
        border-radius:14px;
      }
      .term-dot{
        width:19px;
        height:19px;
        border-width:4px;
      }
      .term-name{
        font-size:11px;
      }
      .term-sub{
        display:none;
      }
      .game-board{
        min-height:620px;
        border-radius:22px;
      }
      .game-board::before{
        inset:52px 28px;
      }
      .center-lamp{
        width:86px;
        height:86px;
      }
      .center-lamp .lamp-ico{
        width:34px;
        height:34px;
      }
      .center-lamp .lamp-label{
        font-size:12px;
        bottom:-28px;
      }
      .calc-hero{
        padding:44px 0 28px;
      }
      .calc-hero h1{
        font-size:clamp(32px, 9vw, 40px);
        line-height:1.05;
      }
      .calc-hero p{
        font-size:15.5px;
        line-height:1.48;
      }
      .calc-toolbar,
      .calc-category-list,
      .estimate-grid{
        grid-template-columns:1fr;
      }
      .calc-search,
      .calc-category{
        min-height:50px;
      }
      .calc-category-list{
        gap:10px;
      }
      .calc-category-card{
        min-height:auto;
        padding:14px 16px;
        border-radius:18px;
      }
      .estimate-grid{
        gap:12px;
      }
      .estimate-card{
        min-height:auto;
        padding:18px;
        border-radius:20px;
      }
      .estimate-card-top{
        grid-template-columns:1fr;
        gap:8px;
      }
      .estimate-price{
        justify-self:start;
      }
      .estimate-card h3{
        font-size:16px;
      }
      .estimate-panel{
        padding:20px;
        border-radius:22px;
      }
      .estimate-list{
        max-height:none;
      }
      .estimate-total strong{
        font-size:28px;
      }
      .estimate-actions{
        display:grid;
      }
      .calc-note{
        font-size:12px;
      }
      .request-modal{
        padding:14px;
      }
      .request-modal-panel{
        padding:28px 20px 22px;
        border-radius:22px;
      }
      .request-modal-panel h3{
        font-size:24px;
      }
      .request-toast{
        left:14px;
        right:14px;
        bottom:max(14px, env(safe-area-inset-bottom));
        max-width:none;
        padding:14px 14px 14px 16px;
        border-radius:18px;
      }
      .request-calc-link .btn{
        width:100%;
      }
      .loader-bulb{
        width:10px;height:10px;
      }
      .bulb-rail.left{left:8px}
      .bulb-rail.right{right:8px}
    }

    @media (max-width:430px){
      .container{
        width:min(100% - 20px, 1180px);
      }
      .nav .container{
        width:min(100% - 10px, 1180px);
      }
      .logo > span:last-child{
        max-width:150px;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
      }
      .hero{
        padding-top:26px;
      }
      .electric-panel{
        width:min(324px, 100%);
      }
      main > section.container.reveal{
        padding:22px 12px 20px;
      }
      .project-thumbs{
        grid-template-columns:repeat(3, minmax(0,1fr));
      }
      .project-main-photo{
        min-height:220px;
      }
      .game-board{
        min-height:570px;
      }
      .term-col{
        width:105px;
      }
      .terminal{
        padding:8px 7px;
      }
      .term-name{
        font-size:10px;
      }
      .center-lamp{
        width:76px;
        height:76px;
      }
      .request-modal-panel{
        max-height:calc(100dvh - 28px);
      }
    }

    /* Mobile polish pass */
    html.mobile-menu-open,
    body.mobile-menu-open{
      overflow:hidden;
      touch-action:none;
    }

    .mobile-menu{
      transform:translate3d(110%,0,0);
      clip-path:none;
      will-change:transform;
      transition:transform .22s cubic-bezier(.2,.8,.2,1), opacity .16s ease, visibility .22s ease;
    }

    html.mobile-menu-open .mobile-menu,
    body.mobile-menu-open .mobile-menu{
      transform:translate3d(0,0,0);
    }

    html.mobile-menu-open .mobile-menu-scrim,
    body.mobile-menu-open .mobile-menu-scrim{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }

    .request-cta{
      flex-wrap:wrap;
      overflow:hidden;
    }

    .request-cta > div{
      min-width:0;
      flex:1 1 320px;
    }

    .request-cta .btn{
      flex:0 1 auto;
      max-width:100%;
      white-space:normal;
      text-align:center;
    }

    @media (max-width:760px){
      .mobile-menu-links a[href="#interactive"]{
        display:none;
      }

      #interactive{
        display:none;
      }

      .request-cta{
        grid-template-columns:1fr;
        justify-items:stretch;
        padding:20px;
        gap:16px;
      }

      .request-cta h3{
        font-size:20px;
      }

      .request-cta p{
        font-size:14px;
        line-height:1.42;
      }

      .request-cta .btn{
        width:100%;
      }

      .project-expanded{
        padding:0;
      }

      .project-expanded-inner{
        display:grid;
        grid-template-columns:1fr;
        gap:16px;
        padding:0 14px 18px;
      }

      .project-gallery{
        order:1;
        padding:10px;
        border-radius:18px;
      }

      .project-text{
        order:2;
        padding:20px;
        border-radius:18px;
      }

      .project-text h4{
        font-size:20px;
        line-height:1.15;
        margin-bottom:10px;
      }

      .project-text p{
        margin-bottom:12px;
        font-size:14px;
        line-height:1.42;
      }

      .project-text p:nth-of-type(n+2){
        display:none;
      }

      .project-tags{
        margin:14px 0 16px;
      }

      .project-list-title{
        margin-top:10px;
        font-size:12px;
      }

      .project-list{
        gap:8px;
      }

      .project-list li{
        padding-left:20px;
        font-size:13.5px;
        line-height:1.36;
      }

      .project-list li:nth-child(n+4){
        display:none;
      }

      .project-main-photo{
        min-height:0;
        height:clamp(240px, 72vw, 340px);
      }

      .project-main-caption{
        display:none;
      }

      .project-main-label{
        top:auto;
        bottom:12px;
        left:12px;
        right:12px;
        justify-content:center;
        max-width:none;
        background:rgba(13,50,87,.64);
      }

      .project-thumbs{
        grid-template-columns:repeat(3, minmax(0, 1fr));
      }

      .project-thumb{
        height:64px;
      }

      .project-thumb::after{
        display:none;
      }

      .project-nav{
        padding:0 14px 18px;
      }

      .calculator-body .calc-toolbar{
        margin-bottom:12px;
      }

      .calculator-body .calc-usage-note{
        margin:-4px 0 14px;
        padding:12px 14px;
        border-radius:16px;
        font-size:13px;
        line-height:1.38;
      }

      .calculator-body .calc-search{
        min-height:46px;
        padding:0 16px;
        font-size:14px;
      }

      .calculator-body .calc-category-list{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        margin-bottom:18px;
      }

      .calculator-body .calc-category-card{
        min-height:0;
        border-radius:16px;
        background:rgba(255,255,255,.94);
      }

      .calculator-body .calc-category-card:hover,
      .calculator-body .calc-category-card.active{
        transform:none;
      }

      .calculator-body .calc-category-toggle{
        min-height:52px;
        padding:10px 12px 10px 14px;
      }

      .calculator-body .calc-category-toggle strong{
        font-size:15px;
        line-height:1.18;
      }

      .calculator-body .calc-category-toggle em{
        margin-top:3px;
        font-size:11px;
      }

      .calculator-body .calc-category-toggle i{
        width:28px;
        height:28px;
        font-size:18px;
      }

      .calculator-body .mobile-service-list{
        display:grid;
        gap:7px;
        padding:0 10px 10px;
        animation:mobileServiceListIn .18s ease both;
      }

      .calculator-body .mobile-service-item{
        width:100%;
        min-height:48px;
        display:grid;
        gap:8px;
        padding:10px;
        border:1px solid rgba(214,162,11,.20);
        border-radius:13px;
        background:linear-gradient(180deg, #fffef8, #fff7da);
        color:#05070a;
        text-align:left;
        box-shadow:0 8px 18px rgba(49,45,33,.06);
      }

      .calculator-body .mobile-service-item:active{
        transform:scale(.985);
      }

      .calculator-body .mobile-service-item.is-added{
        border-color:#d6a20b;
        background:linear-gradient(180deg, #fff3bd, #f5c542);
        box-shadow:0 10px 24px rgba(214,162,11,.22);
      }

      .calculator-body .mobile-service-main{
        width:100%;
        min-height:42px;
        display:grid;
        grid-template-columns:minmax(0, 1fr) auto;
        align-items:center;
        gap:10px;
        padding:0;
        border:0;
        background:transparent;
        color:inherit;
        text-align:left;
        cursor:pointer;
      }

      .calculator-body .mobile-service-item strong{
        display:block;
        font-size:13px;
        line-height:1.18;
        font-weight:900;
      }

      .calculator-body .mobile-service-item small{
        display:block;
        margin-top:3px;
        color:#4d5968;
        font-size:11px;
        line-height:1.25;
        font-weight:650;
      }

      .calculator-body .mobile-service-item b{
        white-space:nowrap;
        color:#d6a20b;
        font-size:13px;
        font-weight:950;
      }

      .calculator-body .mobile-service-item .service-card-state{
        width:100%;
        padding:8px;
        border-radius:12px;
      }

      .calculator-body .mobile-service-item .service-card-qty{
        grid-template-columns:32px minmax(34px, auto) 32px;
      }

      .calculator-body .mobile-service-item .service-card-qty button{
        width:32px;
        height:32px;
      }

      .calculator-body .mobile-service-item .service-card-qty span{
        font-size:20px;
      }

      .calculator-body .mobile-service-empty{
        padding:12px;
        border-radius:13px;
        background:#fff8dc;
        color:#4d5968;
        font-size:13px;
        font-weight:750;
      }

      .calculator-body .estimate-grid{
        display:none;
      }

      .calculator-body.calculator-search-active .calc-category-list{
        display:none;
      }

      .calculator-body.calculator-search-active .estimate-grid{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        margin-bottom:18px;
        animation:mobileServiceListIn .18s ease both;
      }

      .calculator-body.calculator-search-active .estimate-card{
        min-height:0;
        display:grid;
        grid-template-columns:minmax(0, 1fr) auto;
        align-items:center;
        gap:8px 10px;
        padding:10px 10px 10px 12px;
        border-radius:13px;
        background:linear-gradient(180deg, #fffef8, #fff7da);
        box-shadow:0 8px 18px rgba(49,45,33,.06);
      }

      .calculator-body.calculator-search-active .estimate-card:hover{
        transform:none;
      }

      .calculator-body.calculator-search-active .estimate-card-top{
        display:contents;
      }

      .calculator-body.calculator-search-active .estimate-category{
        display:none;
      }

      .calculator-body.calculator-search-active .estimate-price{
        grid-column:2;
        grid-row:1;
        align-self:center;
        font-size:13px;
        justify-self:end;
        max-width:92px;
        overflow:hidden;
        text-overflow:ellipsis;
      }

      .calculator-body.calculator-search-active .estimate-card h3{
        grid-column:1;
        grid-row:1;
        margin:0;
        font-size:13px;
        line-height:1.18;
      }

      .calculator-body.calculator-search-active .estimate-card p{
        grid-column:1 / -1;
        margin:0;
        font-size:11px;
        line-height:1.25;
      }

      .calculator-body.calculator-search-active .estimate-add{
        grid-column:1 / -1;
        width:100%;
        min-height:38px;
        margin-top:2px;
      }

      .calculator-body.calculator-search-active .service-card-state{
        grid-column:1 / -1;
        width:100%;
        padding:8px;
        border-radius:12px;
      }

      .calculator-body .estimate-panel{
        margin-top:18px;
      }
    }

    @keyframes mobileServiceListIn{
      from{opacity:0; transform:translateY(-6px)}
      to{opacity:1; transform:translateY(0)}
    }

    /* Compact service categories and closed project cards. */
    .calculator-body .calc-category-list{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin:0 0 24px;
    }

    .calculator-body .calc-category-chip{
      min-height:54px;
      padding:10px 24px;
      border:1px solid #d8d5cb;
      border-radius:999px;
      background:rgba(255,255,255,.82);
      color:#4d4b46;
      font:inherit;
      font-size:18px;
      line-height:1.15;
      text-align:left;
      cursor:pointer;
      transition:background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
    }

    .calculator-body .calc-category-chip:hover{
      border-color:#d8a700;
      color:#191815;
      transform:translateY(-1px);
    }

    .calculator-body .calc-category-chip.active{
      border-color:#e4a900;
      background:#f7b600;
      color:#1c1913;
      box-shadow:0 8px 18px rgba(223,162,0,.2);
    }

    .calculator-body .calc-mobile-service-list{
      flex-basis:100%;
    }

    .calculator-body .estimate-grid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:18px;
    }

    .calculator-body .estimate-card{
      min-height:178px;
      display:grid;
      grid-template-columns:minmax(0, 1fr) auto;
      grid-template-rows:auto auto 1fr auto;
      gap:8px 20px;
      padding:25px;
      border:1px solid #d9d6ce;
      border-radius:26px;
      background:rgba(255,255,255,.91);
      box-shadow:none;
    }

    .calculator-body .estimate-card:hover{
      border-color:#d5b35e;
      transform:translateY(-2px);
      box-shadow:0 12px 22px rgba(40,34,20,.07);
    }

    .calculator-body .estimate-card-top{
      display:contents;
    }

    .calculator-body .estimate-category{
      display:none;
    }

    .calculator-body .estimate-card h3{
      grid-column:1 / -1;
      grid-row:1;
      margin:0;
      color:#1f1d19;
      font-size:20px;
      line-height:1.18;
    }

    .calculator-body .estimate-card p{
      grid-column:1 / -1;
      grid-row:2;
      margin:0;
      color:#706d66;
      font-size:16px;
      line-height:1.32;
    }

    .calculator-body .estimate-price{
      grid-column:1;
      grid-row:4;
      align-self:end;
      justify-self:start;
      color:#1f1d19;
      font-size:21px;
      font-weight:900;
      white-space:nowrap;
    }

    .calculator-body .estimate-add,
    .calculator-body .estimate-card .service-card-state{
      grid-column:2;
      grid-row:4;
      align-self:end;
      justify-self:end;
      margin:0;
    }

    .calculator-body .estimate-add{
      min-width:138px;
      min-height:52px;
      padding:10px 20px;
      border-radius:999px;
    }

    .project-card{
      overflow:hidden;
      border:1px solid #cbc9c1;
      border-radius:22px;
      background:#efeee9;
      box-shadow:0 9px 20px rgba(40,38,32,.08);
    }

    .project-card:hover{
      box-shadow:0 14px 28px rgba(40,38,32,.12);
    }

    .project-preview{
      position:relative;
      display:grid;
      grid-template-rows:minmax(218px, 19vw) auto;
      min-height:0;
      gap:0;
      padding:0;
      background:#efeee9;
    }

    .project-preview-photo{
      grid-column:1;
      grid-row:1;
      min-height:0;
      overflow:hidden;
      background:#deddd7;
    }

    .project-preview-photo img{
      display:block;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center;
    }

    .project-preview-content{
      grid-column:1;
      grid-row:2;
      min-height:158px;
      padding:25px 64px 24px 26px;
      background:linear-gradient(135deg, #f5f4ef, #e7e5de);
    }

    .project-preview h3{
      margin:0;
      color:#282722;
      font-size:20px;
      line-height:1.2;
      font-weight:800;
    }

    .project-preview p{
      margin:10px 0 0;
      color:#726f68;
      font-size:16px;
      line-height:1.42;
    }

    .project-open-label{
      display:inline-flex;
      align-items:center;
      gap:7px;
      margin-top:18px;
      color:#d48300;
      font-size:16px;
      font-weight:800;
    }

    .project-open-label b{
      font-size:21px;
      line-height:.65;
      transition:transform .2s ease;
    }

    .project-open-indicator{
      position:absolute;
      right:16px;
      bottom:16px;
      display:grid;
      width:20px;
      height:20px;
      place-items:center;
      border:1px solid #afaea8;
      border-radius:50%;
      background:linear-gradient(135deg, #f7f7f4, #b8b8b2);
      color:transparent;
      box-shadow:inset 0 1px 1px rgba(255,255,255,.9), 0 1px 2px rgba(0,0,0,.13);
      transition:transform .2s ease;
    }

    .project-open-indicator::before{
      content:'';
      width:5px;
      height:5px;
      border-right:1.5px solid #4e4d48;
      border-bottom:1.5px solid #4e4d48;
      transform:translateY(-1px) rotate(45deg);
    }

    .project-card.open .project-open-label b,
    .project-card.open .project-open-indicator{
      transform:rotate(180deg);
    }

    .projects-grid.has-open{
      justify-items:center;
    }

    .project-card.open{
      width:min(100%, 1180px);
      margin-inline:auto;
    }

    .project-card.open .project-preview{
      grid-template-rows:auto;
    }

    .project-card.open .project-preview-photo{
      display:none;
    }

    .project-card.open .project-preview-content{
      grid-row:1;
      min-height:0;
      padding:24px 64px 24px 28px;
    }

    .project-card.open .project-expanded-inner{
      align-items:start;
    }

    .project-card.open .project-text,
    .project-card.open .project-gallery{
      align-self:start;
    }

    @media (max-width:760px){
      .calculator-body .calc-category-list{
        gap:8px;
        margin-bottom:18px;
      }

      .calculator-body .calc-category-chip{
        min-height:42px;
        padding:8px 14px;
        font-size:14px;
      }

      .calculator-body .calc-mobile-service-list{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        padding:2px 2px 10px;
      }

      .calculator-body .estimate-grid{
        grid-template-columns:1fr;
        gap:12px;
      }

      .calculator-body .estimate-card{
        min-height:0;
        padding:18px;
        border-radius:20px;
      }

      .calculator-body .estimate-card h3{
        font-size:17px;
      }

      .calculator-body .estimate-card p{
        font-size:14px;
      }

      .calculator-body .estimate-price{
        font-size:18px;
      }

      .calculator-body .estimate-add{
        min-width:118px;
        min-height:46px;
        padding:8px 16px;
      }

      .project-preview{
        grid-template-rows:clamp(190px, 58vw, 268px) auto;
      }

      .project-card.open{
        width:100%;
      }

      .project-card.open .project-preview-content{
        padding:19px 48px 19px 19px;
      }

      .project-preview-content{
        min-height:148px;
        padding:19px 48px 19px 19px;
      }

      .project-preview h3{
        font-size:18px;
      }

      .project-preview p{
        margin-top:8px;
        font-size:14px;
        line-height:1.35;
      }

      .project-open-label{
        margin-top:14px;
        font-size:15px;
      }

      .project-open-indicator{
        right:14px;
        bottom:14px;
      }
    }

    @media (max-width:430px){
      .project-expanded-inner{
        padding:0 10px 14px;
      }

      .project-main-photo{
        height:clamp(220px, 76vw, 300px);
      }

      .project-thumbs{
        grid-template-columns:repeat(3, minmax(0, 1fr));
      }

      .project-thumb{
        height:54px;
      }
    }
