.phone{width:min(390px,100%);border-radius:48px;background:#0B0F14;padding:12px;box-shadow:0 50px 90px -40px rgba(10,30,55,.55),0 0 0 1px rgba(255,255,255,.06) inset;position:relative}
.phone .screen{border-radius:38px;overflow:hidden;background:#0E1621;position:relative;height:700px;display:flex;flex-direction:column}
.phone .notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:112px;height:32px;border-radius:20px;background:#000;z-index:3}
.tg-top{display:flex;align-items:center;gap:12px;padding:52px 18px 14px;background:#17212B;border-bottom:1px solid #0B1219;color:#fff;flex:none}
.tg-av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font:600 17px/1 var(--body);color:#fff;flex:none}
.tg-name{font-weight:600;font-size:17px;line-height:1.2}
.tg-sub{font-size:13.5px;color:#7F97AC;line-height:1.3}
.tg-body{flex:1;overflow:hidden;padding:14px 12px 18px;background:linear-gradient(180deg,#0E1621,#101B27);display:flex;flex-direction:column;gap:9px;position:relative}
.tg-body.fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(180deg,rgba(16,27,39,0),#101B27);pointer-events:none}
.msg{max-width:88%;padding:10px 13px 8px;border-radius:16px;font-size:15px;line-height:1.45;color:#E9F0F6;background:#182533;position:relative}
.msg.me{align-self:flex-end;background:#2B5278;border-bottom-right-radius:6px}
.msg.them{align-self:flex-start;border-bottom-left-radius:6px}
.msg .t{display:block;text-align:right;font-size:11.5px;color:#7F97AC;margin-top:3px}
.msg.me .t{color:#A7C3DD}
.msg b{font-weight:600;color:#fff}
.brief h4{margin:10px 0 4px;font:600 15px/1.35 var(--body);color:#fff}
.brief h4:first-of-type{margin-top:6px}
.brief ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.brief li{padding-left:12px;position:relative;color:#D5E1EC}
.brief li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:#5C7A95}
.day{align-self:center;font-size:12.5px;font-weight:600;color:#BFD0DF;background:rgba(40,60,80,.6);padding:4px 12px;border-radius:999px}
.shot{width:100%;height:100%;object-fit:cover;object-position:top}
.est{background:#fff;border-radius:12px;color:#1C2833;padding:10px 12px;font-size:13px;margin-top:6px}
.est table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.est td{padding:4px 2px;border-bottom:1px solid #EEF2F6}
.est td:last-child{text-align:right;font-weight:600}
.est tr.tot td{border-bottom:0;padding-top:7px;font-size:14.5px}
.est .flag{color:#B06A00}
.xl{display:inline-flex;align-items:center;gap:8px;background:#1F3A2A;border:1px solid #2E5A3F;border-radius:10px;padding:8px 10px;margin-top:6px;font-size:13.5px;color:#CFE9D6}
.xl i{width:26px;height:30px;border-radius:4px;background:#1D7A45;display:grid;place-items:center;font:700 11px/1 var(--body);font-style:normal;color:#fff}
.pdf{flex:1;background:#DDE4EB;padding:56px 18px 18px;display:grid;place-items:start center;overflow:hidden}
.pdf-page{width:100%;background:#fff;border-radius:6px;box-shadow:0 20px 40px -20px rgba(0,0,0,.45);overflow:hidden;color:#1C2833}
.pdf-band{background:#10324F;color:#fff;padding:18px 18px 16px;display:grid;gap:4px}
.pdf-band small{font:600 10px/1 var(--body);letter-spacing:.14em;opacity:.75}
.pdf-band b{font-family:var(--display);font-weight:500;font-size:24px;line-height:1.1}
.pdf-in{padding:14px 18px 18px;display:grid;gap:10px;font-size:12.5px;line-height:1.45}
.pdf-in h6{margin:0;font:600 10.5px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:#5E6E7B}
.pdf-in .price{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid #10324F;padding-top:10px}
.pdf-in .price b{font-family:var(--display);font-size:26px;font-weight:500}
.pdf-in ul{margin:0;padding-left:16px}
.sign{display:flex;justify-content:space-between;gap:10px;border-top:1px dashed #C8D3DD;padding-top:10px;color:#5E6E7B;font-size:11.5px}
.survey-case{--body:General,sans-serif;--display:Outfit,sans-serif;--ink:#102d3b;--muted:#4b6371;--page-pad:max(6%,calc((100% - 1200px)/2));background:#f6f9fa}
.survey-case [hidden]{display:none!important}.survey-case button{font-family:Outfit,sans-serif;cursor:pointer}.survey-case button:focus-visible{outline:3px solid #2789bd;outline-offset:5px}.survey-case p{line-height:1.65}.survey-case .eyebrow{font:500 17px/1.45 Outfit,sans-serif;letter-spacing:.03em;margin:0 0 18px}.survey-case .case-section>h2:before{display:none}
.survey-hero{position:relative;isolation:isolate;overflow:hidden;background:#0d2032;color:#f5f8fa;padding:30px var(--page-pad) 0}.elevator-scene{position:absolute;inset:0 0 0 32%;z-index:-1}.elevator-scene img,.elevator-scene video{width:100%;height:100%;object-fit:cover;object-position:65% center}.elevator-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0d2032 0%,#0d2032bf 22%,#0d203233 63%,#0d203222),linear-gradient(0deg,#0d2032,transparent 28%,transparent 75%,#0d203277)}
.hero-content{position:relative;max-width:720px;padding-bottom:64px}.survey-hero .back-projects{margin-bottom:32px}.survey-hero .eyebrow{color:#d1e0e8;display:flex;align-items:center;gap:18px}.survey-hero .eyebrow span{font-size:14px;background:#29483c;color:#d5efb9;border:1px solid #52795b;border-radius:99px;padding:5px 12px}.survey-case h1{font:600 clamp(44px,4.5vw,64px)/1.08 Outfit,sans-serif;letter-spacing:-.035em;margin:0 0 26px;text-wrap:initial;max-width:700px}.survey-case h1 em{font-style:normal;color:#70b9e7}.hero-summary{font-size:22px;max-width:590px;color:#e2ebf0;margin:0 0 28px}.walkthrough-link{display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid #70b9e7;color:white;text-decoration:none;font:500 19px/1.5 Outfit,sans-serif;padding:8px 0}.walkthrough-link span{color:#b7e58a;font-size:25px}.project-context{position:relative;display:flex;flex-wrap:wrap;gap:12px 40px;border-top:1px solid #ffffff30;padding:24px 0;color:#d3e2ea;font-size:16px}
.survey-case .case-section{padding:72px var(--page-pad)}.survey-case .challenge,.survey-case .build-section{display:grid;grid-template-columns: .85fr 1.15fr;gap:70px}.story-copy{max-width:680px}.story-copy p{font-size:20px}.survey-case .story-copy p:last-child{padding-top:24px;border-top:1px solid #cfdee3}
.walkthrough-section{padding:68px var(--page-pad) 48px;background:#deedf2;scroll-margin-top:24px}.walkthrough-heading{max-width:800px;margin-bottom:36px}.walkthrough-heading h2{font-size:clamp(34px,3.5vw,48px);line-height:1.12}.walkthrough-heading h2 span{color:#287da6}.walkthrough-heading>p:last-child{font-size:20px;max-width:710px}.workflow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);gap:80px;align-items:center}.walkthrough-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;font:400 16px/1.4 Outfit,sans-serif;color:#4b6371}.walkthrough-controls button{border:1px solid #9bb7c3;border-radius:30px;padding:9px 15px;background:transparent;color:#173d4f;font-size:16px}.walkthrough-controls button:hover{background:#f4fafc}.flow-steps{display:grid;gap:0}.flow-step{display:grid;grid-template-columns:42px 1fr;gap:18px;position:relative;text-align:left;width:100%;background:transparent;border:0;padding:16px 10px 16px 0;color:#4b6371;border-radius:8px}.flow-step:not(:last-child):after{content:'';position:absolute;left:20px;top:60px;bottom:0;border-left:1px solid #b5ccd6}.step-number{border:1px solid #a7c3ce;background:#f6fbfd;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;color:#426779;font-size:17px;transition:background .25s,color .25s}.step-content{display:block;min-width:0}.step-status{font:500 14px/1.3 Outfit,sans-serif;color:#38633c;display:block;margin-bottom:5px}.step-status.pending{color:#7a5a2d}.step-content strong{font:500 23px/1.2 Outfit,sans-serif;display:block}.step-description{display:none;font:400 18px/1.5 General,sans-serif;margin-top:9px;color:#3c5664}.flow-step[aria-selected=true] .step-number{background:#102d3b;color:white;box-shadow:0 0 0 5px #c5dfe9;border-color:#102d3b}.flow-step[aria-selected=true] strong{color:#102d3b}.flow-step[aria-selected=true] .step-description{display:block}.flow-step:hover strong{color:#1c739f}.device-column{display:grid;justify-items:center;min-width:0}.stage{display:grid;justify-items:center;width:100%}.phone{width:350px;max-width:100%;border-radius:42px;padding:10px;box-shadow:0 32px 50px -28px #183a5180}.phone .screen{height:650px;border-radius:33px}.phone .notch{width:100px;height:24px;top:10px}.scene{height:100%;display:flex;flex-direction:column;animation:screen-in .35s ease}.scene .shot{object-fit:cover;object-position:top}.tg-top{padding:43px 16px 14px;gap:10px}.tg-sub{color:#afc4d4;font-size:13px}.tg-av{background:#287da6!important}.tg-body{gap:12px;padding:16px 12px;overflow-y:auto}.msg{max-width:100%;font-size:14px;line-height:1.5;padding:11px;border-radius:13px}.msg.me{max-width:88%}.msg.them{max-width:96%}.msg .xl{overflow-wrap:anywhere;font-size:12px;padding:6px;gap:5px}.est{padding:9px 7px;font-size:12px}.est tr.tot td{font-size:12px}.est td{padding:5px 1px}.day{font-size:12px}.pdf{padding:45px 12px 18px}.pdf-band{padding:20px 15px}.pdf-band b{font:500 23px/1.15 Outfit,sans-serif}.pdf-in{font-size:13px;gap:13px;padding:16px 15px}.pdf-in h6{font-size:11px}.pdf-in p{margin:0}.pdf-in .price b{font:500 24px/1.2 Outfit,sans-serif}.sign{font-size:11px}.planned-note{background:#e6dbc7;color:#4f402b;padding:14px 18px;font:500 14px/1.4 Outfit,sans-serif;text-align:center}.screen-caption{font-size:15px!important;color:#4b6371;text-align:center;margin:20px 0 0!important;max-width:360px;min-height:48px}.mobile-step-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:8px;font:500 16px/1.4 Outfit,sans-serif}.mobile-step-controls button{width:42px;height:42px;border:1px solid #a7c3ce;border-radius:50%;background:#f5fafb;color:#173d4f;font-size:23px}.walkthrough-note{border-top:1px solid #b9d0da;padding-top:24px;margin:34px 0 0;font-size:17px;color:#4b6371;max-width:1000px}.build-list article{display:grid;grid-template-columns:32px 1fr;gap:20px;padding:0 0 26px;margin:0 0 26px;border-bottom:1px solid #d1dfe5}.build-list article:last-child{border:0;margin:0;padding-bottom:0}.build-list article>span{font:500 16px/1.5 Outfit,sans-serif;color:#287da6;padding-top:4px}.build-list h3{font-size:26px;color:#102d3b}.build-list p{font-size:19px}.status-section{background:#e8eee4}.status-columns{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:36px}.status-columns article+article{padding-left:48px;border-left:1px solid #c2cfbc}.status-pill{display:inline-block;font:500 15px/1.4 Outfit,sans-serif;background:#d4e7c4;color:#305331;border-radius:99px;padding:6px 13px;margin-bottom:18px}.status-pill.pending{background:#e9dfcb;color:#6b502f}.status-columns h3{color:#183e3e;font-size:27px}.status-columns p{font-size:19px}.case-footer .eyebrow{color:#b9d1df}.survey-case .case-footer{padding-top:65px;padding-bottom:65px}
@keyframes screen-in{from{opacity:.2;transform:translateY(7px)}to{opacity:1;transform:none}}
.survey-case .case-footer{display:block}.survey-case .case-footer .eyebrow{margin-bottom:20px}.survey-case .case-footer h2{margin:0 0 28px;max-width:850px}
.scene[data-s="0"] .shot{height:112%;flex:none}
@media(min-width:701px) and (max-width:1000px){.survey-case .challenge,.survey-case .build-section{grid-template-columns:1fr;gap:24px}.build-list{max-width:760px}}
.workflow{align-items:start}.workflow-navigation{padding-top:20px}.scene[data-s="2"] .msg{animation:chat-in .45s both}.scene[data-s="2"] .msg:nth-of-type(2){animation-delay:.9s}.scene[data-s="2"] .msg:nth-of-type(3){animation-delay:1.8s}.scene[data-s="2"] .msg:nth-of-type(4){animation-delay:2.7s}@keyframes chat-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.elevator-scene{inset:0 0 0 39%}}
@media(max-width:1000px){.workflow{gap:36px;grid-template-columns:minmax(0,1fr) minmax(300px,1fr)}.survey-case .challenge,.survey-case .build-section{gap:35px;grid-template-columns:.85fr 1.15fr}.step-content strong{font-size:21px}.step-description{font-size:17px}.hero-content{max-width:640px}.elevator-scene{left:25%}.elevator-scene:after{background:linear-gradient(90deg,#0d2032,#0d2032bb 55%,#0d203244),linear-gradient(0deg,#0d2032,transparent 45%)}.status-columns{gap:35px}.status-columns article+article{padding-left:30px}}
@media(max-width:700px){.survey-hero{padding-top:26px}.survey-case h1{font-size:44px}.hero-summary{font-size:20px}.hero-content{padding-bottom:195px}.elevator-scene{inset:auto 0 0 0;height:330px}.elevator-scene:after{background:linear-gradient(0deg,#0d2032 0%,#0d203222 40%,#0d2032 100%)}.project-context{font-size:15px;padding:20px 0;gap:6px}.survey-case .challenge,.survey-case .build-section{grid-template-columns:1fr;gap:18px}.survey-case .case-section,.walkthrough-section{padding:44px 6%}.story-copy p{font-size:19px}.workflow{grid-template-columns:1fr;gap:26px}.walkthrough-heading{margin-bottom:24px}.walkthrough-heading h2{font-size:35px}.walkthrough-heading>p:last-child{font-size:19px}.walkthrough-controls{font-size:15px;gap:8px}.walkthrough-controls button{font-size:15px;padding:9px 12px}.flow-steps{grid-template-columns:repeat(5,1fr);gap:8px;position:relative;padding-bottom:154px}.flow-step{display:flex;justify-content:center;padding:8px 0;position:static}.flow-step:after{display:none}.step-content{display:none}.flow-step[aria-selected=true] .step-content{display:block;position:absolute;top:72px;left:0;right:0}.step-content strong{font-size:23px}.step-description{font-size:18px}.step-status{font-size:15px}.phone{width:350px}.phone .screen{height:650px}.walkthrough-note{font-size:16px;margin-top:26px}.status-columns{grid-template-columns:1fr;gap:30px}.status-columns article+article{padding:28px 0 0;border-left:0;border-top:1px solid #c2cfbc}.build-list article{gap:12px}.survey-case .case-footer{padding:46px 6%}}
@media(max-width:380px){.survey-case h1{font-size:39px}.phone .screen{height:610px}.flow-steps{padding-bottom:176px}.msg{font-size:13px}.est{font-size:11px}.est tr.tot td{font-size:11px}}
@media(prefers-reduced-motion:reduce){.scene,.scene[data-s="2"] .msg{animation:none}.step-number{transition:none}}
.survey-hero .eyebrow{flex-wrap:wrap;font-size:20px;gap:12px 18px}.survey-hero .hero-summary{margin-bottom:0}.survey-hero .hero-content{padding-bottom:80px}@media(max-width:700px){.survey-hero .eyebrow{font-size:18px}.survey-hero .hero-content{padding-bottom:220px}}
@media(min-width:701px) and (max-width:1000px){.survey-case .challenge,.survey-case .build-section{grid-template-columns:1fr;gap:24px}.build-list{max-width:760px}}

/* Shared section heading hierarchy, matched to the walkthrough. */
.survey-case .section-label h2,.survey-case .walkthrough-heading h2,.survey-case .status-section>h2,.survey-case .case-footer h2{font:600 clamp(34px,3.5vw,48px)/1.12 Outfit,sans-serif;letter-spacing:-.025em;margin:0 0 24px}
.survey-case .section-label h2 span,.survey-case .walkthrough-heading h2 span,.survey-case .status-section>h2 span{color:#287da6}
.survey-case .case-footer h2 span{color:#70b9e7}
.survey-case .build-list h3,.survey-case .status-columns h3{font:500 26px/1.2 Outfit,sans-serif;letter-spacing:-.015em}
@media(max-width:700px){.survey-case .section-label h2,.survey-case .walkthrough-heading h2,.survey-case .status-section>h2,.survey-case .case-footer h2{font-size:35px}}
