:root{--ink:#0e1a3a;--bg:#eaf8fc;--surface:#e9f0f4;--accent:#0086a8;--cyan:#00c4e6;--sky:#78d6ff;--navy:#0e1a3a;--a100:#e6f8fc;--a600:#00718f;--a700:#005a73;--a800:#0a3f52;--rule:color-mix(in srgb,#0e1a3a 40%,transparent);--muted:color-mix(in srgb,#0e1a3a 78%,transparent);--mono:'JetBrains Mono',ui-monospace,monospace;--head:'Space Grotesk','Archivo',sans-serif;--pad:clamp(20px,5vw,72px);--shadow-md:0 6px 18px rgba(14,26,58,.12)}
*{border-radius:0!important}
html{scroll-behavior:smooth;scroll-padding-top:80px}
html,body{overflow-x:clip}
body{margin:0;background:radial-gradient(ellipse 70% 55% at 18% 0%,#dff6fe 0%,transparent 70%),radial-gradient(ellipse 60% 50% at 90% 40%,#f3fdff 0%,transparent 70%),var(--bg);background-attachment:fixed;color:var(--ink);font-family:'Archivo',system-ui,sans-serif;text-wrap:pretty;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px;box-shadow:none!important}
::selection{background:var(--a100)}
.container{max-width:1200px;padding-left:var(--pad);padding-right:var(--pad)}
@media (min-width:1400px){.container{max-width:1200px}}
.sq{display:inline-block;width:10px;height:10px;background:var(--cyan);flex:none}.sq-sm{width:8px;height:8px}.sq-accent{background:var(--accent)}
.accent{color:var(--accent)}.accent-ink{color:var(--a700)}
.muted{font-size:15.5px;line-height:26px;color:var(--muted);margin:0}
.rule{height:2px;border:0;margin:0;background:var(--rule);opacity:1}
/* nav */
.asc-nav{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:2px solid var(--rule);padding:10px 0}
.brand-mark{display:block;height:44px;flex:none}
.brand-mark img{height:100%;width:auto;display:block}
.brand-word{font-family:'Archivo',sans-serif;font-weight:500;font-size:22px;letter-spacing:.32em;text-transform:uppercase;color:var(--navy);line-height:1}
.asc-nav .nav-link{color:var(--ink);font-weight:500;font-size:15px;padding:8px 0}
.asc-nav .nav-link:hover{color:var(--accent)}
.asc-toggler{width:44px;height:44px;border:2px solid var(--rule);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;padding:0}
.asc-toggler:focus{box-shadow:none}
@media (max-width:991.98px){
 .asc-nav .navbar-nav{padding:12px 0 16px;border-top:2px solid var(--rule);margin-top:10px}
 .asc-nav .nav-link{padding:14px 0;font-size:17px;border-bottom:2px solid var(--rule)}
 .nav-cta{padding-top:16px}.nav-cta .btn{width:100%}
}
@media (max-width:420px){.brand-word{font-size:17px;letter-spacing:.24em}}
/* buttons */
.btn{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;padding:11px 20px;text-align:left;display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;transition:background .15s,color .15s,border-color .15s}
.btn-asc{background:var(--accent);color:#fff;border:2px solid var(--accent)}
.btn-asc:hover,.btn-asc:focus{background:var(--a600);border-color:var(--a600);color:#fff}
.btn-asc:active{background:var(--a700)!important;border-color:var(--a700)!important;color:#fff!important}
.btn-asc-ghost{background:transparent;color:var(--ink);border:2px solid transparent}
.btn-asc-ghost:hover{background:var(--a100);color:var(--ink)}
.btn-asc-outline{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-asc-outline:hover{background:var(--a100);color:var(--ink);border-color:var(--ink)}
.btn:disabled{opacity:.45}
/* hero */
.hero{padding:clamp(48px,9vw,96px) 0 clamp(48px,8vw,84px)}
.typer{font-family:var(--mono);font-size:14px;line-height:20px;letter-spacing:.02em;color:var(--a700);margin:0 0 28px;display:flex;align-items:center;gap:10px;min-height:20px}
.typer-word{color:var(--navy);font-weight:500}
.typer-cursor{display:inline-block;width:.6em;height:1.1em;margin-left:2px;vertical-align:-.2em;background:var(--cyan);animation:blink 1s steps(1) infinite}
.h-hero{font-family:var(--head);font-weight:700;font-size:clamp(34px,8.4vw,84px);line-height:1.1;letter-spacing:-.035em;margin:0 0 0 -.04em}
@media (min-width:992px){.h-hero{font-size:clamp(44px,5.4vw,72px)}}
.hero-cursor{display:inline-block;width:.08em;height:.82em;margin-left:.1em;background:var(--cyan);vertical-align:-.06em;animation:blink 1.1s steps(1) infinite}
.hero-lede{font-size:17px;line-height:28px;max-width:52ch;margin:clamp(24px,4vw,40px) 0 0}
.hero-canvas{position:relative;aspect-ratio:1/1;border:2px solid var(--rule);background:color-mix(in srgb,#fff 45%,transparent)}
.hero-canvas canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.caption{font-size:13px;line-height:18px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 70%,transparent)}
/* sections */
.sec{padding:clamp(56px,8vw,84px) 0 clamp(56px,9vw,98px)}
.sec-flush{padding:0 0 clamp(56px,9vw,98px)}
.kicker{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--a700);display:flex;align-items:center;gap:10px;margin:0 0 14px}
.h-sec{font-family:var(--head);font-weight:700;font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:-.025em;margin:0}
.sec-lede{font-size:15px;line-height:24px;margin:0;max-width:44ch;color:var(--muted)}
.cells{border-top:2px solid var(--rule);border-left:2px solid var(--rule);margin:0}
.cells-top-none{border-top:0}
.cells>*{border-right:2px solid var(--rule);border-bottom:2px solid var(--rule)}
.cell{background:#fff;padding:32px 28px 40px;display:flex;flex-direction:column;gap:14px}
.cell-lg{padding:36px 32px 40px;gap:18px}
.cell-white{background:#fff}
.cell-hover{transition:background .2s,box-shadow .2s}
.cell-hover:hover{background:var(--a100);box-shadow:inset 0 -4px 0 var(--cyan)}
.mono-tag{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--a700);display:flex;align-items:center;gap:12px}
.mono-sm{font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.num{color:color-mix(in srgb,var(--ink) 60%,transparent)}
.h-cell{font-family:var(--head);font-weight:700;font-size:24px;line-height:28px;letter-spacing:-.02em;margin:0}
.h-svc{font-family:var(--head);font-weight:700;font-size:26px;line-height:30px;letter-spacing:-.02em;margin:12px 0 0}
.h-feat{font-family:var(--head);font-weight:700;font-size:clamp(24px,3vw,30px);line-height:1.15;letter-spacing:-.025em;margin:0}
.h-plan{font-family:var(--head);font-weight:700;font-size:32px;line-height:36px;letter-spacing:-.025em;margin:0}
/* icon tile */
.tile{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--navy);background:var(--a100);color:var(--navy);overflow:hidden}
.tile-scan{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--cyan);animation:scan 2.6s ease-in-out infinite}
.tile-ping{position:absolute;top:4px;right:4px;width:5px;height:5px;background:var(--cyan);animation:ping 1.8s ease-out infinite}
/* logos */
@media (min-width:992px){.col-lg-2-4{flex:0 0 auto;width:20%}}
.cell-logo{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:22px;background:#fff;filter:grayscale(1);opacity:.8;transition:filter .25s,opacity .25s,box-shadow .25s}
.cell-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.cell-logo.dark{background:var(--navy);filter:none;opacity:.85}.cell-logo.dark img{mix-blend-mode:normal}
.cell-logo:hover{filter:grayscale(0);opacity:1;box-shadow:inset 0 -4px 0 var(--cyan)}
/* work marquee */
.marquee-wrap{overflow:hidden;margin:0 calc(-1 * var(--pad));padding:6px 0 10px;-webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}
.marquee{display:flex;gap:24px;width:max-content;animation:marquee 70s linear infinite}
.marquee:hover{animation-play-state:paused}
.work-card{flex:none;width:clamp(260px,30vw,360px);border:2px solid var(--rule);background:#fff;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.work-card:hover{box-shadow:inset 0 -4px 0 var(--cyan),var(--shadow-md);transform:translateY(-3px)}
.work-img{aspect-ratio:16/10;background-repeat:no-repeat;background-position:top center;border-bottom:2px solid var(--rule)}
.work-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px}
.work-body .mono-sm{font-size:12px;color:var(--a700)}
.work-body h3{font-family:var(--head);font-weight:700;font-size:22px;line-height:26px;letter-spacing:-.02em;margin:0}
.work-body p{font-size:14px;line-height:20px;margin:0;color:color-mix(in srgb,var(--ink) 72%,transparent)}
/* bullets */
.bullets{list-style:none;padding:18px 0 0;margin:0;border-top:2px solid var(--rule);display:flex;flex-direction:column;gap:10px}
.bullets.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px 24px;margin-top:4px}
.bullets li{font-size:15px;line-height:22px;display:flex;gap:12px;align-items:baseline}
.bullets .dot{width:8px;height:8px;background:var(--cyan);flex:none;transform:translateY(-1px)}
/* contact */
.contact{background:var(--cyan);color:var(--navy);padding:clamp(64px,9vw,98px) 0}
.h-contact{font-family:'Archivo',sans-serif;font-weight:600;font-size:clamp(34px,4.2vw,56px);line-height:1.06;letter-spacing:-.015em;margin:0}
.contact-sub{font-weight:600;font-size:clamp(18px,2vw,22px);line-height:1.4;margin:32px 0 0;max-width:28ch}
.contact-mail{display:inline-block;font-weight:600;font-size:clamp(18px,2vw,22px);color:var(--navy);border-bottom:2px solid var(--navy);margin-top:28px;word-break:break-all}
.contact-mail:hover{color:var(--navy);border-color:var(--bg)}
.quote-form{background:var(--bg);border:2px solid var(--navy);color:var(--ink);padding:clamp(20px,4vw,32px)}
.form-label{font-size:14px;font-weight:600;margin-bottom:6px}
.form-control,.form-select{border:2px solid var(--rule);background-color:#fff;font-size:16px;padding:10px 12px;color:var(--ink)}
.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:none}
.form-control.is-invalid{border-color:#b42318}
textarea.form-control{resize:vertical}
.form-error{margin:0 0 12px;font-size:14px;line-height:20px;color:var(--a800)}
#form-done{flex-direction:column;gap:14px}#form-done:not(.d-none){display:flex}
.done-title{font-weight:600;font-size:24px;line-height:30px;margin:0}
/* footer */
.footer{background:var(--navy);color:var(--bg);padding-top:72px}
.footer-top{padding-bottom:56px;border-bottom:2px solid color-mix(in srgb,var(--bg) 25%,transparent)}
.footer-logo{width:200px;max-width:100%;height:auto;display:block}
.footer-text{font-size:15px;line-height:24px;margin:0;max-width:36ch;color:color-mix(in srgb,var(--bg) 80%,transparent)}
.footer a:not(.btn){color:var(--bg);font-size:15px;line-height:22px}
.footer a:not(.btn):hover{color:var(--cyan)}
.footer-head{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--cyan);margin-bottom:4px}
.footer-bottom{padding:24px 0 32px;font-family:var(--mono);font-size:13px;letter-spacing:.02em;color:color-mix(in srgb,var(--bg) 75%,transparent)}
/* motion */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes scan{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes ping{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.marquee,.tile-scan,.tile-ping,.typer-cursor,.hero-cursor{animation:none}.reveal{opacity:1;transform:none;transition:none}}

.work-card,.quote-form{background:#fff}

/* packages */
.pk-card{gap:14px}
.pk-feat{box-shadow:inset 0 4px 0 var(--cyan)}
.pk-badge{font-family:var(--mono);font-size:12px;letter-spacing:.04em;background:var(--navy);color:var(--bg);padding:4px 8px}
.pk-name{font-size:26px;line-height:30px}
.pk-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:4px}
.pk-cur{font-family:var(--mono);font-size:13px;color:var(--a700)}
.pk-amt{font-family:var(--head);font-weight:700;font-size:44px;line-height:1;letter-spacing:-.03em}
.pk-per{font-size:14px;color:var(--muted)}
.pk-setup{font-size:14px;line-height:20px;margin:0;color:var(--muted)}
.pk-card .bullets li{font-size:14px;line-height:21px}
.pk-k{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--a700);margin-bottom:2px}
.pk-details{border:2px solid var(--rule);border-top:0;background:#fff}
.pk-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 28px}
.pk-details summary::-webkit-details-marker{display:none}
.pk-details summary:hover{background:var(--a100)}
.pk-sum-t{font-weight:600;font-size:16px;flex:1}
.pk-chev{width:12px;height:12px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg) translate(-3px,-3px);transition:transform .2s}
.pk-details[open] .pk-chev{transform:rotate(225deg)}
.pk-table-wrap{overflow-x:auto;border-top:2px solid var(--rule)}
.pk-table{width:100%;min-width:860px;border-collapse:collapse;font-size:14px;line-height:21px}
.pk-table th,.pk-table td{padding:14px 18px;border-bottom:2px solid color-mix(in srgb,var(--navy) 14%,transparent);vertical-align:top;text-align:left}
.pk-table thead th{background:var(--navy);color:var(--bg);font-family:var(--head);font-weight:700;font-size:15px;border-bottom:0}
.pk-table tbody th{font-weight:600;width:200px;background:var(--a100);position:sticky;left:0}
.pk-table tbody tr:last-child th,.pk-table tbody tr:last-child td{border-bottom:0}
.pk-call{border:2px solid transparent}
.pk-name{margin-bottom:4px}
.hero-logo{position:absolute;left:50%;top:50%;width:58%;transform:translate(-50%,-50%);padding:6%;background:radial-gradient(closest-side,rgba(255,255,255,.95) 55%,rgba(255,255,255,0) 100%);pointer-events:none;animation:logoIn .9s cubic-bezier(.2,.7,.2,1) both .2s}
.hero-logo img{display:block;width:100%;height:auto}
@keyframes logoIn{from{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}
@media (prefers-reduced-motion:reduce){.hero-logo{animation:none}}
