/* contact page + confidential sign-in */
.inner main{ padding-block-start:0; }
.ct-hero,.pv{ padding-block-start:clamp(24px,4vw,56px); }
.pill--static{ display:inline-flex; margin-block-end:22px; padding:8px 16px 8px 8px; padding-inline:8px 16px; gap:0; overflow:visible; }
.pill--static i{ margin:6px 10px; animation:blink 1.6s ease-in-out infinite; }
.pill__t--on{ max-inline-size:none; opacity:1; }
.ct-title{ font-size:clamp(2.5rem,6.5vw,6rem); line-height:1.02; max-inline-size:16ch; }
:root[dir=rtl] .ct-title{ font-size:clamp(2.25rem,5.4vw,5rem); line-height:1.25; }
.ct-lead{ margin-block-start:22px; max-inline-size:52ch; font-size:clamp(1.0625rem,1.6vw,1.3125rem); color:var(--muted); }
.ct-main{ display:grid; gap:32px; padding-block:clamp(36px,5vw,64px) clamp(56px,8vw,112px); align-items:start; }
@media (min-width:1000px){ .ct-main{ grid-template-columns:1.25fr .75fr; gap:40px; } .ct-side{ position:sticky; inset-block-start:calc(var(--header-h) + 16px); } }

.ct-form,.pv-form{ display:grid; gap:20px; }
.ct-form{ padding:clamp(24px,3vw,40px); border-radius:var(--r-card); background:var(--card); border:1px solid var(--rule); }
.fld{ display:grid; gap:8px; border:0; }
.fld label,.fld legend{ font-weight:600; font-size:.9375rem; padding:0; }
.fld small{ font-weight:400; color:var(--muted); margin-inline-start:6px; }
.fld input,.fld textarea{ inline-size:100%; min-block-size:54px; padding:14px 16px; border-radius:var(--r-btn); border:1.5px solid var(--rule); background:var(--bg); color:inherit; font:inherit; transition:border-color .2s, box-shadow .2s; }
.fld textarea{ min-block-size:150px; resize:vertical; }
.fld input:focus,.fld textarea:focus{ outline:0; border-color:var(--blue); box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 18%, transparent); }
.fld__err{ display:none; color:#D92D20; font-size:.875rem; font-weight:500; }
.fld.is-bad input,.fld.is-bad textarea{ border-color:#D92D20; }
.fld.is-bad .fld__err{ display:block; }
.pchips{ display:flex; flex-wrap:wrap; gap:8px; margin-block-start:6px; }
.pchip{ position:relative; }
.pchip input{ position:absolute; opacity:0; inset:0; inline-size:100%; min-block-size:0; cursor:pointer; }
.pchip > span{ display:inline-flex; align-items:center; min-block-size:44px; padding-inline:18px; border-radius:999px; border:1.5px solid var(--rule); background:var(--bg); font-weight:500; transition:background-color .2s, color .2s, border-color .2s; }
.pchip:hover > span{ border-color:var(--fg); }
.pchip input:checked + span{ background:var(--blue); border-color:var(--blue); color:#fff; }
.pchip input:focus-visible + span{ outline:2px solid var(--blue); outline-offset:3px; }
.btn--xl{ min-block-size:58px; padding-inline:36px; font-size:1.0625rem; justify-self:start; }
.ct-note{ color:var(--muted); font-size:.875rem; }
.ct-ok{ padding:14px 16px; border-radius:var(--r-btn); background:color-mix(in srgb, #16A34A 14%, transparent); color:#14803C; font-weight:500; }
:root[data-theme=dark] .ct-ok{ color:#4ADE80; }

.ct-chans{ display:grid; gap:12px; }
.ct-chans a{ display:flex; align-items:center; gap:16px; padding:18px 20px; border-radius:var(--r-card); border:1px solid var(--rule); background:var(--card); transition:background-color .25s, color .25s, border-color .25s, transform .3s cubic-bezier(.2,.7,.2,1); }
.ct-chans a > span{ display:grid; line-height:1.3; }
.ct-chans small{ color:var(--muted); transition:color .25s; }
.ct-chans .ico--go{ margin-inline-start:auto; transform:scaleX(var(--dir)); }
.ct-chans a:hover{ background:var(--blue); border-color:var(--blue); color:#fff; transform:translateY(-3px); }
.ct-chans a:hover small{ color:rgba(255,255,255,.82); }
.ct-card{ margin-block-start:16px; padding:22px 24px; border-radius:var(--r-card); background:var(--brand-soft, #E8EFFF); color:#181A1C; }
.ct-card .label{ color:#5F6368; margin-block-end:6px; }

.ct-faq{ padding-block-end:clamp(64px,9vw,128px); }
.faqs{ max-inline-size:900px; border-block-start:1px solid var(--rule); }
.faq{ border-block-end:1px solid var(--rule); }
.faq summary{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:22px; cursor:pointer; list-style:none; font-family:var(--f-display); font-weight:var(--w-d); font-size:clamp(1.0625rem,1.6vw,1.375rem); letter-spacing:var(--track); }
.faq summary::-webkit-details-marker{ display:none; }
.faq__ico{ flex:none; transition:transform .3s cubic-bezier(.2,.7,.2,1); color:var(--accent); }
.faq[open] .faq__ico{ transform:rotate(45deg); }
.faq p{ padding-block-end:22px; max-inline-size:62ch; color:var(--muted); }

/* confidential */
.pv{ min-block-size:calc(100svh - var(--header-h)); display:grid; place-items:center; padding-block-end:clamp(56px,8vw,112px); }
.pv-gate{ inline-size:min(100%,520px); display:grid; gap:16px; justify-items:center; text-align:center; }
.pv-gate h1{ font-size:clamp(2rem,4.6vw,3.5rem); }
.pv-lock{ display:grid; place-items:center; inline-size:76px; block-size:76px; border-radius:50%; background:var(--blue); color:#fff; box-shadow:0 18px 36px -16px rgba(37,71,216,.8); }
.pv-lead{ color:var(--muted); max-inline-size:44ch; }
.pv-form{ inline-size:100%; text-align:start; margin-block-start:10px; padding:clamp(22px,3vw,32px); border-radius:var(--r-card); background:var(--card); border:1px solid var(--rule); }
.pw{ position:relative; }
.pw input{ padding-inline-end:56px; }
.pw__t{ position:absolute; inset-block:0; inset-inline-end:6px; inline-size:46px; display:grid; place-items:center; color:var(--muted); border-radius:10px; } .pw__t:hover{ color:var(--fg); }
.pv-err{ color:#D92D20; font-weight:600; font-size:.9375rem; }
.pv-help{ color:var(--muted); font-size:.9375rem; } .pv-help a{ color:var(--accent); font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.pv-gate.is-shake{ animation:shake .45s; }
@keyframes shake{ 20%,60%{ transform:translateX(-8px); } 40%,80%{ transform:translateX(8px); } }
.pv-area{ inline-size:100%; align-self:start; }
.pv-bar{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-block-end:clamp(28px,4vw,48px); }
.pv-bar h1{ font-size:clamp(2rem,4.6vw,3.75rem); margin-block:8px; }
.pv-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.pv-card{ overflow:hidden; border-radius:var(--r-card); border:1px solid var(--rule); background:var(--card); transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .2s; }
@media (hover:hover) and (pointer:fine){ .pv-card:hover{ transform:translateY(-5px); border-color:var(--fg); } }
.pv-card__tile{ position:relative; aspect-ratio:16/10; display:grid; place-items:center; background:var(--c); color:rgba(255,255,255,.92); }
.pv-badge{ position:absolute; inset-block-start:14px; inset-inline-start:14px; padding:4px 12px; border-radius:999px; background:rgba(255,255,255,.2); font-size:.8125rem; font-weight:700; }
.pv-card__body{ display:grid; gap:10px; padding:22px 24px 26px; justify-items:start; }
.pv-card__body h2{ font-size:1.5rem; line-height:1.2; }
.pv-card__body p:not(.label){ color:var(--muted); }
.pv-card__body .btn{ margin-block-start:8px; }
[hidden]{ display:none !important; }
@media (prefers-reduced-motion:reduce){ .pv-gate.is-shake{ animation:none; } .pv-card,.ct-chans a,.pchip span{ transition:none; } }
/* the projects list is its own page: start at the top, not centred like the sign-in card */
.pv--list{ place-items:start; min-block-size:0; padding-block-end:clamp(56px,8vw,112px); }
.pv-foot{ margin-block-start:40px; color:var(--muted); font-size:.9375rem; }
.ct-faq .cs-sec__head{ margin-block-end:clamp(32px,5vw,56px); }
