/* ==========================================================================
   Casdigital — base stylesheet
   Warm paper, navy ink and gold from the logo. Every page adds its own colour
   through --w / --w-ink / --w-soft / --w-deep / --w-on (set on <body>; worked out
   in _build/lib.php so text always passes WCAG AA), and every service adds its
   own stylesheet (css/world-<service>.css).
   ========================================================================== */

@font-face{font-family:"Outfit";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/outfit-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/instrument-serif-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/instrument-serif-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --paper:#F7F4ED; --paper-2:#EFE9DD; --paper-3:#E6DECD;
  --ink:#0B1B3F; --night:#071430;
  --text:#2B3753; --muted:#5D6880; --faint:#8A93A6;
  --line:rgba(11,27,63,.12); --line-strong:rgba(11,27,63,.24);
  --navy:#0A2F72; --navy-soft:#E6ECF7;
  --gold:#E5A417; --gold-light:#F4C24F; --gold-ink:#9A6205; --gold-soft:#FBEFCF;
  --wa:#25D366; --wa-ink:#0E7A3B;
  --font-display:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --r-sm:12px; --r:20px; --r-lg:28px; --r-xl:36px;
  --shadow-sm:0 1px 2px rgba(11,27,63,.06),0 4px 14px rgba(11,27,63,.06);
  --shadow:0 18px 40px -18px rgba(11,27,63,.3);
  --shadow-lg:0 40px 80px -30px rgba(11,27,63,.4);
  --header-h:76px;
  --gutter:clamp(1rem,4vw,2.5rem);
  --ease:cubic-bezier(.2,.7,.2,1);
  /* page colour (overridden on <body>) */
  --w:#0A2F72; --w-ink:#0A2F72; --w-soft:#E6ECF7; --w-deep:#071430; --w-on:#fff;
  --hl:var(--gold-ink); --hl-line:var(--gold);
  /* hand-drawn underline used under highlighted words */
  --swoosh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 15C52 5 124 2 197 8' fill='none' stroke='%23000' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E");
}
body[data-world]{--hl:var(--w-ink);--hl-line:var(--w)}

/* @patterns:start: written by _build/patterns.php (redrawn from the ₦500 note); edit that file, not this block */
:root{
  --pat-lattice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='44' viewBox='0 0 36 44'%3E%3Cpath d='M0 0L18 22L0 44M36 0L18 22L36 44' fill='none' stroke='rgba(174,151,196,0.42)' stroke-width='.75'/%3E%3Cpath d='M18 7V39M11 16L18 9L25 16M12.5 26.5L18 21L23.5 26.5M0 30H5V37H0M36 30H31V37H36M5 33.5H9M31 33.5H27' fill='none' stroke='rgba(212,154,99,0.5)' stroke-width='1.1'/%3E%3Cpath d='M18 33.5l2.8 2.8-2.8 2.8-2.8-2.8z' fill='rgba(212,154,99,0.5)'/%3E%3C/svg%3E");
  --pat-mesh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cpath d='M0 -8Q30 -26 60 -8T120 -8T180 -8M0 0Q30 -18 60 0T120 0T180 0M0 8Q30 -10 60 8T120 8T180 8M0 16Q30 -2 60 16T120 16T180 16M0 24Q30 6 60 24T120 24T180 24M0 32Q30 14 60 32T120 32T180 32' fill='none' stroke='rgba(212,154,99,0.3)' stroke-width='.8'/%3E%3Cpath d='M0 -4Q30 14 60 -4T120 -4T180 -4M0 4Q30 22 60 4T120 4T180 4M0 12Q30 30 60 12T120 12T180 12M0 20Q30 38 60 20T120 20T180 20M0 28Q30 46 60 28T120 28T180 28' fill='none' stroke='rgba(157,179,92,0.3)' stroke-width='.8'/%3E%3Cpath d='M-15 2Q0 -6 15 2T45 2T75 2T105 2T135 2M-15 10Q0 2 15 10T45 10T75 10T105 10T135 10M-15 18Q0 10 15 18T45 18T75 18T105 18T135 18M-15 26Q0 18 15 26T45 26T75 26T105 26T135 26' fill='none' stroke='rgba(227,169,182,0.36)' stroke-width='.5'/%3E%3C/svg%3E");
  --pat-mesh-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cpath d='M0 -8Q30 -26 60 -8T120 -8T180 -8M0 0Q30 -18 60 0T120 0T180 0M0 8Q30 -10 60 8T120 8T180 8M0 16Q30 -2 60 16T120 16T180 16M0 24Q30 6 60 24T120 24T180 24M0 32Q30 14 60 32T120 32T180 32' fill='none' stroke='rgba(229,164,23,0.3)' stroke-width='.8'/%3E%3Cpath d='M0 -4Q30 14 60 -4T120 -4T180 -4M0 4Q30 22 60 4T120 4T180 4M0 12Q30 30 60 12T120 12T180 12M0 20Q30 38 60 20T120 20T180 20M0 28Q30 46 60 28T120 28T180 28' fill='none' stroke='rgba(255,255,255,0.1)' stroke-width='.8'/%3E%3Cpath d='M-15 2Q0 -6 15 2T45 2T75 2T105 2T135 2M-15 10Q0 2 15 10T45 10T75 10T105 10T135 10M-15 18Q0 10 15 18T45 18T75 18T105 18T135 18M-15 26Q0 18 15 26T45 26T75 26T105 26T135 26' fill='none' stroke='rgba(174,151,196,0.26)' stroke-width='.5'/%3E%3C/svg%3E");
  --pat-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='90' height='100' viewBox='0 0 90 100'%3E%3Cdefs%3E%3Cg id='lf'%3E%3Cpath d='M0 0C12 -12.5 12 -34 0 -50C-12 -34 -12 -12.5 0 0Z' fill='rgba(255,255,255,0.5)' stroke='rgba(157,179,92,0.62)' stroke-width='1.1'/%3E%3Cpath d='M0 -2V-45M-3.9 -1.8L0 -6.3L3.9 -1.8M-6 -8L0 -12.5L6 -8M-7.2 -14.3L0 -18.8L7.2 -14.3M-7.3 -20.5L0 -25L7.3 -20.5M-6.3 -26.8L0 -31.3L6.3 -26.8M-4.4 -33L0 -37.5L4.4 -33M-1.9 -39.3L0 -43.8L1.9 -39.3' fill='none' stroke='rgba(212,154,99,0.5)' stroke-width='.6'/%3E%3C/g%3E%3C/defs%3E%3Cpath d='M0 0V100M45 0V100M90 0V100' stroke='rgba(157,179,92,0.62)' stroke-width='1.1'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 -8) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 92) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 -8) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 92) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 42) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 142) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 42) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 142) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 67) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 17) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 117) rotate(38)'/%3E%3C/svg%3E");
  --pat-leaf-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='90' height='100' viewBox='0 0 90 100'%3E%3Cdefs%3E%3Cg id='lf'%3E%3Cpath d='M0 0C12 -12.5 12 -34 0 -50C-12 -34 -12 -12.5 0 0Z' fill='rgba(229,164,23,0.05)' stroke='rgba(229,164,23,0.38)' stroke-width='1.1'/%3E%3Cpath d='M0 -2V-45M-3.9 -1.8L0 -6.3L3.9 -1.8M-6 -8L0 -12.5L6 -8M-7.2 -14.3L0 -18.8L7.2 -14.3M-7.3 -20.5L0 -25L7.3 -20.5M-6.3 -26.8L0 -31.3L6.3 -26.8M-4.4 -33L0 -37.5L4.4 -33M-1.9 -39.3L0 -43.8L1.9 -39.3' fill='none' stroke='rgba(255,255,255,0.14)' stroke-width='.6'/%3E%3C/g%3E%3C/defs%3E%3Cpath d='M0 0V100M45 0V100M90 0V100' stroke='rgba(229,164,23,0.38)' stroke-width='1.1'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 -8) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 92) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 -8) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 92) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 42) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 142) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 42) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(90 142) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 67) rotate(-38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 17) rotate(38)'/%3E%3Cuse xlink:href='%23lf' transform='translate(45 117) rotate(38)'/%3E%3C/svg%3E");
  --pat-micro-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='66' height='16' viewBox='0 0 66 16'%3E%3Ctext x='1' y='6.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(255,255,255,0.13)'%3ECASDIGITAL%3C/text%3E%3Ctext x='-32' y='14.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(229,164,23,0.2)'%3ECASDIGITAL%3C/text%3E%3Ctext x='34' y='14.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(229,164,23,0.2)'%3ECASDIGITAL%3C/text%3E%3Cpath d='M0 8.6H66M0 16H66' stroke='rgba(255,255,255,0.05)' stroke-width='.4'/%3E%3C/svg%3E");
  --pat-micro-soft:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='66' height='16' viewBox='0 0 66 16'%3E%3Ctext x='1' y='6.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(255,255,255,0.065)'%3ECASDIGITAL%3C/text%3E%3Ctext x='-32' y='14.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(229,164,23,0.1)'%3ECASDIGITAL%3C/text%3E%3Ctext x='34' y='14.6' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(229,164,23,0.1)'%3ECASDIGITAL%3C/text%3E%3Cpath d='M0 8.6H66M0 16H66' stroke='rgba(255,255,255,0.03)' stroke-width='.4'/%3E%3C/svg%3E");
  --pat-micro-rule:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='66' height='8' viewBox='0 0 66 8'%3E%3Ctext x='1' y='6.4' textLength='64' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(185,142,87,0.9)'%3ECASDIGITAL%3C/text%3E%3C/svg%3E");
  --pat-ring:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3Cpath id='g-a' d='M178 0C195.8 7.8 211.4 18.5 210.2 27.7C209 36.8 191.1 43.2 171.9 46.1C152.7 49 135.4 49.3 133 55.1C130.6 60.9 142.6 73.4 154.2 89C165.7 104.6 173.8 121.7 168.2 129.1C162.6 136.4 143.9 133 125.9 125.9C107.8 118.8 92.6 110.4 87.7 114.2C82.7 118.1 86.8 134.9 89 154.2C91.2 173.5 89.7 192.3 81.1 195.9C72.6 199.4 58.2 187.1 46.1 171.9C34 156.7 25 141.9 18.8 142.8C12.6 143.6 7.8 160.2 0 178C-7.8 195.8 -18.5 211.4 -27.7 210.2C-36.8 209 -43.2 191.1 -46.1 171.9C-49 152.7 -49.3 135.4 -55.1 133C-60.9 130.6 -73.4 142.6 -89 154.2C-104.6 165.7 -121.7 173.8 -129.1 168.2C-136.4 162.6 -133 143.9 -125.9 125.9C-118.8 107.8 -110.4 92.6 -114.2 87.7C-118.1 82.7 -134.9 86.8 -154.2 89C-173.5 91.2 -192.3 89.7 -195.9 81.1C-199.4 72.6 -187.1 58.2 -171.9 46.1C-156.7 34 -141.9 25 -142.8 18.8C-143.6 12.6 -160.2 7.8 -178 0C-195.8 -7.8 -211.4 -18.5 -210.2 -27.7C-209 -36.8 -191.1 -43.2 -171.9 -46.1C-152.7 -49 -135.4 -49.3 -133 -55.1C-130.6 -60.9 -142.6 -73.4 -154.2 -89C-165.7 -104.6 -173.8 -121.7 -168.2 -129.1C-162.6 -136.4 -143.9 -133 -125.9 -125.9C-107.8 -118.8 -92.6 -110.4 -87.7 -114.2C-82.7 -118.1 -86.8 -134.9 -89 -154.2C-91.2 -173.5 -89.7 -192.3 -81.1 -195.9C-72.6 -199.4 -58.2 -187.1 -46.1 -171.9C-34 -156.7 -25 -141.9 -18.8 -142.8C-12.6 -143.6 -7.8 -160.2 0 -178C7.8 -195.8 18.5 -211.4 27.7 -210.2C36.8 -209 43.2 -191.1 46.1 -171.9C49 -152.7 49.3 -135.4 55.1 -133C60.9 -130.6 73.4 -142.6 89 -154.2C104.6 -165.7 121.7 -173.8 129.1 -168.2C136.4 -162.6 133 -143.9 125.9 -125.9C118.8 -107.8 110.4 -92.6 114.2 -87.7C118.1 -82.7 134.9 -86.8 154.2 -89C173.5 -91.2 192.3 -89.7 195.9 -81.1C199.4 -72.6 187.1 -58.2 171.9 -46.1C156.7 -34 141.9 -25 142.8 -18.8C143.6 -12.6 160.2 -7.8 178 0Z' fill='none'/%3E%3Cpath id='g-b' d='M160 0C175.7 5.6 189.7 13.3 189 19.9C188.3 26.5 173 31.1 156.5 33.3C140 35.5 125 35.9 123.6 40.2C122.2 44.5 134.1 53.6 146.2 65.1C158.2 76.6 167.9 89.3 164.5 95C161.2 100.7 145.4 98.8 129.4 94C113.5 89.3 99.6 83.6 96.6 87C93.6 90.4 100.7 103.5 107.1 118.9C113.4 134.3 117 149.8 111.7 153.7C106.3 157.6 92.7 149.4 80 138.6C67.3 127.8 57 116.9 52.9 118.8C48.7 120.6 49.9 135.5 49.4 152.2C49 168.8 46 184.5 39.5 185.8C33 187.2 23.9 174.2 16.7 159.1C9.5 144.1 4.5 130 0 130C-4.5 130 -9.5 144.1 -16.7 159.1C-23.9 174.2 -33 187.2 -39.5 185.8C-46 184.5 -49 168.8 -49.4 152.2C-49.9 135.5 -48.7 120.6 -52.9 118.8C-57 116.9 -67.3 127.8 -80 138.6C-92.7 149.4 -106.3 157.6 -111.7 153.7C-117 149.8 -113.4 134.3 -107.1 118.9C-100.7 103.5 -93.6 90.4 -96.6 87C-99.6 83.6 -113.5 89.3 -129.4 94C-145.4 98.8 -161.2 100.7 -164.5 95C-167.9 89.3 -158.2 76.6 -146.2 65.1C-134.1 53.6 -122.2 44.5 -123.6 40.2C-125 35.9 -140 35.5 -156.5 33.3C-173 31.1 -188.3 26.5 -189 19.9C-189.7 13.3 -175.7 5.6 -160 0C-144.3 -5.6 -129.8 -9.1 -129.3 -13.6C-128.8 -18.1 -142.3 -24.5 -156.5 -33.3C-170.7 -42 -182.8 -52.4 -180.7 -58.7C-178.7 -65 -162.8 -66.4 -146.2 -65.1C-129.5 -63.8 -114.9 -61.1 -112.6 -65C-110.3 -68.9 -120 -80.3 -129.4 -94C-138.9 -107.8 -145.6 -122.2 -141.2 -127.1C-136.8 -132.1 -121.7 -126.8 -107.1 -118.9C-92.4 -111 -80.1 -102.5 -76.4 -105.2C-72.7 -107.8 -77 -122.2 -80 -138.6C-83 -155 -83.3 -170.9 -77.3 -173.6C-71.2 -176.3 -59.6 -165.4 -49.4 -152.2C-39.3 -139 -31.5 -126.2 -27 -127.2C-22.6 -128.1 -20.6 -142.9 -16.7 -159.1C-12.8 -175.3 -6.6 -190 0 -190C6.6 -190 12.8 -175.3 16.7 -159.1C20.6 -142.9 22.6 -128.1 27 -127.2C31.5 -126.2 39.3 -139 49.4 -152.2C59.6 -165.4 71.2 -176.3 77.3 -173.6C83.3 -170.9 83 -155 80 -138.6C77 -122.2 72.7 -107.8 76.4 -105.2C80.1 -102.5 92.4 -111 107.1 -118.9C121.7 -126.8 136.8 -132.1 141.2 -127.1C145.6 -122.2 138.9 -107.8 129.4 -94C120 -80.3 110.3 -68.9 112.6 -65C114.9 -61.1 129.5 -63.8 146.2 -65.1C162.8 -66.4 178.7 -65 180.7 -58.7C182.8 -52.4 170.7 -42 156.5 -33.3C142.3 -24.5 128.8 -18.1 129.3 -13.6C129.8 -9.1 144.3 -5.6 160 0Z' fill='none'/%3E%3C/defs%3E%3Cg transform='translate(260 260)'%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(0)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(3)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(6)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(9)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(12)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(15)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(18)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(21)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(24)'/%3E%3Cuse xlink:href='%23g-a' stroke='%23000' stroke-width='.9' transform='rotate(27)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(0)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(2.67)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(5.33)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(8)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(10.67)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(13.33)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(16)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(18.67)'/%3E%3Cuse xlink:href='%23g-b' stroke='%23000' stroke-width='.8' transform='rotate(21.33)'/%3E%3Cpath d='M0 -30L21.2 -99.8M2.1 -29.9L28.1 -98.1M4.2 -29.7L34.9 -95.9M6.2 -29.3L41.5 -93.2M8.3 -28.8L47.9 -90.1M10.3 -28.2L54.1 -86.5M12.2 -27.4L60 -82.5M14.1 -26.5L65.6 -78.1M15.9 -25.4L70.9 -73.4M17.6 -24.3L75.8 -68.3M19.3 -23L80.4 -62.8M20.8 -21.6L84.6 -57M22.3 -20.1L88.3 -51M23.6 -18.5L91.7 -44.7M24.9 -16.8L94.6 -38.2M26 -15L97 -31.5M27 -13.2L99 -24.7M27.8 -11.2L100.5 -17.7M28.5 -9.3L101.4 -10.7M29.1 -7.3L101.9 -3.6M29.5 -5.2L101.9 3.6M29.8 -3.1L101.4 10.7M30 -1.1L100.5 17.7M30 1.1L99 24.7M29.8 3.1L97 31.5M29.5 5.2L94.6 38.2M29.1 7.3L91.7 44.7M28.5 9.3L88.3 51M27.8 11.2L84.6 57M27 13.2L80.4 62.8M26 15L75.8 68.3M24.9 16.8L70.9 73.4M23.6 18.5L65.6 78.1M22.3 20.1L60 82.5M20.8 21.6L54.1 86.5M19.3 23L47.9 90.1M17.6 24.3L41.5 93.2M15.9 25.4L34.9 95.9M14.1 26.5L28.1 98.1M12.2 27.4L21.2 99.8M10.3 28.2L14.2 101M8.3 28.8L7.1 101.8M6.2 29.3L0 102M4.2 29.7L-7.1 101.8M2.1 29.9L-14.2 101M0 30L-21.2 99.8M-2.1 29.9L-28.1 98.1M-4.2 29.7L-34.9 95.9M-6.2 29.3L-41.5 93.2M-8.3 28.8L-47.9 90.1M-10.3 28.2L-54.1 86.5M-12.2 27.4L-60 82.5M-14.1 26.5L-65.6 78.1M-15.9 25.4L-70.9 73.4M-17.6 24.3L-75.8 68.3M-19.3 23L-80.4 62.8M-20.8 21.6L-84.6 57M-22.3 20.1L-88.3 51M-23.6 18.5L-91.7 44.7M-24.9 16.8L-94.6 38.2M-26 15L-97 31.5M-27 13.2L-99 24.7M-27.8 11.2L-100.5 17.7M-28.5 9.3L-101.4 10.7M-29.1 7.3L-101.9 3.6M-29.5 5.2L-101.9 -3.6M-29.8 3.1L-101.4 -10.7M-30 1.1L-100.5 -17.7M-30 -1.1L-99 -24.7M-29.8 -3.1L-97 -31.5M-29.5 -5.2L-94.6 -38.2M-29.1 -7.3L-91.7 -44.7M-28.5 -9.3L-88.3 -51M-27.8 -11.2L-84.6 -57M-27 -13.2L-80.4 -62.8M-26 -15L-75.8 -68.3M-24.9 -16.8L-70.9 -73.4M-23.6 -18.5L-65.6 -78.1M-22.3 -20.1L-60 -82.5M-20.8 -21.6L-54.1 -86.5M-19.3 -23L-47.9 -90.1M-17.6 -24.3L-41.5 -93.2M-15.9 -25.4L-34.9 -95.9M-14.1 -26.5L-28.1 -98.1M-12.2 -27.4L-21.2 -99.8M-10.3 -28.2L-14.2 -101M-8.3 -28.8L-7.1 -101.8M-6.2 -29.3L0 -102M-4.2 -29.7L7.1 -101.8M-2.1 -29.9L14.2 -101' stroke='%23000' stroke-width='.55'/%3E%3Ccircle r='106' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3Ccircle r='226' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E");
  --pat-sprig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='116' height='116' viewBox='0 0 116 116'%3E%3Cdefs%3E%3Cg id='lf'%3E%3Cpath d='M0 0C4.2 -3.8 4.2 -10.2 0 -15C-4.2 -10.2 -4.2 -3.8 0 0Z' fill='rgba(255,255,255,0.4)' stroke='rgba(157,179,92,0.42)' stroke-width='1.1'/%3E%3Cpath d='M0 -2V-13.5M-1.4 -0.5L0 -1.9L1.4 -0.5M-2.1 -2.4L0 -3.8L2.1 -2.4M-2.5 -4.3L0 -5.6L2.5 -4.3M-2.6 -6.2L0 -7.5L2.6 -6.2M-2.2 -8L0 -9.4L2.2 -8M-1.5 -9.9L0 -11.3L1.5 -9.9M-0.6 -11.8L0 -13.1L0.6 -11.8' fill='none' stroke='rgba(212,154,99,0.32)' stroke-width='.6'/%3E%3C/g%3E%3Cg id='sp'%3E%3Cpath d='M0 14.3V-1.5' stroke='rgba(157,179,92,0.42)' stroke-width='.9'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 -0.8)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 4.5) rotate(-50)'/%3E%3Cuse xlink:href='%23lf' transform='translate(0 8.3) rotate(50)'/%3E%3C/g%3E%3C/defs%3E%3Cuse xlink:href='%23sp' transform='translate(58 58) rotate(18)'/%3E%3Cuse xlink:href='%23sp' transform='translate(0 0) rotate(18)'/%3E%3Cuse xlink:href='%23sp' transform='translate(116 0) rotate(18)'/%3E%3Cuse xlink:href='%23sp' transform='translate(0 116) rotate(18)'/%3E%3Cuse xlink:href='%23sp' transform='translate(116 116) rotate(18)'/%3E%3C/svg%3E");
  --pat-sprig-size:116px 116px;
  --pat-rosettes:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='128' height='128' viewBox='0 0 128 128'%3E%3Cdefs%3E%3Cpath id='wc' d='M20.5 0C25.3 1.6 28.6 4.7 25.8 6.1C23 7.6 15.6 6.6 12.9 6.5C10.2 6.4 13 8.8 15.7 13.2C18.4 17.5 18.9 22 15.8 21.3C12.7 20.5 7.7 15.1 5.7 13.3C3.7 11.5 4.3 15.1 3.6 20.2C2.8 25.2 0.4 29 -1.5 26.5C-3.5 23.9 -3.8 16.5 -4.1 13.8C-4.5 11.2 -6.4 14.3 -10.2 17.7C-14 21.2 -18.4 22.5 -18.2 19.3C-18 16.1 -13.5 10.2 -12.1 7.9C-10.7 5.7 -14.1 6.8 -19.2 7C-24.4 7.2 -28.5 5.4 -26.3 3.1C-24.2 0.8 -16.9 -0.8 -14.4 -1.7C-11.8 -2.5 -15.2 -3.8 -19.2 -7C-23.3 -10.2 -25.3 -14.2 -22.1 -14.6C-19 -15 -12.4 -11.5 -9.9 -10.5C-7.4 -9.5 -9.2 -12.7 -10.2 -17.7C-11.3 -22.7 -10.3 -27.1 -7.6 -25.4C-4.9 -23.7 -2.1 -16.8 -0.8 -14.4C0.4 -12.1 1.1 -15.7 3.6 -20.2C6 -24.7 9.6 -27.4 10.5 -24.3C11.4 -21.3 9.2 -14.2 8.6 -11.6C8.1 -9 10.9 -11.3 15.7 -13.2C20.4 -15.1 24.9 -14.8 23.7 -11.9C22.4 -9 16.2 -5 14.1 -3.3C12 -1.7 15.6 -1.6 20.5 0Z' fill='none' stroke='rgba(212,154,99,0.34)' stroke-width='.7'/%3E%3Cg id='ro'%3E%3Cuse xlink:href='%23wc' transform='rotate(0)'/%3E%3Cuse xlink:href='%23wc' transform='rotate(13.33)'/%3E%3Cuse xlink:href='%23wc' transform='rotate(26.67)'/%3E%3Ccircle r='11' fill='none' stroke='rgba(174,151,196,0.5)' stroke-width='.8'/%3E%3Ccircle r='1.7' fill='rgba(174,151,196,0.5)'/%3E%3C/g%3E%3C/defs%3E%3Cuse xlink:href='%23ro' x='64' y='64'/%3E%3Cuse xlink:href='%23ro' x='0' y='0'/%3E%3Cuse xlink:href='%23ro' x='128' y='0'/%3E%3Cuse xlink:href='%23ro' x='0' y='128'/%3E%3Cuse xlink:href='%23ro' x='128' y='128'/%3E%3C/svg%3E");
  --pat-rosettes-size:128px 128px;
  --pat-waves:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='27' height='110' viewBox='0 0 27 110'%3E%3Cg transform='matrix(0 1 1 0 0 0)'%3E%3Cpath d='M0 0Q27.5 -16 55 0T110 0T165 0M0 9Q27.5 -7 55 9T110 9T165 9M0 18Q27.5 2 55 18T110 18T165 18M0 27Q27.5 11 55 27T110 27T165 27' fill='none' stroke='rgba(212,154,99,0.28)' stroke-width='0.8'/%3E%3Cpath d='M0 -4.5Q27.5 11.5 55 -4.5T110 -4.5T165 -4.5M0 4.5Q27.5 20.5 55 4.5T110 4.5T165 4.5M0 13.5Q27.5 29.5 55 13.5T110 13.5T165 13.5M0 22.5Q27.5 38.5 55 22.5T110 22.5T165 22.5M0 31.5Q27.5 47.5 55 31.5T110 31.5T165 31.5' fill='none' stroke='rgba(157,179,92,0.28)' stroke-width='0.8'/%3E%3Cpath d='M-13.8 2.3Q0 -5 13.8 2.3T41.3 2.3T68.8 2.3T96.3 2.3T123.8 2.3M-13.8 11.3Q0 4.1 13.8 11.3T41.3 11.3T68.8 11.3T96.3 11.3T123.8 11.3M-13.8 20.3Q0 13.1 13.8 20.3T41.3 20.3T68.8 20.3T96.3 20.3T123.8 20.3M-13.8 29.3Q0 22.1 13.8 29.3T41.3 29.3T68.8 29.3T96.3 29.3T123.8 29.3' fill='none' stroke='rgba(227,169,182,0.32)' stroke-width='0.52'/%3E%3C/g%3E%3C/svg%3E");
  --pat-waves-size:27px 110px;
  --pat-herring:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='64' height='56' viewBox='0 0 64 56'%3E%3Cdefs%3E%3Cg id='lf'%3E%3Cpath d='M0 0C6 -5.5 6 -15 0 -22C-6 -15 -6 -5.5 0 0Z' fill='rgba(255,255,255,0.45)' stroke='rgba(157,179,92,0.5)' stroke-width='1.1'/%3E%3Cpath d='M0 -2V-19.8M-1.9 -0.8L0 -2.8L1.9 -0.8M-3 -3.5L0 -5.5L3 -3.5M-3.6 -6.3L0 -8.3L3.6 -6.3M-3.7 -9L0 -11L3.7 -9M-3.2 -11.8L0 -13.8L3.2 -11.8M-2.2 -14.5L0 -16.5L2.2 -14.5M-0.9 -17.3L0 -19.3L0.9 -17.3' fill='none' stroke='rgba(212,154,99,0.4)' stroke-width='.6'/%3E%3C/g%3E%3C/defs%3E%3Cuse xlink:href='%23lf' transform='translate(16 43.7) rotate(-40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(80 43.7) rotate(-40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(16 43.7) rotate(40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(48 15.7) rotate(-40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(48 71.7) rotate(-40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(-16 15.7) rotate(40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(-16 71.7) rotate(40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(48 15.7) rotate(40)'/%3E%3Cuse xlink:href='%23lf' transform='translate(48 71.7) rotate(40)'/%3E%3C/svg%3E");
  --pat-herring-size:64px 56px;
  --pat-micro-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='74' height='88' viewBox='0 0 74 88'%3E%3Ctext x='1' y='25.3' textLength='72' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(185,142,87,0.3)'%3ECASDIGITAL + %3C/text%3E%3Ctext x='-36' y='69.3' textLength='72' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(174,151,196,0.38)'%3ECASDIGITAL + %3C/text%3E%3Ctext x='38' y='69.3' textLength='72' lengthAdjust='spacing' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='6.6' fill='rgba(174,151,196,0.38)'%3ECASDIGITAL + %3C/text%3E%3C/svg%3E");
  --pat-micro-light-size:74px 88px;
}
/* @patterns:end */

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--paper);color:var(--text);font:400 1.0625rem/1.65 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--ink);text-decoration-thickness:.07em;text-underline-offset:.2em}
a:hover{color:var(--w-ink)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);font-weight:700;line-height:1.08;letter-spacing:-.025em;margin:0 0 .6em;text-wrap:balance}
h2{font-size:clamp(2rem,1.2rem + 2.7vw,3.5rem);line-height:1.02;letter-spacing:-.042em}
h3{font-size:1.25rem;letter-spacing:-.015em}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0;padding:0}
button{font:inherit}
::selection{background:var(--gold-light);color:var(--ink)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-80px;z-index:300;padding:.75rem 1.1rem;border-radius:12px;background:var(--ink);color:#fff;font-weight:600;text-decoration:none}
.skip-link:focus{top:12px;color:#fff}
.wrap{width:min(100% - 2*var(--gutter),1240px);margin-inline:auto}
/* safety net: decorations may hang over a section's sides, but never widen the page (phones would zoom out) */
main>section{overflow-x:clip}
.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon--fill{fill:currentColor;stroke:none}
.muted{color:var(--muted)}

/* ---------- type ---------- */
.display{font-size:clamp(2.6rem,1rem + 4.9vw,5.4rem);line-height:.96;letter-spacing:-.052em;margin-bottom:.42em}
.display--md{font-size:clamp(2.3rem,1rem + 3.4vw,4.4rem);line-height:.99;letter-spacing:-.046em}
.display--sm{font-size:clamp(2.1rem,1rem + 2.8vw,3.8rem);line-height:1;letter-spacing:-.044em}
.hl{position:relative;display:inline-block;padding-right:.05em;font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.1em;line-height:.9;letter-spacing:-.01em;color:var(--hl)}
.hl::after{content:"";position:absolute;left:-.02em;right:0;bottom:-.06em;height:.2em;background:var(--hl-line);-webkit-mask:var(--swoosh) center/100% 100% no-repeat;mask:var(--swoosh) center/100% 100% no-repeat}
.amp{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.08em;letter-spacing:0}
.lead{max-width:54ch;margin:0 0 2rem;font-size:clamp(1.08rem,.98rem + .45vw,1.3rem);line-height:1.55;color:var(--text)}
.kicker{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;margin:0 0 1.3rem;font:600 .74rem/1.3 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kicker__n{display:inline-flex;align-items:center;gap:.8rem;color:var(--w-ink);font-weight:700}
.kicker__n::after{content:"";width:2.2rem;height:1px;background:var(--line-strong)}
.kicker:not(:has(.kicker__n))::before{content:"";width:1.5rem;height:2px;background:var(--w)}
.kicker--light{color:rgba(255,255,255,.7)}
.kicker--light::before{background:var(--gold)!important}
.kicker--light .kicker__n{color:var(--gold-light)}
.kicker--light .kicker__n::after{background:rgba(255,255,255,.25)}

/* ---------- layout ---------- */
.band{position:relative;padding-block:clamp(4.5rem,9vw,8rem)}
.band--tight{padding-block:clamp(3rem,6vw,5rem)}
.band--paper2{background:var(--paper-2)}
.band--white{background:#fff}
.band--soft{background:var(--w-soft)}
.band--ink{background:var(--night);color:rgba(255,255,255,.76)}
.band--ink h2,.band--ink h3{color:#fff}
.shead{max-width:58rem;margin-bottom:clamp(2.2rem,4vw,3.6rem)}
.shead h2{max-width:20ch;margin:0}
.shead__intro{max-width:52ch;margin:1.2rem 0 0;font-size:1.12rem;color:var(--muted)}
.shead--light h2{color:#fff}
.shead--light .shead__intro{color:rgba(255,255,255,.72)}
.shead--light .kicker{color:rgba(255,255,255,.7)}
.shead--light .kicker::before{background:var(--gold)!important}
.shead--light .kicker__n{color:var(--gold-light)}
.shead--light .kicker__n::after{background:rgba(255,255,255,.25)}
.shead--center{margin-inline:auto;text-align:center}
.shead--center .kicker{justify-content:center}
.shead--center h2{margin-inline:auto}
@media(min-width:960px){
  .shead--split{max-width:none;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:4rem;align-items:end}
  .shead--split .kicker{grid-column:1/-1}
  .shead--split .shead__intro{margin:0;justify-self:end}
}
.prose p{max-width:64ch;font-size:1.1rem}
.prose a{color:var(--w-ink)}

/* ---------- buttons & links ---------- */
.btn{--bg:var(--ink);--fg:#fff;--bd:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.25rem;padding:.45rem 1.5rem;border:1.5px solid var(--bd);border-radius:999px;background:var(--bg);color:var(--fg);font:600 1rem/1.15 var(--font-display);letter-spacing:-.005em;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .25s var(--ease)}
.btn:hover{transform:translateY(-2px);color:var(--fg)}
.btn .icon{width:1.15em;height:1.15em}
.btn--lg{min-height:3.75rem;padding:.5rem 1.85rem;font-size:1.06rem}
.btn--sm{min-height:2.75rem;padding:.3rem 1.1rem;gap:.55rem;font-size:.94rem}
.btn--block{display:flex;width:100%}
.btn:has(>.btn__wa){padding-left:.4rem}
.btn--lg:has(>.btn__wa){padding-left:.45rem}
.btn--sm:has(>.btn__wa){padding-left:.3rem}
.btn__wa{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:50%;background:var(--wa);color:var(--ink);flex:none;transition:transform .35s var(--ease)}
.btn--lg .btn__wa{width:2.75rem;height:2.75rem}
.btn--sm .btn__wa{width:2rem;height:2rem}
.btn__wa .icon{width:56%;height:56%}
.btn:hover .btn__wa{transform:rotate(-12deg) scale(1.06)}
.btn--wa:hover{--bg:var(--navy);--bd:var(--navy)}
.btn--line{--bg:transparent;--fg:var(--ink);--bd:var(--line-strong)}
.btn--line:hover{--bg:var(--ink);--fg:#fff;--bd:var(--ink)}
.btn--light{--bg:#fff;--fg:var(--ink);--bd:#fff}
.btn--light:hover{--bg:var(--gold-light);--bd:var(--gold-light);--fg:var(--ink)}
.btn--ghost-light{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.4)}
.btn--ghost-light:hover{--bg:#fff;--fg:var(--ink);--bd:#fff}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.6rem}
.textlink{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink);font:600 1rem var(--font-display);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.32em}
.textlink .icon{width:1em;height:1em;transition:transform .2s}
.textlink:hover{color:var(--w-ink);text-decoration-color:currentColor}
.textlink:hover .icon{transform:translateX(3px)}
.stretched{color:inherit;text-decoration:none}
.stretched::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.stretched:focus-visible{outline:none}
.tile:has(.stretched:focus-visible),.srow:has(.stretched:focus-visible),.swatch:has(.stretched:focus-visible){outline:3px solid var(--gold);outline-offset:3px}

.contact-line{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin:0;font-size:.95rem;color:var(--muted)}
.contact-line__label{display:inline-flex;align-items:center;gap:.4rem;font:600 .7rem/1 var(--font-mono);letter-spacing:.15em;text-transform:uppercase}
.contact-line__label .icon{width:1.25em;height:1.25em;color:var(--wa-ink)}
.contact-line a{color:var(--ink);font-weight:500;text-decoration-color:var(--line-strong)}
.contact-line a:hover{text-decoration-color:currentColor}
.contact-line__or{color:var(--faint)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,244,237,.86);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s,background-color .25s}
.site-header.is-scrolled{border-bottom-color:var(--line);background:rgba(247,244,237,.94)}
.header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}
.brand{flex:none;display:block;border-radius:8px}
.brand img{width:auto;height:38px}
/* the nav and its items fill the full header height, so moving the pointer from "Services" down to
   the panel never crosses a gap (a gap closes the menu) */
.nav{display:flex;align-items:center;align-self:stretch;gap:1.1rem}
.nav__list{list-style:none;display:flex;align-items:stretch;align-self:stretch;gap:.1rem}
.nav__list>li{position:relative;display:flex;align-items:center}
.nav__list>li>a{position:relative;display:inline-flex;align-items:center;min-height:2.6rem;padding:.4rem .85rem;border-radius:999px;color:var(--ink);font:500 .98rem/1 var(--font-display);text-decoration:none;transition:background-color .2s}
.nav__list>li>a:hover{background:rgba(11,27,63,.06);color:var(--ink)}
.nav__list>li>a[aria-current]::after{content:"";position:absolute;left:50%;bottom:.2rem;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--gold)}
.sub-toggle{display:inline-grid;place-items:center;width:1.9rem;height:2.4rem;margin-left:-.6rem;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer}
.sub-toggle .icon{width:1rem;height:1rem;transition:transform .25s}
.has-sub.is-open>.sub-toggle .icon{transform:rotate(180deg)}
.nav-toggle,.nav__numbers{display:none}
.nav-cta{white-space:nowrap}

.sub{list-style:none;position:absolute;top:calc(100% + .55rem);left:-.4rem;z-index:60;display:none;min-width:240px;padding:.45rem;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg)}
.sub::before{content:"";position:absolute;left:0;right:0;top:-.7rem;height:.7rem}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.has-sub.is-open>.sub,.has-sub.is-hover>.sub{display:grid}
.sub a{display:flex;align-items:center;gap:.7rem;padding:.65rem .8rem;border-radius:14px;color:var(--ink);font:500 .98rem var(--font-display);text-decoration:none}
.sub a:hover,.sub a[aria-current]{background:var(--paper);color:var(--ink)}
.sub .icon{width:1.1rem;height:1.1rem;color:var(--gold-ink)}

/* services mega menu */
.nav__list>li.has-mega{position:static}
.mega{position:absolute;top:100%;left:0;right:0;z-index:60;display:none;padding-top:.5rem}
.has-mega:hover>.mega,.has-mega:focus-within>.mega,.has-mega.is-open>.mega,.has-mega.is-hover>.mega{display:block}
.mega__inner{position:relative;display:grid;grid-template-columns:210px 300px minmax(0,1fr);min-height:31rem;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow-lg)}
.mega__intro{display:flex;flex-direction:column;gap:.8rem;padding:1.75rem 1.5rem;background:var(--paper-2)}
.mega__kicker{margin:0;font:600 .68rem/1.5 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.mega__lead{margin:0;font:600 1.4rem/1.15 var(--font-display);letter-spacing:-.025em;color:var(--ink)}
.mega__intro .textlink{margin-top:auto;font-size:.95rem}
.mega__list{list-style:none;display:grid;align-content:start;gap:.05rem;padding:.8rem .6rem;border-right:1px solid var(--line)}
.mega__item{display:flex;align-items:center}
.mega__parent{flex:1;display:flex;align-items:center;gap:.75rem;padding:.4rem .7rem;border-radius:12px;color:var(--ink);text-decoration:none}
.mega__parent:hover{color:var(--ink)}
.mega__dot{flex:none;width:.7rem;height:.7rem;border-radius:50%;background:var(--dot);box-shadow:0 0 0 3px color-mix(in srgb,var(--dot) 18%,transparent)}
.mega__text{display:grid;line-height:1.2}
.mega__text strong{font:600 .96rem var(--font-display)}
.mega__text small{font-size:.79rem;color:var(--muted)}
.mega-toggle{display:none}
.mega__sub{display:none;list-style:none;position:absolute;top:0;bottom:0;left:510px;right:0;padding:1.5rem 1.8rem;overflow-y:auto;columns:2;column-gap:1.5rem}
.mega__sub li{break-inside:avoid}
.mega__sub a{display:block;padding:.45rem .6rem;border-radius:10px;color:var(--ink);font-size:.95rem;line-height:1.3;text-decoration:none}
.mega__sub a:hover,.mega__sub a[aria-current]{background:var(--paper);color:var(--ink)}
.mega__all{column-span:all;margin-bottom:.7rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.mega__all a{display:inline-flex;align-items:center;gap:.45rem;padding-inline:.6rem;font:700 1.25rem var(--font-display);letter-spacing:-.02em}
.mega__all a:hover{background:none;text-decoration:underline}
.mega__all .icon{width:1rem;height:1rem}
.js .mega__item.is-active>.mega__sub{display:block}
.js .mega__item.is-active>.mega__parent{background:var(--paper)}
html:not(.js) .mega__item:hover>.mega__sub,html:not(.js) .mega__item:focus-within>.mega__sub,html:not(.js) .mega__item:first-child>.mega__sub{display:block}
html:not(.js) .mega__list:hover .mega__item:first-child:not(:hover):not(:focus-within)>.mega__sub{display:none}

@media(max-width:1079px){
  /* no frosted glass on phones and tablets: a backdrop-filter makes the header the containing block of the fixed
     menu panel below, which then collapses into the header's 76px and hides the whole menu */
  .site-header,.site-header.is-scrolled{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}
  .header-inner{position:static}
  .nav-toggle{display:inline-flex;align-items:center;gap:.65rem;min-height:2.75rem;padding:0 1rem 0 .9rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font:600 .95rem var(--font-display);cursor:pointer}
  .nav-toggle__bars{display:grid;align-content:space-between;width:18px;height:11px}
  .nav-toggle__bars span{display:block;height:2px;border-radius:2px;background:currentColor;transition:transform .25s var(--ease)}
  .nav-toggle[aria-expanded="true"] .nav-toggle__bars span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .nav-toggle__bars span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;display:none;flex-direction:column;align-items:stretch;gap:2rem;padding:.5rem var(--gutter) 2rem;background:var(--paper);overflow-y:auto;overscroll-behavior:contain}
  .nav.is-open{display:flex}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__list>li{flex-wrap:wrap;border-bottom:1px solid var(--line)}
  .nav__list>li>a{flex:1;min-height:3.75rem;padding:.6rem 0;border-radius:0;font-size:1.6rem;font-weight:600;letter-spacing:-.03em}
  .nav__list>li>a:hover{background:none}
  .nav__list>li>a[aria-current]::after{display:none}
  .sub-toggle{width:2.9rem;height:2.9rem;margin:0;border:1px solid var(--line)}
  .sub{position:static;display:none;width:100%;min-width:0;margin:0 0 1rem;padding:0;border:0;border-radius:0;box-shadow:none;background:none}
  .has-sub:hover>.sub,.has-sub:focus-within>.sub,.has-sub.is-hover>.sub{display:none}
  .has-sub.is-open>.sub{display:grid}
  .sub a{padding:.7rem 0}
  .nav__list>li.has-mega{position:relative}
  .mega{position:static;width:100%;padding:0}
  .has-mega:hover>.mega,.has-mega:focus-within>.mega,.has-mega.is-hover>.mega{display:none}
  .has-mega.is-open>.mega{display:block}
  .mega__inner{display:block;min-height:0;overflow:visible;border:0;border-radius:0;box-shadow:none;background:none}
  .mega__intro{display:flex;padding:.1rem 0 .7rem;background:none}
  .mega__kicker,.mega__lead{display:none}
  .mega__intro .textlink{margin-top:0;font-size:1rem}
  .mega__list{padding:0 0 1rem;border:0}
  .mega__item{flex-wrap:wrap}
  .mega__parent{padding:.6rem 0}
  .js .mega__item.is-active>.mega__parent{background:none}
  .mega-toggle{display:inline-grid;width:2.6rem;height:2.6rem}
  .mega__item.is-open>.mega-toggle .icon{transform:rotate(180deg)}
  .mega__sub,.js .mega__item.is-active>.mega__sub{position:static;display:none;width:100%;padding:0 0 .8rem 1.45rem;overflow:visible;columns:1}
  .mega__item.is-open>.mega__sub,.js .mega__item.is-open.is-active>.mega__sub{display:block}
  .mega__all{margin:0;padding:0;border:0}
  .mega__all a{padding-inline:.6rem;font-size:1rem}
  .nav-cta{display:none}
  .nav__numbers{display:grid;gap:.6rem;margin-top:auto}
  .nav__numbers-label{margin:0 0 .2rem;font:600 .7rem var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
  html:not(.js) .header-inner{flex-wrap:wrap}
  html:not(.js) .nav-toggle{display:none}
  html:not(.js) .nav{position:static;display:flex;width:100%;padding:0 0 1.5rem}
  html:not(.js) .nav .sub,html:not(.js) .nav .mega,html:not(.js) .nav .mega__sub{display:block}
}
@media(max-width:420px){.brand img{height:32px}}
body.nav-open{overflow:hidden}

/* ---------- shared pieces ---------- */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin:0 0 1.6rem;font:500 .72rem/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--faint)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

.worldtag{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 1.4rem;padding:.3rem 1rem .3rem .3rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:600 .92rem/1 var(--font-display)}
.worldtag__icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--w);color:var(--w-on)}
.worldtag__icon .icon{width:1rem;height:1rem}
.worldtag__code{margin-left:.2rem;padding-left:.7rem;border-left:1px solid var(--line);font:600 .72rem var(--font-mono);letter-spacing:.1em;color:var(--w-ink)}

.locator{display:inline-flex;align-items:center;gap:.7rem;margin:0 0 1.7rem;font:600 .72rem/1.4 var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.locator__dot{position:relative;flex:none;width:.6rem;height:.6rem;border-radius:50%;background:var(--gold)}
.locator__dot::after{content:"";position:absolute;inset:-5px;border:1.5px solid var(--gold);border-radius:50%;animation:ping 2.4s var(--ease) infinite}
@keyframes ping{0%{transform:scale(.6);opacity:1}80%,100%{transform:scale(1.7);opacity:0}}

.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem}
.chips li{padding:.35rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font:500 .88rem var(--font-display)}
.ticks{list-style:none;display:grid;gap:.65rem}
.ticks li{display:flex;align-items:flex-start;gap:.7rem}
.ticks .icon{width:1.1rem;height:1.1rem;margin-top:.27rem;color:var(--w-ink);stroke-width:2.6}

.legend{margin-top:1.6rem}
.legend__title{margin:0 0 .9rem;font:600 .7rem/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.legend__list{list-style:none;display:grid;gap:.6rem}
.legend__list li{display:flex;align-items:flex-start;gap:.75rem;font-weight:500;line-height:1.4;color:var(--ink)}
.legend__n{display:grid;place-items:center;flex:none;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--ink);color:#fff;font:700 .76rem var(--font-display)}
@media(min-width:600px){.legend__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.6rem}}

.qa{border-top:1px solid var(--line-strong)}
.qa__item{border-bottom:1px solid var(--line-strong)}
.qa__item summary{display:grid;grid-template-columns:2.6rem minmax(0,1fr) 2.5rem;align-items:center;gap:.8rem;padding:1.35rem 0;cursor:pointer;list-style:none}
.qa__item summary::-webkit-details-marker{display:none}
.qa__n{font:500 .76rem var(--font-mono);letter-spacing:.06em;color:var(--muted)}
.qa__q{font:600 clamp(1.08rem,1rem + .35vw,1.3rem)/1.3 var(--font-display);letter-spacing:-.015em;color:var(--ink);transition:color .2s}
.qa__item summary:hover .qa__q{color:var(--w-ink)}
.qa__icon{position:relative;width:2.5rem;height:2.5rem;border:1px solid var(--line-strong);border-radius:50%;transition:background-color .25s,border-color .25s}
.qa__icon::before,.qa__icon::after{content:"";position:absolute;left:50%;top:50%;width:.85rem;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
.qa__icon::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s var(--ease)}
.qa__item[open] .qa__icon{background:var(--ink);border-color:var(--ink)}
.qa__item[open] .qa__icon::before,.qa__item[open] .qa__icon::after{background:#fff}
.qa__item[open] .qa__icon::after{transform:translate(-50%,-50%) rotate(0)}
.qa__a{padding:0 3.3rem 1.6rem 3.4rem}
.qa__a p{max-width:62ch;margin:0}
.qa__a a{color:var(--w-ink)}
@media(max-width:600px){.qa__item summary{grid-template-columns:2rem minmax(0,1fr) 2.25rem}.qa__icon{width:2.25rem;height:2.25rem}.qa__a{padding:0 0 1.4rem 2.8rem}}

.steps{list-style:none;display:grid}
.step{position:relative;display:grid;grid-template-columns:3.2rem minmax(0,1fr);column-gap:1.2rem;padding-bottom:2rem}
.step:last-child{padding-bottom:0}
.step__n{position:relative;z-index:1;grid-row:span 2;display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--w);color:var(--w-on);font:700 .92rem var(--font-display)}
.step:not(:last-child)::before{content:"";position:absolute;left:1.6rem;top:3.2rem;bottom:0;width:1.5px;background:var(--line-strong)}
.step__t{margin:.7rem 0 .3rem;font-size:1.25rem}
.step p{margin:0;color:var(--muted)}

/* service list rows (home, services index, locations, 404) */
.srows{list-style:none;border-top:1px solid var(--line-strong)}
.srow{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem 1.2rem;padding:1.3rem .3rem;border-bottom:1px solid var(--line-strong);transition:background-color .3s}
.srow__n{display:none;font:500 .78rem var(--font-mono);color:var(--muted)}
.srow__icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--w-soft);color:var(--w-ink);transition:transform .4s var(--ease),background-color .3s,color .3s}
.srow__icon .icon{width:1.3rem;height:1.3rem}
.srow__name{margin:0;font-size:clamp(1.35rem,1rem + 1.4vw,2.2rem);line-height:1.1;letter-spacing:-.035em}
.srow__text{max-width:46ch;margin:.35rem 0 0;color:var(--muted);font-size:.98rem}
.srow__subs{position:relative;z-index:2;list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.85rem}
.srow__subs a{display:inline-block;padding:.28rem .75rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 .84rem var(--font-display);text-decoration:none}
.srow__subs a:hover{border-color:var(--w);background:var(--w-soft)}
.srow__go{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--line-strong);border-radius:50%;transition:transform .35s var(--ease),background-color .25s,color .25s,border-color .25s}
.srow__go .icon{width:1.1rem;height:1.1rem}
.srow:hover{background:linear-gradient(90deg,var(--w-soft),rgba(255,255,255,0) 85%)}
.srow:hover .srow__icon{background:var(--w);color:var(--w-on);transform:rotate(-10deg) scale(1.08)}
.srow:hover .srow__go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(-45deg)}
@media(min-width:900px){
  .srow{grid-template-columns:2.6rem 3.5rem minmax(0,1fr) auto;gap:1.5rem;padding:1.55rem .6rem}
  .srow__n{display:block}
  .srow__icon{width:3.5rem;height:3.5rem}
  .srow__main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:.3rem 2.5rem}
  .srow__text{margin:0}
  .srow__subs{grid-column:2;margin-top:.3rem}
}

/* tiles (related pages) */
.tiles{display:grid;gap:1rem}
@media(min-width:700px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile{position:relative;display:flex;flex-direction:column;min-height:16rem;padding:1.6rem;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;transition:transform .3s var(--ease),background-color .3s,border-color .3s}
.tile:hover{transform:translateY(-4px);border-color:transparent;background:var(--w-soft)}
.tile__icon{display:grid;place-items:center;width:3rem;height:3rem;margin-bottom:1.6rem;border-radius:50%;background:var(--w);color:var(--w-on)}
.tile__icon .icon{width:1.35rem;height:1.35rem}
.tile__tag{margin:0 0 .35rem;font:600 .68rem/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--w-ink)}
.tile__name{margin:0 0 .45rem;font-size:1.35rem}
.tile__text{margin:0 0 1.2rem;color:var(--muted);font-size:.98rem}
.tile__go{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-top:auto;border:1px solid var(--line-strong);border-radius:50%;transition:transform .35s var(--ease),background-color .25s,color .25s,border-color .25s}
.tile__go .icon{width:1rem;height:1rem}
.tile:hover .tile__go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(-45deg)}

/* where we work */
.places__grid{display:grid;gap:1rem}
@media(min-width:900px){.places__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.place{display:flex;flex-direction:column;padding:clamp(1.5rem,3vw,2.4rem);border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.place__label{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1.2rem;font:600 .7rem var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--w-ink)}
.place__label .icon{width:1.1rem;height:1.1rem}
.place h3{margin-bottom:.6rem;font-size:clamp(1.3rem,1.1rem + .6vw,1.65rem)}
.place>p{color:var(--muted)}
.place .chips{margin:.3rem 0 1.4rem}
.place__links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:auto 0 0}

/* big tappable WhatsApp numbers */
.numlink{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem .85rem .85rem;border:1px solid var(--line);border-radius:22px;background:#fff;color:var(--ink);text-decoration:none;transition:transform .25s var(--ease),background-color .2s,border-color .2s}
.numlink:hover{transform:translateY(-2px);border-color:var(--ink);color:var(--ink)}
.numlink__icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:50%;background:var(--wa);color:var(--ink)}
.numlink__icon .icon{width:1.5rem;height:1.5rem}
.numlink__body{display:grid;min-width:0;line-height:1.15}
.numlink__body small{font:600 .66rem var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.numlink__body strong{font:600 1.3rem var(--font-display);letter-spacing:-.01em;white-space:nowrap}
.numlink__go{display:grid;place-items:center;flex:none;width:2.4rem;height:2.4rem;margin-left:auto;border:1px solid var(--line-strong);border-radius:50%;transition:transform .3s var(--ease),background-color .2s,border-color .2s}
.numlink__go .icon{width:1rem;height:1rem}
.numlink:hover .numlink__go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(-45deg)}

/* closing call to action (runs into the footer) */
.cta{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:rgba(255,255,255,.76)}
.cta::before{content:"";position:absolute;z-index:-1;right:-18rem;top:-22rem;width:52rem;height:52rem;border-radius:50%;background:radial-gradient(circle,var(--w) 0,rgba(0,0,0,0) 62%);opacity:.32}
.cta__inner{display:grid;gap:2.5rem;padding-block:clamp(4.5rem,9vw,7.5rem) clamp(3.5rem,6vw,5rem)}
@media(min-width:960px){.cta__inner{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:5rem}}
.cta h2{max-width:14ch;margin:0 0 1.2rem;color:#fff;font-size:clamp(2.4rem,1.3rem + 3.6vw,4.6rem);line-height:.98;letter-spacing:-.048em}
.cta h2 .amp{color:var(--gold-light)}
.cta__copy p:not(.kicker){max-width:46ch;margin:0;font-size:1.1rem}
.cta__actions{display:grid;gap:.7rem}
.cta .numlink{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#fff}
.cta .numlink:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5);color:#fff}
.cta .numlink__body small{color:rgba(255,255,255,.6)}
.cta .numlink__go{border-color:rgba(255,255,255,.3)}
.cta .numlink:hover .numlink__go{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.cta__mail{display:inline-flex;align-items:center;justify-self:start;gap:.6rem;margin-top:.3rem;padding:.4rem .2rem;color:rgba(255,255,255,.86);text-decoration-color:rgba(255,255,255,.35);overflow-wrap:anywhere}
.cta__mail:hover{color:var(--gold-light)}

/* ---------- footer ---------- */
.site-footer{overflow:hidden;background:var(--night);color:rgba(255,255,255,.66);font-size:.97rem}
.footer-grid{display:grid;gap:2.5rem;padding-block:3.5rem 2rem}
@media(min-width:720px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:3rem}}
.wordmark{display:inline-block;margin-bottom:1rem;font:700 2rem/1 var(--font-display);letter-spacing:-.045em;text-decoration:none}
.wordmark__cas{color:#fff}
.wordmark__digital{color:var(--gold)}
.footer-tag{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 1rem;color:rgba(255,255,255,.88);font:600 .68rem var(--font-mono);letter-spacing:.16em;text-transform:uppercase}
.footer-tag .icon{width:1.1em;height:1.1em;color:var(--gold)}
.footer-about{max-width:34ch}
.footer-h{margin:0 0 1rem;color:#fff;font:600 .7rem var(--font-mono);letter-spacing:.16em;text-transform:uppercase}
.footer-h--gap{margin-top:2rem}
.footer-list{list-style:none;display:grid;gap:.55rem}
.footer-list a{color:rgba(255,255,255,.72);text-decoration:none}
.footer-list a:hover{color:#fff;text-decoration:underline;text-underline-offset:.25em}
.footer-list--services a{display:inline-flex;align-items:center;gap:.6rem}
.footer-dot{flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--dot)}
.footer-contact a,.footer-loc{display:flex;align-items:flex-start;gap:.65rem;overflow-wrap:anywhere}
.footer-contact .icon,.footer-loc .icon{margin-top:.2em;color:var(--gold)}
.footer-giant{display:flex;justify-content:center;margin:1.5rem 0 -.14em;padding-inline:var(--gutter);font:700 clamp(4.5rem,20vw,19rem)/.8 var(--font-display);letter-spacing:-.06em;white-space:nowrap;-webkit-user-select:none;user-select:none}
.footer-giant span{padding-right:.04em;color:transparent;-webkit-background-clip:text;background-clip:text;background-size:100% 100%,66px 16px;background-repeat:no-repeat,repeat}
.footer-giant__cas{background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02) 85%),var(--pat-micro-ink)}
.footer-giant__digital{background-image:linear-gradient(180deg,rgba(244,194,79,.55),rgba(229,164,23,.04) 85%),var(--pat-micro-ink)}
.footer-bottom{position:relative;background:var(--night);border-top:1px solid rgba(255,255,255,.1);font-size:.88rem}
.footer-bottom .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1.5rem;padding-block:1.3rem}
.footer-bottom p{margin:0}
@media(max-width:700px){.footer-bottom .wrap{padding-bottom:6.5rem}}

/* ---------- floating WhatsApp button ---------- */
.wa-float{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:90;transition:transform .4s var(--ease),opacity .3s}
.wa-float.is-quiet{transform:translateY(160%);opacity:0;pointer-events:none}
.wa-float__box{position:relative}
.wa-float__btn{position:relative;display:grid;place-items:center;width:3.75rem;height:3.75rem;border-radius:50%;background:var(--wa);color:var(--ink);list-style:none;cursor:pointer;box-shadow:0 14px 30px -10px rgba(11,27,63,.55),0 0 0 4px rgba(255,255,255,.92)}
.wa-float__btn::-webkit-details-marker{display:none}
.wa-float__btn .icon{width:1.75rem;height:1.75rem}
.wa-float__label{position:absolute;right:calc(100% + .9rem);top:50%;padding:.5rem .95rem;border-radius:999px;background:var(--ink);color:#fff;font:600 .88rem var(--font-display);white-space:nowrap;opacity:0;pointer-events:none;transform:translate(.5rem,-50%);transition:opacity .2s,transform .25s var(--ease)}
.wa-float__btn:focus-visible .wa-float__label{opacity:1;transform:translate(0,-50%)}
@media(hover:hover){.wa-float__btn:hover .wa-float__label{opacity:1;transform:translate(0,-50%)}}
.wa-float__box[open] .wa-float__label{display:none}
.wa-float__panel{position:absolute;right:0;bottom:calc(100% + .9rem);width:min(320px,calc(100vw - 36px));padding:1.1rem;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-lg)}
.wa-float__title{margin:0 0 .15rem;color:var(--ink);font:700 1.1rem var(--font-display)}
.wa-float__sub{margin:0 0 .7rem;color:var(--muted);font-size:.92rem}
.wa-float__link{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;padding:.8rem .95rem;border-radius:14px;background:var(--paper);color:var(--ink);font:600 1.02rem var(--font-display);text-decoration:none;transition:background-color .2s}
.wa-float__link .icon{color:var(--wa-ink)}
.wa-float__link .icon:last-child{width:1.05rem;height:1.05rem;margin-left:auto;color:var(--ink);transition:transform .2s}
.wa-float__link:hover{background:var(--wa);color:var(--ink)}
.wa-float__link:hover .icon{color:var(--ink)}
.wa-float__link:hover .icon:last-child{transform:translateX(3px)}
@media(prefers-reduced-motion:no-preference){.wa-float__box:not([open]) .wa-float__btn::before{content:"";position:absolute;inset:0;border:2px solid var(--wa);border-radius:50%;animation:wa-pulse 2.8s var(--ease) infinite}}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(1.55);opacity:0}}

/* ---------- artwork (inline SVG; colours follow the page through these classes) ---------- */
.art svg{width:100%;height:auto;overflow:visible}
.f-w{fill:var(--w)} .f-wi{fill:var(--w-ink)} .f-ws{fill:var(--w-soft)} .f-wd{fill:var(--w-deep)} .f-on{fill:var(--w-on)}
.f-ink{fill:var(--ink)} .f-navy{fill:var(--navy)} .f-white{fill:#fff} .f-paper{fill:var(--paper)} .f-paper2{fill:var(--paper-2)}
.f-gold{fill:var(--gold)} .f-goldl{fill:var(--gold-light)} .f-golds{fill:var(--gold-soft)}
.f-mute{fill:#C9CFDA} .f-line{fill:#E4E7ED} .f-shadow{fill:var(--ink);opacity:.12} .f-wa{fill:var(--wa)}
.f-c{fill:#00A3E0} .f-m{fill:#E6007E} .f-y{fill:#FFD400} .f-k{fill:#1F2430}
.s-w{stroke:var(--w)} .s-wi{stroke:var(--w-ink)} .s-ink{stroke:var(--ink)} .s-mute{stroke:#C9CFDA} .s-line{stroke:#D5DAE3} .s-gold{stroke:var(--gold)} .s-white{stroke:#fff} .s-c{stroke:#00A3E0} .s-m{stroke:#E6007E}
.t-d{font-family:var(--font-display);font-weight:700} .t-s{font-family:var(--font-serif);font-style:italic;font-weight:400} .t-m{font-family:var(--font-mono)} .t-b{font-family:var(--font-body)}
.pin__dot{fill:var(--ink);stroke:#fff;stroke-width:3}
.pin__n{fill:#fff;font-family:var(--font-display);font-weight:700;font-size:13px}

/* ---------- home ---------- */
.home-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,4vw,3rem)}
.home-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60rem 30rem at 85% 10%,rgba(229,164,23,.16),rgba(229,164,23,0) 60%),radial-gradient(40rem 30rem at 0% 100%,rgba(10,47,114,.06),rgba(10,47,114,0) 60%)}
.home-hero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1000px){.home-hero__grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:3rem}}
.home-hero__art{width:100%;max-width:640px;justify-self:center}
.factbar{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line-strong)}
.factbar li{display:flex;align-items:center;gap:.65rem;padding:1.15rem .25rem;color:var(--ink);font:500 1rem/1.3 var(--font-display)}
.factbar .icon{color:var(--gold-ink);stroke-width:2.6}
@media(min-width:900px){.factbar{grid-template-columns:repeat(4,minmax(0,1fr))}.factbar li+li{padding-left:1.4rem;border-left:1px solid var(--line)}}

.popular{display:grid;gap:1rem;margin-top:2.75rem}
.popular__label{margin:0;font:600 .7rem var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.popular__list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}
.popular__list a{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1rem .55rem .85rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 .95rem var(--font-display);text-decoration:none;transition:border-color .2s,transform .25s var(--ease)}
.popular__list a::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--dot)}
.popular__list a:hover{transform:translateY(-2px);border-color:var(--ink)}
.popular__more{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin:.6rem 0 0}

.process{overflow:hidden}
.process::after{content:"";position:absolute;left:50%;top:58%;width:110rem;height:30rem;margin-left:-55rem;border:1.5px solid rgba(229,164,23,.22);border-radius:50%;transform:rotate(-8deg);pointer-events:none}
.process__track{position:relative;z-index:1;list-style:none;display:grid;gap:2.75rem}
@media(min-width:900px){.process__track{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}}
.process__step{position:relative;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.2)}
.process__n{display:block;margin-bottom:1.5rem;color:var(--gold-light);font:600 .78rem var(--font-mono);letter-spacing:.14em}
.process__word{margin:0 0 1rem;color:#fff;font-size:clamp(2.6rem,1.3rem + 3.4vw,4.6rem);line-height:.95;letter-spacing:-.052em}
.process__step:nth-child(2) .process__word{color:var(--gold-light);font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.process__step p{max-width:32ch;margin:0;color:rgba(255,255,255,.72)}
@media(min-width:900px){.process__step:not(:last-child)::after{content:"\2192";position:absolute;top:-.85rem;right:-1.7rem;padding:0 .5rem;background:var(--night);color:var(--gold);font:400 1.2rem/1.4 var(--font-display)}}

.why__grid{display:grid;gap:2.5rem}
@media(min-width:1000px){.why__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);align-items:start;gap:4rem}.why__grid>.shead{position:sticky;top:calc(var(--header-h) + 2rem)}}
.why__tiles{display:grid;gap:1rem}
@media(min-width:640px){.why__tiles{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:2.5rem}.why__tile--2,.why__tile--4{transform:translateY(2.5rem)}}
.why__tile{display:flex;flex-direction:column;min-height:16rem;padding:clamp(1.5rem,3vw,2.2rem);border-radius:var(--r-lg);background:#fff}
.why__tile h3{margin:auto 0 .5rem;font-size:1.45rem}
.why__tile p{margin:0;color:var(--muted)}
.why__icon{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin-bottom:2.5rem;border-radius:50%;background:var(--paper);color:var(--ink)}
.why__tile--1{background:var(--ink)}
.why__tile--1 h3{color:#fff}
.why__tile--1 p{color:rgba(255,255,255,.74)}
.why__tile--1 .why__icon{background:var(--gold);color:var(--ink)}
.why__tile--2{background:var(--gold-soft)}
.why__tile--2 .why__icon{background:#fff}
.why__tile--3{border:1px solid var(--line)}
.why__tile--4{background:var(--navy-soft)}
.why__tile--4 .why__icon{background:#fff;color:var(--navy)}

.reach__grid{display:grid;gap:3rem;align-items:center}
@media(min-width:1000px){.reach__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}}
.reach__item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.1rem;padding-block:1.6rem;border-top:1px solid var(--line-strong)}
.reach__icon{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--gold-ink)}
.reach__item h3{margin:.3rem 0 .4rem;font-size:1.4rem}
.reach__item p{margin:0 0 .8rem;color:var(--muted)}
.reach__links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.reach__art{width:100%;max-width:560px;justify-self:center}
.radar__label{fill:var(--ink);font-family:var(--font-display);font-weight:600;font-size:15px;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.radar__label--a{fill:var(--gold-ink)}
.radar__ring{fill:var(--muted);font-family:var(--font-mono);font-weight:600;font-size:11px;letter-spacing:.2em;paint-order:stroke;stroke:#fff;stroke-width:4px}
.radar__home{fill:var(--ink);font-family:var(--font-serif);font-style:italic;font-size:32px;paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}
@media(prefers-reduced-motion:no-preference){.radar__pulse{transform-box:fill-box;transform-origin:center;animation:radar 3.2s var(--ease) infinite}}
@keyframes radar{0%{transform:scale(.5);opacity:.9}100%{transform:scale(2.6);opacity:0}}

.faqband__grid{display:grid;gap:2.5rem}
@media(min-width:1000px){.faqband__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);align-items:start;gap:5rem}.faqband__side{position:sticky;top:calc(var(--header-h) + 2rem)}}
.faqband__side .shead{margin-bottom:1.6rem}

/* ---------- service pages: shared ---------- */
.svc-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2rem,5vw,3.75rem) clamp(3rem,6vw,5rem);background:linear-gradient(180deg,var(--w-soft) 0,var(--paper) 92%)}
.svc-hero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1000px){.svc-hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3.5rem}}
.svc-hero__visual .art{max-width:520px;margin-inline:auto}

.overview{display:grid;gap:2rem}
@media(min-width:1000px){.overview{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:5rem}}
.overview .shead{margin-bottom:0}
.audience{margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.audience h3{margin:0 0 1rem;color:var(--muted);font:600 .72rem/1.4 var(--font-mono);letter-spacing:.15em;text-transform:uppercase}
.audience ul{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem}
.audience li{padding:.45rem .95rem;border-radius:999px;background:var(--w-soft);color:var(--w-ink);font:500 .95rem var(--font-display)}

.offers{list-style:none;display:grid;border-top:1px solid var(--line-strong)}
@media(min-width:760px){.offers{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}}
@media(min-width:1100px){.offers{grid-template-columns:repeat(3,minmax(0,1fr))}}
.offer{padding:1.6rem 0 1.8rem;border-bottom:1px solid var(--line)}
.offer__n{display:block;margin-bottom:1rem;color:var(--w-ink);font:600 .76rem var(--font-mono);letter-spacing:.1em}
.offer h3{margin-bottom:.45rem;font-size:1.3rem}
.offer p{margin:0;color:var(--muted)}

.how{display:grid;gap:2.5rem}
@media(min-width:1000px){.how{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);align-items:start;gap:5rem}}
.brief{padding:clamp(1.5rem,3vw,2.2rem);border-radius:var(--r-lg);background:var(--ink);color:rgba(255,255,255,.8)}
@media(min-width:1000px){.brief{position:sticky;top:calc(var(--header-h) + 2rem)}}
.brief h3{color:#fff;font-size:1.45rem}
.brief .ticks{margin:1rem 0 1.6rem}
.brief .ticks .icon{color:var(--gold-light)}
.brief .btn{--bg:#fff;--fg:var(--ink);--bd:#fff}
.brief .btn:hover{--bg:var(--gold-light);--bd:var(--gold-light)}

.siblings{margin-top:2.75rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.siblings__label{margin:0 0 1rem;color:var(--muted);font:600 .7rem var(--font-mono);letter-spacing:.15em;text-transform:uppercase}
.siblings ul{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem}
.siblings a{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .9rem .42rem .65rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 .9rem var(--font-display);text-decoration:none;transition:border-color .2s}
.siblings a::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--dot)}
.siblings a:hover{border-color:var(--ink)}
.siblings a[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.after-links{display:flex;flex-wrap:wrap;gap:.6rem 1.8rem;margin-top:1.8rem}

/* ---------- other pages ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2rem,5vw,3.75rem) clamp(3rem,6vw,5.5rem)}
.page-hero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1000px){.page-hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:4rem}}

/* services index */
.idx-map{display:grid;gap:1.2rem;justify-items:center}
.idx-map__dots{display:grid;grid-template-columns:repeat(9,1fr);gap:clamp(.45rem,1.1vw,.75rem);width:min(100%,420px)}
.idx-map__dots i{aspect-ratio:1;border-radius:50%;background:var(--dot);box-shadow:0 6px 12px -8px var(--dot);transition:transform .3s var(--ease)}
.idx-map__dots i:nth-child(7n+3){border-radius:30%}
.idx-map__dots:hover i{transform:scale(.85)}
.idx-map__dots i:hover{transform:scale(1.25)}
.idx-map__count{max-width:30ch;margin:0;color:var(--muted);text-align:center;font-size:.98rem}
.idx-map__count strong{color:var(--ink);font:700 1.4rem var(--font-display);letter-spacing:-.02em}
.directory{columns:1;column-gap:2.5rem}
@media(min-width:640px){.directory{columns:2}}
@media(min-width:1000px){.directory{columns:3}}
.dir{break-inside:avoid;margin-bottom:2.2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.16)}
.dir__head{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;font-size:1.25rem}
.dir__head a{color:#fff;text-decoration:none}
.dir__head a:hover{text-decoration:underline;text-underline-offset:.25em}
.dir__dot{flex:none;width:.7rem;height:.7rem;border-radius:50%;background:var(--w)}
.dir__list{list-style:none;display:grid;gap:.15rem}
.dir__list a{display:block;padding:.3rem 0 .3rem 1.3rem;color:rgba(255,255,255,.72);text-decoration:none;font-size:.97rem}
.dir__list a:hover{color:#fff;text-decoration:underline;text-underline-offset:.25em}
.matcher{list-style:none;border-top:1px solid var(--line-strong)}
.matcher__row{display:grid;gap:.7rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--line-strong)}
.matcher__goal{display:flex;align-items:baseline;gap:1rem;color:var(--ink);font:600 clamp(1.15rem,1rem + .6vw,1.5rem)/1.25 var(--font-display);letter-spacing:-.02em}
.matcher__n{flex:none;color:var(--muted);font:500 .76rem var(--font-mono)}
.matcher__arrow{display:none;color:var(--gold-ink)}
.matcher__links{display:flex;flex-wrap:wrap;gap:.45rem}
.matcher__links a{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .95rem .45rem .75rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 .95rem var(--font-display);text-decoration:none;transition:border-color .2s,transform .25s var(--ease)}
.matcher__links a::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--dot)}
.matcher__links a:hover{transform:translateY(-2px);border-color:var(--ink)}
@media(min-width:900px){.matcher__row{grid-template-columns:minmax(0,1fr) auto minmax(0,1.1fr);gap:1.5rem}.matcher__arrow{display:block}}

/* location pages */
.hub-hero__art{width:100%;max-width:600px;justify-self:center}
.map__label{fill:var(--ink);font-family:var(--font-display);font-weight:600;font-size:15px;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.map__home{fill:var(--ink);font-family:var(--font-serif);font-style:italic;font-size:34px;paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}
.map__note{fill:var(--muted);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.2em;paint-order:stroke;stroke:#fff;stroke-width:4px}
.map__river{stroke:#7FB2E5;stroke-width:14;stroke-linecap:round;opacity:.45}
.map__river-label{fill:#3D6E9E;font-family:var(--font-serif);font-style:italic;font-size:18px}
@media(prefers-reduced-motion:no-preference){.map__pulse{transform-box:fill-box;transform-origin:center;animation:radar 3.2s var(--ease) infinite}}
.hub-talk{margin-top:2.2rem;padding:clamp(1.4rem,3vw,2rem);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
.hub-talk__title{margin:0 0 .3rem;color:var(--ink);font:700 1.35rem var(--font-display);letter-spacing:-.02em}
.hub-talk__text{margin:0 0 1.2rem;color:var(--muted)}
.hub-talk__nums{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.hub-talk__mail{display:flex;align-items:center;gap:.55rem;margin:1rem 0 0;overflow-wrap:anywhere}
.hub-talk__mail .icon{color:var(--w-ink)}
.hub-how{list-style:none;display:grid;gap:2rem}
@media(min-width:760px){.hub-how{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.hub-how{grid-template-columns:repeat(4,minmax(0,1fr))}}
.hub-how li{padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.2)}
.hub-how__n{display:block;margin-bottom:1.6rem;color:var(--gold-light);font:600 .78rem var(--font-mono);letter-spacing:.14em}
.hub-how h3{margin-bottom:.5rem;font-size:1.35rem}
.hub-how p{margin:0;color:rgba(255,255,255,.72)}
.who{list-style:none;display:grid;border-top:1px solid var(--line-strong)}
@media(min-width:760px){.who{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}}
@media(min-width:1100px){.who{grid-template-columns:repeat(3,minmax(0,1fr))}}
.who__item{padding:1.6rem 0 1.8rem;border-bottom:1px solid var(--line)}
.who__n{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;margin-bottom:1rem;border-radius:50%;background:var(--w);color:var(--w-on);font:700 .8rem var(--font-display)}
.who__item h3{margin-bottom:.4rem;font-size:1.25rem}
.who__item p{margin:0;color:var(--muted)}
.chips--big li{padding:.6rem 1.15rem;background:#fff;font-size:1.05rem}
.hub-elsewhere{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line-strong)}
.hub-elsewhere .siblings__label{margin:0 0 .2rem}
.reasons{list-style:none;display:grid;gap:1rem}
@media(min-width:700px){.reasons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.reasons{grid-template-columns:repeat(4,minmax(0,1fr))}}
.reasons li{position:relative;padding:1.8rem 1.6rem;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
.reasons__n{display:block;margin-bottom:2rem;color:var(--w);font:400 3.4rem/.8 var(--font-serif);font-style:italic}
.reasons h3{margin-bottom:.45rem;font-size:1.25rem}
.reasons p{margin:0;color:var(--muted)}

/* about */
.about-mark{position:relative;width:min(100%,460px);aspect-ratio:1;justify-self:center}
.about-mark__orbit{position:absolute;inset:4% -6%;border:2px solid var(--gold);border-radius:50%;transform:rotate(-22deg)}
.about-mark__disc{position:absolute;inset:16%;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 40px 70px -35px rgba(11,27,63,.45),0 0 0 14px rgba(255,255,255,.5)}
.about-mark__disc img{width:68%}
.about-mark__word{position:absolute;padding:.5rem 1rem;border-radius:999px;background:var(--ink);color:#fff;font:600 .95rem var(--font-display);white-space:nowrap;box-shadow:var(--shadow)}
.about-mark__word--1{left:-2%;top:16%;transform:rotate(-6deg)}
.about-mark__word--2{right:-4%;top:42%;background:var(--gold);color:var(--ink);font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.25rem;transform:rotate(5deg)}
.about-mark__word--3{left:8%;bottom:8%;background:#fff;color:var(--ink);border:1px solid var(--line);transform:rotate(-3deg)}
.about-logo{width:min(100%,260px);margin:2rem 0 0;padding:1rem;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
.values{list-style:none;display:grid;border-top:1px solid var(--line-strong)}
@media(min-width:800px){.values{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4rem}}
.values__item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.2rem;padding:2rem 0;border-bottom:1px solid var(--line)}
.values__n{grid-row:span 3;color:var(--gold-ink);font:400 3rem/.9 var(--font-serif);font-style:italic}
.values__icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;margin-bottom:.9rem;border-radius:50%;background:var(--paper-2);color:var(--ink)}
.values__item h3{margin-bottom:.4rem;font-size:1.35rem}
.values__item p{margin:0;color:var(--muted)}
.about-places{list-style:none;display:grid;gap:.8rem;margin-top:2rem}
.about-places .icon{width:1.1rem;height:1.1rem;color:var(--gold-ink)}

/* contact */
.contact-hero__head{max-width:46rem}
.contact-board{display:grid;gap:1rem;margin-top:1rem}
@media(min-width:700px){.contact-board{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-board>:last-child:nth-child(odd){grid-column:1/-1}}
@media(min-width:1100px){.contact-board{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.contact-board>:last-child:nth-child(odd){grid-column:auto}}
.cboard{position:relative;display:flex;flex-direction:column;min-height:13rem;padding:1.5rem;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;color:var(--ink);text-decoration:none;transition:transform .3s var(--ease),border-color .2s,background-color .2s}
a.cboard:hover{transform:translateY(-4px);border-color:var(--ink);color:var(--ink)}
.cboard__icon{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin-bottom:auto;border-radius:50%;background:var(--paper-2);color:var(--ink)}
.cboard__icon .icon{width:1.5rem;height:1.5rem}
.cboard--wa .cboard__icon{background:var(--wa)}
.cboard--wa:first-child{background:var(--ink);border-color:var(--ink);color:#fff}
.cboard--wa:first-child:hover{background-color:var(--navy);color:#fff}
.cboard--wa:first-child .cboard__label{color:rgba(255,255,255,.65)}
.cboard__label{margin-top:1.6rem;color:var(--muted);font:600 .68rem var(--font-mono);letter-spacing:.15em;text-transform:uppercase}
.cboard__value{margin-top:.35rem;font:600 1.35rem/1.2 var(--font-display);letter-spacing:-.015em;overflow-wrap:anywhere}
.cboard__go{position:absolute;top:1.5rem;right:1.5rem;display:grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid currentColor;border-radius:50%;opacity:.5;transition:transform .3s var(--ease),opacity .2s}
.cboard__go .icon{width:1rem;height:1rem}
a.cboard:hover .cboard__go{opacity:1;transform:rotate(-45deg)}
.cboard--place{background:var(--paper-2)}
.contact-grid{display:grid;gap:3rem}
@media(min-width:1000px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:5rem}}
.include{list-style:none;display:grid;gap:.9rem;margin-bottom:2rem}
.include li{display:flex;align-items:baseline;gap:1rem;color:var(--ink);font:500 1.2rem/1.35 var(--font-display);letter-spacing:-.01em}
.include__n{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--gold);color:var(--ink);font:700 .8rem var(--font-display);transform:translateY(-.15rem)}
.compose{padding:clamp(1.5rem,3vw,2.2rem);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.compose__title{margin-bottom:.5rem;font-size:1.6rem;letter-spacing:-.025em}
.compose__text{margin-bottom:1.4rem;color:var(--muted)}
.compose__fine{margin:1rem 0 0;color:var(--muted);font-size:.9rem}
.field{display:grid;gap:.4rem;margin-bottom:1rem}
.field label{color:var(--ink);font:600 .95rem var(--font-display)}
.field input,.field select,.field textarea{width:100%;min-height:3.25rem;padding:.8rem 1rem;border:1.5px solid #CBD1DD;border-radius:14px;background:var(--paper);color:var(--ink);font:inherit}
.field textarea{min-height:8rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(229,164,23,.45);border-color:var(--gold-ink);background:#fff}
.form__actions{display:grid;gap:.6rem;margin-top:.4rem}
html:not(.js) .form__actions{display:none}

/* 404 */
.nf-art{display:flex;align-items:center;justify-content:center;gap:.06em;color:var(--ink);font:700 clamp(7rem,4rem + 14vw,15rem)/1 var(--font-display);letter-spacing:-.06em}
.nf-art__o{position:relative;width:.72em;height:.72em;border-radius:50%;background:var(--gold)}
.nf-art__o::after{content:"";position:absolute;inset:-.14em -.4em;border:.02em solid var(--ink);border-radius:50%;transform:rotate(-22deg)}

/* ---------- founder ---------- */
.founder__grid{display:grid;gap:3rem;align-items:center}
@media(min-width:1000px){.founder__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4.5rem}}
.founder .shead{margin-bottom:1.6rem}
.founder .shead h2{max-width:15ch}
.founder__name{color:var(--gold-ink);font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.band--ink .founder__name{color:var(--gold-light)}
.founder__lead{color:var(--ink);font:500 clamp(1.15rem,1rem + .6vw,1.45rem)/1.45 var(--font-display);letter-spacing:-.01em}
.band--ink .founder__lead{color:#fff}
.founder__copy>p{max-width:56ch}
.founder__sig{margin:1.2rem 0 1.6rem;color:var(--gold-ink);font:400 clamp(2.8rem,2rem + 2.4vw,4rem)/1 var(--font-serif);font-style:italic;transform:rotate(-4deg);transform-origin:left center}
.band--ink .founder__sig{color:var(--gold-light)}
.founder--about .founder__copy>p:not(.founder__lead):not(.founder__sig){color:rgba(255,255,255,.78)}
.mastered{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:1.8rem 0 0}
.mastered a{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .9rem .42rem .7rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#fff;font:500 .92rem var(--font-display);text-decoration:none;transition:background-color .2s,border-color .2s}
.mastered a::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--dot)}
.mastered a:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.55);color:#fff}

/* her photo on a designed backdrop: gold arch with turning rays, an orbit ring around her, services floating */
.fv{position:relative;width:100%;max-width:540px;margin:0;justify-self:center}
.fv--hero{max-width:560px}
.fv__stage{position:relative;aspect-ratio:10/11;clip-path:inset(-60% -60% 0 -60%)}
.fv__halo{position:absolute;z-index:1;left:20%;width:72%;top:-20%;aspect-ratio:1;border:1.5px dashed rgba(10,47,114,.32);border-radius:50%}
.fv__arch{position:absolute;left:15%;right:15%;top:2%;bottom:0;overflow:hidden;border-radius:999px 999px 0 0;background:radial-gradient(120% 80% at 58% 0%,var(--gold-light),var(--gold) 55%,#C98B0C)}
.fv__arch::before{content:"";position:absolute;left:58.6%;top:7%;width:300%;aspect-ratio:1;translate:-50% -50%;background:repeating-conic-gradient(rgba(255,255,255,.22) 0 7deg,rgba(255,255,255,0) 7deg 20deg)}
.fv__arch::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(11,27,63,.2) 1.2px,rgba(0,0,0,0) 1.5px);background-size:16px 16px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 30%,#000);mask-image:linear-gradient(180deg,rgba(0,0,0,0) 30%,#000)}
.fv__ring{position:absolute;left:4%;right:4%;top:55%;height:19%;border:3px solid var(--navy);border-radius:50%;transform:rotate(-12deg)}
.fv__ring--back{z-index:1;opacity:.9}
.fv__ring--front{z-index:3;clip-path:inset(50% -3% -3% -3%)}
.fv__photo{position:absolute;z-index:2;left:0;right:0;bottom:-4%;display:block;width:fit-content;height:92%;margin-inline:auto;filter:drop-shadow(0 26px 30px rgba(11,27,63,.28))}
.fv__photo img{width:auto;height:100%}
.fv__spark{position:absolute;z-index:4;width:22px;height:22px;background:var(--navy);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.fv__spark--1{left:9%;top:3%}
.fv__spark--2{right:3%;top:-12%;width:15px;height:15px;background:var(--gold)}
.fv__spark--3{left:6%;bottom:34%;width:13px;height:13px;background:var(--gold)}
.fv__spark--4{right:8%;bottom:18%;width:18px;height:18px}
.fv__chips{position:absolute;inset:0;z-index:4;list-style:none;pointer-events:none}
.fv__chips li{position:absolute;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .78rem .4rem .58rem;border-radius:999px;background:#fff;color:var(--ink);font:600 .78rem/1.2 var(--font-display);white-space:nowrap;box-shadow:0 12px 26px -12px rgba(11,27,63,.5)}
.fv__chips li::before{content:"";flex:none;width:.55rem;height:.55rem;border-radius:50%;background:var(--dot)}
.fv__chips li:nth-child(1){left:-9%;top:17%}
.fv__chips li:nth-child(2){right:-6%;top:9%}
.fv__chips li:nth-child(3){left:-14%;top:32%}
.fv__chips li:nth-child(4){right:-10%;top:23%}
.fv__chips li:nth-child(5){left:-8%;top:47%}
.fv__chips li:nth-child(6){right:-6%;top:37%}
.fv__chips li:nth-child(7){left:-13%;top:62%}
.fv__chips li:nth-child(8){right:-10%;top:51%}
.fv__chips li:nth-child(9){left:-9%;top:77%}
.fv__chips li:nth-child(10){right:-6%;top:65%}
.fv__chips li:nth-child(11){right:-9%;top:79%}
.fv--hero{margin-top:4.5rem}
@media(min-width:1000px){.founder .fv{margin-top:2rem}}
@media(max-width:999px){.page-hero .fv{margin-top:3.5rem}}
.fv__tag{position:absolute;z-index:5;left:3%;bottom:5%;display:grid;gap:.2rem;padding:.8rem 1.15rem;border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.fv__name{color:var(--ink);font:400 1.35rem/1.1 var(--font-serif);font-style:italic}
.fv__role{color:var(--muted);font:600 .62rem var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
@media(max-width:639px){
  .fv{display:flex;flex-direction:column}
  .fv__tag{order:1;position:relative;left:auto;bottom:auto;width:max-content;max-width:100%;margin:-2.2rem auto 0}
  .fv__stage{margin-top:3.5rem}
  .fv__chips{order:2;position:static;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem .5rem;margin-top:1.4rem}
  .fv__chips li{position:static;font-size:.74rem}
}

.footer-founder{display:flex;align-items:center;gap:.8rem;margin:1.4rem 0 0;font-size:.9rem;line-height:1.35}
.footer-founder img{flex:none;width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 2px var(--gold)}
.footer-founder a{color:#fff;font-weight:600;text-decoration:none}
.footer-founder a:hover{text-decoration:underline;text-underline-offset:.25em}

/* the founder's engraved portrait: a small engraved "stamp" tucked into the bottom-right corner of the founder
   sections (on phones it lines up with the content edge instead) */
.founder .engraving{position:absolute;z-index:-1;right:0;bottom:0;width:auto;height:min(30%,17rem);max-width:none;opacity:.32;pointer-events:none;-webkit-user-select:none;user-select:none}
.founder.band--leaf:has(.engraving)::after{display:none}
@media(max-width:999px){.founder .engraving{right:var(--gutter);height:10rem;opacity:.26}}

/* ---------- moving band of services (home) ---------- */
.ticker{position:relative;overflow:hidden;padding-block:1.15rem;background:var(--ink);color:#fff}
.ticker__track{display:flex;width:max-content}
.ticker ul{list-style:none;display:flex;flex:none;gap:2.75rem;padding-right:2.75rem}
.ticker li{display:inline-flex;align-items:center;gap:1rem;font:600 clamp(1.3rem,1rem + 1.4vw,2.2rem)/1.15 var(--font-display);letter-spacing:-.03em;white-space:nowrap}
.ticker li::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--dot);box-shadow:0 0 0 .18em color-mix(in srgb,var(--dot) 30%,transparent)}
.ticker li:nth-child(even){color:var(--gold-light);font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}

/* ---------- scroll progress (header) ---------- */
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--gold),var(--w));transform:scaleX(var(--progress,0));transform-origin:left center}

/* ---------- note patterns ----------
   Four background patterns redrawn from the ₦500 note (_build/patterns.php writes the --pat-* tiles at the top
   of this file). Each has one job, so the site stays calm:
     lattice    the paper behind the top of every page
     guilloché  value and trust: the WhatsApp band, "How it works", the founder's ring, panels of cards
     palm leaf  people and places: the founder sections and every "Where we work" section
     microprint identity: the navy bands, the footer and a fine line along the top of lists */

/* 1. the top of each page: the paper lattice on the home page; every other page has its own pattern (--hero-pat,
      written into the page by layout.php from hero_pattern() in lib.php). A clear "watermark window" behind the text,
      as on the note, and a fade at the bottom. */
.home-hero,.page-hero{background-color:var(--paper);background-image:linear-gradient(180deg,rgba(247,244,237,0) 50%,var(--paper) 97%),radial-gradient(42rem 30rem at 24% 46%,rgba(247,244,237,.88),rgba(247,244,237,0) 72%),var(--hero-pat,var(--pat-lattice));background-size:100% 100%,100% 100%,var(--hero-pat-size,45px 55px)}
.svc-hero{background-image:linear-gradient(180deg,rgba(247,244,237,0) 46%,var(--paper) 97%),radial-gradient(42rem 30rem at 24% 46%,color-mix(in srgb,var(--w-soft) 80%,transparent),rgba(247,244,237,0) 72%),var(--hero-pat,var(--pat-lattice)),linear-gradient(180deg,var(--w-soft) 0,var(--paper) 92%);background-size:100% 100%,100% 100%,var(--hero-pat-size,45px 55px),100% 100%}
@media(max-width:999px){
  /* one column on phones: the text runs edge to edge, so the paper is a little quieter everywhere */
  .home-hero,.page-hero{background-image:linear-gradient(180deg,rgba(247,244,237,0) 50%,var(--paper) 97%),linear-gradient(rgba(247,244,237,.5),rgba(247,244,237,.5)),var(--hero-pat,var(--pat-lattice))}
  .svc-hero{background-image:linear-gradient(180deg,rgba(247,244,237,0) 46%,var(--paper) 97%),linear-gradient(rgba(247,244,237,.42),rgba(247,244,237,.42)),var(--hero-pat,var(--pat-lattice)),linear-gradient(180deg,var(--w-soft) 0,var(--paper) 92%)}
}

/* 2. the guilloché mesh and ring */
.band--mesh{background-image:var(--pat-mesh);background-size:120px 24px}
.band--ink.process{background-image:var(--pat-mesh-ink);background-size:120px 24px}
.cta__mesh{position:absolute;z-index:-1;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.3),#000 70%);mask-image:linear-gradient(90deg,rgba(0,0,0,.3),#000 70%)}
.cta__mesh i{position:absolute;top:0;bottom:0;left:0;width:calc(100% + 120px);background:var(--pat-mesh-ink) 0 0/120px 24px}
.cta__ring{display:none}
@supports ((-webkit-mask-image:url("")) or (mask-image:url(""))){
  .cta__ring{display:block;position:absolute;z-index:-1;right:-8rem;top:50%;width:38rem;height:38rem;margin-top:-19rem;background:var(--gold);opacity:.34;-webkit-mask:var(--pat-ring) center/contain no-repeat;mask:var(--pat-ring) center/contain no-repeat}
  .fv__halo{border:0;border-radius:0;background:var(--gold-ink);opacity:.42;-webkit-mask:var(--pat-ring) center/contain no-repeat;mask:var(--pat-ring) center/contain no-repeat}
  .band--ink .fv__halo{background:var(--gold-light)}
}
@media(max-width:959px){.cta__ring{right:-12rem;top:auto;bottom:-14rem;margin-top:0;width:30rem;height:30rem}}

/* 3. the palm leaf, climbing up both sides of a section */
.band--leaf{isolation:isolate;overflow:hidden;overflow:clip}
.band--leaf::before,.band--leaf::after{content:"";position:absolute;z-index:-1;top:0;bottom:-100px;width:135px;background:var(--leaf-tile,var(--pat-leaf)) 0 0/90px 100px;pointer-events:none}
.band--leaf::before{left:0;-webkit-mask-image:linear-gradient(90deg,#000 35%,rgba(0,0,0,0));mask-image:linear-gradient(90deg,#000 35%,rgba(0,0,0,0))}
.band--leaf::after{right:0;-webkit-mask-image:linear-gradient(270deg,#000 35%,rgba(0,0,0,0));mask-image:linear-gradient(270deg,#000 35%,rgba(0,0,0,0))}
.band--ink.band--leaf{--leaf-tile:var(--pat-leaf-ink)}
@media(min-width:1300px){.band--leaf::before,.band--leaf::after{width:200px}}
@media(max-width:760px){.band--leaf::before,.band--leaf::after{width:44px;opacity:.55}}

/* 5. section patterns: every other section has one too, so no part of a page is plain (classes set in the templates) */
.band--sprig{background-image:var(--pat-sprig);background-size:var(--pat-sprig-size)}
.band--rosettes{background-image:var(--pat-rosettes);background-size:var(--pat-rosettes-size)}
.band--waves{background-image:var(--pat-waves);background-size:var(--pat-waves-size)}
.band--herring{background-image:var(--pat-herring);background-size:var(--pat-herring-size)}
.band--micro-light{background-image:var(--pat-micro-light);background-size:var(--pat-micro-light-size)}

/* 4. the microprint */
.ticker{background-image:var(--pat-micro-ink);background-size:66px 16px}
.band--micro,.brief,.why__tile--1,.cboard--wa:first-child{background-image:var(--pat-micro-soft);background-size:66px 16px}
.site-footer::before{content:"";display:block;width:calc(100% + 66px);height:16px;background:var(--pat-micro-ink) 0 0/66px 16px;box-shadow:0 -1px 0 rgba(255,255,255,.08),0 1px 0 rgba(255,255,255,.08)}
.srows,.qa{position:relative;border-top:0}
.srows::before,.qa::before{content:"";position:absolute;left:0;right:0;top:-4px;height:8px;background:var(--pat-micro-rule) 0 0/66px 8px repeat-x;pointer-events:none}

/* ---------- our work (portfolio) ----------
   Galleries are built by work_gallery() in _build/lib.php from _build/content/work.php. */
.band--work{background-color:var(--paper);background-image:linear-gradient(rgba(247,244,237,.5),rgba(247,244,237,.5)),var(--pat-lattice);background-size:100% 100%,45px 55px}
.wkgrid{list-style:none;margin:0;padding:0}
.wk figure{margin:0}
.wk__open{position:relative;display:block;overflow:hidden;border-radius:14px;background:var(--wk-bg,#E6DECD);box-shadow:0 1px 2px rgba(11,27,63,.08),0 14px 28px -18px rgba(11,27,63,.45);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.wk__open img{display:block;width:100%;height:auto;transition:transform .7s var(--ease)}
.wk__open:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(11,27,63,.08),0 26px 40px -20px rgba(11,27,63,.55)}
.wk__open:hover img{transform:scale(1.035)}
.wk__open:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wk__zoom{position:absolute;right:.6rem;top:.6rem;display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);box-shadow:var(--shadow-sm);opacity:0;transform:scale(.75);transition:opacity .25s,transform .3s var(--ease)}
.wk__zoom .icon{width:1.05rem;height:1.05rem}
.wk__open:hover .wk__zoom,.wk__open:focus-visible .wk__zoom{opacity:1;transform:none}
@media(hover:none){.wk__zoom{opacity:.9;transform:none;width:2rem;height:2rem}}
.wk__tag{position:absolute;left:.6rem;top:.6rem;z-index:1;padding:.25rem .6rem;border-radius:999px;background:var(--ink);color:#fff;font:600 .64rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;box-shadow:0 4px 10px -4px rgba(0,0,0,.4)}
.wk__cap{display:grid;gap:.05rem;padding:.6rem .2rem 0;line-height:1.3}
.wk__cap strong{color:var(--ink);font:600 .9rem/1.3 var(--font-display)}
.wk__cap span{color:var(--muted);font-size:.82rem}
.band--ink .wk__cap strong{color:#fff}
.band--ink .wk__cap span{color:rgba(255,255,255,.66)}

/* mixed sizes, top to bottom in columns */
.wkgrid--masonry{columns:3 230px;column-gap:1.1rem}
@media(min-width:1100px){.wkgrid--masonry{columns:4}}
@media(max-width:640px){.wkgrid--masonry{columns:2;column-gap:.7rem}}
.wkgrid--masonry>.wk{break-inside:avoid;margin:0 0 1.3rem}
@media(max-width:640px){.wkgrid--masonry>.wk{margin-bottom:.9rem}.wk__cap strong{font-size:.84rem}.wk__cap span{font-size:.78rem}}

/* logos: square tiles on each logo's own background colour */
.wkgrid--logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.1rem 1rem}
@media(max-width:640px){.wkgrid--logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem .6rem}}
.wk--logos .wk__open{display:grid;place-items:center;aspect-ratio:1;padding:7%;background:var(--wk-edge,#fff)}
.wk--logos .wk__open img{width:100%;height:100%;object-fit:contain}
.wkgrid--logos .wk__cap span{display:none}
.wkgrid--logos .wk__cap strong{font-size:.8rem;line-height:1.25}

/* videos: phone-shaped cards (scroll sideways on phones) */
.wk__media{position:relative;overflow:hidden;aspect-ratio:var(--wk-ratio,9/16);border-radius:18px;background:var(--wk-bg,#0B1B3F);box-shadow:0 14px 30px -18px rgba(11,27,63,.6)}
.wk__media video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
.wk__dur{position:absolute;right:.6rem;bottom:.6rem;padding:.18rem .55rem;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font:600 .7rem/1.3 var(--font-mono);pointer-events:none}
.wk__play{position:absolute;inset:0;display:grid;place-items:center;padding:0;border:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.35));cursor:pointer}
.wk__play span{display:grid;place-items:center;width:4.2rem;height:4.2rem;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .3s var(--ease)}
.wk__play span .icon{width:1.6rem;height:1.6rem;margin-left:.2rem}
.wk__play:hover span,.wk__play:focus-visible span{transform:scale(1.1)}
.wk--playing .wk__play,.wk--playing .wk__dur,.wk--playing .wk__tag{display:none}
.wkgrid--reels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,72vw);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.2rem .1rem .9rem;scrollbar-width:thin}
.wkgrid--reels>.wk{scroll-snap-align:start}
.wkgrid--reels .wk__media{border:5px solid #0B1B3F;border-radius:26px}
.band--ink .wkgrid--reels .wk__media{border-color:#1D2A4A}
@media(min-width:700px){.wkgrid--reels{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(220px,300px));overflow:visible;scroll-snap-type:none}}

/* one row of pieces at the same height (brand sets) */
.wkgrid--strip{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x proximity;padding:.2rem .1rem .8rem;scrollbar-width:thin}
.wkgrid--strip>.wk{flex:none;scroll-snap-align:start;max-width:min(78vw,420px)}
.wkgrid--strip .wk__open img{width:auto;height:200px;max-width:min(78vw,420px);object-fit:cover}
.wkgrid--strip .wk--logos .wk__open{aspect-ratio:auto;padding:12px}
.wkgrid--strip .wk--logos .wk__open img{height:176px}
.wkgrid--strip .wk__media{height:200px}
.wkgrid--strip .wk__cap{max-width:220px}
.bsets{display:grid;gap:2.2rem}
.bset{display:grid;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--line-strong)}
@media(min-width:900px){.bset{grid-template-columns:220px minmax(0,1fr);gap:2rem}}
.bset__head h3{margin:0 0 .3rem;font-size:1.4rem}
.bset__head p{margin:0;color:var(--muted);font:600 .7rem var(--font-mono);letter-spacing:.14em;text-transform:uppercase}

.work-more{margin:2.2rem 0 0}
.work-more .btn{gap:.65rem}
.work-more__n{padding:.15rem .55rem;border-radius:999px;background:var(--paper-2);color:var(--ink);font:600 .72rem var(--font-mono)}
.btn--line:hover .work-more__n{background:rgba(255,255,255,.16);color:#fff}
.founder__work{margin:1.6rem 0 0}
.founder__work .btn{gap:.6rem}
.idx-work{margin:-.6rem 0 1.4rem}

/* the Our work page */
.work-collage{position:relative;width:min(100%,520px);aspect-ratio:1/1.08;justify-self:center}
.work-collage__item{position:absolute;width:42%;overflow:hidden;border:6px solid #fff;border-radius:14px;background:var(--wk-bg);box-shadow:0 30px 50px -26px rgba(11,27,63,.55)}
.work-collage__item img{display:block;width:100%;height:auto}
.work-collage__item--1{left:0;top:4%;rotate:-7deg}
.work-collage__item--2{right:3%;top:0;rotate:5deg}
.work-collage__item--3{left:29%;top:31%;z-index:2;width:44%;rotate:-2deg}
.work-collage__item--4{left:2%;bottom:0;width:38%;rotate:5deg}
.work-collage__item--5{right:0;bottom:5%;rotate:-5deg}
.work-index{position:sticky;top:var(--header-h);z-index:40;background:rgba(247,244,237,.96);border-block:1px solid var(--line)}
.work-index ul{list-style:none;display:flex;gap:.5rem;margin:0;padding:.65rem 0;overflow-x:auto;scrollbar-width:none}
.work-index ul::-webkit-scrollbar{display:none}
.work-index a{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .45rem .4rem .95rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:500 .9rem var(--font-display);text-decoration:none;white-space:nowrap;transition:border-color .2s}
.work-index a:hover{border-color:var(--ink)}
.work-index b{display:grid;place-items:center;min-width:1.8rem;height:1.8rem;padding:0 .45rem;border-radius:999px;background:var(--paper-2);font:700 .72rem var(--font-mono)}
html:has(.work-index){scroll-padding-top:calc(var(--header-h) + 76px)}

/* the viewer (a <dialog> made by main.js) */
.lightbox{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(5,10,24,.95);color:#fff;overflow:hidden}
.lightbox::backdrop{background:rgba(5,10,24,.7)}
.lightbox__fig{position:absolute;inset:3.8rem 4.6rem 4.4rem;display:flex;align-items:center;justify-content:center;margin:0;overflow:hidden}
.lightbox__img{display:block;flex:0 1 auto;min-width:0;min-height:0;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.5);background:rgba(255,255,255,.04)}
.lightbox__cap{position:absolute;left:4.6rem;right:4.6rem;bottom:1.3rem;margin:0;text-align:center;color:rgba(255,255,255,.9);font:500 .98rem/1.35 var(--font-display)}
.lightbox__count{position:absolute;left:1.3rem;top:1.25rem;margin:0;color:rgba(255,255,255,.7);font:600 .74rem var(--font-mono);letter-spacing:.14em}
.lightbox__btn{position:absolute;display:grid;place-items:center;width:3rem;height:3rem;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background-color .2s}
.lightbox__btn:hover{background:rgba(255,255,255,.2)}
.lightbox__btn .icon{width:1.3rem;height:1.3rem}
.lightbox__close{right:1rem;top:.75rem}
.lightbox__prev{left:1rem;top:50%;margin-top:-1.5rem}
.lightbox__prev .icon{transform:rotate(180deg)}
.lightbox__next{right:1rem;top:50%;margin-top:-1.5rem}
@media(max-width:700px){
  .lightbox__fig{inset:3.6rem .6rem 7.4rem}
  .lightbox__cap{left:1rem;right:1rem;bottom:4.9rem;font-size:.9rem}
  .lightbox__prev,.lightbox__next{top:auto;bottom:1rem;margin:0}
  .lightbox__prev{left:calc(50% - 3.6rem)}
  .lightbox__next{right:calc(50% - 3.6rem)}
}
body.lb-open{overflow:hidden}

/* ---------- motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
@keyframes grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes twinkle{0%,100%{opacity:.35;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1) rotate(90deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes drop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
@keyframes ring-wobble{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(-7deg)}}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}
@keyframes flow{to{stroke-dashoffset:-40}}
@keyframes print{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes drift-mesh{to{transform:translateX(-120px)}}
@keyframes drift-micro{to{transform:translateX(-66px)}}
@keyframes climb{to{transform:translateY(-100px)}}
@keyframes shine{from{background-position:-160% 0,0 0,0 0}to{background-position:260% 0,0 0,0 0}}
.map__flow{stroke-dasharray:4 6}
.map__river-flow{stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:10 22;opacity:.8}

@media(prefers-reduced-motion:no-preference){
  /* the top of each page rises in */
  .home-hero__copy>*,.svc-hero__copy>*,.gd-hero__copy>*,.page-hero__grid>div:first-child>*,.contact-hero .wrap>*{animation:rise .9s var(--ease) both}
  .home-hero__copy>:nth-child(2),.svc-hero__copy>:nth-child(2),.gd-hero__copy>:nth-child(2),.page-hero__grid>div:first-child>:nth-child(2),.contact-hero .wrap>:nth-child(2){animation-delay:.08s}
  .home-hero__copy>:nth-child(3),.svc-hero__copy>:nth-child(3),.gd-hero__copy>:nth-child(3),.page-hero__grid>div:first-child>:nth-child(3),.contact-hero .wrap>:nth-child(3){animation-delay:.16s}
  .home-hero__copy>:nth-child(4),.svc-hero__copy>:nth-child(4),.gd-hero__copy>:nth-child(4),.page-hero__grid>div:first-child>:nth-child(4){animation-delay:.24s}
  .home-hero__copy>:nth-child(5),.svc-hero__copy>:nth-child(5),.gd-hero__copy>:nth-child(5),.page-hero__grid>div:first-child>:nth-child(5){animation-delay:.32s}
  .home-hero__copy>:nth-child(n+6),.svc-hero__copy>:nth-child(n+6),.gd-hero__copy>:nth-child(n+6),.page-hero__grid>div:first-child>:nth-child(n+6){animation-delay:.4s}
  .home-hero__art,.svc-hero__visual,.gd-hero__visual,.page-hero__grid>:last-child:not(:first-child),.factbar{animation:rise 1.1s var(--ease) .3s both}

  /* sections slide in as they scroll into view (main.js adds .rv, then .is-in) */
  .js .rv{opacity:0;translate:0 32px;transition:opacity .9s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--rv,0) * 70ms)}
  .js .layer.rv{translate:44px 0}
  .js .rv.is-in{opacity:1;translate:none}

  /* drawings */
  .bob{animation:bob 6.5s ease-in-out infinite;animation-delay:calc(var(--b,0) * -1.1s)}
  .sway{transform-box:view-box;animation:sway 5s ease-in-out infinite}
  .spin-slow{transform-box:view-box;animation:spin 60s linear infinite}
  .eq{transform-box:fill-box;transform-origin:center;animation:eq 1.1s ease-in-out infinite;animation-delay:calc(var(--i,0) * -.13s)}
  .grow{transform-box:fill-box;transform-origin:left center;animation:grow-x 5s linear infinite}
  .pin{transform-box:fill-box;transform-origin:center;animation:pulse 2.8s ease-in-out infinite;animation-delay:calc(var(--n,0) * .4s)}
  .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s var(--ease) .8s forwards}
  .map__flow,.map__river-flow{animation:flow 2.4s linear infinite}
  .map__river-flow{animation-duration:3.5s}
  .js .art.rv .radar__place{opacity:0}
  .js .art.rv.is-in .radar__place{animation:fade .7s var(--ease) both;animation-delay:calc(.35s + var(--i,0) * .1s)}
  .js .hub-hero__art .radar__place{animation:fade .7s var(--ease) both;animation-delay:calc(.5s + var(--i,0) * .1s)}
  .idx-map__dots i{animation:pop .55s var(--ease) both;animation-delay:calc(.3s + var(--k,0) * 22ms)}

  /* our work: the hero collage floats */
  .work-collage__item{animation:bob 7s ease-in-out infinite}
  .work-collage__item--2{animation-delay:-1.4s}
  .work-collage__item--3{animation-delay:-2.8s}
  .work-collage__item--4{animation-delay:-4.2s}
  .work-collage__item--5{animation-delay:-5.6s}

  /* founder */
  .founder.is-printing .engraving{animation:print 2.8s var(--ease) both}
  .fv__photo{animation:bob 7s ease-in-out infinite}
  .fv__arch::before{animation:spin 80s linear infinite}
  .fv__halo{animation:spin 50s linear infinite reverse}
  .fv__ring{animation:ring-wobble 8s ease-in-out infinite}
  .fv__chips li{animation:bob 5.5s ease-in-out infinite;animation-delay:calc(var(--i,0) * -.6s)}
  .fv__spark{animation:twinkle 3.2s ease-in-out infinite}
  .fv__spark--2{animation-delay:-.8s}
  .fv__spark--3{animation-delay:-1.6s}
  .fv__spark--4{animation-delay:-2.4s}
  .founder__sig{animation:sway 6s ease-in-out infinite}

  /* everything else that moves */
  .ticker__track{animation:marquee 50s linear infinite}
  .ticker:hover .ticker__track{animation-play-state:paused}
  .mega__inner,.sub{animation:drop .28s var(--ease)}
  .process__step:not(:last-child)::after{animation:nudge 2s ease-in-out infinite}
  .nav.is-open .nav__list>li,.nav.is-open .nav__numbers{animation:rise .5s var(--ease) both}
  .nav.is-open .nav__list>li:nth-child(2){animation-delay:.05s}
  .nav.is-open .nav__list>li:nth-child(3){animation-delay:.1s}
  .nav.is-open .nav__list>li:nth-child(4){animation-delay:.15s}
  .nav.is-open .nav__numbers{animation-delay:.2s}
  .footer-giant span{background-size:60% 100%,100% 100%,66px 16px;background-repeat:no-repeat,no-repeat,repeat;animation:shine 7s linear infinite}
  .footer-giant__cas{background-image:linear-gradient(100deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 80%),linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.02) 85%),var(--pat-micro-ink)}
  .footer-giant__digital{background-image:linear-gradient(100deg,rgba(255,255,255,0) 20%,rgba(255,236,170,.45) 50%,rgba(255,255,255,0) 80%),linear-gradient(180deg,rgba(244,194,79,.55),rgba(229,164,23,.04) 85%),var(--pat-micro-ink)}
  .btn--wa,.cboard--wa:first-child{position:relative;overflow:hidden;isolation:isolate}
  .btn--wa::after,.cboard--wa:first-child::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.22) 50%,rgba(255,255,255,0) 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
  .btn--wa:hover::after,.cboard--wa:first-child:hover::after{transform:translateX(120%)}
  .srow__icon,.tile__icon{transition:transform .5s var(--ease),background-color .3s,color .3s}

  /* follow the pointer a little (main.js sets --px / --py between -1 and 1) */
  .home-hero__art>svg,.svc-hero__visual .art>svg,.hub-hero__art>svg{translate:calc(var(--px,0) * -14px) calc(var(--py,0) * -10px);transition:translate .6s var(--ease)}
  .fv__chips{translate:calc(var(--px,0) * 12px) calc(var(--py,0) * 8px);transition:translate .6s var(--ease)}
  .fv__arch,.fv__halo{translate:calc(var(--px,0) * -8px) calc(var(--py,0) * -6px);transition:translate .6s var(--ease)}

  /* the note patterns move slowly: the mesh drifts, the ring turns, the microprint band slides, the leaves climb */
  .cta__mesh i{animation:drift-mesh 18s linear infinite}
  .cta__ring{animation:spin 160s linear infinite}
  .site-footer::before{animation:drift-micro 7s linear infinite}
  .band--leaf::before,.band--leaf::after{animation:climb 40s linear infinite}

  /* pause anything that is off screen */
  [data-anim="off"],[data-anim="off"] *,[data-anim="off"]::before,[data-anim="off"]::after{animation-play-state:paused!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media print{
  .site-header,.wa-float,.cta,.art,.footer-giant,.ticker,.fv__chips,.lightbox,.work-index,.work-collage{display:none!important}
  body{background:#fff}
  .rv{opacity:1!important;translate:none!important}
}
