:root{--paper: #FAF7F0;--card: #FFFFFF;--ink: #1B1A17;--ink-2: #4A4740;--mute: #8D887D;--line: #DCD6C8;--line-strong: #1B1A17;--accent: #A4332B;--accent-soft: #F3E3DF;--gold: #B9912C;--ok: #3E7A4E;--on-accent: #FFFFFF;--shadow-stuck: rgba(27, 26, 23, .08);--display: "Fraunces", Georgia, serif;--serif: "Source Serif 4", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 56px;--gutter: 28px;--measure: 980px;--nav-offset: 54px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{overflow-x:clip;min-height:100vh;background:var(--paper);color:var(--ink);font:17px/1.7 var(--serif);-webkit-font-smoothing:antialiased}#root{display:flex;flex-direction:column;min-height:100vh}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{max-width:var(--measure);margin:0 auto;padding:0 var(--gutter)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:100;padding:var(--space-3) var(--space-5);background:var(--ink);color:var(--paper);font:600 12px var(--sans);letter-spacing:.04em;text-transform:uppercase}.skip-link:focus{top:var(--space-4)}.kicker{font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.small-caps{font:600 11.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.sec-label{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:34px}.sec-label .num{font-variant-numeric:tabular-nums;font-family:var(--display);font-size:34px;color:var(--accent)}.sec-label h2{text-wrap:balance;font-family:var(--display);font-weight:600;font-size:clamp(26px,4vw,38px)}.sec-dek{color:var(--mute);font:italic 400 15px var(--serif);margin-top:var(--space-1)}.page{padding:var(--space-7) 0}.page-title{text-wrap:balance;font-family:var(--display);font-weight:600;font-size:clamp(32px,5vw,52px);line-height:1.08;margin:10px 0 22px}.page-title:focus{outline:none}.page p{color:var(--ink-2)}.state{padding:var(--space-7) 0;text-align:center;font:italic 400 15px var(--serif);color:var(--ink-2)}.btn{display:inline-block;font:600 12px var(--sans);letter-spacing:.04em;text-transform:uppercase;padding:11px 22px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}.btn-fill{background:var(--ink);color:var(--paper)}.btn-fill:hover{background:var(--accent);border-color:var(--accent)}.btn-line:hover{background:var(--ink);color:var(--paper)}.btn:active:not(:disabled){transform:translateY(1px)}.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}.masthead{padding:30px 0 18px;text-align:center;border-bottom:3px solid var(--ink)}.masthead .issue{font:600 10.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:10px}.masthead .site-name{font-family:var(--display);font-weight:700;font-size:clamp(40px,8vw,84px);letter-spacing:-.01em;overflow-wrap:anywhere}.masthead .tagline{font:italic 400 16px var(--serif);color:var(--ink-2);margin-top:6px}.rule-double{height:5px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:14px 0 0}.masthead-nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .2s}.masthead-nav.stuck{box-shadow:0 4px 12px var(--shadow-stuck)}.nav-inner{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;padding-top:14px;padding-bottom:14px;row-gap:var(--space-2)}.nav-links{display:flex;flex-wrap:wrap;justify-content:center;list-style:none;row-gap:var(--space-2)}.nav-links a,.lang-toggle{font:600 11.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:6px var(--space-4);position:relative;transition:color .2s}.nav-links li{border-right:1px solid var(--line)}.nav-links a:active,.lang-toggle:active{opacity:.7}.nav-links a:hover,.lang-toggle:hover,.nav-links a.active{color:var(--accent)}.nav-links a.active:after{content:"";position:absolute;left:16px;right:16px;bottom:-15px;height:2px;background:var(--accent)}.lang-toggle{background:transparent;border:none;cursor:pointer}.lang-toggle .on{color:var(--accent)}@media (pointer: coarse){.nav-links a,.lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}.nav-links a.active:after{bottom:0}}@media (max-width: 559px){.nav-links a,.lang-toggle{padding:6px 10px}.nav-links a.active:after{left:10px;right:10px;bottom:-4px}}.site-main{flex:1 0 auto;scroll-margin-top:var(--nav-offset)}.site-main:focus{outline:none}.site-footer{padding:var(--space-5) 0;text-align:center;border-top:3px solid var(--ink)}.site-footer p{font:600 11px var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}.cover{padding:64px 0 var(--space-7)}.cover-grid{display:grid;grid-template-columns:1fr;gap:28px}@media (min-width: 760px){.cover-grid{grid-template-columns:1.5fr 1fr;gap:50px}}.cover p{margin-bottom:14px;color:var(--ink-2)}.drop p:nth-of-type(2):first-letter{font-family:var(--display);font-weight:700;font-size:64px;line-height:.75;float:left;margin:var(--space-2) 10px 0 0;color:var(--accent)}.byline{font:600 13px var(--sans);color:var(--ink);margin-top:20px}.byline span{color:var(--ink-2);font-weight:500}.sidebar{border-left:1px solid var(--line);padding-left:30px}@media (max-width: 759px){.sidebar{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:var(--space-5)}}.glance-title{margin-bottom:var(--space-4)}.fact{padding:14px 0;border-bottom:1px solid var(--line)}.fact:first-of-type{padding-top:0}.fact b{display:block;font-family:var(--display);font-size:26px}.fact span{font:600 10.5px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.status-line{display:flex;align-items:center;gap:var(--space-2);margin-top:18px;font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink)}.status-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ok)}.cover-ctas{display:flex;gap:var(--space-3);margin-top:22px;flex-wrap:wrap}.block{padding:var(--space-7) 0;border-top:1px solid var(--line);scroll-margin-top:var(--nav-offset)}.block .more{margin-top:var(--space-5);text-align:center}.contact-cta{text-align:center}.contact-cta h2{font-family:var(--display);font-weight:700;font-size:clamp(34px,6vw,64px);margin:var(--space-3) 0 var(--space-4)}.contact-cta .dek{color:var(--ink-2);max-width:480px;margin:0 auto 30px;font-style:italic}.case-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.results[aria-busy=true] .case-grid{opacity:.5;transition:opacity .12s}@media (min-width: 680px){.case-grid{grid-template-columns:1fr 1fr}}.case{background:var(--card);padding:28px;display:flex;flex-direction:column}.case-media{aspect-ratio:16 / 9;margin:-28px -28px var(--space-4);background:var(--accent-soft);overflow:hidden}.case-media img,.case-media video{display:block;width:100%;height:100%;object-fit:cover}.case .kicker{margin-bottom:10px}.case h3{font-family:var(--display);font-weight:600;font-size:19px;margin-bottom:var(--space-3);line-height:1.3}.case h3 a:hover{color:var(--accent)}.case p{font-size:14.5px;color:var(--ink-2);margin-bottom:var(--space-2)}.case .tag-row{margin-top:auto;padding-top:var(--space-3);list-style:none}.case-foot{margin-top:var(--space-4)}.badge{display:inline-flex;align-items:center;gap:6px;font:700 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-1) 10px;border:1px solid var(--line-strong);color:var(--ink)}.badge-dot{width:8px;height:8px;border-radius:50%}.badge-live .badge-dot{background:var(--ok)}.badge-prototype .badge-dot{background:var(--gold)}.badge-concept .badge-dot{background:transparent;border:1.5px solid var(--ink-2)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);list-style:none}.tag{font:600 10.5px var(--sans);letter-spacing:.03em;padding:var(--space-1) 10px;border:1px solid var(--line);color:var(--ink-2);text-transform:uppercase}.filter-bar{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-5) 0 var(--space-6)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{font:600 11px var(--sans);letter-spacing:.04em;text-transform:uppercase;padding:var(--space-2) 14px;min-height:36px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer}.chip:hover{border-color:var(--ink)}.chip:active{transform:translateY(1px)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filter-fields{display:flex;flex-wrap:wrap;gap:var(--space-5)}.field-inline{display:flex;flex-direction:column;gap:var(--space-1);min-width:200px;flex:1 1 200px}.field-inline label,.field label{font:600 11.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}input,select,textarea{font:400 15px var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--mute);padding:10px var(--space-3);min-height:40px;width:100%;border-radius:0}textarea{resize:vertical}.state .btn{margin-top:var(--space-3)}.back-link{font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.back-link:hover{color:var(--accent)}.detail-meta{margin-bottom:var(--space-4)}.lede{font-size:19px;max-width:62ch}.media-list{display:grid;gap:var(--space-4);margin:var(--space-6) 0}.media img,.media video{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border:1px solid var(--line);background:var(--accent-soft)}.case-blocks{display:grid;gap:var(--space-5);margin:var(--space-6) 0}.project-detail .lbl{font:700 10px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:var(--space-1)}.project-detail .lbl:before{content:"";display:inline-block;width:14px;height:2px;background:var(--gold);vertical-align:middle;margin-right:var(--space-2)}.detail-cta{margin-top:var(--space-6)}.no-demo{font-style:italic;color:var(--ink-2)}.article{display:grid;grid-template-columns:1fr;gap:10px;padding:30px 0;border-bottom:1px solid var(--line)}@media (min-width: 700px){.article{grid-template-columns:200px 1fr;gap:30px}}.article-meta{font:600 12px var(--sans);letter-spacing:.04em;color:var(--ink-2);text-transform:uppercase}.article h3{font-family:var(--display);font-weight:600;font-size:24px;margin-bottom:2px}.article .co{font:italic 400 15px var(--serif);color:var(--accent);display:block;margin-bottom:var(--space-4)}.article ul:not(.tag-row){padding-left:20px;color:var(--ink-2)}.article ul li{margin-bottom:7px}.article ul li::marker{color:var(--gold)}.article .tag-row li{margin-bottom:0}.toc{border-top:1px solid var(--line);list-style:none}.toc-row{display:flex;align-items:baseline;gap:10px;padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.toc-row .name{font-family:var(--display);font-weight:600;font-size:18px;white-space:nowrap}.toc-row .leader{flex:1;border-bottom:2px dotted var(--mute);transform:translateY(-4px)}.toc-row .items{font:14px var(--sans);color:var(--ink-2);text-align:right;max-width:60%}.pull-fig{margin:40px auto;max-width:720px;text-align:center}.pull{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(22px,3.4vw,32px);line-height:1.35;color:var(--ink);padding:0 10px}.pull span{color:var(--accent)}.pull-fig figcaption{margin-top:var(--space-3)}.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6);margin-top:var(--space-5)}@media (min-width: 760px){.contact-grid{grid-template-columns:1.5fr 1fr;gap:50px}}.contact-page h2{font-family:var(--display);font-weight:600;font-size:24px;margin-bottom:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field .req{color:var(--accent)}.field [aria-invalid=true]{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.field-error,.form-error{color:var(--accent);font:600 13px var(--sans)}.form-error,.form-ok{margin-bottom:var(--space-4)}.form-ok{color:var(--ok);font:600 14px var(--sans)}.btn:disabled{opacity:.6;cursor:not-allowed}.direct-links{list-style:none;margin-top:var(--space-4)}.direct-links li{padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.direct-links a{font:600 13px var(--sans);overflow-wrap:anywhere}.direct-links a:hover{color:var(--accent)}.bf{border:1px solid var(--line-strong);background:var(--card);max-width:100%;min-width:0}.bf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);background:var(--paper)}.bf-dots{display:inline-flex;gap:6px}.bf-dots span{width:10px;height:10px;border-radius:50%;border:1px solid var(--line-strong)}.bf-address{flex:1 1 160px;min-width:0;padding:var(--space-1) 10px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font:500 13px var(--sans);overflow-wrap:anywhere}.bf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}.bf-actions .btn{padding:6px var(--space-3)}.bf-body{max-width:100%;max-height:80vh;overflow:auto;background:var(--card)}.bf-body:fullscreen{max-height:none;height:100%}.bf-iframe{display:block;width:100%;height:70vh;min-height:360px;border:0}.demo-note{margin-top:var(--space-3);font:italic 400 15px var(--serif);color:var(--ink-2)}.demo-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-4)}.demo-links a{margin-top:var(--space-3);font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-decoration:underline}.demo-links a:hover{color:var(--accent)}.demo-crash{padding:var(--space-5)}
