*, *::before, *::after { box-sizing: border-box; }
html, body { scroll-behavior: smooth; overflow-x: hidden; width: 100%; max-width: 100%; margin: 0; padding: 0; }
body { font-family: 'Inter', sans-serif; background: var(--bg); color: var(--text); transition: background 0.3s, color 0.3s; }
::selection { background: #00ff88; color: #050505; }
:root {
    --bg: #050505;
    --bg2: #0d0d0d;
    --text: #ffffff;
    --text-muted: #888888;
    --text-faint: rgba(255,255,255,0.6);
    --border: rgba(255,255,255,0.07);
    --border-hover: rgba(255,255,255,0.2);
    --card-bg: rgba(255,255,255,0.02);
    --stat-bg: #050505;
    --stat-grid-bg: rgba(255,255,255,0.05);
    --input-bg: rgba(255,255,255,0.04);
    --input-border: rgba(255,255,255,0.1);
    --overlay-bg: #050505;
    --footer-bg: #050505;
    --logo-filter: brightness(1) invert(0);
    --hero-img-filter: brightness(0.3);
    --hero-overlay: rgba(5,5,5,0.85);
    --card-overlay: linear-gradient(to top, rgba(5,5,5,0.9) 0%, transparent 60%);
    --badge-bg: rgba(5,5,5,0.72);
    --badge-text: rgba(255,255,255,0.65);
}
html.light {
    --bg: #f4f4f4;
    --bg2: #ebebeb;
    --text: #050505;
    --text-muted: #555555;
    --text-faint: rgba(5,5,5,0.6);
    --border: rgba(5,5,5,0.08);
    --border-hover: rgba(5,5,5,0.25);
    --card-bg: rgba(5,5,5,0.03);
    --stat-bg: #f4f4f4;
    --stat-grid-bg: rgba(5,5,5,0.06);
    --input-bg: rgba(5,5,5,0.04);
    --input-border: rgba(5,5,5,0.15);
    --overlay-bg: #f4f4f4;
    --footer-bg: #ebebeb;
    --logo-filter: brightness(0) invert(1);
    --hero-img-filter: brightness(0.85);
    --hero-overlay: rgba(244,244,244,0.85);
    --card-overlay: linear-gradient(to top, rgba(244,244,244,0.95) 0%, transparent 65%);
    --badge-bg: rgba(244,244,244,0.85);
    --badge-text: rgba(5,5,5,0.8);
}
#preloader { position: fixed; inset: 0; z-index: 9999; background: var(--bg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.pre-logo { font-family:'Sora',sans-serif; font-size:clamp(2rem,6vw,3.5rem); font-weight:800; letter-spacing:.15em; color:var(--text); overflow:hidden; }
.pre-logo span { display:block; transform:translateY(110%); }
.pre-page { font-family:'Sora',sans-serif; font-size:.72rem; letter-spacing:.4em; color:#00ff88; overflow:hidden; }
.pre-page span { display:block; transform:translateY(110%); }
.pre-bar { position:absolute; bottom:0; left:0; height:3px; width:0%; background:#00ff88; }
#site-header { position: fixed; top:0; left:0; right:0; width:100%; z-index:1000; padding: 24px 40px; display: flex; align-items:center; justify-content:space-between; transition: padding .4s ease, background .4s ease, backdrop-filter .4s ease; mix-blend-mode: difference; }
#site-header.scrolled { padding: 14px 40px; mix-blend-mode: normal; background: var(--hero-overlay); backdrop-filter: blur(14px); border-bottom: 1px solid var(--border); }
html.light #site-header { mix-blend-mode: normal; }
html.light #site-header:not(.scrolled) { background: transparent; }
.header-logo { text-decoration:none; display:flex; align-items:center; }
.header-logo img { height:28px; width:auto; display:block; filter: var(--logo-filter); transition: filter 0.3s; }
.header-right { display:flex; align-items:center; gap:24px; }
.header-nav { display:flex; align-items:center; gap:32px; }
.header-nav a { font-family:'Sora',sans-serif; font-size:.75rem; letter-spacing:.08em; color:var(--text); text-decoration:none; position:relative; opacity:.7; transition:opacity .3s; }
.header-nav a:hover, .header-nav a.active { opacity:1; }
.header-nav a::after { content:''; position:absolute; bottom:-4px; left:0; right:100%; height:1px; background:#00ff88; transition:right .3s; }
.header-nav a:hover::after, .header-nav a.active::after { right:0; }
.header-actions { display:flex; align-items:center; gap:14px; }
.btn-theme { width:34px; height:34px; display:flex; align-items:center; justify-content:center; color:var(--text); opacity:.7; cursor:pointer; transition:opacity .3s; background:none; border:none; font-size:.95rem; }
.btn-theme:hover { opacity:1; color:#00ff88 !important; }
.lang-switcher { position:relative; display:flex; align-items:center; }
.lang-current { background:none; border:none; opacity:.85; cursor:pointer; transition:opacity .3s; display:flex; align-items:center; justify-content:center; padding:4px; outline:none; }
.lang-current:hover { opacity:1; }
.lang-flag { width:28px; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:3px; display:block; box-shadow:0 0 0 1px var(--border); }
.lang-dropdown { position:absolute; top:calc(100% + 12px); right:0; background:var(--bg2); border:1px solid var(--border); border-radius:6px; padding:6px; display:none; flex-direction:column; gap:4px; min-width:44px; box-shadow:0 8px 24px rgba(0,0,0,0.3); }
.lang-dropdown.open { display:flex; }
.lang-dropdown button { background:none; border:none; padding:6px; cursor:pointer; border-radius:4px; transition:background .2s, opacity .2s; display:flex; align-items:center; justify-content:center; outline:none; opacity:.6; }
.lang-dropdown button:hover { background:var(--card-bg); opacity:1; }
.lang-dropdown button.active-lang { opacity:1; background:var(--card-bg); }
.lang-flag-drop { width:26px; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:2px; display:block; }
.btn-menu { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.btn-menu span { display:block; width:22px; height:1.5px; background:var(--text); transition:transform .3s, opacity .3s; }
.btn-menu.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.btn-menu.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.btn-menu.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
#menu-overlay { position: fixed; inset:0; z-index:990; background: var(--overlay-bg); display: flex; flex-direction:column; align-items: flex-start; justify-content:center; padding: 0 10vw; clip-path: inset(0 0 100% 0); transition: clip-path .55s cubic-bezier(.77,0,.18,1); }
#menu-overlay.open { clip-path: inset(0 0 0% 0); }
.overlay-nav a { display: block; font-family: 'Sora', sans-serif; font-size:clamp(2.4rem,7vw,5rem); font-weight:900; color: var(--text); text-decoration:none; line-height:1.1; letter-spacing:-.02em; opacity:0; transform:translateY(30px); transition:color .3s; }
#menu-overlay.open .overlay-nav a { animation:menuIn .5s forwards; }
#menu-overlay.open .overlay-nav a:nth-child(1) { animation-delay:.15s; }
#menu-overlay.open .overlay-nav a:nth-child(2) { animation-delay:.22s; }
#menu-overlay.open .overlay-nav a:nth-child(3) { animation-delay:.29s; }
#menu-overlay.open .overlay-nav a:nth-child(4) { animation-delay:.36s; }
#menu-overlay.open .overlay-nav a:nth-child(5) { animation-delay:.43s; }
.overlay-nav a:hover { color:#00ff88; }
@keyframes menuIn { to { opacity:1; transform:translateY(0); } }
.overlay-bottom { position:absolute; bottom:40px; left:10vw; display:flex; gap:22px; }
.overlay-bottom a { font-family:'Sora',sans-serif; font-size:.75rem; letter-spacing:.1em; color:var(--text-muted); text-decoration:none; transition:color .3s; }
.overlay-bottom a:hover { color:#00ff88; }
.hero-section { position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; width: 100%; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; filter:var(--hero-img-filter); transition: filter 0.3s; }
.hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(120deg, var(--hero-overlay) 40%, transparent); transition: background 0.3s; }
.hero-content { position:relative; z-index:2; padding:130px 40px 80px; max-width:1400px; margin:0 auto; width:100%; }
.hero-title { font-family:'Sora',sans-serif; font-weight:900; line-height:.9; }
.hero-title .line { display:block; overflow:hidden; }
.hero-title .line span { display:block; }
.t1, .t3 { font-size:clamp(3.2rem,9vw,8rem); color:var(--text); transition: color 0.3s; }
.t2 { font-size:clamp(3.2rem,9vw,8rem); color:#00ff88; }
.hero-drone { position:absolute; right:0; top:50%; transform:translateY(-50%); width:48%; max-width:640px; pointer-events:none; filter:drop-shadow(0 0 80px rgba(0,255,136,.12)); z-index:2; }
.hero-drone img { width:100%; height:auto; display:block; }
.marquee-wrap { overflow:hidden; border-top:1px solid var(--border); border-bottom:1px solid var(--border); width: 100%; }
.marquee-inner { display:flex; overflow:hidden; width: 100%; }
.marquee-track { display:flex; align-items:center; flex-shrink:0; }
.marquee-track span { font-family:'Sora',sans-serif; font-size:.7rem; font-weight:600; letter-spacing:.28em; color:var(--text-muted); padding:18px 28px; }
.marquee-track .dot-sep { color:#00ff88; padding:18px 6px; }
.service-item { padding:36px 0; border-bottom:1px solid var(--border); display:flex; align-items:flex-start; justify-content:space-between; gap:40px; cursor:default; width: 100%; }
.service-item:first-child { border-top:1px solid var(--border); }
.service-num { font-family:'Sora',sans-serif; font-size:.68rem; color:#00ff88; letter-spacing:.2em; min-width:34px; margin-top:4px; }
.service-title { font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(1.3rem,2.5vw,2rem); color:var(--text); }
.service-tags { font-size:.75rem; color:var(--text-muted); letter-spacing:.05em; margin-top:6px; }
.service-desc { font-size:.82rem; color:var(--text-muted); line-height:1.75; max-width:280px; }
.service-arrow { font-size:1.1rem; color:var(--border-hover); margin-top:4px; transition:color .3s, transform .3s; }
.service-item:hover .service-arrow { color:#00ff88; transform:translate(4px,-4px); }
#service-floater { position:fixed; z-index:500; pointer-events:none; width:200px; height:140px; border-radius:8px; overflow:hidden; opacity:0; top:0; left:0; }
#service-floater img { width:100%; height:100%; object-fit:cover; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--stat-grid-bg); width: 100%; }
.stat-cell { background:var(--stat-bg); padding:48px 32px; }
.stat-num { font-family:'Sora',sans-serif; font-size:clamp(2.4rem,5vw,3.8rem); font-weight:900; color:#00ff88; line-height:1; }
.stat-label { font-size:.68rem; color:var(--text-muted); letter-spacing:.14em; margin-top:10px; text-transform:uppercase; }
.project-card { position:relative; overflow:hidden; border-radius:4px; aspect-ratio:4/3; display:block; text-decoration:none; width: 100%; background:var(--bg2); }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; display:block; }
.project-card:hover img { transform:scale(1.07); }
.project-card-overlay { position:absolute; inset:0; background:var(--card-overlay); display:flex; flex-direction:column; justify-content:flex-end; padding:20px; transition: background 0.3s; }
.project-cat { font-size:clamp(0.5rem, 2vw, 0.6rem); letter-spacing:.22em; text-transform:uppercase; color:#00ff88; margin-bottom:5px; }
.project-name { font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(0.75rem, 2.5vw, 0.88rem); color:var(--text); line-height:1.35; transition: color 0.3s; }
.logos-row { display:flex; overflow:hidden; width: 100%; }
.logos-track { display:flex; align-items:center; flex-shrink:0; }
.logos-track img { height:34px; width:auto; object-fit:contain; filter:grayscale(1) brightness(0.45); opacity:.55; padding:0 28px; transition:filter .3s, opacity .3s; }
.logos-track img:hover { filter:grayscale(0) brightness(1); opacity:1; }
.proj-hero { padding:180px 40px 100px; max-width:1400px; margin:0 auto; width: 100%; }
.proj-title { font-family:'Sora',sans-serif; font-weight:900; line-height:.9; font-size:clamp(3.5rem,10vw,9rem); }
.proj-title .green { color:#00ff88; }
.filter-bar { display:flex; flex-wrap:wrap; gap:8px; }
.filter-btn { font-family:'Sora',sans-serif; font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; padding:10px 20px; border:1px solid var(--border); color:var(--text-muted); background:transparent; cursor:pointer; transition:all .25s; border-radius:2px; }
.filter-btn:hover { color:var(--text); border-color:var(--border-hover); }
.filter-btn.active-filter { color:var(--bg); background:#00ff88; border-color:#00ff88; }
.proj-card { position:relative; overflow:hidden; border-radius:4px; aspect-ratio:4/3; width: 100%; background:var(--bg2); }
.proj-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.proj-card:hover img { transform:scale(1.07); }
.proj-card-overlay { position:absolute; inset:0; background:var(--card-overlay); display:flex; flex-direction:column; justify-content:flex-end; padding:20px; transition: background 0.3s; }
.proj-cat-label { font-size:clamp(0.5rem, 2vw, 0.62rem); letter-spacing:.22em; text-transform:uppercase; color:#00ff88; margin-bottom:5px; }
.proj-name { font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(0.75rem, 2.5vw, 0.88rem); color:var(--text); line-height:1.35; transition: color 0.3s; }
.proj-loc { font-size:clamp(0.6rem, 2vw, 0.7rem); color:var(--text-faint); margin-top:4px; transition: color 0.3s; }
.proj-year-badge { position:absolute; top:14px; right:14px; background:var(--badge-bg); backdrop-filter:blur(8px); border:1px solid var(--border); padding:4px 10px; font-family:'Sora',sans-serif; font-size:clamp(0.55rem, 2vw, 0.65rem); color:var(--badge-text); border-radius:2px; transition: background 0.3s, color 0.3s; }
.model-hero { padding:180px 40px 100px; max-width:1400px; margin:0 auto; width: 100%; }
.model-title { font-family:'Sora',sans-serif; font-weight:900; line-height:.9; font-size:clamp(3.2rem,8vw,8rem); }
.model-title .green { color:#00ff88; }
.tech-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--stat-grid-bg); width: 100%; }
.tech-cell { background:var(--stat-bg); padding:36px 28px; text-align:center; }
.tech-icon { font-size:1.4rem; color:#00ff88; margin-bottom:12px; }
.tech-title { font-family:'Sora',sans-serif; font-weight:700; font-size:.88rem; color:var(--text); margin-bottom:6px; }
.tech-desc { font-size:.72rem; color:var(--text-muted); line-height:1.6; }
.model-card { background:var(--card-bg); border:1px solid var(--border); overflow:hidden; border-radius:4px; transition:border-color .3s; text-decoration:none; display:block; width: 100%; }
.model-card:hover { border-color:#00ff88; }
.model-thumb { position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--bg2); }
.model-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; display:block; }
.model-card:hover .model-thumb img { transform:scale(1.04); }
.model-thumb-overlay { position:absolute; inset:0; background:rgba(5,5,5,.6); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.model-card:hover .model-thumb-overlay { opacity:1; }
.model-thumb-overlay span { font-family:'Sora',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.15em; background:#00ff88; color:#050505; padding:8px 18px; }
.model-info { padding:18px 20px; }
.model-cat { font-size:clamp(0.5rem, 2vw, 0.62rem); letter-spacing:.2em; text-transform:uppercase; color:#00ff88; margin-bottom:6px; }
.model-name { font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(0.75rem, 2.5vw, 0.9rem); color:var(--text); line-height:1.3; }
.model-loc { font-size:clamp(0.6rem, 2vw, 0.7rem); color:var(--text-muted); margin-top:4px; }
.cesium-card { border:1px solid var(--border); overflow:hidden; border-radius:4px; transition:border-color .3s; text-decoration:none; display:block; width: 100%; }
.cesium-card:hover { border-color:#00ff88; }
.cesium-card-thumb { position:relative; aspect-ratio:16/9; background:var(--bg2); overflow:hidden; }
.cesium-card-thumb img { width:100%; height:100%; object-fit:cover; filter:brightness(.7); transition:filter .3s; display:block; }
.cesium-card:hover .cesium-card-thumb img { filter:brightness(.9); }
.cesium-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.cesium-play-btn { width:56px; height:56px; border-radius:50%; background:#00ff88; color:#050505; display:flex; align-items:center; justify-content:center; font-size:1.2rem; transition:transform .3s; }
.cesium-card:hover .cesium-play-btn { transform:scale(1.12); }
.cesium-card-info { padding:16px 20px; background:var(--card-bg); }
.cesium-card-title { font-family:'Sora',sans-serif; font-weight:700; font-size:clamp(0.75rem, 2.5vw, 0.9rem); color:var(--text); line-height:1.3; }
.format-pill { display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:1px solid var(--border); border-radius:2px; font-family:'Sora',sans-serif; font-size:.7rem; letter-spacing:.08em; color:var(--text-muted); transition:border-color .3s; }
.format-pill:hover { border-color:#00ff88; color:var(--text); }
.format-pill i { color:#00ff88; font-size:.8rem; }
.featured-iframe-wrap { position:relative; aspect-ratio:16/9; border-radius:4px; overflow:hidden; border:1px solid var(--border); width: 100%; background:var(--bg2); }
.featured-iframe-wrap iframe { width:100%; height:100%; border:0; }
.contact-hero { padding:180px 40px 80px; max-width:1400px; margin:0 auto; width: 100%; }
.contact-title { font-family:'Sora',sans-serif; font-weight:900; line-height:.9; font-size:clamp(3rem,8vw,7.5rem); }
.contact-title .green { color:#00ff88; }
.contact-form-wrap { background:var(--card-bg); border:1px solid var(--border); padding:48px; border-radius:4px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; width: 100%; }
.form-field { display:flex; flex-direction:column; gap:8px; }
.form-label { font-family:'Sora',sans-serif; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); }
.form-input { background:var(--input-bg); border:1px solid var(--input-border); color:var(--text); font-family:'Inter',sans-serif; font-size:.9rem; padding:14px 18px; transition:border-color .3s,background .3s; outline:none; border-radius:2px; width: 100%; }
.form-input:focus { border-color:#00ff88; background:rgba(0,255,136,.03); }
.form-input::placeholder { color:var(--text-muted); opacity:.5; }
textarea.form-input { resize:vertical; min-height:140px; }
.service-checks { display:flex; flex-wrap:wrap; gap:8px; }
.service-check { cursor:pointer; }
.service-check input { display:none; }
.service-check span { display:block; font-family:'Sora',sans-serif; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; padding:8px 16px; border:1px solid var(--border); color:var(--text-muted); transition:all .25s; border-radius:2px; }
.service-check input:checked + span { color:#050505; background:#00ff88; border-color:#00ff88; }
.service-check:hover span { border-color:var(--border-hover); color:var(--text); }
.btn-submit { width:100%; padding:18px; background:#00ff88; color:#050505; font-family:'Sora',sans-serif; font-weight:700; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; border:none; cursor:pointer; transition:background .3s,transform .2s; border-radius:2px; }
.btn-submit:hover { background:var(--text); transform:translateY(-1px); }
.success-box { background:rgba(0,255,136,.08); border:1px solid rgba(0,255,136,.3); padding:40px 32px; border-radius:4px; text-align:center; }
.contact-info-card { background:var(--card-bg); border:1px solid var(--border); padding:28px; border-radius:4px; transition:border-color .3s; text-decoration:none; display:block; width: 100%; }
.contact-info-card:hover { border-color:#00ff88; }
.info-icon { width:40px; height:40px; border-radius:50%; background:rgba(0,255,136,.1); display:flex; align-items:center; justify-content:center; color:#00ff88; margin-bottom:14px; }
.info-label { font-size:.72rem; color:var(--text-muted); margin-bottom:4px; }
.info-value { font-family:'Sora',sans-serif; font-weight:700; font-size:.9rem; color:var(--text); }
.social-link { display:flex; align-items:center; gap:14px; padding:14px 18px; border:1px solid var(--border); border-radius:4px; transition:all .3s; text-decoration:none; width: 100%; }
.social-link:hover { border-color:#00ff88; background:rgba(0,255,136,.08); }
.social-icon { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; flex-shrink:0; }
.social-name { font-family:'Sora',sans-serif; font-weight:600; font-size:.85rem; color:var(--text); }
.resp-card { background:var(--card-bg); border:1px solid var(--border); padding:28px; border-radius:4px; width: 100%; }
.resp-row { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--border); }
.resp-row:last-child { border-bottom:none; }
.resp-key { font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-muted); }
.resp-val { font-family:'Sora',sans-serif; font-size:.8rem; font-weight:600; color:var(--text); }
.faq-item { border-bottom:1px solid var(--border); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 0; background:none; border:none; color:var(--text); font-family:'Sora',sans-serif; font-size:.9rem; font-weight:600; text-align:left; cursor:pointer; transition:color .3s; }
.faq-question:hover { color:#00ff88; }
.faq-icon { font-size:.8rem; color:var(--text-muted); transition:transform .3s,color .3s; flex-shrink:0; }
.faq-item.open .faq-icon { transform:rotate(45deg); color:#00ff88; }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-answer-inner { padding:0 0 20px; font-size:.85rem; color:var(--text-muted); line-height:1.75; }
.pulsedot { width:8px; height:8px; border-radius:50%; background:#00ff88; display:inline-block; margin-right:8px; box-shadow:0 0 8px #00ff88; animation:pulse 2s infinite; flex-shrink:0; }
@keyframes pulse { 0%,100%{ box-shadow:0 0 8px rgba(0,255,136,.8); } 50%{ box-shadow:0 0 18px rgba(0,255,136,.4); } }
.about-hero { position:relative; min-height:70vh; display:flex; align-items:flex-end; overflow:hidden; width: 100%; }
.about-hero-bg { position:absolute; inset:0; z-index:0; }
.about-hero-bg img { width:100%; height:100%; object-fit:cover; filter:var(--hero-img-filter); transition: filter 0.3s; }
.about-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,var(--bg) 0%,transparent 60%); transition: background 0.3s; }
.about-hero-content { position:relative; z-index:2; padding:0 40px 80px; max-width:1400px; width:100%; margin:0 auto; }
.about-title { font-family:'Sora',sans-serif; font-weight:900; line-height:.9; }
.about-title span { display:block; font-size:clamp(3rem,8vw,7rem); color:var(--text); transition: color 0.3s; }
.about-title .green { color:#00ff88 !important; }
.service-card { background:var(--card-bg); border:1px solid var(--border); padding:32px; transition:border-color .3s, background .3s; border-radius:4px; width: 100%; }
.service-card:hover { border-color:#00ff88; background:rgba(0,255,136,.03); }
.service-icon { width:42px; height:42px; border-radius:50%; background:rgba(0,255,136,.1); display:flex; align-items:center; justify-content:center; color:#00ff88; font-size:.95rem; margin-bottom:18px; }
.equip-card { background:var(--card-bg); border:1px solid var(--border); padding:24px; display:flex; flex-direction:column; align-items:center; gap:10px; transition:border-color .3s; border-radius:4px; width: 100%; }
.equip-card:hover { border-color:#00ff88; }
.equip-card img { height:52px; width:auto; object-fit:contain; filter:grayscale(1) brightness(0.55); transition:filter .4s, transform .3s; }
.equip-card:hover img { filter:grayscale(0) brightness(1); transform:scale(1.05); }
.equip-name { font-family:'Sora',sans-serif; font-size:.7rem; font-weight:600; letter-spacing:.1em; color:var(--text-muted); text-align:center; }
.equip-cat { font-size:.62rem; color:var(--text-muted); opacity:.6; text-align:center; }
.team-avatar { width:68px; height:68px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Sora',sans-serif; font-size:1.2rem; font-weight:800; flex-shrink:0; }
.team-card { display:flex; align-items:center; gap:18px; background:var(--card-bg); border:1px solid var(--border); padding:22px; transition:border-color .3s; border-radius:4px; width: 100%; }
.team-card:hover { border-color:var(--border-hover); }
.ref-marquee-wrap { overflow:hidden; width: 100%; }
.ref-track { display:flex; align-items:center; flex-shrink:0; }
.ref-track img { height:34px; width:auto; object-fit:contain; filter:grayscale(1) brightness(0.45); opacity:.55; padding:0 22px; transition:filter .3s, opacity .3s; }
.ref-track img:hover { filter:grayscale(0) brightness(1); opacity:1; }

@media (max-width:768px) {
    #site-header { padding:20px 20px; }
    #site-header.scrolled { padding:12px 20px; }
    .header-nav { display:none; }
    .btn-menu { display:flex; }
    .proj-hero, .model-hero, .contact-hero { padding:130px 24px 60px; }
    .contact-form-wrap { padding:24px 18px; }
    section { padding-left:20px !important; padding-right:20px !important; }
    .tech-strip { grid-template-columns:repeat(2,1fr) !important; }
    #projects-grid { grid-template-columns:repeat(2,1fr) !important; }
    .hero-content { padding:120px 24px 60px; }
    .service-desc { display:none; }
    div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important; }
    .service-item { flex-direction:column; gap:16px; }
    .about-hero-content { padding:0 24px 60px; }
}

@media(max-width:1200px){
    .proj-hero, .model-hero, .contact-hero { padding-left:32px; padding-right:32px; }
    section > div[style*="repeat(4,1fr)"] { grid-template-columns:repeat(3,1fr) !important; }
}

@media(max-width:1024px){
    .hero-drone { display:none; }
    .stats-grid { grid-template-columns:repeat(2,1fr); }
    #projects-grid { grid-template-columns:repeat(2,1fr) !important; }
    .tech-strip { grid-template-columns:repeat(2,1fr); }
    section > div[style*="grid-template-columns:1fr 380px"] { grid-template-columns:1fr !important; }
    section > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
    section > div[style*="repeat(5,1fr)"] { grid-template-columns:repeat(3,1fr) !important; }
    section > div[style*="repeat(4,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    section > div[style*="repeat(3,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
}

@media(max-width:900px){
    .contact-hero h1, .proj-title, .model-title { font-size:clamp(2.4rem,8vw,5rem) !important; }
    .form-grid { grid-template-columns:1fr !important; }
    section > div[style*="repeat(4,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    section > div[style*="repeat(2,1fr)"] { grid-template-columns:1fr !important; }
}

@media(max-width:640px){
    section[style*="padding:48px 40px"] { padding:40px 24px 72px !important; }
    section[style*="padding:96px 40px;border-top"] { padding:60px 24px !important; }
    section > div[style*="repeat(5,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    section > div[style*="repeat(3,1fr)"] { grid-template-columns:1fr !important; }
    section > div[style*="repeat(2,1fr)"] { grid-template-columns:1fr !important; }
    .footer-grid { grid-template-columns: 1fr !important; }
    .footer-cta-band { padding:60px 24px !important; }
    footer { padding:48px 24px 24px !important; }
}

@media(max-width:580px){
    .stat-cell { padding:32px 20px; }
    #projects-grid { grid-template-columns:repeat(2,1fr) !important; }
    section > div[style*="repeat(4,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    .filter-btn { padding:8px 14px; font-size:.62rem; }
    .model-hero { padding:130px 24px 60px; }
    .format-pill { font-size:.65rem; padding:8px 12px; }
    .project-card-overlay, .proj-card-overlay, .model-info { padding: 12px 10px; }
}

@media(max-width:480px){
    #projects-grid { grid-template-columns:repeat(2,1fr) !important; }
    section > div[style*="repeat(4,1fr)"] { grid-template-columns:repeat(2,1fr) !important; }
    .filter-bar { gap:6px; }
    .filter-btn { padding:7px 12px; font-size:.6rem; }
    .hero-cta { flex-direction:column; }
    .hero-cta a { text-align:center; justify-content:center; }
    .stats-grid { grid-template-columns:repeat(2,1fr); }
}

