/* Island Glass theme tokens: every color, radius, spacing and focus-ring value used by dist/.
   Load before the page stylesheet. No other stylesheet declares custom properties or raw hex.

   Sections
     1. Site tokens (index, upload, bid-desk, settings via style.css)
     2. Studio tokens (studio.css, --studio-*)
     3. PM Assistance tokens (pm-assistance.css, --pm-*)
     4. Focus rings, targets, spacing and radii (all pages)
     5. Palette: one token per color the stylesheets used before tokens (--c-<hex>),
        named by value so the swap from raw hex is mechanical and visually identical.
        Consolidating near-duplicate shades is a later, reviewed step.
     6. Dark-section focus scopes, reduced motion and print rules shared by every page */

:root{
  /* 1. Site */
  --navy:#092f4c;--deep:#061b2d;--blue:#17658a;--sky:#a9d1e3;
  --silver:#d8e3eb;--ink:#173449;--muted:#526c7d;--paper:#f1f5f7;
  --line:#cbd9e2;--white:#fff;--radius:12px;--max:1320px;
  --gutter:clamp(24px,5.5vw,84px);--shadow:0 22px 65px #082e4814;
  --hero-scrim:#062036d9;          /* field photo caption scrim (was the gradient end color) */
  --hero-proof-label:#4a6d84;      /* 4.7:1 on #e5eef4; was #5c8098 at 3.6:1 */
  --error-text:#a3382f;--error-bg:#fbefed;--error-line:#edcdc8;
  --notice-bg:#e9f0f4;--notice-text:#435f72;--success-text:#225a42;--success-bg:#eff7f2;
  --input-border:#6b8395;          /* 4:1 on white for form-control boundaries (Settings screen) */

  /* 2. Studio */
  --studio-navy:#092d48;--studio-navy-deep:#071d2f;--studio-blue:#17678c;--studio-blue-light:#b7d7e6;
  --studio-silver:#d9e1e7;--studio-ink:#17364a;--studio-muted:#536b79;--studio-paper:#f0f4f7;
  --studio-line:#cbd7df;--studio-white:#fff;--studio-amber:#805619;--studio-green:#216747;
  --studio-radius:15px;--studio-shadow:0 18px 50px #16364a12;

  /* 3. PM Assistance */
  --pm-navy:#0a2d49;--pm-blue:#145f91;--pm-sky:#2b86b7;--pm-ice:#eaf3f8;--pm-silver:#b8c8d4;
  --pm-ink:#172f43;--pm-muted:#597184;--pm-line:#d5e1e9;--pm-paper:#fff;--pm-wash:#f2f6f8;
  --pm-danger:#a3382f;--pm-radius:14px;--pm-shadow:0 12px 35px #082d4810;

  /* 4. Focus, targets, spacing, radii */
  --focus-ring-width:3px;
  --focus-ring-on-light:#12709b;   /* 5.5:1 on white, >=4.4:1 on the lightest page washes */
  --focus-ring-on-dark:#cfe9f6;    /* >=7:1 on the navy hero, services, footer and dialog */
  --focus-ring:var(--focus-ring-on-light);
  --focus-scroll-margin:120px;     /* keeps focused controls clear of the sticky header */
  --target-min:24px;--target-comfort:44px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;
  --radius-sm:4px;--radius-md:8px;

  /* 5. Palette */
  --c-000:#000;--c-fff:#fff;
  --c-edf4f7:#edf4f7;--c-b4cedb:#b4cedb;--c-99bdcd:#99bdcd;--c-ccdce3:#ccdce3;--c-e4f0f6:#e4f0f6;
  --c-236888:#236888;--c-b9d5e2:#b9d5e2;--c-9db6c4:#9db6c4;--c-f4f8fa:#f4f8fa;--c-526978:#526978;
  --c-a2c4d5:#a2c4d5;--c-f4fafd:#f4fafd;--c-deeff7:#deeff7;--c-1377a0:#1377a0;--c-297494:#297494;
  --c-556d7a:#556d7a;--c-9b3434:#9b3434;--c-227a9e:#227a9e;--c-dce8ee:#dce8ee;--c-af4545:#af4545;
  --c-fff0f0:#fff0f0;--c-893232:#893232;--c-f7fbfd:#f7fbfd;
  --c-edf3f6:#edf3f6;--c-307b9c:#307b9c;--c-a5bdca:#a5bdca;--c-a77a32:#a77a32;--c-fff8e9:#fff8e9;
  --c-f6fbfe:#f6fbfe;--c-b8d4e1:#b8d4e1;--c-e9f4fa:#e9f4fa;--c-7d4d09:#7d4d09;--c-fff4df:#fff4df;
  --c-e4c58e:#e4c58e;--c-58656d:#58656d;--c-eef1f3:#eef1f3;--c-d2dce1:#d2dce1;--c-fff7e8:#fff7e8;
  --c-b7893e:#b7893e;--c-8a3434:#8a3434;--c-9ec4d7:#9ec4d7;--c-b6cbd6:#b6cbd6;
  --c-e9f0f4:#e9f0f4;--c-435f72:#435f72;--c-b8cbd7:#b8cbd7;--c-ffffffed:#ffffffed;--c-155578:#155578;
  --c-cbd9e2:#cbd9e2;--c-bad8e7:#bad8e7;--c-061b2d:#061b2d;--c-0b3656:#0b3656;--c-11496b:#11496b;
  --c-a9cee812:#a9cee812;--c-bfdcea04:#bfdcea04;--c-b5d6e406:#b5d6e406;--c-b9d9e8:#b9d9e8;--c-ccdde7:#ccdde7;
  --c-aabfcc:#aabfcc;--c-eaf2f6:#eaf2f6;--c-143c55:#143c55;--c-e4eff5:#e4eff5;--c-e4edf3:#e4edf3;
  --c-83a8bd:#83a8bd;--c-0b2b4440:#0b2b4440;--c-254d69:#254d69;--c-aec8d7:#aec8d7;--c-133953:#133953;
  --c-bfd9e960:#bfd9e960;--c-02162477:#02162477;--c-143953:#143953;--c-bdd7e7:#bdd7e7;--c-d8e4eca8:#d8e4eca8;
  --c-14354e:#14354e;--c-03172499:#03172499;--c-e5eef4:#e5eef4;--c-214d68:#214d68;--c-a9c4d8:#a9c4d8;
  --c-051a2b40:#051a2b40;--c-aac3d4:#aac3d4;--c-2b6889:#2b6889;--c-092f4c:#092f4c;--c-b7d8e526:#b7d8e526;
  --c-aec6d7:#aec6d7;--c-dce7ef:#dce7ef;--c-244c64:#244c64;--c-7c9bae:#7c9bae;--c-f1f5f7:#f1f5f7;
  --c-e1eaf0:#e1eaf0;--c-bbcfdd:#bbcfdd;--c-06223829:#06223829;--c-acc2d1:#acc2d1;--c-ccd9e2:#ccd9e2;
  --c-607988:#607988;--c-061b2df2:#061b2df2;--c-bad8e6:#bad8e6;--c-d9e5ec:#d9e5ec;--c-b5c9d5:#b5c9d5;
  --c-eff5f8:#eff5f8;--c-e7eff4:#e7eff4;--c-e3ecf2:#e3ecf2;--c-082e4830:#082e4830;--c-376b89:#376b89;
  --c-507c95:#507c95;--c-061c2e:#061c2e;--c-123f5b:#123f5b;--c-b5ccda:#b5ccda;--c-9fc8dd:#9fc8dd;
  --c-a9cbde36:#a9cbde36;--c-e3f1fa08:#e3f1fa08;--c-b5cfe702:#b5cfe702;--c-b5d5e675:#b5d5e675;--c-aac9e00b:#aac9e00b;
  --c-8ebbd3:#8ebbd3;--c-c4d6e2:#c4d6e2;--c-d8e5ed:#d8e5ed;--c-acccdd20:#acccdd20;--c-86b5cc:#86b5cc;
  --c-e4edf4:#e4edf4;--c-98b9cc:#98b9cc;--c-b4d1e032:#b4d1e032;--c-adcadb:#adcadb;--c-d8e6ef:#d8e6ef;
  --c-224e68:#224e68;--c-6a8293:#6a8293;--c-acc4d3:#acc4d3;--c-f2f6f9:#f2f6f9;--c-173d5520:#173d5520;
  --c-e7eff5:#e7eff5;--c-bfd1df:#bfd1df;--c-27516b:#27516b;--c-526e82:#526e82;--c-b4c9d8:#b4c9d8;
  --c-f1f5f8:#f1f5f8;--c-d0dee7:#d0dee7;--c-718d9e:#718d9e;--c-d9e8f2:#d9e8f2;--c-245a79:#245a79;
  --c-5e849b:#5e849b;--c-6a8291:#6a8291;--c-d4e7f1:#d4e7f1;--c-eff6fa:#eff6fa;--c-6b879c:#6b879c;
  --c-2155710c:#2155710c;--c-738ca1:#738ca1;--c-ffffff90:#ffffff90;--c-ffffff75:#ffffff75;--c-658297:#658297;
  --c-cadce8:#cadce8;--c-e9f1f6:#e9f1f6;--c-617f93:#617f93;--c-2b6a87:#2b6a87;--c-b2cbdc:#b2cbdc;
  --c-306b8c:#306b8c;--c-0e3d58:#0e3d58;--c-a8c0cf:#a8c0cf;--c-5e88a0:#5e88a0;--c-f0f5f8:#f0f5f8;
  --c-c9dbe6:#c9dbe6;--c-4d809e:#4d809e;--c-667e8f:#667e8f;--c-d7e3eb:#d7e3eb;--c-6b8395:#6b8395;
  --c-6e8393:#6e8393;--c-c5d7e4:#c5d7e4;--c-b5cad8:#b5cad8;--c-fbfdfe:#fbfdfe;--c-708697:#708697;
  --c-6a8292:#6a8292;--c-aecbdd:#aecbdd;--c-f0f7fb:#f0f7fb;--c-b7cede:#b7cede;--c-5f7d91:#5f7d91;
  --c-f6fafc:#f6fafc;--c-7c9cae:#7c9cae;--c-315f79:#315f79;--c-5c839b:#5c839b;--c-061d30:#061d30;
  --c-b7cddb:#b7cddb;--c-e0ebf3:#e0ebf3;--c-0a2a42:#0a2a42;--c-648296:#648296;--c-02111eea:#02111eea;
  --c-83a5ba:#83a5ba;--c-2b506b:#2b506b;--c-c8deeb:#c8deeb;--c-061c2d:#061c2d;--c-b8d1e2:#b8d1e2;
  --c-d8e3eb:#d8e3eb;--c-173449:#173449;
  --c-bdcbd5:#bdcbd5;--c-526878:#526878;--c-608698:#608698;--c-123f5900:#123f5900;--c-6ca2bd16:#6ca2bd16;
  --c-081e3000:#081e3000;--c-a9cddf:#a9cddf;--c-b8d4e3:#b8d4e3;--c-e4edf2:#e4edf2;--c-133a52:#133a52;
  --c-155575:#155575;--c-628098:#628098;--c-dae6ed:#dae6ed;--c-071d2f:#071d2f;--c-c2dce7:#c2dce7;
  --c-bdd0dd80:#bdd0dd80;--c-b8cbd322:#b8cbd322;--c-a9c1d0:#a9c1d0;--c-d5e1e9:#d5e1e9;--c-aac0cf:#aac0cf;
  --c-647f90:#647f90;--c-e5edf2:#e5edf2;--c-adbfc9:#adbfc9;--c-617e90:#617e90;--c-c2d0db:#c2d0db;
  --c-e7edf2:#e7edf2;--c-c4d0d9:#c4d0d9;--c-f9fbfc:#f9fbfc;--c-667d8c:#667d8c;--c-7991a0:#7991a0;
  --c-638096:#638096;--c-408cac:#408cac;--c-0e2e45:#0e2e45;--c-8babc0:#8babc0;--c-b2c5d180:#b2c5d180;
  --c-667d8b:#667d8b;--c-eef4f8:#eef4f8;--c-d9e5ed:#d9e5ed;--c-3c7d9b:#3c7d9b;--c-5c7381:#5c7381;
  --c-6d899a:#6d899a;--c-ccd7df:#ccd7df;--c-286a8d:#286a8d;--c-e9f2f7:#e9f2f7;--c-64839270:#64839270;
  --c-f4f7fa:#f4f7fa;--c-859daa:#859daa;--c-eaf0f4:#eaf0f4;--c-3e4852:#3e4852;--c-226383:#226383;
  --c-627987:#627987;--c-6b7c89:#6b7c89;--c-6a8596:#6a8596;--c-edf5f9:#edf5f9;--c-4282a2:#4282a2;
  --c-677d8a:#677d8a;--c-1d6887:#1d6887;--c-d9eaf2:#d9eaf2;--c-d7e2e9:#d7e2e9;--c-5d7583:#5d7583;
  --c-6c93aa:#6c93aa;--c-365267:#365267;--c-66808e:#66808e;--c-eef4f7:#eef4f7;--c-536f81:#536f81;
  --c-dee7ed:#dee7ed;--c-3c596b:#3c596b;--c-e4d5b5:#e4d5b5;--c-faf7ef:#faf7ef;--c-715321:#715321;
  --c-225a42:#225a42;--c-eff7f2:#eff7f2;--c-bfd7ca:#bfd7ca;--c-697f8d:#697f8d;--c-e1e8ed:#e1e8ed;
  --c-0f3952:#0f3952;--c-164d67:#164d67;--c-aacbde:#aacbde;--c-c9dce7:#c9dce7;--c-90bac75e:#90bac75e;
  --c-637c8c:#637c8c;--c-d0dce4:#d0dce4;--c-c0d0dc:#c0d0dc;--c-8499a7:#8499a7;--c-718694:#718694;
  --c-7d919e:#7d919e;--c-dcecf4:#dcecf4;--c-b9d5e5:#b9d5e5;--c-2d708e:#2d708e;--c-dceaf2:#dceaf2;
  --c-24485e:#24485e;--c-35566b:#35566b;--c-718493:#718493;--c-6d8797:#6d8797;--c-647e8d:#647e8d;
  --c-718594:#718594;--c-788c99:#788c99;--c-8c6429:#8c6429;--c-557184:#557184;--c-deebf3:#deebf3;
  --c-4680a0:#4680a0;--c-6b8798:#6b8798;--c-536e7f:#536e7f;--c-7b8f9e:#7b8f9e;--c-d3e0e8:#d3e0e8;
  --c-6e8594:#6e8594;--c-fafbfd:#fafbfd;--c-8ba5b5:#8ba5b5;--c-e6ecf1:#e6ecf1;--c-647d8d:#647d8d;
  --c-728793:#728793;--c-ecf0f3:#ecf0f3;--c-d8e1e7:#d8e1e7;--c-778e9d:#778e9d;--c-688799:#688799;
  --c-5591ac:#5591ac;--c-47809d:#47809d;--c-526e80:#526e80;--c-708591:#708591;--c-d6e1e8:#d6e1e8;
  --c-9babba:#9babba;--c-6c8393:#6c8393;--c-0b2d46:#0b2d46;--c-174c65:#174c65;--c-a4c5d7:#a4c5d7;
  --c-c4d8e4:#c4d8e4;--c-acccdf:#acccdf;--c-b4cdda40:#b4cdda40;--c-aac5d6:#aac5d6;--c-a9d4e7:#a9d4e7;
  --c-e5ecf1:#e5ecf1;--c-6a8190:#6a8190;--c-446377:#446377;--c-dbe4ea:#dbe4ea;--c-e8eef2:#e8eef2;
  --c-cfdae2:#cfdae2;--c-607b8e:#607b8e;
  --c-bccbd5:#bccbd5;--c-082c47:#082c47;--c-125d91:#125d91;--c-b9dcf1:#b9dcf1;--c-c4deeb:#c4deeb;
  --c-d5e5ef:#d5e5ef;--c-bbd9e24f:#bbd9e24f;--c-e1eff5:#e1eff5;--c-0a3a5c:#0a3a5c;--c-082d47c2:#082d47c2;
  --c-c8dbe970:#c8dbe970;--c-d1e0e9:#d1e0e9;--c-d7e7f1:#d7e7f1;--c-466377:#466377;--c-708799:#708799;
  --c-dfe9ef:#dfe9ef;--c-48697f:#48697f;--c-0a2d4910:#0a2d4910;--c-d7e1e8:#d7e1e8;--c-75a0b8:#75a0b8;
  --c-082d4804:#082d4804;--c-ccdde8:#ccdde8;--c-f4f7f9:#f4f7f9;--c-6c8597:#6c8597;--c-8395a3:#8395a3;
  --c-c9d9e3:#c9d9e3;--c-8193a1:#8193a1;--c-a8c2d3:#a8c2d3;--c-eef2f5:#eef2f5;--c-6c8090:#6c8090;
  --c-aec6d5:#aec6d5;--c-eff7fb:#eff7fb;--c-81b4d1:#81b4d1;--c-d2dfe8:#d2dfe8;--c-f7fafb:#f7fafb;
  --c-6c8191:#6c8191;--c-0d4f7a:#0d4f7a;--c-196b9d:#196b9d;--c-185f8d:#185f8d;--c-0e4f7914:#0e4f7914;
  --c-0a3e64:#0a3e64;--c-0e4f7930:#0e4f7930;--c-b7cbd8:#b7cbd8;--c-edf6fb:#edf6fb;--c-77a2bf:#77a2bf;
  --c-f8fbfd:#f8fbfd;--c-617d90:#617d90;--c-688297:#688297;--c-f1f6f9:#f1f6f9;--c-9cb8cc:#9cb8cc;
  --c-90b3cb:#90b3cb;--c-e9f3f9:#e9f3f9;--c-d9eefb:#d9eefb;--c-d0dee8:#d0dee8;--c-f2f7fa:#f2f7fa;
  --c-718696:#718696;--c-145d8b:#145d8b;--c-3e99c4:#3e99c4;--c-698092:#698092;--c-edf5fa:#edf5fa;
  --c-c5d9e6:#c5d9e6;--c-6a8294:#6a8294;--c-b9d2e3:#b9d2e3;--c-4c728c:#4c728c;--c-e7f0f6:#e7f0f6;
  --c-d2e2ec:#d2e2ec;--c-fbefed:#fbefed;--c-edcdc8:#edcdc8;--c-bbd3e2:#bbd3e2;--c-e8f4fb:#e8f4fb;
  --c-bcd4e4:#bcd4e4;--c-eaf3f9:#eaf3f9;--c-346982:#346982;--c-e8f0f5:#e8f0f5;--c-d4e1e9:#d4e1e9;
  --c-0a2d4903:#0a2d4903;--c-8fb7cf:#8fb7cf;--c-5998bf:#5998bf;--c-f8fcff:#f8fcff;--c-7892a5:#7892a5;
  --c-eff4f8:#eff4f8;--c-56768d:#56768d;--c-e0e9ef:#e0e9ef;--c-976626:#976626;--c-c9d9e4:#c9d9e4;
  --c-9cb9cc:#9cb9cc;--c-7290a4:#7290a4;--c-e2ebf1:#e2ebf1;--c-0b3452:#0b3452;--c-135d8a:#135d8a;
  --c-b6cddc:#b6cddc;--c-c5dbe9:#c5dbe9;--c-ffffff10:#ffffff10;--c-dbeef8:#dbeef8;--c-7ca3ba:#7ca3ba;
  --c-abc8da:#abc8da;--c-dde7ee:#dde7ee;--c-708999:#708999;--c-8b7b63:#8b7b63;--c-d0e2ed:#d0e2ed;
  --c-376f8d:#376f8d;--c-f3f7fa:#f3f7fa;--c-d1e1eb:#d1e1eb;--c-84aeca:#84aeca;--c-725d3b:#725d3b;
  --c-6f8b9e:#6f8b9e;--c-dbe6ed:#dbe6ed;--c-d6e3ec:#d6e3ec;--c-edf4f8:#edf4f8;--c-55798f:#55798f;
  --c-f7fafc:#f7fafc;--c-6c8190:#6c8190;--c-ccdae4:#ccdae4;--c-fbefec:#fbefec;--c-a36556:#a36556;
  --c-e7c8c0:#e7c8c0;--c-e9f3fa:#e9f3fa;--c-437895:#437895;--c-bdd6e5:#bdd6e5;--c-f0f3f5:#f0f3f5;
  --c-738896:#738896;--c-ccdce7:#ccdce7;--c-2e607e:#2e607e;--c-eff7fc:#eff7fc;--c-f9fcfe:#f9fcfe;
  --c-c8e0ef:#c8e0ef;--c-d5e5f0:#d5e5f0;--c-e5edf3:#e5edf3;--c-d1dde6:#d1dde6;--c-82a1b7:#82a1b7;
  --c-416780:#416780;--c-6d879a:#6d879a;--c-d3e1e9:#d3e1e9;--c-738a9b:#738a9b;--c-4a6c83:#4a6c83;
  --c-d0dde6:#d0dde6;--c-688195:#688195;--c-33556e:#33556e;--c-96bdd5:#96bdd5;--c-e4c6bf:#e4c6bf;
  --c-fcf3f1:#fcf3f1;--c-082d49:#082d49;--c-103c5dcc:#103c5dcc;--c-103c5d77:#103c5d77;--c-092e49:#092e49;
}
@media(max-width:1100px){:root{--focus-scroll-margin:180px}}
@media(max-width:680px){:root{--gutter:24px}}
@media(max-width:370px){:root{--gutter:20px}}

/* 6. Dark sections switch to the light ring; light cards inside them switch back. */
.hero,.dark-section,.site-footer,#photo-viewer,.studio-intro,.studio-contact,.workspace-banner,.pm-hero,.detail-header{--focus-ring:var(--focus-ring-on-dark)}
.hero .hero-proof{--focus-ring:var(--focus-ring-on-light)}

/* Focus is never hidden under a sticky header (zero specificity: page rules still win). */
:where(a[href],button,input,select,textarea,summary,[tabindex]){scroll-margin-top:var(--focus-scroll-margin);scroll-margin-bottom:var(--space-5)}

/* Native checkbox/radio focus must survive later page-specific input resets. */
body input[type="checkbox"]:focus-visible,body input[type="radio"]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:3px}
/* A skip link must stay above every sticky header, including intake/office pages. */
body .skip:focus,body .skip-link:focus{position:fixed;top:12px;left:16px;z-index:1000;transform:none}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  .skip,.skip-link{display:none!important}
  *,*::before,*::after{box-shadow:none!important;text-shadow:none!important}
}
