.phead{position:relative;background:var(--night);color:var(--night-fg);overflow:hidden}.phead canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.phead .wrap{position:relative;padding-block:clamp(2.5rem,7vw,5rem) 2rem;display:grid;gap:1.1rem}.phead .crumb{color:var(--night-muted);margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.phead .crumb a:hover{color:var(--night-fg)}.phead h1{font-size:var(--s4);font-weight:800;font-stretch:112%;max-width:18ch;letter-spacing:-.01em}.phead h1 em{font-style:normal;color:var(--accent)}.phead .lead{max-width:60ch;color:var(--night-muted);font-size:1.08rem;margin:0}.phead .ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.4rem}.phead .btn-ghost{color:var(--night-fg)}.slug{font-family:var(--f-mono);font-size:.76rem;color:var(--teal)}.phead .slug{color:#4fb7c1}.ptags{display:flex;flex-wrap:wrap;gap:.4rem}.ptags span{font-family:var(--f-mono);font-size:.7rem;padding:.2rem .5rem;border:1px solid var(--line);color:var(--muted)}.phead .ptags span{border-color:#ffffff2e;color:var(--night-fg)}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.chip{font:500 .8rem/1 var(--f-mono);padding:.5rem .75rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chips .count{font-family:var(--f-mono);font-size:.78rem;color:var(--muted);margin-left:auto;align-self:center}.svc-list{border-top:2px solid var(--ink)}.svc-row{display:grid;grid-template-columns:3.2rem minmax(0,1.5fr) minmax(0,1.3fr) minmax(0,1fr) 2rem;gap:1.25rem;align-items:start;padding:1.35rem 0;border-bottom:1px solid var(--line);text-decoration:none}.svc-row .no{font-family:var(--f-mono);font-size:.8rem;color:var(--accent);padding-top:.3rem}.svc-row h3{font-size:var(--s1);font-weight:700;font-stretch:105%}.svc-row p{margin:.35rem 0 0;color:var(--muted);font-size:.93rem}.svc-row .lbl{display:block;font-family:var(--f-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.25rem}.svc-row .out{font-family:var(--f-mono);font-size:.8rem;color:var(--teal);line-height:1.55}.svc-row .eq{font-size:.88rem}.svc-row .arr{font-family:var(--f-mono);font-size:1.1rem;color:var(--muted);padding-top:.2rem;text-align:right}.svc-row:hover h3,.svc-row:hover .arr{color:var(--accent)}@media(max-width:900px){.svc-row{grid-template-columns:2.4rem minmax(0,1fr) 1.5rem}.svc-row .c-out,.svc-row .c-eq{grid-column:2}.svc-row .arr{grid-column:3;grid-row:1}}.detail{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:3rem;align-items:start}.detail>.main{display:grid;gap:2.5rem;min-width:0}@media(max-width:980px){.detail{grid-template-columns:minmax(0,1fr)}}.md{max-width:72ch}.md>h1:first-child{display:none}.md h2{font-size:var(--s2);font-weight:800;font-stretch:108%;margin:2.4rem 0 .9rem}.md h2:first-of-type{margin-top:0}.md h3{font-size:var(--s1);margin:1.6rem 0 .6rem}.md p,.md li{color:var(--muted)}.md strong{color:var(--ink)}.md a{color:var(--accent)}.md ul{padding-left:1.1rem}.md table{display:block;overflow-x:auto;max-width:100%;margin:1rem 0}.md th{border-bottom:2px solid var(--ink)}.md td:not(:first-child){font-family:var(--f-mono);font-size:.84rem;color:var(--teal)}aside.quote{position:sticky;top:calc(env(safe-area-inset-top,0px) + 72px);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent);padding:1.4rem;display:grid;gap:1rem}aside.quote h3{font-size:var(--s1);font-weight:800}aside.quote dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;margin:0;font-size:.88rem}aside.quote dt{font-family:var(--f-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:.2rem}aside.quote dd{margin:0}aside.quote .phone{font-family:var(--f-display);font-size:var(--s2);font-weight:700;font-stretch:110%;color:var(--accent);user-select:all}aside.quote .std{font-family:var(--f-mono);font-size:.74rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.8rem;line-height:1.7}aside.quote .btn{justify-content:center}@media(max-width:980px){aside.quote{position:static}}.others{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.others a{font-size:.88rem;text-decoration:none;padding:.45rem .7rem;border:1px solid var(--line);background:var(--surface)}.others a:hover{border-color:var(--accent);color:var(--accent)}.proj-grid{display:grid;gap:1.5rem}.pcard{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);text-decoration:none;min-width:0}.pcard .vis{position:relative;background:var(--night);min-height:300px}.pcard canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.pcard .go{position:absolute;top:1rem;left:1rem;font-family:var(--f-mono);font-size:.72rem;background:#d3121a;color:#fff;padding:.3rem .55rem}.pcard .body{padding:1.6rem;display:grid;gap:.9rem;align-content:start;min-width:0}.pcard h3{font-size:var(--s2);font-weight:800;font-stretch:108%}.pcard p{margin:0;color:var(--muted);font-size:.95rem}.pcard .loc{font-family:var(--f-mono);font-size:.78rem;color:var(--muted)}.pcard:hover h3{color:var(--accent)}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.facts div{padding:.7rem .75rem .2rem 0;min-width:0}.facts div+div{padding-left:.75rem;border-left:1px solid var(--line)}.facts b{display:block;font-family:var(--f-display);font-size:1.25rem;font-weight:700;font-stretch:108%}.facts span{font-family:var(--f-mono);font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}@media(max-width:820px){.pcard{grid-template-columns:1fr}.pcard .vis{min-height:220px}}.gis{border:1px solid var(--line);background:var(--night);color:var(--night-fg)}.gis-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.6rem .9rem;border-bottom:1px solid #ffffff1f;font-family:var(--f-mono);font-size:.74rem;color:var(--night-muted)}.gis-bar .url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gis-bar .dot{width:8px;height:8px;background:#2e9c8f;display:inline-block;margin-right:.35rem}.gis-view{position:relative;aspect-ratio:16/9;min-height:360px;max-width:100%}.gis-view canvas,.gis-view iframe{position:absolute;inset:0;width:100%;height:100%;display:block;border:0}.gis-view .poster{position:absolute;inset:0;display:grid;place-content:center;gap:.75rem;justify-items:center;text-align:center;padding:1rem;background:#0a121873}.gis-view .poster p{margin:0;color:var(--night-muted);font-size:.88rem;max-width:40ch}.gis-view .poster .row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.gis-view .btn-ghost{color:var(--night-fg)}.gis-note{font-size:.84rem;color:var(--muted);margin:.75rem 0 0}.cta-band{background:var(--night);color:var(--night-fg);border-bottom:1px solid #ffffff14}.cta-band .wrap{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;align-items:center;justify-content:space-between;padding-block:clamp(2.5rem,6vw,4rem)}.cta-band h2{font-size:var(--s3);font-weight:800;font-stretch:108%;max-width:20ch}.cta-band .phone{font-family:var(--f-display);font-size:var(--s2);font-weight:700;color:var(--accent);user-select:all}.cta-band small{color:var(--night-muted)}
