@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/hanken-grotesk-400.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/hanken-grotesk-500.woff2") format("woff2")}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/newsreader-400.woff2") format("woff2")}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/newsreader-400-italic.woff2") format("woff2")}
/* Heal Strategy: site styles
   Layout concept: full-bleed, defocused lab-glass photography for the hero and closing card;
   everything else is quiet, left-aligned type on white and cool mist panels inside a 1360px frame.
   One deliberate signature: the logo's pulse line, drawn once across the hero. */

:root {
  --wordmark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1327 227'%3E%3Cpath d='M1231 225C1228 223 1227 222 1226 219C1223 215 1223 213 1225 210C1227 208 1227 208 1236 205C1238 204 1240 203 1241 203C1242 202 1242 202 1243 202C1245 202 1256 191 1258 186C1261 182 1266 170 1266 169C1266 168 1266 167 1266 166C1265 166 1264 164 1264 163C1264 162 1263 160 1262 158C1261 156 1260 154 1260 154C1260 154 1260 152 1259 150C1258 149 1258 147 1258 147C1258 146 1257 145 1256 143C1255 141 1254 140 1254 139C1254 139 1254 137 1253 136C1252 134 1252 132 1252 132C1252 132 1251 130 1250 128C1249 127 1248 125 1248 124C1248 123 1247 121 1246 120C1246 118 1245 116 1245 116C1245 116 1244 114 1244 112C1243 111 1242 109 1242 109C1242 108 1241 107 1241 105C1240 104 1239 102 1239 100C1238 100 1238 98 1237 97C1236 96 1236 94 1236 94C1236 94 1235 92 1234 90C1234 89 1233 87 1233 86C1232 85 1232 83 1231 82C1230 80 1230 79 1230 78C1230 78 1226 70 1224 67C1223 65 1222 64 1220 63C1217 62 1216 60 1218 58C1218 58 1220 58 1238 58C1259 58 1260 58 1260 60C1260 62 1259 62 1256 63C1251 64 1250 65 1249 67C1248 70 1248 74 1250 78C1250 79 1251 82 1251 83C1252 85 1252 87 1253 88C1254 89 1254 90 1254 92C1255 93 1255 95 1256 95C1256 96 1257 98 1258 100C1261 108 1262 112 1262 112C1263 112 1263 114 1264 116C1264 117 1265 119 1266 120C1266 121 1267 123 1267 124C1267 125 1268 126 1268 128C1269 128 1270 130 1270 132C1270 133 1271 135 1272 137C1272 138 1273 140 1274 142C1275 145 1278 144 1279 139C1280 138 1281 135 1281 134C1282 133 1282 131 1283 130C1283 129 1284 127 1284 126C1285 125 1286 123 1286 122C1286 121 1286 120 1287 119C1288 118 1288 116 1289 114C1289 113 1290 111 1290 111C1291 110 1291 108 1292 107C1292 105 1293 103 1294 102C1294 101 1295 100 1295 98C1295 97 1296 94 1297 93C1299 87 1300 75 1298 70C1297 67 1294 64 1290 64C1286 62 1284 59 1287 58C1289 57 1324 58 1325 59C1326 60 1325 62 1323 63C1320 64 1318 67 1316 70C1315 73 1311 80 1310 82C1310 83 1309 85 1309 86C1308 87 1308 88 1308 89C1308 89 1307 90 1306 92C1306 92 1305 94 1304 96C1304 98 1303 99 1303 100C1302 100 1302 102 1302 103C1301 104 1300 106 1300 107C1299 108 1298 110 1298 112C1297 113 1297 115 1296 115C1296 115 1295 117 1295 118C1295 119 1294 121 1293 122C1292 123 1292 125 1292 125C1292 125 1291 127 1290 129C1289 131 1288 133 1288 134C1288 134 1288 135 1288 136C1287 137 1286 138 1286 138C1286 140 1283 146 1281 151C1280 152 1279 154 1279 156C1279 156 1278 158 1277 160C1277 161 1276 162 1276 163C1276 163 1276 164 1275 166C1274 166 1274 168 1273 170C1272 173 1270 178 1268 181C1268 183 1267 184 1267 185C1266 186 1266 188 1265 189C1264 191 1264 192 1264 193C1264 193 1263 194 1262 195C1262 196 1261 198 1261 199C1260 200 1259 202 1259 203C1258 204 1258 205 1258 206C1258 206 1254 212 1252 216C1245 224 1237 228 1231 225ZM1132 223C1130 223 1127 222 1125 222C1124 221 1123 220 1122 220C1119 219 1110 212 1108 209C1107 208 1106 207 1106 206C1104 204 1102 197 1102 193C1102 190 1104 182 1106 179C1107 179 1108 177 1109 175C1110 174 1114 170 1116 168C1118 165 1120 163 1120 162C1120 162 1119 160 1118 159C1114 154 1114 154 1113 150C1112 142 1116 134 1124 129C1126 128 1126 125 1122 124C1116 121 1109 111 1106 103C1105 98 1106 84 1109 80C1110 79 1110 78 1111 77C1113 72 1121 64 1127 61C1128 60 1130 60 1130 59C1130 59 1132 58 1133 58C1135 58 1137 57 1139 56C1141 56 1144 55 1149 55C1157 55 1164 56 1169 59C1172 61 1177 61 1180 59C1182 59 1183 58 1184 58C1185 58 1187 57 1188 56C1192 54 1200 53 1202 54C1206 55 1207 56 1207 61C1207 68 1207 68 1192 67C1183 67 1182 67 1184 70C1184 71 1185 72 1186 73C1186 74 1187 76 1187 76C1188 76 1188 77 1189 79C1189 80 1190 82 1190 83C1191 84 1192 93 1192 97C1191 108 1182 120 1171 126C1162 130 1155 131 1140 130C1135 130 1135 130 1132 131C1125 136 1124 141 1130 146C1134 148 1135 148 1155 149C1188 150 1197 152 1202 162C1205 167 1205 180 1203 185C1202 187 1202 189 1201 190C1199 196 1188 208 1182 212C1181 212 1179 213 1177 214C1176 216 1173 217 1172 217C1171 217 1170 218 1169 219C1168 219 1165 220 1163 220C1161 221 1159 222 1158 222C1154 224 1140 224 1132 223ZM1162 214C1177 210 1187 201 1189 188C1191 178 1189 172 1183 169C1179 167 1177 167 1158 166C1148 166 1138 165 1136 165C1128 164 1127 164 1123 172C1120 176 1120 177 1120 182C1117 198 1124 208 1141 213C1144 214 1159 214 1162 214ZM222 170C220 169 219 169 218 168C217 168 215 167 214 167C212 167 210 166 210 166C209 165 207 164 206 164C205 163 204 162 204 162C204 162 203 161 202 161C201 161 192 152 190 149C188 145 185 138 184 135C184 134 183 132 183 130C181 126 181 103 183 98C183 97 184 95 184 94C185 90 190 80 193 77C193 76 194 75 194 74C194 74 196 72 198 70C204 63 212 59 217 58C218 57 220 57 221 56C224 54 240 54 243 56C244 56 246 57 247 58C248 58 250 58 251 59C252 60 253 60 254 60C260 63 270 75 272 83C273 84 273 86 274 88C275 92 276 99 274 100C274 100 271 101 255 101L236 101L234 100C230 96 232 95 247 95C255 94 255 94 254 85C253 81 251 76 248 71C246 69 241 64 239 64C238 64 237 63 236 62C230 60 220 62 214 66C208 71 204 78 203 84C203 86 202 88 202 90C200 95 200 95 212 95C223 95 224 95 224 98C224 101 224 101 212 101C206 102 201 102 201 102C199 103 200 119 201 124C202 125 203 128 203 130C204 132 206 137 209 142C212 147 219 153 225 155C226 156 228 156 230 157C234 158 250 158 255 156C258 155 260 154 260 154C261 154 263 154 265 152C270 150 272 150 272 153C272 154 263 161 262 161C261 161 260 162 260 162C259 163 257 164 256 164C256 164 254 165 253 165C252 166 250 167 248 167C246 168 244 168 243 169C241 170 227 170 222 170ZM360 170C356 168 353 164 350 157C349 155 349 155 347 156C346 157 345 158 345 158C345 158 344 158 343 159C341 160 340 161 333 164C318 172 303 169 294 157C292 155 291 152 291 152C290 151 290 149 289 148C287 143 288 133 293 127C295 125 300 122 302 120C303 120 305 119 305 119C307 118 314 115 317 114C319 114 321 113 322 112C323 112 325 111 327 111C329 110 332 110 332 109C333 109 335 108 337 108C341 107 345 106 345 106C346 106 346 106 347 105C350 105 351 104 351 97C352 81 349 74 342 69C339 67 336 66 330 66C324 66 314 67 311 68C304 71 298 71 298 69C298 67 306 63 314 61C316 60 318 59 319 59C319 59 321 58 324 58C326 57 329 56 330 56C335 54 348 54 352 56C353 57 355 58 356 58C359 59 364 65 366 70C370 76 370 82 370 100C369 125 369 154 370 155C371 158 375 160 380 158C384 157 386 158 386 159C386 160 382 163 380 165C379 165 378 166 378 166C374 168 370 170 366 170C363 170 360 170 360 170ZM547 170C544 169 540 169 540 169C538 168 536 168 533 167C528 166 524 165 523 164C523 164 522 160 522 156C521 151 521 146 520 144C520 140 519 126 519 122C519 120 521 119 522 120C524 120 525 121 526 125C526 126 526 128 527 129C528 131 528 132 528 132C528 133 530 136 534 142C536 145 545 154 546 154C546 154 547 155 548 156C549 156 551 157 552 158C554 158 555 159 556 160C557 160 560 161 566 162L574 162L580 162C594 159 604 152 606 142C608 136 608 124 606 121C605 120 605 119 604 117C602 114 597 109 594 108C594 107 592 106 591 106C591 105 590 104 589 104C589 104 587 104 586 103C585 102 583 101 582 101C581 101 579 100 578 100C577 99 575 98 574 98C573 98 571 98 570 97C569 96 567 96 565 95C559 93 555 91 554 90C552 90 551 89 550 89C550 88 549 88 548 87C547 86 546 86 546 86C545 86 538 81 536 78C530 73 526 65 525 58C525 52 525 42 526 40C529 33 529 32 530 31C530 30 531 29 532 28C533 26 541 18 544 16C547 14 551 12 552 11C553 11 555 10 556 10C557 9 560 8 562 8C563 8 567 7 569 7C577 5 602 7 611 10C615 11 616 12 616 18C616 20 617 25 617 28C619 41 620 51 618 52C617 54 613 50 613 48C613 48 612 46 611 44C610 42 610 40 610 40C610 39 606 34 603 30C600 26 595 22 592 20C592 20 590 19 590 19C590 18 587 17 584 16C576 13 566 13 558 16C544 21 538 31 540 46C541 48 541 50 542 50C546 57 549 61 556 65C561 68 573 74 574 74C575 74 576 74 577 74C578 75 580 76 582 76C583 77 585 78 586 78C587 78 589 79 590 80C592 80 594 81 595 82C597 82 598 83 599 83C600 83 606 87 611 91C613 92 619 98 619 99C619 100 620 101 620 102C624 108 626 122 623 131C623 132 622 134 622 136C622 138 620 141 617 146C615 149 608 156 606 157C605 158 604 159 603 159C601 162 598 163 596 164C594 164 592 165 592 165C590 166 588 167 587 167C585 167 582 168 580 168C577 170 558 170 547 170ZM667 170C660 168 655 162 653 152L651 147L651 108C651 62 652 67 644 67C638 67 638 66 638 64C638 62 639 62 640 61C641 61 643 60 643 60C644 60 645 59 646 58C648 57 650 56 650 55C651 55 652 54 652 54C654 54 662 45 663 42C666 38 669 36 671 37C672 38 672 44 671 52L670 59L671 60C672 61 677 61 688 60C698 59 700 59 700 60C701 61 701 66 700 66C700 67 694 67 685 67C674 67 671 67 670 68C670 69 670 71 670 104L670 139L671 145C673 152 675 154 678 157C682 159 694 158 698 156C703 154 708 153 708 156C708 157 705 160 702 161C701 162 699 162 698 163C695 164 690 166 688 167C687 167 685 168 684 169C682 170 669 170 667 170ZM880 169C877 168 873 164 872 161C872 159 870 156 869 156C868 156 865 158 863 159C860 162 850 167 843 168L838 169L832 168C825 166 823 165 818 160C812 156 808 147 808 141C808 139 810 132 812 130C815 125 823 119 829 117C830 117 832 116 833 116C834 115 836 114 837 114C838 114 840 113 842 112C843 112 846 111 848 111C850 110 852 110 854 109C855 108 857 108 859 108C862 107 867 106 869 104C871 104 872 102 872 94C872 74 866 66 850 66C844 66 835 67 831 69C824 71 821 71 820 70C819 70 818 69 818 69C818 68 823 65 826 64C827 64 829 63 830 62C831 62 833 61 835 61C836 60 838 60 839 59C839 59 842 58 844 58C846 57 849 56 850 56C855 54 868 54 872 56C873 57 876 58 876 58C877 58 879 60 881 62C889 70 892 80 890 102C889 117 888 147 889 151C890 157 893 160 900 158C907 157 908 158 904 162C902 164 901 164 895 168C890 170 883 171 880 169ZM943 170C939 168 934 164 931 159C928 152 928 149 928 107C927 63 928 67 920 67C916 67 915 67 914 66C914 64 916 61 918 61C919 61 920 60 921 59C922 59 923 58 923 58C924 58 928 54 932 51C935 49 940 43 943 38C943 37 944 37 945 37C948 36 948 37 948 49C947 61 947 60 952 60C954 60 959 60 964 60C976 59 976 59 977 63C978 67 977 67 961 67C948 67 948 67 947 68L946 70L946 90C945 126 947 146 950 152C954 157 956 158 965 158C970 158 972 157 974 156C980 153 982 153 983 156C984 157 981 160 979 161C977 161 976 162 975 162C974 163 973 164 972 164C972 164 970 164 969 165C968 166 960 169 957 170C955 170 945 170 943 170ZM1036 170C1034 169 1032 169 1032 168C1031 168 1029 167 1028 167C1026 167 1024 166 1024 166C1023 165 1022 164 1021 164C1017 162 1010 156 1007 152C1003 146 1002 144 1001 143C1001 142 1000 140 999 138C999 137 998 135 998 134C998 133 998 132 997 130C995 124 995 107 997 101C997 100 998 98 998 96C999 91 1003 83 1007 76C1009 73 1018 64 1019 64C1019 64 1020 64 1021 63C1022 62 1023 61 1024 61C1025 60 1027 59 1028 59C1035 55 1051 54 1057 56C1058 57 1060 57 1062 58C1064 58 1066 59 1066 59C1066 60 1068 60 1068 61C1072 63 1077 67 1080 70C1082 74 1086 79 1086 80C1086 80 1086 82 1087 83C1088 87 1090 97 1090 98C1089 101 1088 101 1072 101C1053 101 1052 101 1051 99C1050 95 1050 95 1060 95C1070 94 1071 94 1069 88C1068 86 1068 84 1067 82C1067 80 1066 78 1065 77C1065 76 1064 74 1064 73C1063 70 1057 65 1053 64C1052 63 1050 63 1050 62C1049 62 1044 61 1041 61C1027 63 1019 72 1016 90C1015 95 1015 95 1026 95C1036 95 1038 96 1037 99C1037 101 1035 101 1025 101C1018 102 1015 102 1015 102C1014 103 1014 112 1014 116C1016 123 1018 131 1019 133C1019 135 1020 136 1020 136C1020 137 1021 138 1022 139C1022 140 1023 141 1023 142C1023 144 1034 154 1038 155C1039 155 1041 156 1043 156C1046 158 1062 158 1067 157C1068 156 1071 156 1073 155C1076 154 1078 153 1079 153C1085 149 1090 151 1085 155C1080 159 1072 163 1070 164C1069 164 1068 165 1067 166C1066 166 1064 167 1063 167C1062 167 1059 168 1058 169C1055 170 1041 170 1036 170ZM3 166C0 165 2 162 6 161C10 160 15 156 17 151L19 147L19 88L19 29L17 25C15 21 12 17 10 17C10 17 9 17 8 16C8 16 6 15 5 14C2 14 1 13 1 11C1 8 1 8 29 8C55 8 56 8 57 10C58 11 57 13 54 14C48 16 45 19 43 24C40 28 40 34 40 59L40 78L41 78C43 80 122 80 124 79C125 78 125 77 125 62C126 37 125 29 123 24C121 21 118 17 116 17C116 17 115 17 115 16C115 16 113 15 111 14C108 13 108 13 108 11C108 8 106 8 135 8C165 8 164 8 163 12C163 13 163 13 160 14C159 15 157 16 156 16C156 17 155 17 155 17C154 17 150 21 148 24L147 28L147 84C146 144 147 148 148 151C149 152 150 153 150 153C150 155 156 160 160 161C164 162 166 165 163 166C161 167 110 167 109 166C106 165 108 162 112 161C116 160 121 156 123 152C125 147 126 141 125 110C125 89 125 88 124 87C123 85 42 85 41 87C40 88 40 92 40 112C40 142 40 147 42 151C44 155 50 160 53 161C58 162 60 164 58 166C56 167 5 168 3 166ZM395 166C393 165 395 161 399 161C402 160 406 157 408 154L410 151L410 88L410 25L408 22C407 20 405 18 404 18C404 17 403 16 402 16C402 16 400 15 399 14C395 13 394 13 394 11C394 9 395 8 399 8C400 8 403 7 404 6C406 6 409 5 410 5C412 5 415 4 416 3C422 1 426 1 428 3C428 3 428 36 428 76L429 148L430 152C431 154 432 156 433 156C436 159 438 160 440 161C443 161 445 164 443 166C442 167 397 167 395 166ZM716 166C714 165 716 162 719 161C720 161 722 160 724 158C730 154 731 153 731 114C731 76 730 75 725 70C724 68 722 67 720 67C717 66 714 64 714 62C714 61 718 60 732 58C736 58 740 57 742 56C745 54 747 55 749 57L751 60L750 65C748 72 748 74 751 72C752 71 753 70 753 70C754 70 755 69 756 68C757 67 759 66 760 65C761 65 762 64 764 63C765 62 766 61 768 61C768 60 770 60 770 59C772 58 782 55 784 55C792 56 797 60 797 66C798 68 797 70 797 71C796 71 796 73 795 74C793 78 787 78 782 74C779 72 772 71 769 71C760 74 751 78 750 82C749 84 749 141 750 146C751 153 751 154 752 156C754 158 758 160 760 161C764 162 765 165 763 166C762 167 718 167 716 166ZM329 156C334 155 339 154 340 153C340 152 342 152 343 152C344 151 345 151 345 150C345 150 346 149 348 148C350 147 350 147 350 129C350 111 350 111 347 112C346 113 343 113 341 114C339 114 336 115 336 115C335 116 333 116 331 117C324 118 315 123 312 127C307 132 307 143 312 149C313 151 317 155 318 155C319 155 320 155 321 156C323 157 326 157 329 156ZM853 155C856 155 859 154 860 153C861 152 862 152 864 151C866 150 869 148 870 147C870 146 871 115 870 114C870 113 868 112 867 112C867 113 864 113 862 114C860 114 857 115 856 115C855 116 853 116 851 117C842 119 835 123 831 128C826 135 829 150 837 154C842 157 846 158 853 155ZM1155 124C1164 122 1166 120 1171 111L1173 106L1173 96C1173 86 1173 85 1171 78C1167 68 1159 61 1149 61C1144 61 1137 63 1134 65C1134 66 1133 67 1132 67C1131 68 1130 69 1127 75C1124 80 1124 90 1126 102C1128 114 1136 123 1146 124C1150 125 1150 125 1155 124Z'/%3E%3C/svg%3E");
  /* colour */
  --paper: #ffffff;
  --mist: #f1f3f6;          /* panels and bands, cool to sit with the navy */
  --mist-2: #e6e9ef;        /* hover and pressed panels */
  --line: #dfe3ea;
  --ink: #0d1424;           /* text: navy-biased near-black */
  --ink-2: #434b5d;         /* secondary text, 8.9:1 on white */
  --ink-3: #5c6477;         /* captions, 5.9:1 on white */
  --navy: #0b1d5c;          /* brand colour from the logo */
  --navy-deep: #070f2e;
  --on-dark: #f4f6fa;
  --on-dark-2: rgba(244, 246, 250, .78);
  --focus: #2f5bd3;

  /* type */
  --sans: "Hanken Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --t-display: clamp(2.6rem, 1.4rem + 4.6vw, 5.4rem);
  --t-h1: clamp(2.3rem, 1.5rem + 3.2vw, 4.2rem);
  --t-h2: clamp(1.9rem, 1.35rem + 2.1vw, 3.25rem);
  --t-h3: clamp(1.25rem, 1.1rem + .5vw, 1.55rem);
  --t-lead: clamp(1.15rem, 1rem + .6vw, 1.5rem);
  --t-body: 1.0625rem;
  --t-small: .9375rem;
  --t-micro: .8125rem;

  /* layout */
  --frame: 1360px;
  --gutter: clamp(20px, 5vw, 80px);
  --section: clamp(84px, 9vw, 152px);
  --radius: 18px;
  --radius-sm: 12px;
  --header-h: 76px;
  color-scheme: light;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--sans); font-size: var(--t-body); line-height: 1.55; letter-spacing: -.008em;
  font-kerning: normal; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 6px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: 999px; text-decoration: none; }
.skip:focus { top: 12px; }

.wrap {
  width: 100%; max-width: calc(var(--frame) + 2 * var(--gutter)); margin-inline: auto;
  padding-left: max(var(--gutter), env(safe-area-inset-left, 0px));
  padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
}
.section { padding-block: var(--section); }
.band-mist { background: var(--mist); }

/* ---------- type roles ---------- */
.display { font-size: var(--t-display); line-height: 1.0; letter-spacing: -.045em; }
.h1 { font-size: var(--t-h1); line-height: 1.04; letter-spacing: -.04em; }
.h2 { font-size: var(--t-h2); line-height: 1.08; letter-spacing: -.035em; }
.h3 { font-size: var(--t-h3); line-height: 1.22; letter-spacing: -.02em; }
.lead { font-size: var(--t-lead); line-height: 1.42; letter-spacing: -.016em; color: var(--ink); }
.muted { color: var(--ink-2); }
.small { font-size: var(--t-small); }
.micro { font-size: var(--t-micro); color: var(--ink-3); letter-spacing: 0; }
.measure { max-width: 64ch; }

/* ---------- buttons ---------- */
.btn {
  --h: 50px;
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: var(--h); padding: 0 1.4em; border-radius: 999px; border: 1px solid transparent;
  font-size: 1rem; font-weight: 500; letter-spacing: -.01em; line-height: 1; text-decoration: none; white-space: nowrap;
  cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.btn svg { width: 14px; height: 14px; flex: none; }
.btn-ink { background: var(--ink); color: var(--paper); }
.btn-ink:hover { background: var(--navy); }
.btn-light { background: var(--paper); color: var(--ink); }
.btn-light:hover { background: var(--mist-2); }
.btn-soft { background: var(--mist); color: var(--ink); }
.btn-soft:hover { background: var(--mist-2); }
.btn-glass { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .42);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.btn-glass:hover { background: rgba(255, 255, 255, .22); }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

.link-arrow { display: inline-flex; align-items: center; gap: .45em; font-weight: 500; text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.link-arrow svg { width: 13px; height: 13px; transition: transform .2s; }
.link-arrow:hover svg { transform: translateX(3px); }

/* ---------- header ---------- */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--paper); }
.site-header {
  position: fixed; top: env(safe-area-inset-top, 0px); left: 0; right: 0; z-index: 50; height: var(--header-h);
  color: var(--ink); background: rgba(255, 255, 255, .86); border-bottom: 1px solid var(--line);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  transition: background-color .3s, color .3s, border-color .3s;
}
.site-header .wrap { height: 100%; display: flex; align-items: center; gap: 28px; }
.has-hero:not(.is-scrolled) .site-header { background: transparent; border-color: transparent; color: #fff;
  -webkit-backdrop-filter: none; backdrop-filter: none; }
.has-hero:not(.is-scrolled)::before { background: transparent; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; margin-right: auto; min-height: 44px; }
.brand-mark { width: 38px; height: 35px; }
.brand-mark polyline { stroke: currentColor; stroke-width: 1.7px; vector-effect: non-scaling-stroke; fill: none; stroke-linejoin: round; }
.brand-word { width: 128px; height: 22px; background: currentColor;
  -webkit-mask: var(--wordmark) no-repeat center / contain; mask: var(--wordmark) no-repeat center / contain; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; text-decoration: none; font-size: 1rem;
  letter-spacing: -.01em; border-radius: 999px; transition: background-color .2s; }
.nav a:hover { background: rgba(127, 135, 155, .14); }
.nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: .4em; }
.header-cta { --h: 44px; }
.has-hero:not(.is-scrolled) .header-cta { background: #fff; color: var(--ink); }
.menu-btn { display: none; width: 48px; height: 48px; margin-right: -10px; border: 0; background: none; cursor: pointer; border-radius: 999px; }
.menu-btn span { display: block; width: 22px; height: 1.6px; margin: 5px auto; background: currentColor; transition: transform .25s, opacity .2s; }
.menu-open .menu-btn span:nth-child(1) { transform: translateY(6.6px) rotate(45deg); }
.menu-open .menu-btn span:nth-child(2) { opacity: 0; }
.menu-open .menu-btn span:nth-child(3) { transform: translateY(-6.6px) rotate(-45deg); }

@media (max-width: 1080px) {
  .nav, .site-header .header-cta { display: none; }
  .menu-btn { display: block; }
  .mobile-nav { position: fixed; inset: 0; z-index: 45; background: var(--paper); color: var(--ink);
    padding: calc(var(--header-h) + env(safe-area-inset-top, 0px) + 24px) max(var(--gutter), env(safe-area-inset-right, 0px)) 40px max(var(--gutter), env(safe-area-inset-left, 0px));
    display: flex; flex-direction: column; gap: 4px; overflow-y: auto; }
  .mobile-nav[hidden] { display: none; }
  .mobile-nav a.m-link { font-size: 2rem; letter-spacing: -.035em; line-height: 1.2; text-decoration: none; padding: 8px 0; border-bottom: 1px solid var(--line); }
  .mobile-nav .btn { margin-top: 28px; align-self: flex-start; }
  .menu-open .site-header { background: var(--paper) !important; color: var(--ink) !important; border-color: var(--line) !important; }
  .menu-open { overflow: hidden; }
}
@media (min-width: 1081px) { .mobile-nav { display: none !important; } }

/* ---------- hero ---------- */
.hero { position: relative; isolation: isolate; color: #fff; min-height: 600px; height: min(94vh, 940px);
  display: flex; align-items: flex-end; overflow: hidden; background: #5d6a83; }
.hero-media, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; z-index: -2; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to top, rgba(7, 15, 46, .66) 0%, rgba(7, 15, 46, .3) 40%, rgba(7, 15, 46, 0) 66%),
    linear-gradient(to right, rgba(7, 15, 46, .55) 0%, rgba(7, 15, 46, .32) 48%, rgba(7, 15, 46, 0) 80%),
    linear-gradient(to bottom, rgba(7, 15, 46, .3) 0%, rgba(7, 15, 46, 0) 18%),
    rgba(7, 15, 46, .12); }
@media (max-width: 860px) {
  .hero::after { background:
    linear-gradient(to top, rgba(7, 15, 46, .8) 0%, rgba(7, 15, 46, .55) 45%, rgba(7, 15, 46, .2) 75%, rgba(7, 15, 46, .3) 100%),
    rgba(7, 15, 46, .15); }
}
.hero-inner { padding-bottom: clamp(56px, 8vw, 104px); padding-top: calc(var(--header-h) + 40px); }
.hero h1 { max-width: 15.5ch; }
.hero .lead { color: rgba(255, 255, 255, .9); max-width: 40ch; margin-top: 26px; }
.hero .btn-row { margin-top: 36px; }

/* The signature: the logo's pulse drawn once across the foot of the hero, left to right. */
.pulse { position: absolute; left: 0; right: 0; bottom: clamp(18px, 2.6vw, 34px); height: 64px; z-index: 0; pointer-events: none;
  display: flex; align-items: center; }
.pulse-line { display: block; height: 1.5px; background: rgba(255, 255, 255, .62); transform-origin: left center; }
.pulse .pl { flex: 1 1 auto; }
.pulse .pr { flex: 0 0 clamp(48px, 16vw, 260px); }
.pulse .beat { flex: none; overflow: visible; }
.pulse path { fill: none; stroke: rgba(255, 255, 255, .62); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: butt;
  stroke-dasharray: 1; stroke-dashoffset: 0; }
@media (prefers-reduced-motion: no-preference) {
  .pulse .pl { transform: scaleX(0); animation: grow 1.25s cubic-bezier(.55, 0, .45, 1) .35s forwards; }
  .pulse path { stroke-dashoffset: 1; animation: draw .5s linear 1.6s forwards; }
  .pulse .pr { transform: scaleX(0); animation: grow .55s cubic-bezier(.3, 0, .2, 1) 2.1s forwards; }
}
@keyframes grow { to { transform: scaleX(1); } }
@keyframes draw { to { stroke-dashoffset: 0; } }

/* ---------- intro / about ---------- */
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.split > * { min-width: 0; }
.intro .lead { font-size: clamp(1.3rem, 1.05rem + 1vw, 1.95rem); line-height: 1.32; letter-spacing: -.025em; }
.intro .muted { margin-top: 28px; max-width: 58ch; }
.outcomes { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 40px); margin-top: clamp(56px, 7vw, 96px); }
.outcomes li { border-top: 1px solid var(--ink); padding-top: 18px; font-size: var(--t-h3); line-height: 1.25; letter-spacing: -.02em; }

/* ---------- services ---------- */
.section-head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: end; margin-bottom: clamp(44px, 5vw, 72px); }
.section-head > * { min-width: 0; }
.section-head .muted { max-width: 52ch; }
.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.2vw, 32px); }
.pillar { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.pillar picture, .pillar img { border-radius: var(--radius); aspect-ratio: 4 / 3; width: 100%; object-fit: cover; background: var(--mist); }
.pillar h3 { margin-top: 6px; }
.pillar .promise { color: var(--ink-2); }
.pillar ul { list-style: none; border-top: 1px solid var(--line); margin-top: 4px; }
.pillar li { padding: 11px 0; border-bottom: 1px solid var(--line); font-size: var(--t-small); color: var(--ink); }
.services-foot { margin-top: clamp(40px, 4vw, 56px); }

/* ---------- proof / cases ---------- */
.proof-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.proof-grid > * { min-width: 0; }
.checklist { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.checklist li { display: grid; grid-template-columns: 28px 1fr; gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.checklist svg { width: 18px; height: 18px; margin-top: 4px; color: var(--navy); }
.carousel-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: clamp(64px, 7vw, 104px) 0 28px; }
.carousel-ctrl { display: flex; gap: 8px; }
.icon-btn { width: 48px; height: 48px; border-radius: 999px; border: 0; background: var(--paper); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: background-color .2s, opacity .2s; }
.icon-btn:hover { background: var(--mist-2); }
.icon-btn[disabled] { opacity: .35; cursor: default; }
.icon-btn svg { width: 16px; height: 16px; }
.track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, calc((100% - 2 * 20px) / 3)); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; overscroll-behavior-x: contain; }
.track::-webkit-scrollbar { display: none; }
.case-card { scroll-snap-align: start; display: flex; flex-direction: column; min-height: 400px; padding: 28px; border-radius: var(--radius);
  background: var(--paper); color: var(--ink); text-decoration: none; transition: background-color .25s; }
.case-card:hover { background: #fbfcfd; }
.case-card:hover .case-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.case-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: 999px; background: var(--mist); font-size: var(--t-micro); color: var(--ink-2); letter-spacing: 0; }
.band-mist .case-card .chip { background: var(--mist); }
.case-title { margin-top: 18px; }
.metric { margin-top: auto; padding-top: 40px; }
.metric strong { display: block; font-weight: 400; font-size: clamp(3rem, 2.3rem + 2.4vw, 4.5rem); line-height: 1; letter-spacing: -.05em; color: var(--navy); font-variant-numeric: tabular-nums; }
.metric span { display: block; margin-top: 10px; color: var(--ink-2); font-size: var(--t-small); max-width: 26ch; }
.proof-foot { margin-top: 36px; }

/* ---------- clients ---------- */
.clients { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.2vw, 32px); margin-top: clamp(44px, 5vw, 72px); }
.client { border-top: 1px solid var(--ink); padding-top: 20px; display: grid; gap: 10px; align-content: start; }
.client p { color: var(--ink-2); font-size: var(--t-small); max-width: 40ch; }

/* ---------- founder ---------- */
.founder { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.founder > * { min-width: 0; }
.founder-photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; background: var(--mist); }
.founder-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.founder blockquote { margin: 0 0 36px; font-family: var(--serif); font-style: italic; font-size: clamp(1.45rem, 1.1rem + 1.25vw, 2.25rem); line-height: 1.3; letter-spacing: -.01em; }
.founder blockquote p::before { content: "\201C"; }
.founder blockquote p::after { content: "\201D"; }
.founder .name { font-size: var(--t-h3); letter-spacing: -.02em; }
.founder .role { color: var(--ink-3); font-size: var(--t-small); margin-top: 2px; }
.founder .bio { margin-top: 22px; color: var(--ink-2); max-width: 56ch; }

/* ---------- insights list ---------- */
.post-list { list-style: none; border-top: 1px solid var(--line); }
.post-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 6fr) minmax(0, 2fr); gap: 24px; align-items: baseline;
  padding: 26px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; }
.post-row > * { min-width: 0; }
.post-row .cat { color: var(--ink-3); font-size: var(--t-small); }
.post-row .t { font-size: var(--t-h3); line-height: 1.22; letter-spacing: -.02em; }
.post-row .ex { color: var(--ink-2); font-size: var(--t-small); margin-top: 8px; max-width: 64ch; }
.post-row .date { color: var(--ink-3); font-size: var(--t-small); text-align: right; font-variant-numeric: tabular-nums; }
.post-row:hover .t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }

/* ---------- closing card ---------- */
.cta-card { position: relative; isolation: isolate; overflow: hidden; border-radius: calc(var(--radius) + 6px); min-height: 520px;
  display: flex; align-items: center; background: var(--mist); }
.cta-card picture, .cta-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; z-index: -2; }
.cta-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to right, rgba(241, 243, 246, .92) 0%, rgba(241, 243, 246, .7) 38%, rgba(241, 243, 246, 0) 70%); }
.cta-inner { padding: clamp(32px, 5vw, 72px); max-width: 620px; }
.cta-inner p { margin-top: 20px; color: var(--ink-2); max-width: 46ch; }
.cta-inner .btn-row { margin-top: 32px; }

/* ---------- contact ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start; }
.contact-grid > * { min-width: 0; }
.contact-details { margin-top: 36px; display: grid; gap: 22px; font-size: var(--t-small); }
.contact-details dt { color: var(--ink-3); font-size: var(--t-micro); margin-bottom: 4px; }
.contact-details dd { margin: 0; }
.contact-details a { text-decoration: none; border-bottom: 1px solid var(--line); }
.contact-details a:hover { border-color: currentColor; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: clamp(24px, 3vw, 40px); background: var(--mist); border-radius: var(--radius); }
.field { display: grid; gap: 8px; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: var(--t-small); color: var(--ink); }
.field label .opt { color: var(--ink-3); }
.field input, .field textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 13px 14px; min-height: 50px; transition: border-color .2s; }
.field textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.field input:hover, .field textarea:hover { border-color: #c4cad6; }
.field input:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; border-color: var(--focus); }
.field .err { color: #b3261e; font-size: var(--t-micro); min-height: 0; }
.field.invalid input, .field.invalid textarea { border-color: #b3261e; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 4px; }
.form-foot p { font-size: var(--t-micro); color: var(--ink-3); max-width: 46ch; letter-spacing: 0; }
.form-foot a { color: var(--ink-2); }
.form-status { grid-column: 1 / -1; padding: 14px 16px; border-radius: var(--radius-sm); background: var(--paper); font-size: var(--t-small); }

/* ---------- footer ---------- */
.site-footer { border-top: 1px solid var(--line); padding-block: clamp(56px, 6vw, 88px) 40px; }
.footer-top { display: grid; grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2fr)); gap: 32px; }
.footer-top > * { min-width: 0; }
.footer-brand .brand-mark { width: 44px; height: 40px; }
.footer-brand .brand-word { width: 150px; height: 26px; }
.footer-brand p { margin-top: 18px; color: var(--ink-2); font-size: var(--t-small); max-width: 34ch; }
.footer-col h2 { font-size: var(--t-micro); color: var(--ink-3); margin-bottom: 14px; letter-spacing: 0; }
.footer-col ul { list-style: none; display: grid; gap: 6px; }
.footer-col a { font-size: var(--t-small); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; }
.footer-col a:hover { text-decoration: underline; }
.footer-col svg { width: 11px; height: 11px; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: var(--t-micro); letter-spacing: 0; }

/* ---------- inner pages ---------- */
.page-head { padding-top: calc(var(--header-h) + clamp(64px, 8vw, 128px)); padding-bottom: clamp(40px, 5vw, 72px); }
.page-head .lead { margin-top: 24px; max-width: 46ch; color: var(--ink-2); }
.back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 28px; color: var(--ink-2); text-decoration: none; font-size: var(--t-small); }
.back:hover { color: var(--ink); text-decoration: underline; }
.back svg { width: 14px; height: 14px; }

.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.case-tile { display: grid; grid-template-rows: auto auto 1fr auto; gap: 0; padding: clamp(24px, 3vw, 40px); border-radius: var(--radius); background: var(--mist);
  text-decoration: none; color: inherit; transition: background-color .25s; min-width: 0; }
.case-tile:hover { background: var(--mist-2); }
.case-tile:hover .case-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.case-tile .chip { background: var(--paper); }
.case-tile dl { margin: 22px 0 0; display: grid; gap: 14px; }
.case-tile dt { font-size: var(--t-micro); color: var(--ink-3); letter-spacing: 0; }
.case-tile dd { margin: 4px 0 0; color: var(--ink-2); font-size: var(--t-small); }
.case-tile .metric { padding-top: 32px; }

.case-hero-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.brief { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-radius: var(--radius); background: var(--mist); overflow: hidden; }
.brief > div { padding: clamp(24px, 3vw, 44px); min-width: 0; }
.brief > div + div { border-left: 1px solid var(--line); }
.brief h2 { font-size: var(--t-small); color: var(--ink-3); margin-bottom: 12px; letter-spacing: 0; }
.brief p { font-size: var(--t-lead); line-height: 1.4; letter-spacing: -.016em; }
.case-body { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 112px); }
.case-body > * { min-width: 0; }
.case-body section + section { margin-top: clamp(48px, 5vw, 72px); }
.case-body h2 { margin-bottom: 18px; }
.case-body p { color: var(--ink-2); max-width: 62ch; font-size: 1.125rem; line-height: 1.6; }
.steps { list-style: none; margin-top: 20px; border-top: 1px solid var(--line); counter-reset: s; }
.steps li { display: grid; grid-template-columns: 44px 1fr; gap: 8px; padding: 15px 0; border-bottom: 1px solid var(--line); counter-increment: s; }
.steps li::before { content: counter(s); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 8px; }
.results li { list-style: none; padding: 24px; border-radius: var(--radius-sm); background: var(--mist); font-size: var(--t-h3); line-height: 1.25; letter-spacing: -.02em; min-width: 0; }
.aside-metric { position: sticky; top: calc(var(--header-h) + 40px); }
.aside-metric .metric { padding-top: 0; }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pager a { display: grid; gap: 6px; padding: 24px 0; border-top: 1px solid var(--ink); text-decoration: none; min-width: 0; }
.pager a:last-child { text-align: right; }
.pager span { color: var(--ink-3); font-size: var(--t-small); }
.pager strong { font-weight: 400; font-size: var(--t-h3); letter-spacing: -.02em; line-height: 1.22; }
.pager a:hover strong { text-decoration: underline; text-decoration-thickness: 1px; }

.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.filter { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; font-size: var(--t-small); color: var(--ink-2); }
.filter:hover { border-color: #c4cad6; color: var(--ink); }
.filter[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.featured { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0; border-radius: var(--radius); overflow: hidden; background: var(--mist); text-decoration: none; color: inherit; margin-bottom: clamp(40px, 5vw, 64px); }
.featured > * { min-width: 0; }
.featured .f-text { padding: clamp(28px, 4vw, 56px); display: grid; align-content: space-between; gap: 32px; }
.featured .f-text .ex { color: var(--ink-2); margin-top: 18px; max-width: 52ch; }
.featured picture, .featured img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
.featured:hover .h2 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.post-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--ink-3); font-size: var(--t-small); }

/* article */
.article-head { padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px)); }
.article-head .h1 { max-width: 20ch; margin-top: 18px; }
.article-head .post-meta { margin-top: 28px; }
.prose { font-family: var(--serif); font-size: clamp(1.125rem, 1.05rem + .3vw, 1.3rem); line-height: 1.65; letter-spacing: 0; color: #1b2233; max-width: 40em; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-family: var(--sans); font-size: clamp(1.5rem, 1.25rem + .9vw, 2rem); line-height: 1.15; letter-spacing: -.03em; color: var(--ink); margin-top: 2.2em; }
.prose h3 { font-family: var(--sans); font-size: 1.2rem; letter-spacing: -.015em; color: var(--ink); margin-top: 1.8em; }
.prose h3 + p { margin-top: .4em; }
.prose ul { padding-left: 1.2em; }
.prose li + li { margin-top: .35em; }
.prose dl { display: grid; gap: 1em; }
.prose dt { font-weight: 500; font-family: var(--sans); font-size: .92em; letter-spacing: -.01em; color: var(--ink); }
.prose dd { margin: .2em 0 0; }
.table-wrap { overflow-x: auto; font-family: var(--sans); font-size: var(--t-small); line-height: 1.45; margin-block: 2em; border-radius: var(--radius-sm); border: 1px solid var(--line); max-width: none; }
.table-wrap table { border-collapse: collapse; min-width: 720px; width: 100%; }
.table-wrap th, .table-wrap td { text-align: left; vertical-align: top; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.table-wrap thead th { background: var(--mist); font-weight: 500; color: var(--ink); }
.table-wrap tbody th { font-weight: 500; color: var(--ink); width: 16%; }
.table-wrap tr:last-child > * { border-bottom: 0; }
.sources { font-family: var(--sans); font-size: var(--t-small); color: var(--ink-2); border-top: 1px solid var(--line); padding-top: 24px; margin-top: 3em; line-height: 1.5; }
.sources h2 { font-size: var(--t-small); margin: 0 0 10px; color: var(--ink); letter-spacing: 0; }
.sources ol { padding-left: 1.2em; display: grid; gap: 8px; }
.article-foot { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 28px; border-radius: var(--radius); background: var(--mist); margin-top: 64px; max-width: 46rem; }
.article-foot img { width: 64px; height: 64px; border-radius: 999px; object-fit: cover; }
.article-foot .who strong { font-weight: 500; display: block; }
.article-foot .who span { color: var(--ink-3); font-size: var(--t-small); }
.share { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }

/* legal */
.legal { max-width: 46rem; }
.legal h2 { font-size: 1.45rem; letter-spacing: -.025em; margin: 2.4em 0 .6em; }
.legal h3 { font-size: 1.1rem; margin: 1.6em 0 .4em; letter-spacing: -.01em; }
.legal p, .legal li { color: var(--ink-2); }
.legal p + p { margin-top: .8em; }
.legal ul { padding-left: 1.2em; margin-top: .6em; display: grid; gap: .35em; }
.legal address { font-style: normal; padding: 22px 24px; border-radius: var(--radius-sm); background: var(--mist); color: var(--ink); line-height: 1.7; }
.legal .note { margin-top: 3em; font-size: var(--t-micro); color: var(--ink-3); }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .track { grid-auto-columns: minmax(280px, calc((100% - 20px) / 2)); }
  .footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .split, .section-head, .proof-grid, .founder, .contact-grid, .case-body { grid-template-columns: minmax(0, 1fr); }
  .section-head { align-items: start; gap: 18px; }
  .pillars, .clients { grid-template-columns: minmax(0, 1fr); }
  .pillars { gap: 48px; }
  .outcomes { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .outcomes li { padding-block: 18px; }
  .founder-photo { max-width: 460px; }
  .post-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .post-row .date { text-align: left; }
  .case-grid { grid-template-columns: minmax(0, 1fr); }
  .featured { grid-template-columns: minmax(0, 1fr); }
  .featured picture { order: -1; }
  .featured img { min-height: 200px; max-height: 260px; }
  .brief { grid-template-columns: minmax(0, 1fr); }
  .brief > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .aside-metric { position: static; }
  .cta-card { min-height: 0; align-items: flex-end; }
  .cta-card::after { background: linear-gradient(to top, rgba(241, 243, 246, .96) 0%, rgba(241, 243, 246, .85) 55%, rgba(241, 243, 246, .2) 100%); }
  .cta-inner { padding-top: 220px; }
}
@media (max-width: 600px) {
  :root { --header-h: 66px; }
  .brand-mark { width: 32px; height: 30px; }
  .brand-word { width: 112px; height: 19px; }
  .hero { min-height: 640px; height: 88svh; }
  .hero-media img { object-position: 52% 50%; }
  .track { grid-auto-columns: 86%; }
  .results { grid-template-columns: minmax(0, 1fr); }
  .form { grid-template-columns: minmax(0, 1fr); }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .pager { grid-template-columns: minmax(0, 1fr); }
  .pager a:last-child { text-align: left; }
  .article-foot { grid-template-columns: auto 1fr; }
  .article-foot .btn { grid-column: 1 / -1; justify-self: start; }
  .btn-row .btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- small utilities (kept out of markup so the CSP can forbid inline styles) ---------- */
.pt-0 { padding-top: 0; }
.pb-0 { padding-bottom: 0; }
.mb-0 { margin-bottom: 0; }
.mb-14 { margin-bottom: 14px; }
.mb-20 { margin-bottom: 20px; }
.mt-16 { margin-top: 16px; }
.mt-20 { margin-top: 20px; }
.mt-24 { margin-top: 24px; }
.mt-36 { margin-top: 36px; }
.maxw-16 { max-width: 16ch; }
.maxw-18 { max-width: 18ch; }
.maxw-40 { max-width: 40ch; }
.maxw-46 { max-width: 46ch; }
.block { display: block; }
.pb-head { padding-bottom: clamp(32px, 4vw, 56px); }
.pb-section { padding-bottom: var(--section); }
.pt-article { padding-top: clamp(40px, 5vw, 72px); }
.pt-legal { padding-top: clamp(24px, 3vw, 40px); }
.minh-page { min-height: 62vh; }
.founder-photo picture { display: block; height: 100%; }
@media (max-width: 600px) {
  .hero-inner { padding-bottom: 104px; }
  .hero .lead { margin-top: 18px; }
  .hero .btn-row { margin-top: 28px; }
}

/* ---------- Smartsheet section (light, same language as the rest of the page) ---------- */
.ss-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 112px); align-items: start;
  margin-top: clamp(44px, 5vw, 72px); }
.ss-grid > * { min-width: 0; }
.ss-points { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.ss-points li { padding: 22px 0; border-bottom: 1px solid var(--line); display: grid; gap: 6px; }
.ss-points p { color: var(--ink-2); font-size: var(--t-small); max-width: 46ch; }
.ss-visual { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; padding: clamp(20px, 3vw, 36px);
  border-radius: var(--radius); background: var(--mist); }
.ss-visual > * { min-width: 0; }
.ss-label { font-size: var(--t-micro); color: var(--ink-3); margin-bottom: 12px; letter-spacing: 0; }
.ss-before ul { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ss-before li { padding: 12px 14px; border-radius: var(--radius-sm); border: 1px dashed #b9c0cc; color: var(--ink-2);
  font-size: var(--t-micro); line-height: 1.35; letter-spacing: 0; overflow-wrap: anywhere; }
.ss-merge { width: 100%; height: 56px; display: block; }
.ss-merge path { fill: none; stroke: #9aa2b3; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.ss-sheet { background: var(--paper); color: var(--ink); border-radius: var(--radius-sm); padding: 20px 20px 8px; }
.ss-table-wrap { overflow-x: auto; }
.ss-table-wrap table { width: 100%; min-width: 540px; border-collapse: collapse; font-size: var(--t-small); line-height: 1.35; }
.ss-table-wrap th, .ss-table-wrap td { text-align: left; padding: 12px 10px; border-top: 1px solid var(--line); vertical-align: middle; }
.ss-table-wrap thead th { border-top: 0; color: var(--ink-3); font-weight: 400; font-size: var(--t-micro); letter-spacing: 0; padding-top: 0; }
.ss-table-wrap tbody th { font-weight: 500; }
.ss-table-wrap td { color: var(--ink-2); }
.st { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: var(--t-micro); letter-spacing: 0; white-space: nowrap; }
.st::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.st-ok { background: #e7ecf8; color: #1d3a8f; }
.st-risk { background: #fbefe2; color: #8a4a0c; }
.st-done { background: #eceef2; color: #4a5163; }
.ss-cap { margin-top: 14px; font-size: var(--t-micro); color: var(--ink-3); letter-spacing: 0; }
.ss-foot { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 28px; margin-top: clamp(48px, 5vw, 72px);
  padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--line); }
.metric-plain { padding-top: 0; }
.ss-stats { display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 72px); }
.ss-stats .metric span { max-width: 26ch; }
.ss-cta { display: grid; gap: 16px; justify-items: start; }
.ss-close { font-size: var(--t-h3); line-height: 1.22; letter-spacing: -.02em; }
.metric-plain span { max-width: 44ch; }
@media (max-width: 860px) {
  .ss-grid { grid-template-columns: minmax(0, 1fr); }
  .ss-before ul { grid-template-columns: minmax(0, 1fr); }
  .ss-merge { height: 36px; }
}

/* ---------- hero video ---------- */
.hero-media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.video-toggle { position: absolute; z-index: 2; right: max(var(--gutter), env(safe-area-inset-right, 0px)); bottom: clamp(88px, 9vw, 120px);
  width: 44px; height: 44px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .42); background: rgba(255, 255, 255, .12); color: #fff;
  display: grid; place-items: center; cursor: pointer; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.video-toggle:hover { background: rgba(255, 255, 255, .22); }
.video-toggle svg { width: 14px; height: 14px; grid-area: 1 / 1; }
.video-toggle .i-play, .video-toggle[aria-pressed="true"] .i-pause { display: none; }
.video-toggle[aria-pressed="true"] .i-play { display: block; }

@media (max-width: 600px) {
  .video-toggle { top: calc(var(--header-h) + env(safe-area-inset-top, 0px) + 12px); bottom: auto; }
  .ss-sheet { padding: 18px 16px 6px; }
  .ss-table-wrap table { min-width: 0; }
  .ss-table-wrap thead { display: none; }
  .ss-table-wrap tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 14px 0; border-top: 1px solid var(--line); }
  .ss-table-wrap th, .ss-table-wrap td { border: 0; padding: 0; }
  .ss-table-wrap tbody th { grid-column: 1; grid-row: 1; }
  .ss-table-wrap td:nth-child(2) { grid-column: 1; grid-row: 2; font-size: var(--t-micro); color: var(--ink-3); }
  .ss-table-wrap td:nth-child(3) { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .ss-table-wrap td:nth-child(4) { grid-column: 1 / -1; margin-top: 6px; }
  .ss-table-wrap td:nth-child(4)::before { content: "Decision: "; color: var(--ink-3); }
}

/* ---------- sweet spot (text only, same pattern as the other three-column rows) ---------- */
#sweet-spot .clients { margin-top: clamp(44px, 5vw, 72px); }
.client .topics { color: var(--ink-3); font-size: var(--t-micro); letter-spacing: 0; }
.sweet-line { margin-top: clamp(36px, 4vw, 56px); max-width: 52ch; color: var(--navy); font-size: var(--t-lead); line-height: 1.42; letter-spacing: -.016em; }
