*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper,#f3f1e9);color:var(--ink,#121713);font-family:var(--font-sans,Inter,system-ui,sans-serif);font-size:16px;line-height:1.55;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button,a{touch-action:manipulation}
a{color:inherit;text-underline-offset:.22em}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--accent,#d6ff63);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:9999;left:16px;top:12px;transform:translateY(-180%);background:var(--accent);color:var(--ink);padding:10px 14px;border:2px solid var(--ink);font-weight:800}
.skip-link:focus{transform:translateY(0)}
.shell{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.narrow{width:min(900px,calc(100% - 48px))}
.announcement{padding:9px 24px;background:var(--accent);border-bottom:1px solid var(--ink);font-size:.82rem;font-weight:800;text-align:center;letter-spacing:.03em}
.site-header{position:relative;z-index:50;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--paper) 92%,transparent)}
.header-inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.header-inner>.wordmark,.menu-button{position:relative;z-index:2}
.wordmark{display:inline-flex;text-decoration:none;font-size:1.18rem;letter-spacing:-.04em;font-weight:650;align-items:baseline}
.wordmark b{font-family:var(--font-display);font-style:italic;font-weight:600;margin-left:2px;color:var(--primary)}
.wordmark-light{color:#fff}.wordmark-light b{color:var(--accent)}
.primary-nav{display:flex;align-items:center;gap:26px;font-size:.91rem;font-weight:650}
.primary-nav a{text-decoration:none;padding-block:8px;border-bottom:1px solid transparent}
.primary-nav a:hover{border-color:currentColor}
.nav-login{padding:10px 16px!important;border:1px solid var(--ink)!important}
.menu-button{display:none;border:0;background:transparent;width:44px;height:44px;padding:10px;cursor:pointer}
.menu-button span:not(.sr-only){display:block;height:2px;background:currentColor;margin:6px 0}
.hero{padding:82px 0 96px;border-bottom:1px solid var(--border);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:80px;align-items:center}
.eyebrow,.section-index{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;color:var(--primary);margin:0 0 22px}
.hero h1,.page-hero h1,.auth-panel h1,.workspace-hero h1,.admin-page-head h1{font-family:var(--font-display);font-weight:500;letter-spacing:-.055em;line-height:.94;margin:0}
.hero h1{font-size:clamp(4.2rem,7.7vw,7.7rem);max-width:820px}
.hero-lede{max-width:650px;font-size:1.2rem;color:var(--muted);margin:32px 0 0}
.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.button{min-height:48px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid currentColor;text-decoration:none;font-weight:800;cursor:pointer;background:transparent}
.button-accent{background:var(--accent);color:var(--ink);border-color:var(--ink)}
.button-quiet{background:transparent}.button-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.button:hover{transform:translateY(-2px)}
.signal-board{background:var(--surface);border:1px solid var(--ink);box-shadow:12px 12px 0 var(--primary)}
.signal-head,.signal-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--ink);color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:750}
.status-dot{display:inline-flex;align-items:center;gap:8px}.status-dot::before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%}
.signal-board>a{display:grid;grid-template-columns:1fr auto;gap:16px;text-decoration:none;padding:24px 20px;border-bottom:1px solid var(--border)}
.signal-board>a:hover{background:color-mix(in srgb,var(--accent) 15%,var(--surface))}
.signal-board>a span{font-size:1.08rem;font-weight:800}.signal-board>a b{font-size:.7rem;color:var(--muted);margin-right:12px}.signal-board>a small{color:var(--muted);text-align:right}
.signal-foot{background:transparent;color:var(--muted);font-size:.64rem}
.split-section{padding:110px 0;background:var(--surface);border-bottom:1px solid var(--border)}
.split-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}
.split-section h2,.cta-band h2{font-family:var(--font-display);font-size:clamp(2.7rem,5vw,5rem);font-weight:500;letter-spacing:-.05em;line-height:1;margin:0}
.track-list article{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:4px 0 34px;margin-bottom:34px;border-bottom:1px solid var(--border)}
.track-list article:last-child{margin-bottom:0}.track-number{font-family:var(--font-display);font-size:2rem;color:var(--primary)}
.track-list h3{font-size:1.45rem;margin:0 0 8px}.track-list p{color:var(--muted);margin:0 0 18px;max-width:610px}.track-list a{font-weight:800}
.principles-section{padding:100px 0}.principles-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.principles-grid article{padding:34px 30px 38px 0;border-right:1px solid var(--border)}.principles-grid article+article{padding-left:30px}.principles-grid article:last-child{border-right:0}
.principles-grid b{display:block;font-family:var(--font-display);font-size:1.75rem;line-height:1.12;margin-bottom:16px}.principles-grid p{color:var(--muted);margin:0}
.cta-band{background:var(--accent);padding:90px 0;border-block:1px solid var(--ink)}
.cta-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end}.cta-grid p{font-size:1.1rem;max-width:450px;margin:0 0 24px}
.site-footer{background:var(--ink);color:#dce3dd;padding:76px 0 28px}.footer-grid{display:grid;grid-template-columns:1.7fr .65fr .65fr;gap:70px}.footer-grid p{max-width:440px;color:#a9b1ab}.footer-grid nav{display:flex;flex-direction:column;gap:11px}.footer-grid nav a{text-decoration:none}.footer-label{text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:var(--accent);font-weight:800;margin-bottom:8px}.footer-base{display:flex;justify-content:space-between;gap:20px;padding-top:40px;margin-top:56px;border-top:1px solid #343b35;color:#89928b;font-size:.8rem}
.page-hero{padding:90px 0 82px;border-bottom:1px solid var(--border)}.page-hero h1{font-size:clamp(3.6rem,8vw,7rem);max-width:980px}.page-hero>div>p:last-child{font-size:1.2rem;color:var(--muted);max-width:680px;margin:28px 0 0}.page-body{padding:90px 0 120px;min-height:48vh}.service-list article{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:34px 0;border-top:1px solid var(--ink)}.service-list article:last-child{border-bottom:1px solid var(--ink)}.service-list span{font-family:var(--font-display);font-size:1.6rem;color:var(--primary)}.service-list h2{font-family:var(--font-display);font-size:2.25rem;line-height:1.05;margin:0 0 10px}.service-list p{margin:0;color:var(--muted);max-width:650px}.empty-state{border:1px solid var(--ink);padding:48px;background:var(--surface)}.empty-state>span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--primary)}.empty-state h2{font-family:var(--font-display);font-size:2.7rem;line-height:1;margin:18px 0}.empty-state p{color:var(--muted);max-width:620px}.status-model h2,.editorial-copy h2{font-family:var(--font-display);font-size:3rem;line-height:1;margin:0 0 34px}.status-model dl{border-top:1px solid var(--ink)}.status-model dl div{display:grid;grid-template-columns:210px 1fr;gap:24px;padding:25px 0;border-bottom:1px solid var(--border)}.status-model dt{font-weight:800}.status-model dd{margin:0;color:var(--muted)}.editorial-copy{max-width:760px}.editorial-copy p{font-family:var(--font-display);font-size:1.7rem;line-height:1.35}
.page-hero-contact{background:var(--primary);color:#fff}.page-hero-contact .eyebrow,.page-hero-contact>div>p:last-child{color:#d9e5df}.contact-section{padding:90px 0 120px}.contact-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:100px}.contact-grid>div h2{font-family:var(--font-display);font-size:2.6rem;margin:0}.contact-grid ul{padding-left:1.2rem;color:var(--muted)}.contact-grid li{margin:12px 0}.contact-form{background:var(--surface);border:1px solid var(--ink);padding:38px;display:grid;gap:22px}.contact-form label,.settings-form label,.auth-panel label{display:grid;gap:8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.contact-form input,.contact-form textarea,.contact-form select,.settings-form input,.settings-form textarea,.settings-form select,.auth-panel input{width:100%;border:1px solid var(--border);background:var(--paper);padding:13px 14px;text-transform:none;letter-spacing:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.honeypot{position:absolute;left:-9999px}.alert{padding:14px 16px;border:1px solid}.alert-error{background:#fff1ef;border-color:#9f3527;color:#702419}.alert-success{background:#edf7ee;border-color:#397547;color:#24532e}
.auth-body{min-height:100vh;background:var(--ink);color:#fff}.auth-shell{min-height:100vh;width:min(1180px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:center;padding:60px 0}.auth-shell>.wordmark{align-self:start}.auth-panel{border-top:1px solid #5b625c;border-bottom:1px solid #5b625c;padding:56px 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.auth-panel h1{font-size:4.2rem}.auth-panel>div>p:last-child,.auth-note{color:#aab2ac}.auth-panel form{display:grid;gap:20px}.auth-panel input{background:#202621;border-color:#424a44;color:#fff}.auth-note{grid-column:2;font-size:.78rem;margin:0}.auth-panel .eyebrow{color:var(--accent)}
.app-body{background:#eef0eb}.app-header{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 max(24px,calc((100% - 1240px)/2));border-bottom:1px solid var(--border);background:var(--surface)}.app-header nav{display:flex;align-items:center;gap:18px}.app-header nav a{text-decoration:none;font-weight:800}.app-header form{display:inline}.app-header button,.admin-user button{border:0;background:transparent;text-decoration:underline;cursor:pointer}.workspace-shell{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:80px 0}.workspace-hero h1{font-size:clamp(3rem,6vw,6rem)}.workspace-hero>p:last-child{max-width:720px;color:var(--muted);font-size:1.1rem}.workspace-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border:1px solid var(--ink)}.workspace-grid>*{padding:28px;min-height:170px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;text-decoration:none}.workspace-grid>*:last-child{border-right:0}.workspace-grid span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.workspace-grid b{margin-top:auto;font-family:var(--font-display);font-size:1.35rem}
.admin-body{min-height:100vh;background:#eef0eb}.admin-sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#101511;color:#d9e0da;overflow-y:auto;padding:26px 18px;border-right:1px solid #303730}.admin-brand{padding:0 10px 28px;border-bottom:1px solid #2b322c;display:flex;justify-content:space-between;align-items:end}.admin-brand small{color:#778079;font-size:.65rem}.admin-nav-group{display:grid;gap:2px;margin-top:24px}.admin-nav-group>span{padding:0 10px 7px;color:#778079;text-transform:uppercase;letter-spacing:.12em;font-size:.61rem;font-weight:800}.admin-nav-group a{padding:8px 10px;text-decoration:none;font-size:.82rem;border-left:2px solid transparent}.admin-nav-group a:hover,.admin-nav-group a[aria-current="page"]{background:#1c231d;border-color:var(--accent);color:#fff}.admin-frame{margin-left:250px;min-height:100vh}.admin-topbar{height:72px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}.environment-chip{padding:6px 9px;border:1px solid var(--border);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.admin-menu{display:none}.admin-user{display:flex;align-items:center;gap:12px}.admin-user>span{font-weight:800}.admin-user small{color:var(--muted)}.admin-main{padding:44px clamp(24px,4vw,64px) 90px}.admin-page-head{display:flex;justify-content:space-between;align-items:end;gap:34px;margin-bottom:42px}.admin-page-head h1{font-size:clamp(3rem,5vw,5.4rem)}.admin-page-head>div>p:last-child{color:var(--muted);margin:15px 0 0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);background:var(--surface);margin-bottom:34px}.metric-grid article{padding:24px;border-right:1px solid var(--border)}.metric-grid article:last-child{border-right:0}.metric-grid span,.metric-grid small{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.metric-grid strong{display:block;font-family:var(--font-display);font-size:3.5rem;font-weight:500;line-height:1;margin:20px 0 16px}.admin-panel{background:var(--surface);border:1px solid var(--border);margin-bottom:28px}.panel-head{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:24px 28px;border-bottom:1px solid var(--border)}.panel-head h2{font-family:var(--font-display);font-weight:500;font-size:2rem;margin:4px 0 0}.panel-head .section-index{margin:0}.panel-head>p{color:var(--muted);font-size:.8rem;margin:0;max-width:360px;text-align:right}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.82rem}th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}tbody tr:last-child td{border-bottom:0}.table-empty{padding:34px;color:var(--muted)}.admin-empty{border:0}.settings-form{display:grid}.settings-section{margin-bottom:26px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:28px}.field-span{grid-column:1/-1}.settings-form input,.settings-form textarea,.settings-form select{background:#f7f8f4}.code-field{font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.token-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:28px}.color-input{display:grid;grid-template-columns:52px 1fr}.color-input input[type="color"]{height:46px;padding:3px}.check-label{align-content:end;display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.check-label input[type="checkbox"]{width:auto}.sticky-actions{position:sticky;bottom:16px;z-index:10;margin:4px 0 34px;padding:12px 14px 12px 18px;background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px #0003}.status-badge{display:inline-flex;padding:4px 7px;border:1px solid var(--border);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.status-published{background:#e1f2e3;color:#205c2b}.status-draft{background:#fff4c9;color:#6c5310}.status-archived{background:#eceeeb;color:#566058}.table-action{border:0;background:transparent;text-decoration:underline;font-weight:800;cursor:pointer}.revision-panel form{display:inline}
@media (max-width:1080px){.hero-grid{grid-template-columns:1fr;gap:56px}.signal-board{max-width:720px}.split-grid{gap:50px}.workspace-grid{grid-template-columns:1fr 1fr}.workspace-grid>*:nth-child(2){border-right:0}.workspace-grid>*:nth-child(-n+2){border-bottom:1px solid var(--border)}.token-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid article:nth-child(2){border-right:0}.metric-grid article:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media (max-width:820px){.shell,.narrow{width:min(100% - 32px,1240px)}.header-inner{height:68px}.menu-button{display:block}.primary-nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--paper);border-bottom:1px solid var(--ink);padding:20px 16px;flex-direction:column;align-items:stretch;gap:2px}.primary-nav[data-open="true"]{display:flex}.primary-nav a{padding:12px}.hero{padding:56px 0 72px}.hero h1{font-size:clamp(3.6rem,15vw,6.2rem)}.hero-grid{grid-template-columns:1fr}.signal-board>a{grid-template-columns:1fr}.signal-board>a small{text-align:left;margin-left:30px}.split-section{padding:76px 0}.split-grid,.cta-grid,.contact-grid{grid-template-columns:1fr;gap:48px}.principles-grid{grid-template-columns:1fr}.principles-grid article,.principles-grid article+article{padding:28px 0;border-right:0;border-bottom:1px solid var(--border)}.principles-grid article:last-child{border-bottom:0}.cta-band{padding:70px 0}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div{grid-column:1/-1}.page-hero{padding:64px 0}.page-body,.contact-section{padding:64px 0 90px}.auth-shell{grid-template-columns:1fr;gap:48px;align-content:center}.auth-shell>.wordmark{align-self:auto}.auth-panel{grid-template-columns:1fr;gap:34px}.auth-note{grid-column:1}.admin-sidebar{transform:translateX(-100%);z-index:100;transition:transform .2s}.admin-sidebar[data-open="true"]{transform:translateX(0)}.admin-frame{margin-left:0}.admin-menu{display:inline-block}.admin-main{padding-top:32px}.admin-page-head{align-items:start;flex-direction:column}.field-grid{grid-template-columns:1fr}.field-span{grid-column:auto}}
@media (max-width:560px){.hero h1{font-size:3.55rem}.hero-lede{font-size:1.05rem}.button-row{display:grid}.button{width:100%}.signal-board{box-shadow:7px 7px 0 var(--primary)}.signal-board>a{padding:19px 16px}.track-list article,.service-list article{grid-template-columns:44px 1fr}.principles-section{padding:70px 0}.footer-grid{grid-template-columns:1fr}.footer-grid>div{grid-column:auto}.footer-base{flex-direction:column}.page-hero h1{font-size:3.8rem}.status-model dl div{grid-template-columns:1fr;gap:7px}.contact-form{padding:24px 18px}.form-row{grid-template-columns:1fr}.workspace-grid,.metric-grid{grid-template-columns:1fr}.workspace-grid>*,.metric-grid article{border-right:0!important;border-bottom:1px solid var(--border)}.workspace-grid>*:last-child,.metric-grid article:last-child{border-bottom:0}.app-header{padding:0 16px}.app-header nav>a,.app-header nav>span{display:none}.admin-topbar{padding:0 16px}.admin-user small{display:none}.token-grid{grid-template-columns:1fr}.panel-head{align-items:start;flex-direction:column}.panel-head>p{text-align:left}.sticky-actions{align-items:stretch;flex-direction:column;gap:12px}.sticky-actions .button{width:100%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:hover{transform:none}}
html[data-motion="off"] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.admin-brand{display:grid;gap:4px;justify-content:normal;align-items:initial}

/* Phase 2 public direction: agency-first, inspired by work-led independent studios. */
.public-body{--gh-ink:#090b0a;--gh-paper:#f2f0e9;--gh-acid:#c9ff3d;--gh-blue:#4858ff;--gh-line:#1a1c1a;background:var(--gh-paper);color:var(--gh-ink);font-family:"Archivo",Arial,sans-serif;letter-spacing:-.012em}
.public-body .shell{width:min(1320px,calc(100% - 56px))}
.public-body .skip-link{background:var(--gh-acid);color:var(--gh-ink);border-color:var(--gh-ink);font-weight:800}
.public-body .site-header{position:sticky;top:0;z-index:80;border-bottom:1px solid var(--gh-ink);background:color-mix(in srgb,var(--gh-paper) 94%,transparent);backdrop-filter:blur(12px)}
.home-page .site-header{position:absolute;inset:0 0 auto;background:transparent;border:0;backdrop-filter:none;color:var(--gh-ink)}
.public-body .header-inner{height:86px;gap:28px}
.public-body .wordmark{align-items:center;font-family:"Archivo Black","Arial Black",sans-serif;font-size:1rem;font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:-.07em}
.public-body .wordmark span,.public-body .wordmark strong{font:inherit;color:inherit}
.public-body .wordmark strong{margin-left:.18em}
.public-body .primary-nav{gap:4px;font-size:.78rem;font-weight:700;letter-spacing:-.01em}
.public-body .primary-nav a{padding:10px 12px;border:0;border-radius:999px}
.public-body .primary-nav a:hover{background:var(--gh-ink);color:var(--gh-acid)}
.public-body .primary-nav .nav-project{margin-left:8px;padding:12px 18px;background:var(--gh-ink);color:#fff}
.public-body .primary-nav .nav-project:hover{background:var(--gh-blue);color:#fff}
.public-body .menu-button{border:1px solid currentColor;border-radius:999px}
.public-body .menu-button span:not(.sr-only){height:1px}

.agency-hero{min-height:100svh;padding:112px 0 48px;display:flex;flex-direction:column;overflow:hidden;background:var(--gh-acid);border-bottom:1px solid var(--gh-ink)}
.agency-hero-meta{display:flex;justify-content:space-between;gap:24px;padding-top:8px;text-transform:uppercase;font-size:.68rem;font-weight:800;letter-spacing:.08em}
.agency-hero-meta p{margin:0}
.agency-lockup{display:flex;flex-direction:column;margin:clamp(44px,6vh,80px) 0 clamp(42px,5vh,70px);font-family:"Archivo Black","Arial Black",sans-serif;font-size:clamp(7.8rem,18.6vw,18.5rem);font-weight:400;line-height:.69;letter-spacing:-.09em;text-transform:uppercase;white-space:nowrap}
.agency-lockup span{display:block;animation:gh-word-reveal .85s cubic-bezier(.22,1,.36,1) both}
.agency-lockup span:first-child{margin-left:-.035em}
.agency-lockup span:last-child{align-self:flex-end;margin-right:-.025em;animation-delay:.1s}
.agency-hero-bottom{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:clamp(50px,9vw,150px);align-items:end;margin-top:auto;animation:gh-rise .7s .18s ease-out both}
.agency-hero h1{max-width:850px;margin:0;font-family:"Archivo",Arial,sans-serif;font-size:clamp(2.6rem,4.5vw,4.8rem);font-weight:700;line-height:.93;letter-spacing:-.07em}
.agency-hero-intro>p{max-width:560px;margin:0;font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:1.35;letter-spacing:-.035em}
.agency-actions{display:flex;align-items:center;gap:24px;margin-top:28px}
.agency-button{min-height:52px;padding:14px 20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:999px;text-decoration:none;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em;transition:transform .2s ease,background-color .2s ease,color .2s ease}
.agency-button:hover{transform:translateY(-3px)}
.agency-button-dark{background:var(--gh-ink);color:#fff;border-color:var(--gh-ink)}
.agency-button-dark:hover{background:var(--gh-blue);border-color:var(--gh-blue)}
.agency-button-light{background:#fff;color:var(--gh-ink);border-color:#fff}
.agency-button-light:hover{background:var(--gh-acid);border-color:var(--gh-acid)}
.agency-text-link{display:inline-flex;padding-bottom:3px;border-bottom:1px solid currentColor;text-decoration:none;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.agency-text-link:hover{border-bottom-width:3px}
.agency-text-link-light{color:var(--gh-acid)}
.agency-label{margin:0;text-transform:uppercase;font-size:.68rem;font-weight:800;letter-spacing:.1em}

.agency-position{padding:clamp(110px,12vw,190px) 0;background:var(--gh-ink);color:#fff}
.agency-position-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,2.45fr);gap:60px}
.agency-position .agency-label{color:var(--gh-acid)}
.agency-position h2{max-width:1100px;margin:0;font-family:"Archivo",Arial,sans-serif;font-size:clamp(3.8rem,7.8vw,8.5rem);font-weight:700;line-height:.89;letter-spacing:-.075em}
.agency-position h2::first-line{color:var(--gh-acid)}
.agency-position-grid>div>p{max-width:690px;margin:54px 0 34px;font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.45;color:#c8cbc7}

.agency-capabilities{padding:clamp(100px,11vw,170px) 0 0;background:var(--gh-paper)}
.agency-section-head{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,2.45fr);gap:60px;margin-bottom:clamp(70px,9vw,130px)}
.agency-section-head h2{margin:0;font-size:clamp(4rem,8vw,8.6rem);font-weight:700;line-height:.87;letter-spacing:-.078em}
.capability-list{border-top:1px solid var(--gh-ink)}
.capability-row{display:grid;grid-template-columns:minmax(44px,.3fr) minmax(320px,1.35fr) minmax(270px,1fr) auto;gap:36px;align-items:center;padding:36px max(28px,calc((100vw - 1320px)/2));border-bottom:1px solid var(--gh-ink);text-decoration:none;transition:background-color .22s ease,color .22s ease}
.capability-row:hover{background:var(--gh-blue);color:#fff}
.capability-number{align-self:start;padding-top:7px;font-size:.68rem;font-weight:800;letter-spacing:.08em}
.capability-row h3{margin:0;font-size:clamp(1.8rem,3vw,3.4rem);font-weight:600;line-height:1;letter-spacing:-.06em}
.capability-row p{max-width:520px;margin:0;font-size:.95rem;line-height:1.45;color:#4f524f}
.capability-row:hover p{color:#fff}
.capability-action{padding:9px 13px;border:1px solid currentColor;border-radius:999px;white-space:nowrap;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}

.agency-method{padding:clamp(110px,12vw,190px) 0;background:var(--gh-blue);color:#fff}
.agency-method-head{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,2.45fr);gap:60px}
.agency-method .agency-label{color:var(--gh-acid)}
.agency-method-head h2{margin:0;font-size:clamp(4rem,8.5vw,9rem);font-weight:700;line-height:.86;letter-spacing:-.08em}
.agency-method-steps{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(90px,10vw,150px);border-top:1px solid #fff;border-bottom:1px solid #fff}
.agency-method-steps article{min-height:330px;padding:28px 34px 32px 0;border-right:1px solid #fff;display:flex;flex-direction:column}
.agency-method-steps article+article{padding-left:34px}
.agency-method-steps article:last-child{border-right:0}
.agency-method-steps span{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--gh-acid)}
.agency-method-steps h3{max-width:330px;margin:auto 0 18px;font-size:clamp(1.75rem,2.5vw,2.8rem);font-weight:600;line-height:1;letter-spacing:-.055em}
.agency-method-steps p{max-width:350px;margin:0;line-height:1.45;color:#e2e5ff}

.agency-proof{padding:clamp(100px,11vw,170px) 0;background:var(--gh-ink);color:#fff}
.agency-proof-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1.55fr) minmax(260px,.9fr);gap:60px;align-items:end}
.agency-proof .agency-label{align-self:start;color:var(--gh-acid)}
.agency-proof h2{max-width:820px;margin:0;font-size:clamp(4rem,8vw,8.6rem);font-weight:700;line-height:.87;letter-spacing:-.078em;color:var(--gh-acid)}
.agency-proof-grid>p:last-child{max-width:430px;margin:0;font-size:1.1rem;line-height:1.5;color:#c8cbc7}

.agency-products{padding:clamp(100px,11vw,170px) 0 0;background:var(--gh-paper)}
.agency-products-intro{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1.55fr) minmax(260px,.9fr);gap:60px;align-items:end;margin-bottom:clamp(70px,8vw,120px)}
.agency-products-intro .agency-label{align-self:start}
.agency-products-intro h2{margin:0;font-size:clamp(3.4rem,6.8vw,7.3rem);font-weight:700;line-height:.9;letter-spacing:-.075em}
.agency-products-intro>p:last-child{max-width:420px;margin:0;font-size:1.05rem;line-height:1.5;color:#4f524f}
.agency-product-links{border-top:1px solid var(--gh-ink)}
.agency-product-links a{display:grid;grid-template-columns:minmax(44px,.3fr) 1.4fr 1fr;gap:36px;align-items:center;padding:38px max(28px,calc((100vw - 1320px)/2));border-bottom:1px solid var(--gh-ink);text-decoration:none;transition:background-color .22s ease,color .22s ease}
.agency-product-links a:hover{background:var(--gh-acid)}
.agency-product-links span{font-size:.68rem;font-weight:800;letter-spacing:.08em}
.agency-product-links strong{font-size:clamp(2.2rem,4vw,4.4rem);font-weight:600;line-height:1;letter-spacing:-.06em}
.agency-product-links small{font-size:.82rem;color:#4f524f}

.agency-closing{padding:clamp(100px,11vw,170px) 0;background:var(--gh-blue);color:#fff}
.agency-closing-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1.55fr) minmax(260px,.9fr);gap:60px;align-items:end}
.agency-closing .agency-label{align-self:start;color:var(--gh-acid)}
.agency-closing h2{margin:0;font-size:clamp(4rem,8vw,8.6rem);font-weight:700;line-height:.87;letter-spacing:-.078em}
.agency-closing-grid>div p{margin:0 0 32px;font-size:1.05rem;line-height:1.5;color:#e2e5ff}

.public-body .site-footer{padding:0 0 28px;background:var(--gh-ink);color:#fff}
.public-body .footer-invite{display:grid;grid-template-columns:.65fr 2.35fr;gap:60px;padding-top:clamp(90px,10vw,150px);padding-bottom:clamp(90px,10vw,150px);border-bottom:1px solid #555a55}
.public-body .footer-invite p{margin:10px 0 0;text-transform:uppercase;font-size:.68rem;font-weight:800;letter-spacing:.09em;color:var(--gh-acid)}
.public-body .footer-invite a{max-width:1000px;text-decoration:none;font-size:clamp(4rem,8.5vw,9.2rem);font-weight:700;line-height:.86;letter-spacing:-.08em}
.public-body .footer-invite a:hover{color:var(--gh-acid)}
.public-body .footer-grid{grid-template-columns:1.5fr repeat(3,.5fr);gap:50px;padding-top:70px}
.public-body .footer-grid p{max-width:420px;color:#aeb3ae}
.public-body .footer-label{color:var(--gh-acid)}
.public-body .footer-base{border-color:#3f433f;color:#888e88}

.inner-page .page-hero{padding:clamp(90px,10vw,150px) 0;background:var(--gh-blue);color:#fff;border-color:var(--gh-ink)}
.inner-page .page-hero .eyebrow{color:var(--gh-acid)}
.inner-page .page-hero h1{font-family:"Archivo",Arial,sans-serif;font-size:clamp(4.2rem,10vw,10rem);font-weight:700;line-height:.84;letter-spacing:-.08em}
.inner-page .page-hero>div>p:last-child{max-width:760px;color:#e2e5ff;font-size:1.25rem}
.inner-page .page-body,.inner-page .contact-section{background:var(--gh-paper)}
.inner-page .service-list article{border-color:var(--gh-ink)}
.inner-page .service-list span{font-family:"Archivo",Arial,sans-serif;color:var(--gh-blue);font-size:.8rem;font-weight:800}
.inner-page .service-list h2,.inner-page .empty-state h2,.inner-page .status-model h2,.inner-page .editorial-copy h2,.inner-page .contact-grid>div h2{font-family:"Archivo",Arial,sans-serif;font-weight:600;letter-spacing:-.055em}
.inner-page .service-list h2{font-size:clamp(2rem,4vw,4rem)}
.inner-page .empty-state,.inner-page .contact-form{box-shadow:none;border-color:var(--gh-ink);background:#fff}
.inner-page .page-hero-contact{background:var(--gh-ink)}

@keyframes gh-word-reveal{from{clip-path:inset(0 100% 0 0);transform:translateY(.12em)}to{clip-path:inset(0);transform:translateY(0)}}
@keyframes gh-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

@media (max-width:1080px){
  .agency-hero-bottom{grid-template-columns:1fr .8fr;gap:50px}
  .capability-row{grid-template-columns:44px 1.25fr 1fr}.capability-action{grid-column:2}.capability-row p{grid-column:3;grid-row:1/3}
  .agency-proof-grid,.agency-products-intro,.agency-closing-grid{grid-template-columns:150px 1fr}.agency-proof-grid>p:last-child,.agency-products-intro>p:last-child,.agency-closing-grid>div{grid-column:2}
}

@media (max-width:820px){
  .public-body .shell{width:min(100% - 32px,1320px)}
  .public-body .header-inner{height:70px}
  .public-body .primary-nav{top:70px;padding:16px;background:var(--gh-paper);color:var(--gh-ink);border-bottom:1px solid var(--gh-ink)}
  .home-page .primary-nav{background:var(--gh-acid)}
  .public-body .primary-nav a{padding:13px 14px;border-radius:0;border-bottom:1px solid currentColor}
  .public-body .primary-nav .nav-project{margin:12px 0 0;border:0;border-radius:999px;text-align:center}
  .agency-hero{min-height:auto;padding:96px 0 34px}
  .agency-hero-meta{padding-top:6px}.agency-hero-meta p:last-child{display:none}
  .agency-lockup{margin:58px 0 68px;font-size:24vw;line-height:.72;letter-spacing:-.095em}
  .agency-hero-bottom{grid-template-columns:1fr;gap:34px}
  .agency-hero h1{font-size:clamp(2.65rem,11vw,4.3rem)}
  .agency-position-grid,.agency-section-head,.agency-method-head{grid-template-columns:1fr;gap:34px}
  .agency-position h2,.agency-section-head h2,.agency-method-head h2,.agency-proof h2,.agency-closing h2{font-size:clamp(3.3rem,14vw,6.2rem)}
  .agency-position-grid>div>p{margin-top:38px}
  .capability-row{grid-template-columns:36px 1fr;gap:18px 16px;padding:28px 16px}.capability-row h3{font-size:2.2rem}.capability-row p{grid-column:2;grid-row:auto}.capability-action{grid-column:2;justify-self:start}
  .agency-method-steps{grid-template-columns:1fr}.agency-method-steps article,.agency-method-steps article+article{min-height:260px;padding:26px 0;border-right:0;border-bottom:1px solid #fff}.agency-method-steps article:last-child{border-bottom:0}
  .agency-proof-grid,.agency-products-intro,.agency-closing-grid{grid-template-columns:1fr;gap:34px}.agency-proof-grid>p:last-child,.agency-products-intro>p:last-child,.agency-closing-grid>div{grid-column:auto}
  .agency-product-links a{grid-template-columns:36px 1fr;gap:16px;padding:28px 16px}.agency-product-links small{grid-column:2}
  .public-body .footer-invite{grid-template-columns:1fr;gap:24px}
  .public-body .footer-invite a{font-size:clamp(3.4rem,15vw,6.2rem)}
  .public-body .footer-grid{grid-template-columns:1fr 1fr}.public-body .footer-grid>div{grid-column:1/-1}
}

@media (max-width:560px){
  .agency-actions{display:grid;align-items:stretch}.agency-button{width:100%}.agency-text-link{justify-self:start}
  .agency-lockup{margin-top:52px;margin-bottom:58px}
  .agency-hero-intro>p{font-size:1rem}
  .agency-position,.agency-capabilities,.agency-method,.agency-proof,.agency-products,.agency-closing{padding-top:84px}
  .agency-section-head{margin-bottom:58px}
  .agency-method{padding-bottom:84px}.agency-proof,.agency-closing{padding-bottom:84px}
  .agency-method-steps{margin-top:64px}
  .public-body .footer-grid{grid-template-columns:1fr}.public-body .footer-grid>div{grid-column:auto}
}

@media (prefers-reduced-motion:reduce){.agency-lockup span,.agency-hero-bottom{animation:none}}

/* Multi-reference synthesis: SEO authority, human agency clarity, and work-led restraint. */
.public-body{--gh-ink:#101217;--gh-paper:#f4f4ef;--gh-acid:#ff5c35;--gh-blue:#2f50ff;--gh-line:#24262c;background:var(--gh-paper);font-family:Arial,"Helvetica Neue",sans-serif}
.home-page .site-header{position:sticky;top:0;background:rgba(255,255,255,.94);border-bottom:1px solid #d8d9d4;color:var(--gh-ink);backdrop-filter:blur(14px)}
.home-page .primary-nav .nav-project{background:var(--gh-blue);color:#fff}
.home-page .primary-nav .nav-project:hover{background:var(--gh-ink)}

.agency-hero{min-height:calc(100svh - 86px);padding:44px 0 30px;background:#fff;color:var(--gh-ink);border-bottom:1px solid #d8d9d4}
.agency-hero-meta{padding-top:0;color:#60636a}
.agency-hero-main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.45fr);gap:clamp(60px,8vw,130px);align-items:end;margin-top:clamp(70px,10vh,120px)}
.agency-hero-index{margin:0 0 24px;color:#c64024;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.agency-hero-copy h1{max-width:950px;margin:0;font-size:clamp(4.8rem,8.1vw,8.4rem);font-weight:600;line-height:.9;letter-spacing:-.075em}
.agency-hero-copy h1 span{display:block;color:var(--gh-blue)}
.agency-hero-brief{padding-top:24px;border-top:3px solid var(--gh-ink)}
.agency-hero-brief>p{margin:0 0 32px;font-size:1.1rem;line-height:1.45;color:#3f4248}
.agency-hero-brief dl{margin:0;border-top:1px solid #cfd1cc}
.agency-hero-brief dl div{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #cfd1cc}
.agency-hero-brief dt{font-size:.65rem;font-weight:800;color:var(--gh-blue)}
.agency-hero-brief dd{margin:0;font-size:.82rem;font-weight:700}
.agency-hero .agency-actions{gap:18px;margin-top:30px}
.agency-hero .agency-button-light{background:var(--gh-blue);border-color:var(--gh-blue);color:#fff}
.agency-hero .agency-button-light:hover{background:var(--gh-ink);border-color:var(--gh-ink)}
.agency-hero .agency-text-link-light{color:var(--gh-ink)}
.agency-hero-foot{display:flex;justify-content:space-between;gap:40px;margin-top:auto;padding-top:26px;border-top:1px solid #cfd1cc;color:#60636a;font-size:.72rem;font-weight:600}
.agency-hero-foot p{margin:0}

.agency-position{padding:clamp(105px,11vw,165px) 0;background:var(--gh-paper);color:var(--gh-ink)}
.agency-position .agency-label{color:var(--gh-blue)}
.agency-position h2{max-width:1120px;font-size:clamp(3.8rem,7vw,7.5rem);font-weight:600;line-height:.91}
.agency-position h2::first-line{color:inherit}
.agency-position h2 span{color:var(--gh-blue)}
.agency-position-grid>div>p{color:#4e5158}
.agency-position .agency-text-link-light{color:var(--gh-ink)}

.agency-capabilities{background:#fff}
.agency-section-head h2{font-size:clamp(3.8rem,7vw,7.4rem);font-weight:600;line-height:.91}
.agency-capabilities .agency-label{color:#c64024}
.capability-list,.capability-row{border-color:#cfd1cc}
.capability-row:hover{background:var(--gh-ink);color:#fff}
.capability-row p{color:#55585f}

.agency-method{background:var(--gh-ink);color:#fff}
.agency-method .agency-label,.agency-method-steps span{color:var(--gh-acid)}
.agency-method-head h2{font-size:clamp(3.8rem,7.2vw,7.7rem);font-weight:600;line-height:.9}
.agency-method-steps{border-color:#5a5d64}
.agency-method-steps article{border-color:#5a5d64}
.agency-method-steps p{color:#bfc2c9}

.agency-proof{background:var(--gh-blue);color:#fff}
.agency-proof .agency-label{color:#fff}
.agency-proof h2{max-width:900px;color:#fff;font-size:clamp(3.8rem,6.5vw,7rem);font-weight:600;line-height:.91}
.agency-proof-grid>p:last-child{color:#e0e4ff}

.agency-products{background:var(--gh-paper)}
.agency-products .agency-label{color:var(--gh-blue)}
.agency-products-intro h2{font-size:clamp(3.5rem,6.2vw,6.7rem);font-weight:600;line-height:.92}
.agency-product-links,.agency-product-links a{border-color:#c4c6c1}
.agency-product-links a:hover{background:#fff;color:var(--gh-blue)}

.agency-closing{background:var(--gh-acid);color:var(--gh-ink)}
.agency-closing .agency-label{color:var(--gh-ink)}
.agency-closing h2{font-size:clamp(3.8rem,6.8vw,7.2rem);font-weight:600;line-height:.9}
.agency-closing-grid>div p{color:#372219}
.agency-closing .agency-button-light{background:var(--gh-ink);border-color:var(--gh-ink);color:#fff}
.agency-closing .agency-button-light:hover{background:var(--gh-blue);border-color:var(--gh-blue)}

.public-body .footer-invite p,.public-body .footer-label{color:var(--gh-acid)}
.public-body .footer-invite a:hover{color:var(--gh-acid)}

@media (max-width:1080px){
  .agency-hero-main{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:55px}
  .agency-hero-copy h1{font-size:clamp(4.3rem,9vw,7rem)}
}

@media (max-width:820px){
  .home-page .primary-nav{background:#fff}
  .agency-hero{min-height:auto;padding:30px 0 34px}
  .agency-hero-main{grid-template-columns:1fr;gap:50px;margin-top:58px}
  .agency-hero-copy h1{font-size:clamp(3.4rem,14.7vw,5.7rem);line-height:.91}
  .agency-hero-brief{max-width:none}
  .agency-hero-foot{display:grid;margin-top:56px}
  .agency-position h2,.agency-section-head h2,.agency-method-head h2,.agency-proof h2,.agency-products-intro h2,.agency-closing h2{font-size:clamp(3.2rem,13vw,5.5rem);line-height:.94}
}

@media (max-width:560px){
  .agency-hero-meta p:first-child{max-width:220px}
  .agency-hero-main{margin-top:48px}
  .agency-hero-copy h1{font-size:3.75rem}
  .agency-hero-brief>p{font-size:1rem}
  .agency-hero .agency-actions{display:grid;gap:22px}
  .agency-hero-foot{gap:8px}
}

/* Option 1 — agency-first editorial system with persistent light/dark themes. */
html{scroll-padding-top:112px}
body.home-page.gh-option-one{
  --gh-bg:#f4f0e8;
  --gh-surface:#f8f5ee;
  --gh-surface-strong:#fffdf8;
  --gh-text:#171814;
  --gh-muted:#66635d;
  --gh-line:#b9b4aa;
  --gh-line-soft:#d9d3c8;
  --gh-gold:#e5a33d;
  --gh-gold-strong:#f0b34f;
  --gh-coral:#ef6547;
  --gh-grid-image:url('/assets/images/option-one/grid-light.png');
  --gh-map-image:url('/assets/images/option-one/search-architecture-light.png');
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  background-color:var(--gh-bg);
  background-image:var(--gh-grid-image);
  background-repeat:repeat;
  background-size:640px 640px;
  color:var(--gh-text);
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:16px;
  line-height:1.45;
  letter-spacing:-.025em;
  transition:background-color .35s ease,color .35s ease;
}

html[data-theme="dark"] body.home-page.gh-option-one{
  --gh-bg:#0d0f0f;
  --gh-surface:#101313;
  --gh-surface-strong:#141717;
  --gh-text:#e7dfd2;
  --gh-muted:#aaa59d;
  --gh-line:#55554f;
  --gh-line-soft:#2b2f2d;
  --gh-gold:#dfa138;
  --gh-gold-strong:#f0b34f;
  --gh-coral:#f06a4b;
  --gh-grid-image:url('/assets/images/option-one/grid-dark.png');
  --gh-map-image:url('/assets/images/option-one/search-architecture-dark.png');
}

.home-page.gh-option-one .skip-link{background:var(--gh-gold);color:#111;border-color:#111}
.gh-shell{width:min(1280px,calc(100% - 112px));margin-inline:auto}
.gh-option-one a{text-decoration-thickness:1px}
.gh-option-one [id]{scroll-margin-top:118px}

.gh-site-header{
  position:fixed;
  z-index:120;
  top:16px;
  left:0;
  right:0;
  height:64px;
  pointer-events:none;
}
.gh-nav-shell{
  width:min(1280px,calc(100% - 112px));
  height:64px;
  margin-inline:auto;
  padding:0 14px 0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  color:var(--gh-text);
  background:color-mix(in srgb,var(--gh-surface-strong) 92%,transparent);
  border:1px solid color-mix(in srgb,var(--gh-line) 76%,transparent);
  border-radius:999px;
  box-shadow:0 12px 30px color-mix(in srgb,#000 13%,transparent);
  backdrop-filter:blur(16px);
  pointer-events:auto;
  transition:height .28s ease,background-color .35s ease,border-color .35s ease,box-shadow .28s ease;
}
.gh-site-header.is-scrolled .gh-nav-shell{height:58px;box-shadow:0 16px 36px color-mix(in srgb,#000 18%,transparent)}
.gh-wordmark{
  position:relative;
  z-index:3;
  display:inline-flex;
  align-items:flex-start;
  color:inherit;
  text-decoration:none;
  font-size:1.06rem;
  font-weight:900;
  line-height:1;
  letter-spacing:-.07em;
  text-transform:uppercase;
  white-space:nowrap;
}
.gh-wordmark i{margin:-5px 0 0 -2px;color:var(--gh-coral);font-size:1.05rem}
.gh-primary-nav{display:flex;align-items:center;gap:3px;font-size:.78rem;font-weight:500;letter-spacing:-.035em}
.gh-primary-nav>a:not(.gh-nav-project){padding:10px 11px;border-radius:999px;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.gh-primary-nav>a:not(.gh-nav-project):hover,.gh-primary-nav>a:not(.gh-nav-project):focus-visible{background:var(--gh-text);color:var(--gh-bg)}
.gh-nav-project{
  min-height:42px;
  margin-left:6px;
  padding:0 17px 0 19px;
  display:inline-flex;
  align-items:center;
  gap:15px;
  border-radius:999px;
  background:var(--gh-gold-strong);
  color:#17140e;
  text-decoration:none;
  font-weight:600;
  transition:transform .2s ease,background-color .2s ease;
}
.gh-nav-project:hover{transform:translateY(-2px);background:#f5bb5b}
.gh-nav-project i{font-size:.9rem;transition:transform .2s ease}
.gh-nav-project:hover i{transform:translate(2px,-2px)}
.gh-theme-toggle,.gh-menu-button{
  width:38px;
  height:38px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid var(--gh-line-soft);
  border-radius:50%;
  background:transparent;
  color:inherit;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.gh-theme-toggle:hover{background:var(--gh-text);color:var(--gh-bg);border-color:var(--gh-text);transform:rotate(8deg)}
.gh-theme-toggle .ph-sun{display:none}
html[data-theme="dark"] .gh-theme-toggle .ph-sun{display:block}
html[data-theme="dark"] .gh-theme-toggle .ph-moon{display:none}
.gh-menu-button{display:none}
.gh-menu-button .ph-x{display:none}

.gh-hero{padding:148px 0 0;overflow:hidden}
.gh-hero-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(260px,.58fr);gap:clamp(60px,8vw,126px);align-items:start}
.gh-hero-copy{min-width:0}
.gh-kicker{margin:0 0 24px;font-family:"Arial Narrow",Arial,sans-serif;font-size:.62rem;font-weight:700;letter-spacing:.105em;text-transform:uppercase}
.gh-kicker span,.gh-section-label>p span{display:inline-flex;align-items:center}
.gh-kicker i,.gh-section-label>p i{margin-left:-1px;color:var(--gh-coral);font-size:.92rem}
.gh-hero h1{max-width:850px;margin:0;font-size:clamp(4rem,7.25vw,6.65rem);font-weight:500;line-height:.94;letter-spacing:-.075em}
.gh-hero-lede{max-width:650px;margin:28px 0 0;color:var(--gh-muted);font-size:clamp(1rem,1.45vw,1.32rem);line-height:1.42;letter-spacing:-.038em}
.gh-actions{display:flex;align-items:center;gap:32px;margin-top:34px}
.gh-button{min-height:54px;padding:0 18px 0 22px;display:inline-flex;align-items:center;gap:42px;border:1px solid transparent;border-radius:999px;text-decoration:none;font-size:.81rem;font-weight:600;letter-spacing:-.02em;transition:transform .2s ease,background-color .2s ease}
.gh-button-primary{background:var(--gh-gold-strong);color:#17140e}
.gh-button:hover{transform:translateY(-3px);background:#f5bb5b}
.gh-button i,.gh-text-link i,.gh-service-action i{transition:transform .2s ease}
.gh-button:hover i,.gh-text-link:hover i,.gh-service-row:hover .gh-service-action i{transform:translate(3px,-3px)}
.gh-text-link{display:inline-flex;align-items:center;gap:16px;padding:10px 0 5px;border-bottom:1px solid currentColor;color:inherit;text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:-.025em}
.gh-hero-rail{padding-top:22px;border-top:3px solid var(--gh-text)}
.gh-hero-rail>p{margin:0 0 25px;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.45}
.gh-hero-rail ol{margin:0;padding:0;list-style:none;border-top:1px solid var(--gh-line-soft)}
.gh-hero-rail li{border-bottom:1px solid var(--gh-line-soft)}
.gh-hero-rail a{display:grid;grid-template-columns:32px 1fr 18px;align-items:center;gap:7px;min-height:52px;color:inherit;text-decoration:none;font-size:.78rem;transition:padding .2s ease,color .2s ease}
.gh-hero-rail a:hover{padding-left:7px;color:var(--gh-coral)}
.gh-hero-rail a span{font-family:"Arial Narrow",Arial,sans-serif;color:var(--gh-coral);font-size:.65rem;font-weight:700;letter-spacing:.04em}
.gh-hero-rail a strong{font-weight:600}
.gh-hero-rail a i{justify-self:end;font-size:.82rem}
.gh-hero-map{
  --gh-map-shift:0px;
  width:100%;
  height:clamp(252px,25vw,360px);
  margin-top:70px;
  background-image:var(--gh-map-image);
  background-repeat:no-repeat;
  background-size:100% auto;
  background-position:center 35%;
  transform:translate3d(0,var(--gh-map-shift),0) scale(1.008);
  transform-origin:center bottom;
  transition:background-image .3s ease;
}

.gh-section{padding:34px 0 0}
.gh-section-label{min-height:27px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:12px}
.gh-section-label>p{margin:0;font-family:"Arial Narrow",Arial,sans-serif;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.gh-window-tools{display:flex;align-items:center;gap:16px;font-size:.68rem}
.gh-case{display:grid;grid-template-columns:minmax(270px,.39fr) minmax(0,1fr);min-height:550px;border:1px solid var(--gh-line);border-left:3px solid var(--gh-gold);background:color-mix(in srgb,var(--gh-surface) 84%,transparent);transition:background-color .35s ease,border-color .35s ease}
.gh-case-copy{padding:56px 48px 44px;display:flex;flex-direction:column;border-right:1px solid var(--gh-line-soft)}
.gh-case-index{margin:0 0 26px;color:var(--gh-muted);font-family:"Arial Narrow",Arial,sans-serif;font-size:.58rem;letter-spacing:.11em;text-transform:uppercase}
.gh-case-copy h2{margin:0;font-size:clamp(2.1rem,3.5vw,3.4rem);font-weight:500;line-height:1.04;letter-spacing:-.064em}
.gh-case-copy>p:not(.gh-case-index){max-width:280px;margin:24px 0 0;color:var(--gh-muted);font-size:1.04rem;line-height:1.48}
.gh-case-copy .gh-text-link{align-self:flex-start;margin-top:auto}
.gh-case-visual{position:relative;min-width:0;padding:20px;display:grid;place-items:center;overflow:hidden}
.gh-case-visual img{width:100%;height:100%;max-height:430px;object-fit:contain;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .25s ease}
.gh-case:hover .gh-case-visual img{transform:scale(1.018)}
.gh-expand{position:absolute;right:28px;bottom:26px;min-height:38px;padding:0 13px;display:flex;align-items:center;gap:8px;border:1px solid var(--gh-line);border-radius:999px;background:color-mix(in srgb,var(--gh-surface-strong) 92%,transparent);color:inherit;font-size:.66rem;font-weight:600;cursor:pointer;backdrop-filter:blur(8px);transition:background-color .2s ease,color .2s ease,transform .2s ease}
.gh-expand:hover{background:var(--gh-text);color:var(--gh-bg);transform:translateY(-2px)}

.gh-services{padding-top:52px}
.gh-service-list{border:1px solid var(--gh-line);border-left:3px solid var(--gh-gold);background:color-mix(in srgb,var(--gh-surface) 68%,transparent)}
.gh-service-row{min-height:126px;padding:24px 34px;display:grid;grid-template-columns:46px minmax(230px,1.05fr) minmax(280px,1.45fr) 92px;align-items:center;gap:24px;border-bottom:1px solid var(--gh-line-soft);color:inherit;text-decoration:none;transition:background-color .25s ease,color .25s ease,padding .25s ease}
.gh-service-row:last-child{border-bottom:0}
.gh-service-row:hover,.gh-service-row:focus-visible{padding-left:42px;background:var(--gh-text);color:var(--gh-bg)}
.gh-service-number{color:var(--gh-gold);font-family:"Arial Narrow",Arial,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.05em}
.gh-service-row h2{margin:0;font-size:clamp(1.5rem,2.2vw,2.16rem);font-weight:500;line-height:1;letter-spacing:-.055em}
.gh-service-row p{max-width:420px;margin:0;color:var(--gh-muted);font-size:.79rem;line-height:1.45;letter-spacing:-.02em;transition:color .25s ease}
.gh-service-row:hover p,.gh-service-row:focus-visible p{color:color-mix(in srgb,var(--gh-bg) 74%,transparent)}
.gh-service-action{justify-self:end;display:inline-flex;align-items:center;gap:16px;font-size:.72rem;font-weight:600}

.gh-process{padding-top:54px}
.gh-process-track{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--gh-line);background:color-mix(in srgb,var(--gh-surface) 68%,transparent)}
.gh-process-track article{position:relative;min-height:174px;padding:29px 34px;display:grid;grid-template-columns:76px 1fr;align-items:center;gap:28px;transition:background-color .28s ease}
.gh-process-track article+article::before{content:"";position:absolute;left:0;top:32px;bottom:32px;border-left:1px dotted var(--gh-line)}
.gh-process-track article.is-active{background:color-mix(in srgb,var(--gh-gold) 10%,transparent)}
.gh-process-icon{width:70px;height:70px;display:grid;place-items:center;border:1px solid var(--gh-line);border-radius:50%;font-size:2rem;color:var(--gh-gold);transition:border-color .25s ease,transform .25s ease,background-color .25s ease}
.gh-process-track article.is-active .gh-process-icon{border-color:var(--gh-gold);transform:rotate(-5deg);background:color-mix(in srgb,var(--gh-gold) 8%,transparent)}
.gh-process-track h2{margin:0 0 10px;font-size:.83rem;font-weight:700;letter-spacing:-.025em}
.gh-process-track p{max-width:220px;margin:0;color:var(--gh-muted);font-size:.74rem;line-height:1.5}

.gh-products{padding-top:42px}
.gh-products-inner{min-height:84px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-top:1px solid var(--gh-line);border-bottom:1px solid var(--gh-line)}
.gh-products p{margin:0;display:flex;align-items:center;gap:16px;font-size:.82rem}
.gh-products p i{width:28px;height:28px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.9rem}
.gh-products nav{display:flex;align-items:center;gap:34px}
.gh-products a{display:inline-flex;align-items:center;gap:13px;color:inherit;text-decoration:none;font-size:.68rem;font-weight:600;border-bottom:1px solid currentColor}
.gh-products a i{transition:transform .2s ease}.gh-products a:hover i{transform:translate(3px,-3px)}

.gh-footer{padding:47px 0 51px}
.gh-footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:40px;color:var(--gh-muted);font-size:.69rem;letter-spacing:-.015em}
.gh-footer-grid p{margin:0}.gh-footer-grid p:nth-child(2){justify-self:center;text-transform:uppercase;letter-spacing:.11em}.gh-footer-grid p:last-child{justify-self:end;text-align:right}

.gh-work-dialog{width:min(1180px,calc(100% - 48px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--gh-line);background:var(--gh-surface-strong);color:var(--gh-text);box-shadow:0 24px 80px rgba(0,0,0,.28)}
.gh-work-dialog::backdrop{background:rgba(5,7,7,.72);backdrop-filter:blur(6px)}
.gh-work-dialog-bar{min-height:78px;padding:14px 18px 14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--gh-line-soft)}
.gh-work-dialog-bar p{margin:0 0 3px;color:var(--gh-coral);font-family:"Arial Narrow",Arial,sans-serif;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em}
.gh-work-dialog-bar h2{margin:0;font-size:1.15rem;font-weight:500;letter-spacing:-.035em}
.gh-work-dialog-bar button{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--gh-line);border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.gh-work-dialog>img{width:100%;height:auto;max-height:calc(100dvh - 128px);object-fit:contain;background:var(--gh-surface)}

.gh-js .gh-option-one [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .72s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1)}
.gh-js .gh-option-one [data-reveal].is-revealed{opacity:1;transform:translateY(0)}

@media (max-width:1080px){
  .gh-shell,.gh-nav-shell{width:calc(100% - 64px)}
  .gh-nav-shell{padding-left:22px}
  .gh-primary-nav>a:not(.gh-nav-project){padding-inline:8px}
  .gh-nav-project{padding-inline:15px;gap:10px}
  .gh-hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(250px,.65fr);gap:52px}
  .gh-hero h1{font-size:clamp(3.75rem,7.6vw,5.7rem)}
  .gh-case{grid-template-columns:minmax(250px,.42fr) minmax(0,1fr)}
  .gh-case-copy{padding:44px 34px 36px}
  .gh-service-row{grid-template-columns:40px minmax(210px,.9fr) minmax(240px,1.25fr) 78px;gap:18px;padding-inline:26px}
  .gh-process-track article{padding-inline:24px;grid-template-columns:64px 1fr;gap:20px}.gh-process-icon{width:60px;height:60px}
}

@media (max-width:820px){
  .gh-shell,.gh-nav-shell{width:calc(100% - 32px)}
  .gh-site-header{top:10px;height:58px}
  .gh-nav-shell{height:58px;padding:0 9px 0 20px}
  .gh-site-header.is-scrolled .gh-nav-shell{height:54px}
  .gh-menu-button{position:relative;z-index:3;display:inline-grid}
  .gh-menu-button[aria-expanded="true"] .ph-list{display:none}.gh-menu-button[aria-expanded="true"] .ph-x{display:block}
  .gh-primary-nav{position:absolute;z-index:2;top:0;left:16px;right:16px;padding:78px 16px 18px;display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--gh-surface-strong);border:1px solid var(--gh-line);border-radius:29px;box-shadow:0 18px 44px rgba(0,0,0,.2);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease}
  .gh-primary-nav[data-open="true"]{opacity:1;visibility:visible;transform:translateY(0)}
  .gh-primary-nav>a:not(.gh-nav-project){min-height:48px;padding:14px 12px;border-radius:0;border-bottom:1px solid var(--gh-line-soft);font-size:.88rem}
  .gh-theme-toggle{width:44px;height:44px;margin-top:16px}
  .gh-nav-project{min-height:46px;margin:16px 0 0;justify-content:center}
  .menu-is-open{overflow:hidden}
  .gh-hero{padding-top:112px}
  .gh-hero-grid{grid-template-columns:1fr;gap:54px}
  .gh-hero-copy{max-width:700px}
  .gh-hero h1{font-size:clamp(3.9rem,12vw,6.1rem)}
  .gh-hero-rail{max-width:460px}
  .gh-hero-map{height:310px;margin-top:8px;background-size:auto 100%;background-position:center bottom}
  .gh-section{padding-top:44px}
  .gh-case{grid-template-columns:1fr}
  .gh-case-copy{min-height:330px;border-right:0;border-bottom:1px solid var(--gh-line-soft)}
  .gh-case-visual{min-height:420px}
  .gh-service-row{grid-template-columns:42px 1fr 74px;min-height:138px}
  .gh-service-row p{grid-column:2/4}.gh-service-action{grid-column:3;grid-row:1}
  .gh-process-track{grid-template-columns:1fr}
  .gh-process-track article{min-height:145px}.gh-process-track article+article::before{left:28px;right:28px;top:0;bottom:auto;border-left:0;border-top:1px dotted var(--gh-line)}
  .gh-products-inner{padding:24px 0;align-items:flex-start}.gh-products nav{flex:0 0 auto;display:grid;gap:14px}
}

@media (max-width:560px){
  body.home-page.gh-option-one{background-size:420px 420px}
  .gh-wordmark{font-size:.96rem}
  .gh-primary-nav{grid-template-columns:1fr}
  .gh-primary-nav>a:not(.gh-nav-project){min-height:44px}.gh-theme-toggle{position:absolute;right:66px;top:9px;margin:0}
  .gh-nav-project{margin-top:14px}
  .gh-hero{padding-top:110px}
  .gh-kicker{margin-bottom:19px}
  .gh-hero h1{font-size:clamp(3.15rem,15.7vw,4.6rem);line-height:.94}
  .gh-hero-lede{margin-top:24px;font-size:1rem}
  .gh-actions{align-items:flex-start;display:grid;gap:18px;margin-top:28px}.gh-button{width:max-content;min-height:50px;gap:30px}.gh-text-link{width:max-content}
  .gh-hero-grid{gap:48px}
  .gh-hero-rail{padding-top:18px}.gh-hero-rail a{min-height:50px}
  .gh-hero-map{height:248px;margin-top:16px;background-size:auto 100%;background-position:center bottom}
  .gh-section{padding-top:34px}
  .gh-section-label{margin-bottom:10px}
  .gh-case{min-height:0}
  .gh-case-copy{min-height:310px;padding:36px 24px 30px}.gh-case-copy h2{font-size:2.35rem}.gh-case-copy>p:not(.gh-case-index){font-size:.95rem}
  .gh-case-visual{min-height:315px;padding:8px}.gh-case-visual img{max-height:300px}.gh-expand{right:16px;bottom:14px}.gh-expand span{display:none}
  .gh-services{padding-top:42px}
  .gh-service-row{min-height:0;padding:25px 18px;grid-template-columns:34px 1fr 24px;gap:12px 10px}
  .gh-service-row:hover,.gh-service-row:focus-visible{padding-left:22px}
  .gh-service-row h2{font-size:1.62rem}.gh-service-row p{grid-column:2/4;font-size:.76rem}.gh-service-action{font-size:0;gap:0}.gh-service-action i{font-size:.9rem}
  .gh-process-track article{padding:24px 20px;grid-template-columns:58px 1fr;gap:18px}.gh-process-icon{width:54px;height:54px;font-size:1.55rem}
  .gh-products{padding-top:32px}.gh-products-inner{display:grid;gap:20px}.gh-products p{align-items:flex-start;line-height:1.4}.gh-products nav{display:flex;gap:26px;margin-left:44px}
  .gh-footer{padding:26px 0 30px}.gh-footer-grid{grid-template-columns:1fr 1fr;gap:24px}.gh-footer-grid p:nth-child(2){display:none}.gh-footer-grid p:last-child{justify-self:end}
  .gh-work-dialog{width:calc(100% - 18px)}.gh-work-dialog-bar h2{font-size:1rem}
}

@media (prefers-reduced-motion:reduce){
  .gh-js .gh-option-one [data-reveal]{opacity:1;transform:none;transition:none}
  .gh-hero-map,.gh-case-visual img,.gh-site-header *{transition:none!important;transform:none!important}
}

/* ============================================================
   TOOLS PLATFORM
   Built from the same tokens as the rest of the site: 1px ink
   borders, square corners, accent used for state rather than
   decoration. Severity colours are held separately from
   --accent so a brand change cannot make a failure look like a
   pass.
   ============================================================ */
:root{--sev-critical:#9f3527;--sev-critical-bg:#fdf0ee;--sev-warning:#8a5a07;--sev-warning-bg:#fdf5e3;--sev-notice:#4a5560;--sev-notice-bg:#eff2f4;--sev-pass:#2f6b3d;--sev-pass-bg:#edf7ee}
html[data-theme="dark"]{--sev-critical:#f0907e;--sev-critical-bg:#3a201c;--sev-warning:#e8bb63;--sev-warning-bg:#332a17;--sev-notice:#a9b4bd;--sev-notice-bg:#232a2e;--sev-pass:#7fce93;--sev-pass-bg:#1c2f22}

/* --- directory search --- */
.tool-search{border:1px solid var(--ink);background:var(--surface);padding:26px 28px;margin-bottom:52px}
.tool-search>label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin-bottom:12px}
.tool-search-row{display:flex;gap:12px;flex-wrap:wrap}
.tool-search-row input{flex:1 1 260px;min-height:48px;border:1px solid var(--border);background:var(--paper);padding:12px 14px;font:inherit;color:inherit}
.tool-search-row input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.tool-search-clear{align-self:center;color:var(--muted);font-size:.85rem}
.tool-search-count{margin:14px 0 0;color:var(--muted);font-size:.85rem}

/* --- directory grid --- */
.tool-category{margin-bottom:58px}
.tool-category-title{font-family:var(--font-display);font-weight:500;font-size:2rem;letter-spacing:-.03em;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--ink)}
/* Each card carries its own border rather than collapsing against the
   container: a category with one tool would otherwise leave an empty
   bordered cell that reads as a broken card. */
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tool-card{display:flex;flex-direction:column;gap:9px;padding:26px 24px;border:1px solid var(--ink);text-decoration:none;background:var(--surface);min-height:196px}
.tool-card:hover{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.tool-card:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.tool-card-cat{font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted)}
.tool-card h3{font-family:var(--font-display);font-weight:500;font-size:1.4rem;line-height:1.15;letter-spacing:-.02em;margin:0}
.tool-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
.tool-card-foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;gap:8px}
.tool-card-go{margin-left:auto;font-size:.78rem;font-weight:800;display:inline-flex;align-items:center;gap:6px}
.tool-badge{display:inline-flex;padding:4px 8px;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;border:1px solid transparent}
.tool-badge-free{background:var(--sev-pass-bg);color:var(--sev-pass);border-color:currentColor}
.tool-badge-auth{background:transparent;color:var(--muted);border-color:var(--border)}
.tool-badge-beta{background:var(--sev-warning-bg);color:var(--sev-warning);border-color:currentColor}
.tool-directory-note{border-top:1px solid var(--border);padding-top:24px;color:var(--muted);max-width:640px}

/* --- tool page --- */
.tool-hero h1{font-size:clamp(2.6rem,6vw,4.8rem)}
.tool-crumbs{display:flex;gap:10px;align-items:center;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted);margin-bottom:22px}
.tool-crumbs a{color:var(--primary)}
/* The inner-page hero is a solid dark panel, where --muted and --primary
   both fall below a readable contrast ratio. */
.tool-hero .tool-crumbs{color:#ffffffb8}
.tool-hero .tool-crumbs a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.tool-alert{border:1px solid var(--sev-warning);background:var(--sev-warning-bg);color:var(--sev-warning);padding:18px 20px;margin-bottom:32px}
.tool-alert p{margin:0 0 8px}
.tool-alert p:last-child{margin:0}
.tool-alert.is-limit{border-color:var(--sev-critical);background:var(--sev-critical-bg);color:var(--sev-critical)}

.tool-form{border:1px solid var(--ink);background:var(--surface);padding:32px;display:grid;gap:24px}
.tool-field{display:grid;gap:8px}
.tool-field>label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.tool-field-help{margin:0;color:var(--muted);font-size:.84rem}
.tool-field input,.tool-field textarea,.tool-field select{width:100%;border:1px solid var(--border);background:var(--paper);padding:13px 14px;font:inherit;color:inherit}
.tool-field textarea{min-height:120px;font:14px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.tool-field input:focus-visible,.tool-field textarea:focus-visible,.tool-field select:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.tool-field.has-error input,.tool-field.has-error textarea{border-color:var(--sev-critical);border-width:2px}
.tool-field-error{margin:0;color:var(--sev-critical);font-size:.85rem;font-weight:700}
.tool-check{display:flex!important;align-items:center;gap:10px;text-transform:none!important;letter-spacing:0!important;font-weight:600!important}
.tool-check input{width:auto!important}
.tool-form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.tool-remaining{margin:0;color:var(--muted);font-size:.82rem}

/* --- result --- */
.tool-result{margin-top:48px;border:1px solid var(--ink);background:var(--surface)}
.tool-result:focus{outline:none}
.tool-result-title{font-family:var(--font-display);font-weight:500;font-size:1.7rem;margin:0;padding:20px 28px;border-bottom:1px solid var(--ink);background:var(--ink);color:#fff}
.tool-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-bottom:1px solid var(--border)}
.tool-summary-card{padding:22px 24px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px}
.tool-summary-card:last-child{border-right:0}
.tool-summary-value{font-family:var(--font-display);font-size:2.4rem;line-height:1;font-weight:500;font-variant-numeric:tabular-nums}
.tool-summary-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.tool-summary-card.is-pass .tool-summary-value{color:var(--sev-pass)}
.tool-summary-card.is-warning .tool-summary-value{color:var(--sev-warning)}
.tool-summary-card.is-critical .tool-summary-value{color:var(--sev-critical)}
.tool-summary-card.is-notice .tool-summary-value{color:var(--sev-notice)}

.tool-issues{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--border)}
.tool-issue{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:18px 28px;border-bottom:1px solid var(--border)}
.tool-issue:last-child{border-bottom:0}
.tool-issue-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;padding:5px 8px;height:fit-content;text-align:center;border:1px solid currentColor}
.tool-issue.is-critical .tool-issue-tag{color:var(--sev-critical);background:var(--sev-critical-bg)}
.tool-issue.is-warning .tool-issue-tag{color:var(--sev-warning);background:var(--sev-warning-bg)}
.tool-issue.is-notice .tool-issue-tag{color:var(--sev-notice);background:var(--sev-notice-bg)}
.tool-issue.is-pass .tool-issue-tag{color:var(--sev-pass);background:var(--sev-pass-bg)}
.tool-issue-message{margin:0;font-weight:700}
.tool-issue-fix{margin:6px 0 0;color:var(--muted);font-size:.9rem}
.tool-issue-subject{margin:6px 0 0;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);word-break:break-all}

.tool-table-scroll{overflow-x:auto}
.tool-table{width:100%;border-collapse:collapse;font-size:.85rem}
.tool-table th{white-space:nowrap;background:var(--paper)}
.tool-table td{vertical-align:top;word-break:break-word}
.tool-table td.is-number,.tool-table td.is-status{font-variant-numeric:tabular-nums;white-space:nowrap}
.tool-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.tool-empty{color:var(--muted)}
.tool-notes{padding:20px 28px;border-top:1px solid var(--border);color:var(--muted);font-size:.86rem}
.tool-notes p{margin:0 0 8px}
.tool-notes p:last-child{margin:0}
.tool-cta{padding:28px;border-top:1px solid var(--ink);background:var(--paper)}
.tool-cta h3{font-family:var(--font-display);font-weight:500;font-size:1.5rem;margin:0 0 8px}
.tool-cta p{margin:0 0 18px;color:var(--muted);max-width:520px}

/* --- supporting content --- */
.tool-docs{display:grid;grid-template-columns:1.5fr .8fr;gap:64px;margin-top:72px;padding-top:52px;border-top:1px solid var(--ink)}
.tool-docs-main h2{font-family:var(--font-display);font-weight:500;font-size:2.1rem;letter-spacing:-.03em;margin:0 0 18px}
.tool-docs-main h2+h2,.tool-faq+h2{margin-top:44px}
.tool-docs-main p{color:var(--muted);max-width:64ch;margin:0 0 16px}
.tool-faq details{border-top:1px solid var(--border)}
.tool-faq details:last-child{border-bottom:1px solid var(--border)}
.tool-faq summary{cursor:pointer;padding:18px 0;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:16px}
.tool-faq summary::-webkit-details-marker{display:none}
.tool-faq summary::after{content:"+";font-size:1.3rem;line-height:1}
.tool-faq details[open] summary::after{content:"\2212"}
.tool-faq details p{margin:0 0 20px;color:var(--muted);max-width:62ch}
.tool-side-block{border-top:1px solid var(--ink);padding:22px 0 26px}
.tool-side-block h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin:0 0 12px}
.tool-side-block p{margin:0 0 12px;color:var(--muted);font-size:.9rem}
.tool-related{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.tool-related a{font-weight:800;display:block}
.tool-related span{display:block;color:var(--muted);font-size:.84rem;margin-top:3px}

@media (max-width:1080px){
.tool-grid{grid-template-columns:repeat(2,1fr)}
.tool-docs{grid-template-columns:1fr;gap:44px}
}
@media (max-width:820px){
.tool-grid{grid-template-columns:1fr}
.tool-form{padding:24px 18px}
.tool-issue{grid-template-columns:1fr;gap:10px}
.tool-issue-tag{justify-self:start}
.tool-summary-card{border-right:0;border-bottom:1px solid var(--border)}
}
@media (max-width:560px){
.tool-search{padding:20px 16px}
.tool-search-row{display:grid}
.tool-search-row .button{width:100%}
.tool-form-actions{display:grid}
.tool-form-actions .button{width:100%}
.tool-summary-value{font-size:2rem}
.tool-result-title{padding:16px 18px}
.tool-issue,.tool-notes,.tool-cta{padding-left:18px;padding-right:18px}
}

.auth-error{display:block;color:#f0907e;font-size:.8rem;font-weight:700;text-transform:none;letter-spacing:0;margin-top:6px}
.auth-hint{display:block;color:#aab2ac;font-size:.78rem;font-weight:400;text-transform:none;letter-spacing:0;margin-top:6px}
.auth-panel select{width:100%;border:1px solid #424a44;background:#202621;color:#fff;padding:13px 14px}

/* Pricing.
   Built on .tool-grid and .tool-card rather than a parallel set of card
   styles, so the pricing page inherits the same borders, hover and focus
   treatment as the tools directory and cannot drift from it. Only what is
   genuinely specific to a plan is defined here. */
.alert-notice{background:var(--gh-surface);border-color:var(--ink);color:var(--ink)}
.plan-grid{margin-block:32px}
.plan-card{gap:14px;min-height:0}
.plan-name{font-family:var(--font-display);font-size:1.35rem;margin:0}
.plan-price{font-size:2rem;font-weight:800;line-height:1.1;margin:0}
.plan-price span{font-size:.9rem;font-weight:500;color:var(--muted)}
.plan-summary{margin:0;color:var(--muted)}
.plan-limits{display:grid;gap:8px;margin:0;padding-top:14px;border-top:1px solid var(--border)}
.plan-limits div{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.plan-limits dt{color:var(--muted);font-size:.9rem}
.plan-limits dd{margin:0;font-weight:700;text-align:right}
.plan-features{margin:0;padding-left:18px;display:grid;gap:6px;font-size:.92rem}
/* Pushed to the bottom so the buttons line up across cards of unequal
   height, which is what makes a set of plans readable at a glance. */
.plan-action{margin-top:auto;padding-top:16px;display:grid;gap:8px;justify-items:start}
.plan-cta-note{color:var(--muted);font-size:.82rem}
.plan-card-current{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}
.plan-current-note{margin:0;font-weight:800}
.pricing-notes{margin-top:56px;padding-top:32px;border-top:1px solid var(--ink);display:grid;gap:14px;max-width:70ch}
.pricing-notes h2{font-family:var(--font-display);margin:0}
.pricing-notes p{margin:0;color:var(--muted)}

@media (max-width:820px){
    .plan-price{font-size:1.7rem}
}

/* Admin form furniture.
   These class names were already in the markup — .btn across ten admin views,
   .form-note across thirteen — with no rules behind them, so every one of
   those buttons rendered as a browser default next to the site's own. Nothing
   new is designed here: .btn is an alias of .button so the two cannot drift,
   and the variants map onto the existing .button-dark and .button-quiet. */
.btn{min-height:48px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid currentColor;text-decoration:none;font-weight:800;cursor:pointer;background:transparent;font-size:.85rem}
.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--border)}
.btn-secondary:hover{border-color:var(--ink)}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* A warning is not an error: it reports something worth knowing about an
   arrangement that still works, which is exactly what the routing screen has
   to say. Without its own rule it inherited the bare .alert border and read
   as a neutral notice. */
.alert-warning{background:#fff8e6;border-color:#8a6d1f;color:#5d4a14}
.alert-warning p{margin:0 0 8px}
.alert-warning p:last-child{margin-bottom:0}

.form-note{color:var(--muted);font-size:.82rem;margin:0;padding:0 28px 20px}
.form-actions{display:flex;flex-wrap:wrap;gap:12px;padding:0 28px 28px}
.inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:0}
.inline-form label{display:grid;gap:8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.inline-form input,.inline-form select{border:1px solid var(--border);background:#f7f8f4;padding:13px 14px;text-transform:none;letter-spacing:0}
/* Sits below a panel's own padded sections, so it carries the padding itself
   rather than relying on a wrapper that some of these screens do not have. */
.inline-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:0 28px 28px}
.inline-actions .form-note{padding:0}

/* Key/value pairs shown as a row of facts rather than a table, for the four
   or five numbers that describe one record. */
.stat-row{display:flex;flex-wrap:wrap;gap:34px;margin:0;padding:24px 28px;border-bottom:1px solid var(--border)}
.stat-row dt{color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.stat-row dd{margin:6px 0 0;font-weight:700}

@media (max-width:560px){
    .stat-row{gap:20px}
    .form-actions .btn,.inline-actions .btn{width:100%}
    .inline-form{align-items:stretch;flex-direction:column}
}

/* A field-grid cell that shows a value rather than collecting one. Matches the
   label treatment of the inputs beside it so the row reads as one grid. */
.stat-label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:8px}
.stat-label+.code-block{margin:0}

/* A code block holds things that cannot be wrapped without changing them —
   a cron line, an SMTP transcript, a command to paste. Given no width rule it
   pushes the whole page sideways on a phone, so it scrolls inside itself
   instead. `min-width:0` is the part that is easy to miss: without it a grid
   or flex child refuses to shrink below its content and the overflow moves
   out to the page anyway. */
.code-block{margin:0;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.field-grid>label,.field-grid>div{min-width:0}

/* Two names for the scroll wrapper, and only one of them existed.
   Twelve tables across eight views wrap themselves in `.table-scroll`, which
   had no rule behind it — so those tables pushed the whole page sideways on a
   phone while the ones using `.table-wrap` behaved. The symptom is invisible
   in a screenshot, because the capture is as wide as the page.
   Aliased rather than renamed: twelve edits to make the markup agree would be
   churn, and either name reads correctly at the call site. */
.table-scroll{overflow:auto;max-width:100%}
