@font-face { font-family: "IBM Plex Sans Thai"; src:url('/assets/fonts/IBMPlexSansThai-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family: "IBM Plex Sans Thai"; src:url('/assets/fonts/IBMPlexSansThai-700.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family: "JetBrains Mono"; src:url('/assets/fonts/JetBrainsMono-500.woff2') format('woff2'); font-weight:400 700; font-display:swap; }
:root { --z-notice:20; }
.hero-lines { font-size:min(var(--t-display-size),8.4vw); }
.hero-lines .ln { display:block; white-space:nowrap; }
.skip { position:absolute; transform:translateY(-200%); z-index:var(--z-notice); background:var(--background); padding:var(--space-3); }
.skip:focus { transform:none; }
.service-title { max-width:32ch; }
.deliverables { grid-template-columns:1fr; margin-top:0; }
.deliverables p { color:var(--foreground); font-size:var(--t-body-lg-size); }
.svc-index { display:flex; flex-wrap:wrap; gap:var(--space-3) var(--space-5); margin-top:var(--space-6); max-width:75ch; }
.svc-index a { font-size:var(--t-small-size); }
.lanes { list-style:none; padding:0; }
.lanes > li { padding:var(--space-5) 0; border-top:1px solid var(--border); max-width:75ch; }
.home-services { font-size:var(--t-lede-size); }
p { text-wrap:pretty; }
.prose h2 { margin-top:var(--space-6); margin-bottom:var(--space-4); }
.band-dark :focus-visible { outline-color:var(--rikyu-shiro); }
.cmap[data-current] .node[aria-current], .cmap[data-current] .band[aria-current] { outline:2px solid var(--foreground); outline-offset:4px; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@font-face { font-family: "Source Serif 4"; src:url('https://unpkg.com/@fontsource/source-serif-4@5.1.0/files/source-serif-4-latin-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; }
.garden8[data-state="fallback"] :is(.g-view,.g-keys,.g-labels) { display:none; }

/* Review fixes reuse the approved type, spacing and color tokens. */
.contact-address { font-family:var(--font-mono); font-size:var(--t-small-size); margin-top:var(--space-3); overflow-wrap:anywhere; }
.contact-reply { margin-top:var(--space-3); font-size:var(--t-small-size); }
.ocr-offer p { max-width:var(--measure); font-size:var(--t-lede-size); }
.contact-copy-status { font-size:var(--t-small-size); }
.contact-copy-buffer { position:fixed; inset:0 auto auto 0; opacity:0; pointer-events:none; }
[data-copy-email][hidden] { display:none; }
[data-copy-email] { cursor:pointer; font-family:inherit; }
.map-services { display:none; }
.site-foot .g-credit { margin-top:var(--space-4); }
@media (max-width:759px) {
  /* Phones lead with the concrete pain and result, then the studio line. */
  .hero-copy { display:flex; flex-direction:column; }
  .hero-copy .lede { order:-1; margin-top:0; margin-bottom:var(--space-5); }
  .map-services { display:block; list-style:none; padding:0; margin:var(--space-5) 0 0; }
  .map-services li { padding:var(--space-4) 0; border-top:1px solid var(--border); }
  .map-services p { margin:var(--space-2) 0 0; font-size:var(--t-small-size); }
  .cmap .tip { display:none; }
}

.gloss { font-weight:400; font-size:var(--t-small-size); color:var(--muted-foreground, inherit); }
