/* Paola Milán — site styles
   Gallery white, black ink, rosa mexicano. One variable family (Mona Sans):
   wide + light for display, normal width for text, italic for artwork titles. */

@font-face { font-family: "Mona Sans"; font-style: normal; font-weight: 200 900; font-stretch: 75% 125%; font-display: swap;
  src: url(../fonts/mona-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Mona Sans"; font-style: normal; font-weight: 200 900; font-stretch: 75% 125%; font-display: swap;
  src: url(../fonts/mona-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Mona Sans"; font-style: italic; font-weight: 200 900; font-stretch: 75% 125%; font-display: swap;
  src: url(../fonts/mona-italic-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Mona Sans"; font-style: italic; font-weight: 200 900; font-stretch: 75% 125%; font-display: swap;
  src: url(../fonts/mona-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+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --paper: #ffffff;
  --gesso: #f4f4f4;
  --ink: #000;
  --ink-2: #5e5e5e;
  --ink-3: #a6a6a6;
  --line: #e2e2e2;
  --rosa: #e4007c;
  --rosa-deep: #c4006a;
  --glass: rgb(255 255 255 / .72);

  --gutter: clamp(16px, 4vw, 56px);
  --max: 1520px;
  --head-h: 72px;

  --t-label: 13px;
  --t-small: 15px;
  --t-body: 17px;
  --t-lead: clamp(19px, 1.5vw, 22px);
  --t-h3: clamp(22px, 2vw, 28px);
  --t-h2: clamp(32px, 3.6vw, 52px);
  --t-display: clamp(44px, 7vw, 112px);

  --shadow-art: 0 1px 1px rgb(0 0 0 / .08), 0 18px 32px -18px rgb(0 0 0 / .42);
  --ease: cubic-bezier(.2, .7, .1, 1);
  color-scheme: light;
}

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .32s; }
::view-transition-group(*) { animation-duration: .5s; animation-timing-function: var(--ease); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--head-h) + 16px); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: "Mona Sans", ui-sans-serif, system-ui, sans-serif;
  font-size: var(--t-body); line-height: 1.6; font-weight: 400; font-stretch: 100%;
  font-optical-sizing: auto; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, video, svg, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { text-decoration-color: var(--rosa); }
button { font: inherit; color: inherit; }
cite { font-style: italic; }
p { margin: 0 0 1em; }
h1, h2, h3 { margin: 0; font-weight: 400; text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 2px solid var(--rosa); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--rosa); color: #fff; }

[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; 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: var(--max); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- type helpers */
.lead { font-size: var(--t-lead); line-height: 1.5; color: var(--ink); max-width: 38em; }
.h3 { font-size: var(--t-h3); font-stretch: 112%; font-weight: 400; line-height: 1.2; letter-spacing: -.01em; }
.label { font-size: var(--t-label); line-height: 1.5; color: var(--ink-2); margin: 0; }
.label__title { display: block; color: var(--ink); font-size: var(--t-small); }
.label__title a { text-decoration: none; }
.label__title a:hover { text-decoration: underline; }
.label__meta { display: block; }
.prose p { max-width: 36em; }
.link { font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; }

/* ---------- signature mark (Paola's painted signature, vectorised) */
.sig {
  display: inline-block; vertical-align: middle; width: 132px; aspect-ratio: 2286 / 515;
  background: currentColor;
  --sig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='71 31 2286 515'%3E%3Cpath fill-rule='evenodd' d='M126.9 540.1C120.9 538.7 115.7 534.1 113.5 528.3C112.4 525.3 111.8 521.6 111.2 514.8C110.7 509.6 110.6 508.8 109.4 505.6C102.9 488.6 100.7 476.2 99.2 449.2C98.6 439.0 98.4 437.3 96.8 427.3C95.3 417.3 94.4 410.9 93.7 402.7C93.3 398.7 92.6 392.7 92.2 389.2C90.3 374.7 90.2 361.2 91.8 344.3C93.5 326.6 94.3 298.8 93.7 284.7C93.0 270.4 92.7 266.4 91.5 257.2C89.9 244.4 89.7 241.6 89.3 221.0C88.7 190.2 88.6 189.2 84.9 174.5C81.6 161.2 79.3 149.4 78.0 138.8C77.3 133.7 77.4 116.3 78.1 110.4C80.7 89.0 88.2 74.6 101.3 66.0C108.4 61.4 118.2 57.1 127.3 54.7C132.1 53.4 134.1 52.4 141.4 47.6C150.5 41.6 154.4 39.7 161.0 38.3C164.9 37.4 183.9 37.2 192.7 38.0C195.0 38.2 209.5 38.5 225.0 38.7C255.2 39.0 256.4 39.1 263.0 40.9C269.0 42.4 274.2 44.7 282.3 49.3C284.8 50.6 289.5 52.9 292.8 54.2C312.8 62.4 326.2 73.1 338.3 90.5C339.9 92.7 342.0 95.7 343.0 97.1C344.0 98.6 346.8 102.0 349.1 104.6C368.0 126.1 373.2 142.8 369.3 169.0C368.8 172.8 367.6 180.5 366.8 186.3C363.6 209.2 361.1 216.3 352.4 228.0C346.7 235.6 340.3 241.1 325.7 250.9C320.9 254.2 315.2 258.0 313.0 259.4C301.3 267.3 269.2 277.7 248.7 280.3C239.2 281.5 238.0 281.8 230.9 284.7C213.9 291.6 203.1 292.1 185.2 286.6C183.4 286.1 180.4 285.4 178.6 285.1C174.2 284.5 170.4 283.2 168.0 281.6C151.6 270.6 160.3 246.4 180.2 247.5C187.0 247.8 196.2 245.2 207.7 239.5C217.0 235.0 224.3 232.5 232.9 231.0C236.2 230.4 240.1 229.7 241.6 229.3C248.3 227.8 261.7 219.8 273.5 210.3C275.5 208.6 281.6 204.4 287.0 200.8C303.3 189.9 302.2 191.2 303.7 180.8C304.0 178.1 305.0 171.1 305.9 165.4C307.8 152.3 308.3 153.8 299.4 143.7C295.8 139.6 291.3 133.8 288.3 129.3C282.3 120.3 280.8 118.9 271.2 113.5C262.5 108.7 254.7 102.4 246.7 93.8C240.3 87.0 240.3 86.9 231.3 84.4C219.2 80.9 208.8 79.7 181.5 78.5C179.1 78.4 174.7 78.2 171.6 78.0C164.5 77.5 164.0 77.6 157.8 81.7C150.7 86.3 145.3 88.7 136.9 91.0C133.2 92.0 132.1 92.5 131.4 93.3C130.7 94.2 131.0 102.0 132.2 112.2C132.4 114.4 133.1 170.9 133.2 192.7C133.2 213.9 134.0 225.5 136.8 247.2C137.3 250.7 137.8 254.8 138.0 256.5C138.2 258.2 138.5 265.2 138.7 272.2C139.1 291.5 140.3 309.6 141.9 320.5C142.9 327.9 143.0 329.9 143.3 348.0C143.6 367.6 143.8 369.9 145.7 378.8C147.6 388.3 148.5 394.6 149.2 405.5C149.4 409.9 149.9 416.7 150.2 420.7C150.8 429.7 151.5 456.6 151.5 472.8C151.5 486.3 151.2 489.3 149.3 499.3C148.2 505.1 148.1 506.6 148.9 513.3C149.1 516.0 149.5 519.4 149.6 520.8C150.4 533.0 138.6 543.0 126.9 540.1ZM840.9 515.8C834.7 514.3 829.5 509.6 827.5 503.7C826.3 500.3 825.9 460.4 827.0 449.8C828.3 436.9 828.7 414.4 828.0 394.2C827.8 389.2 827.6 381.0 827.5 375.8C827.4 370.7 827.1 363.7 826.8 360.3C826.5 356.9 826.1 348.4 826.0 341.3C825.8 334.3 825.5 327.3 825.3 325.8C825.2 324.4 824.9 315.1 824.7 305.3C824.4 291.8 824.2 285.8 823.7 280.7C821.4 257.5 820.8 236.6 822.0 216.7C822.7 204.3 822.6 187.0 821.7 176.7C819.1 144.7 821.3 121.2 829.2 97.5C831.7 89.8 833.4 83.3 834.0 79.5C834.9 72.9 835.7 70.3 838.0 67.1C846.4 54.6 863.6 54.6 872.0 67.1C875.4 71.9 876.2 77.0 876.6 92.5C876.8 102.2 876.6 105.1 875.3 124.0C875.0 129.0 874.6 135.3 874.5 138.0C874.4 140.7 874.1 146.4 873.8 150.7C873.2 159.7 873.4 205.3 874.0 216.7C874.5 226.1 877.2 248.6 878.2 252.0C878.4 252.9 882.0 276.8 882.5 281.0C882.8 283.3 883.2 291.7 883.5 299.7C883.8 307.6 884.2 316.2 884.4 318.7C885.0 325.5 884.9 350.3 884.1 390.3C882.9 447.3 882.8 448.6 875.0 469.3C873.9 472.4 872.3 476.7 871.5 478.9C870.7 481.1 869.1 485.4 867.9 488.4C865.6 494.2 864.7 496.7 863.0 502.3C859.9 512.3 850.4 518.1 840.9 515.8ZM579.5 511.8C573.7 510.4 569.3 506.6 566.3 500.3C565.2 498.2 563.2 494.8 561.8 492.8C560.4 490.8 557.3 486.3 555.0 482.8C550.7 476.4 547.9 473.2 544.2 470.7C542.1 469.2 541.5 469.1 536.1 468.3C533.5 467.9 530.4 467.3 529.2 467.0C526.2 466.0 526.2 466.0 520.1 470.1C517.0 472.2 512.1 475.4 509.2 477.2C503.4 480.7 498.1 484.1 495.5 486.0C479.0 498.1 464.5 500.8 440.8 496.2C439.4 495.9 433.5 495.1 427.8 494.5C396.4 491.0 384.1 486.6 369.6 474.0C367.6 472.2 363.9 468.9 361.3 466.6C358.6 464.3 354.8 461.1 352.8 459.5C337.5 447.2 331.7 440.4 325.7 428.2C320.8 418.3 319.3 412.1 319.1 401.0C318.9 390.5 319.9 384.0 323.4 372.5C326.4 362.9 336.6 341.5 343.3 331.0C354.8 312.9 378.4 298.7 404.7 294.0C427.6 290.0 442.1 289.3 456.2 291.7C459.4 292.2 470.7 295.3 473.5 296.3C474.0 296.5 477.3 297.4 480.8 298.4C496.7 302.5 506.3 307.5 515.6 316.2C525.8 325.8 532.0 336.5 535.3 350.7C538.3 363.0 540.1 369.8 541.3 373.2C542.1 375.2 543.0 377.7 543.4 378.7C543.7 379.7 545.5 386.3 547.3 393.4C551.0 407.8 550.8 407.5 553.8 409.1C556.9 410.9 560.3 413.7 565.2 418.6C574.4 427.6 579.0 436.7 581.5 450.3C582.7 457.0 583.3 458.2 589.3 466.7C599.1 480.5 602.3 487.1 602.3 493.3C602.3 505.3 590.9 514.6 579.5 511.8ZM689.0 511.3C668.8 510.1 654.2 500.3 639.7 478.5C637.4 475.0 633.9 470.2 631.9 467.7C612.8 444.2 607.9 423.1 612.9 386.0C614.7 372.0 619.8 360.2 628.2 350.2C645.1 329.9 658.1 318.5 670.7 313.0C685.8 306.3 716.5 302.4 731.5 305.1C758.0 310.0 775.7 321.9 790.2 344.5C799.5 358.9 804.3 371.8 806.0 386.9C809.3 416.3 806.5 439.7 797.3 458.0C790.8 471.1 784.0 478.3 766.6 490.6C763.8 492.6 760.5 495.0 759.3 496.0C752.2 501.7 735.3 508.2 721.7 510.4C714.6 511.5 699.0 511.9 689.0 511.3ZM2096.9 507.1C2088.5 505.1 2083.5 498.9 2082.2 488.8C2081.3 482.0 2079.4 475.5 2075.3 465.5C2072.3 457.8 2068.4 452.9 2063.8 450.6C2061.0 449.3 2060.2 449.3 2056.7 450.6C2053.8 451.8 2053.8 451.8 2045.8 459.8C2034.8 471.0 2030.0 474.1 2019.7 476.6C2013.1 478.3 1999.3 479.4 1985.7 479.3C1980.6 479.3 1974.4 479.5 1969.3 479.9C1948.9 481.4 1932.5 480.7 1920.2 477.8C1891.9 471.3 1873.8 459.1 1862.7 439.2C1857.8 430.3 1856.1 424.3 1853.0 404.0C1851.6 395.1 1851.1 392.2 1848.7 381.2C1844.1 360.0 1846.3 347.6 1858.6 326.3C1859.7 324.4 1862.1 320.1 1863.9 316.7C1871.7 302.3 1874.2 298.3 1880.0 291.5C1889.1 280.6 1898.7 273.5 1916.4 264.7C1937.3 254.3 1954.6 251.5 1971.8 255.7C1983.7 258.7 2000.4 264.3 2006.7 267.5C2014.7 271.6 2040.6 289.4 2048.4 296.1C2073.9 318.1 2079.2 324.8 2083.3 340.0C2085.3 347.5 2085.4 348.7 2085.5 373.2C2085.7 396.1 2086.0 404.6 2086.9 406.6C2087.1 407.2 2089.0 409.5 2091.1 411.7C2098.7 419.4 2102.9 427.4 2106.1 439.9C2106.8 442.4 2108.0 446.0 2108.7 447.9C2117.1 468.0 2121.1 484.9 2119.2 493.0C2116.8 503.0 2106.6 509.5 2096.9 507.1ZM988.0 493.8C984.3 493.3 975.0 491.4 971.2 490.3C969.9 490.0 965.6 488.9 961.7 488.0C943.7 483.9 933.0 477.7 924.0 466.3C917.7 458.4 910.5 440.7 908.3 428.2C907.3 422.1 907.8 402.6 909.2 393.3C909.4 391.8 910.2 382.6 910.8 374.6C913.0 347.1 920.0 333.6 942.7 313.5C946.5 310.1 950.4 306.7 951.4 305.9C952.4 305.2 954.1 303.7 955.3 302.7C969.3 290.5 987.3 283.4 1010.4 280.6C1025.5 278.9 1048.9 282.6 1070.3 290.2C1091.6 297.7 1100.3 303.4 1114.0 318.8C1124.2 330.4 1128.6 338.9 1132.5 354.5C1133.5 358.5 1135.8 366.3 1137.5 371.7C1144.7 394.5 1145.7 398.3 1146.5 406.7C1147.1 413.5 1146.9 412.9 1152.9 418.7C1161.4 427.0 1164.5 432.0 1166.8 440.8C1168.3 446.3 1168.7 447.4 1171.0 451.0C1175.0 457.4 1176.1 462.6 1174.8 468.4C1171.9 481.0 1160.1 487.8 1146.8 484.2C1135.2 481.2 1121.6 475.4 1116.4 471.5C1114.3 469.9 1113.4 469.8 1109.0 470.9C1105.4 471.7 1104.7 471.8 1096.0 471.8C1081.1 471.9 1077.6 472.6 1065.0 477.5C1051.8 482.7 1046.8 484.2 1020.5 491.1C1008.4 494.2 997.7 495.1 988.0 493.8ZM1261.9 493.1C1248.4 489.9 1242.8 473.3 1251.8 463.1C1252.7 462.1 1256.5 458.6 1260.4 455.1C1272.5 444.4 1274.3 441.0 1273.7 430.7C1272.8 417.8 1272.8 410.9 1273.7 405.8C1274.3 401.5 1274.9 399.3 1277.7 389.8C1278.7 386.7 1287.0 354.1 1289.0 345.3C1289.6 343.0 1290.5 338.3 1291.2 334.8C1293.0 324.7 1294.6 316.2 1295.7 311.0C1297.0 304.5 1297.8 300.5 1298.8 294.5C1300.2 286.4 1301.8 279.6 1304.2 271.7C1311.2 248.6 1312.7 232.1 1311.2 199.6C1310.3 181.5 1311.1 175.4 1316.0 165.3C1321.9 152.9 1338.6 141.3 1357.5 136.4C1371.2 133.0 1394.0 137.6 1408.2 146.7C1419.9 154.3 1427.4 163.4 1435.6 180.0C1441.2 191.5 1444.7 196.6 1452.2 204.3C1455.7 207.9 1456.1 208.0 1459.6 206.2C1465.2 203.4 1470.0 201.6 1479.1 199.0C1488.6 196.3 1486.7 198.1 1495.7 184.0C1499.6 177.9 1504.3 171.4 1508.2 166.8C1509.8 164.9 1512.0 162.2 1513.0 161.0C1534.8 134.0 1554.3 125.7 1594.1 126.5C1608.3 126.7 1607.4 126.9 1610.0 123.3C1613.4 118.7 1617.3 116.0 1622.0 114.8C1635.1 111.8 1647.4 124.3 1644.0 137.4C1642.6 142.9 1640.9 145.7 1635.5 151.3C1630.7 156.3 1631.0 155.5 1630.7 167.7C1630.5 175.3 1630.2 180.4 1629.2 190.3C1627.7 204.8 1627.7 203.3 1630.0 223.5C1631.5 237.5 1631.7 241.0 1631.7 274.5C1631.7 291.7 1631.8 307.8 1632.0 310.2C1632.2 312.6 1632.7 320.9 1633.2 328.7C1634.0 342.9 1634.5 347.7 1635.6 355.3C1636.0 358.6 1636.2 361.7 1636.1 370.2C1636.1 379.5 1635.9 387.8 1634.7 416.7C1634.4 423.8 1634.3 423.1 1636.2 440.3C1636.5 443.0 1636.9 446.4 1637.2 448.0C1638.5 455.6 1636.9 461.1 1632.0 466.0C1623.6 474.4 1610.3 473.2 1603.6 463.3C1600.8 459.3 1600.2 456.2 1598.3 439.5C1597.6 432.9 1596.7 425.7 1596.3 423.5C1595.3 416.9 1594.6 404.6 1594.0 378.3C1593.8 370.1 1593.5 363.4 1593.0 358.7C1592.1 349.7 1592.2 335.8 1593.4 320.7C1594.0 311.8 1594.1 307.9 1594.2 280.3C1594.4 243.7 1594.3 241.9 1591.8 220.6C1591.4 216.6 1590.9 211.3 1590.7 208.7C1590.1 199.6 1587.5 184.1 1586.4 182.9C1585.4 181.8 1577.4 183.2 1572.8 185.4C1567.3 187.9 1554.9 204.8 1547.2 220.0C1542.2 229.8 1535.2 238.8 1527.8 245.0C1519.9 251.6 1512.6 255.2 1498.2 259.4C1491.2 261.4 1491.4 261.2 1490.7 266.4C1490.0 271.0 1488.8 275.8 1487.3 280.2C1486.4 282.7 1486.2 283.9 1486.0 288.2C1485.6 294.3 1485.0 297.0 1482.6 302.2C1479.7 308.4 1478.7 312.1 1478.7 315.6C1478.7 321.5 1477.0 325.7 1473.0 329.7C1463.5 339.3 1448.8 336.3 1442.7 323.6C1441.4 320.7 1440.4 319.4 1437.9 316.5C1428.6 305.9 1427.2 303.9 1425.1 298.3C1422.3 291.0 1422.2 277.9 1424.8 268.3C1425.8 264.9 1425.5 264.4 1420.0 260.5C1414.4 256.5 1402.4 244.0 1394.6 234.2C1388.8 226.8 1385.7 221.7 1380.6 211.5C1374.9 199.9 1373.4 198.3 1369.6 199.4C1367.2 200.0 1360.4 205.6 1359.1 207.8C1354.6 216.1 1353.3 224.0 1352.5 247.2C1351.7 270.1 1351.6 272.5 1349.3 287.3C1348.8 290.9 1347.9 297.4 1347.3 301.8C1346.8 306.2 1345.8 312.8 1345.1 316.3C1343.2 326.9 1342.4 331.9 1341.0 343.1C1339.6 353.9 1339.0 357.7 1336.6 370.2C1332.9 389.5 1328.6 401.4 1320.7 414.7C1317.5 419.9 1317.2 420.7 1314.9 430.3C1307.5 460.5 1302.2 469.0 1278.8 488.5C1273.5 493.0 1267.7 494.5 1261.9 493.1ZM1798.9 476.8C1792.0 475.1 1786.2 469.2 1784.5 462.0C1783.8 458.8 1782.2 447.1 1781.0 436.3C1780.5 431.1 1779.7 425.4 1779.3 423.7C1777.9 416.8 1776.4 406.9 1775.6 398.7C1775.0 393.3 1775.0 362.2 1775.6 355.3C1776.6 343.6 1776.7 338.2 1776.3 326.7C1775.3 292.4 1775.1 290.3 1771.7 273.0C1771.2 270.3 1770.4 266.2 1770.0 263.8C1769.6 261.4 1769.2 259.0 1769.1 258.4C1768.4 254.1 1767.9 244.9 1767.7 231.5C1767.2 206.6 1766.9 203.9 1763.5 189.0C1762.6 185.4 1761.6 180.9 1761.2 179.0C1756.5 158.8 1756.0 147.2 1758.5 117.9C1759.7 103.9 1760.4 101.5 1765.0 97.0C1772.5 89.5 1783.5 89.5 1791.0 97.0C1794.3 100.2 1795.2 102.2 1797.0 109.4C1797.7 112.4 1799.2 117.9 1800.3 121.5C1803.8 133.5 1808.4 152.6 1810.2 163.0C1812.8 178.4 1813.6 192.0 1813.0 208.8C1812.1 229.9 1812.4 241.0 1814.2 261.3C1815.0 270.3 1815.2 286.9 1814.6 297.8C1814.0 310.0 1814.1 321.5 1814.8 330.0C1815.1 333.8 1815.5 343.0 1815.7 350.5C1816.0 364.4 1816.4 378.3 1817.0 393.8C1817.2 398.6 1817.3 407.1 1817.3 412.6C1817.3 421.2 1817.5 423.9 1818.2 430.4C1819.2 439.7 1820.9 452.8 1821.3 455.3C1823.8 468.1 1811.5 479.9 1798.9 476.8ZM2142.9 470.1C2135.9 468.5 2130.5 462.9 2128.8 455.8C2128.3 453.9 2128.2 451.3 2128.2 439.0C2128.1 431.0 2128.0 420.0 2127.9 414.5C2127.6 403.6 2127.8 399.6 2129.2 390.7C2130.7 380.9 2131.1 374.0 2131.3 350.8C2131.6 325.1 2131.8 323.1 2135.9 312.2C2142.4 294.4 2159.8 278.7 2181.8 270.5C2195.8 265.4 2212.2 264.6 2232.0 268.1C2257.8 272.7 2267.8 275.6 2280.0 282.1C2300.5 292.9 2314.0 306.3 2323.6 325.6C2327.8 334.0 2329.7 339.5 2333.1 353.2C2338.1 373.1 2340.3 380.8 2345.3 394.6C2347.5 400.7 2348.1 403.5 2350.4 416.6C2351.8 425.2 2351.9 426.8 2351.2 430.0C2347.9 443.8 2331.2 449.3 2320.8 439.9C2316.3 435.8 2315.0 432.6 2313.0 421.1C2310.8 408.1 2311.0 408.8 2306.5 402.8C2301.3 395.9 2298.6 391.5 2295.4 384.5C2292.0 376.9 2289.5 371.2 2287.5 366.5C2280.3 349.4 2271.5 338.4 2258.0 329.6C2251.1 325.1 2245.8 323.5 2234.8 322.5C2215.3 320.8 2205.6 323.2 2188.7 334.2C2182.3 338.3 2181.6 339.8 2177.3 358.6C2174.1 373.0 2172.4 378.5 2167.3 392.5C2165.3 398.1 2165.1 402.6 2165.5 433.2C2165.7 451.4 2165.7 453.7 2165.2 455.8C2162.8 466.0 2152.7 472.5 2142.9 470.1ZM1700.9 462.8C1694.1 461.2 1688.7 455.7 1686.9 448.8C1686.6 447.7 1685.9 442.9 1685.3 438.3C1683.3 420.7 1682.6 416.7 1680.5 411.5C1677.6 404.0 1673.9 391.4 1672.5 384.0C1672.0 381.5 1671.4 378.4 1671.2 377.0C1668.5 363.2 1668.5 363.1 1668.5 353.0C1668.5 342.9 1668.5 342.8 1670.8 328.5C1673.1 314.3 1673.7 308.8 1673.5 303.5C1673.1 295.4 1674.4 291.5 1679.0 287.0C1686.5 279.5 1697.5 279.5 1705.0 287.0C1708.8 290.8 1710.1 293.8 1711.2 301.5C1711.5 303.5 1712.1 306.9 1712.5 309.0C1715.5 323.1 1716.7 331.4 1717.3 343.8C1717.7 351.1 1718.1 354.9 1719.0 361.3C1720.5 371.7 1721.1 398.3 1720.1 407.5C1719.6 411.7 1719.6 411.8 1720.8 419.8C1723.2 435.2 1724.0 445.0 1723.2 448.5C1720.8 458.7 1710.7 465.2 1700.9 462.8ZM710.2 448.0C714.3 447.5 718.0 446.4 723.3 444.2C728.9 441.8 730.5 441.3 737.0 439.8C748.6 437.2 749.5 436.9 752.0 434.1C759.2 426.0 761.5 409.3 757.5 394.3C756.1 389.3 753.4 384.8 746.1 375.7C734.4 361.1 725.5 358.2 709.2 363.9C699.5 367.3 692.4 372.7 681.3 385.2C675.6 391.6 675.8 391.1 674.8 402.4C673.6 416.8 674.4 419.8 682.6 430.0C685.3 433.4 689.0 438.4 690.8 441.2C694.4 446.6 695.1 447.6 696.2 448.0C697.1 448.4 706.5 448.4 710.2 448.0ZM1997.7 441.5C2013.2 440.6 2011.8 441.2 2022.6 430.4C2030.9 422.1 2031.7 421.0 2031.7 418.8C2031.7 418.1 2031.9 416.2 2032.2 414.7C2033.0 409.7 2032.4 386.1 2031.1 378.3C2028.9 364.4 2027.6 362.0 2017.7 353.2C2003.6 340.8 2001.2 337.8 1986.8 312.4C1981.1 302.4 1978.2 300.5 1966.1 299.0C1959.9 298.2 1951.2 301.5 1936.2 310.3C1922.0 318.5 1920.1 320.8 1916.2 334.1C1913.0 344.9 1910.2 352.3 1906.5 359.7C1901.8 369.1 1901.5 370.3 1901.5 386.0C1901.5 405.2 1903.0 409.4 1911.8 413.8C1913.5 414.6 1924.4 419.0 1924.8 419.0C1924.9 419.0 1928.4 420.4 1932.6 422.0C1936.8 423.7 1940.9 425.4 1941.8 425.8C1944.7 426.9 1950.2 428.9 1956.0 431.0C1964.5 434.0 1975.6 438.3 1980.5 440.5C1984.2 442.2 1985.4 442.2 1997.7 441.5ZM440.7 438.3C455.6 437.0 454.1 437.5 463.7 431.2C467.1 428.9 472.0 425.8 474.7 424.2C482.3 419.5 486.3 416.8 486.8 415.7C487.3 414.7 487.3 414.4 486.0 409.6C482.8 397.1 482.5 395.1 482.0 385.3C480.7 358.3 478.4 353.5 465.7 350.5C452.7 347.4 448.0 347.3 435.5 350.1C433.8 350.4 427.6 351.7 421.7 352.9C400.6 357.1 388.7 361.1 384.7 365.5C377.4 373.5 375.0 389.3 379.3 399.8C381.7 405.5 385.2 410.4 392.5 418.6C397.4 424.0 401.2 428.4 402.8 430.4C409.9 439.2 415.9 440.5 440.7 438.3ZM1007.3 432.8C1010.0 432.4 1016.1 431.4 1021.0 430.6C1035.0 428.5 1035.7 428.3 1050.3 423.5C1055.0 421.9 1062.4 419.7 1066.7 418.6C1074.2 416.7 1079.5 415.1 1081.4 414.1C1083.1 413.3 1083.1 413.1 1083.2 405.9C1083.2 401.5 1083.4 397.9 1083.8 395.5C1084.9 387.7 1084.0 377.6 1081.0 365.9C1079.9 361.5 1077.8 358.7 1071.4 352.9C1066.1 348.1 1059.7 345.8 1045.8 343.5C1026.3 340.3 1019.5 340.4 1009.3 343.7C1001.3 346.3 999.0 347.8 986.6 358.7C973.2 370.6 973.4 370.2 973.3 382.8C973.3 385.9 973.2 390.0 973.0 391.8C970.4 417.4 970.4 419.2 973.0 424.3C974.1 426.5 976.9 427.9 986.0 430.8C995.8 433.9 999.2 434.2 1007.3 432.8ZM2052.2 182.8C2043.9 180.8 2037.7 173.0 2037.7 164.7C2037.7 157.1 2041.8 151.3 2050.3 146.8C2060.2 141.6 2070.3 135.2 2078.4 129.1C2085.6 123.6 2089.2 121.2 2095.8 117.5C2102.4 113.8 2107.9 110.3 2113.3 106.6C2122.1 100.5 2131.0 101.0 2138.0 108.0C2143.9 113.9 2145.2 121.7 2141.6 129.3C2139.2 134.3 2127.6 143.3 2115.8 149.2C2112.1 151.2 2106.6 154.8 2099.8 159.8C2085.5 170.5 2067.2 181.3 2061.0 182.8C2058.3 183.4 2054.8 183.4 2052.2 182.8Z'/%3E%3C/svg%3E");
  -webkit-mask: var(--sig) center / contain no-repeat;
          mask: var(--sig) center / contain no-repeat;
}

/* ---------- buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em; cursor: pointer;
  min-height: 48px; padding: 0 24px; border-radius: 999px; border: 1px solid var(--ink);
  background: var(--ink); color: var(--paper); text-decoration: none;
  font-size: var(--t-small); font-weight: 500; letter-spacing: .005em; white-space: nowrap;
  transition: background .2s, color .2s, border-color .2s;
}
.btn:hover { background: #333; }
.btn--ghost { background: transparent; color: var(--ink); }
.btn--ghost:hover { background: rgb(0 0 0 / .06); }
.btn--light { background: #fff; color: var(--rosa-deep); border-color: #fff; }
.btn--light:hover { background: rgb(255 255 255 / .88); }
.btn--sm { min-height: 38px; padding: 0 16px; font-size: var(--t-label); }
.btn[aria-pressed="true"] { background: var(--ink); color: var(--paper); }

.seg { display: inline-flex; padding: 4px; gap: 2px; border-radius: 999px; background: rgb(0 0 0 / .06); }
.seg__btn { border: 0; background: transparent; padding: 8px 16px; border-radius: 999px; cursor: pointer; font-size: var(--t-label); font-weight: 500; color: var(--ink-2); }
.seg__btn[aria-pressed="true"] { background: #fff; color: var(--ink); box-shadow: 0 1px 2px rgb(0 0 0 / .12); }

/* ---------- header */
.site-head {
  position: fixed; inset: 0 0 auto 0; z-index: 50; height: var(--head-h);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 0 var(--gutter); pointer-events: none;
}
.site-head > * { pointer-events: auto; }
.site-head__home { color: var(--ink); display: inline-flex; padding: 8px 0; transition: opacity .4s var(--ease); }
.site-head__home .sig { width: 116px; }
.page-home .site-head__home { opacity: 0; pointer-events: none; }
.page-home[data-scrolled] .site-head__home { opacity: 1; pointer-events: auto; }

.nav__list {
  list-style: none; display: flex; gap: 2px; padding: 5px;
  background: var(--glass); border: 1px solid rgb(0 0 0 / .07); border-radius: 999px;
  -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6);
  box-shadow: 0 8px 24px -16px rgb(0 0 0 / .35);
}
.nav__list a { display: block; padding: 8px 15px; border-radius: 999px; text-decoration: none; font-size: 14px; font-weight: 500; white-space: nowrap; }
.nav__list a:hover { background: rgb(0 0 0 / .06); }
.nav__list a[aria-current="page"] { background: var(--ink); color: var(--paper); }
.nav__toggle { display: none; }
/* language switch: a short code in the pill, the full name in the menu and footer */
.nav__lang { display: flex; align-items: center; }
.nav__lang::before { content: ""; width: 1px; height: 18px; margin: 0 4px 0 2px; background: rgb(0 0 0 / .14); }
.lang-long { display: none; }
.foot__lang .lang-short { display: none; }
.foot__lang .lang-long { display: inline; }

@media (max-width: 900px) {
  :root { --head-h: 64px; }
  .nav__toggle {
    display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; cursor: pointer;
    border: 1px solid rgb(0 0 0 / .08); background: var(--glass); font-size: 14px; font-weight: 500;
    -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); position: relative; z-index: 2;
  }
  .nav__list {
    position: fixed; inset: 0; z-index: 1; flex-direction: column; justify-content: center; gap: 4px;
    padding: 96px var(--gutter) 48px; border-radius: 0; border: 0; background: rgb(255 255 255 / .94);
    opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s;
  }
  .nav__list a { font-size: clamp(30px, 8vw, 44px); font-stretch: 118%; font-weight: 300; padding: 6px 0; border-radius: 0; letter-spacing: -.02em; }
  .nav__list a:hover, .nav__list a[aria-current="page"] { background: none; color: var(--ink); }
  .nav__list a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--rosa); text-decoration-thickness: 2px; }
  .nav__lang { margin-top: 20px; }
  .nav__lang::before { display: none; }
  .nav__lang a { font-size: 18px; font-stretch: 100%; font-weight: 500; letter-spacing: 0; }
  .nav__lang .lang-short { display: none; }
  .nav__lang .lang-long { display: inline; }
  .nav[data-open] .nav__list { opacity: 1; visibility: visible; }
}

/* ---------- section heads */
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px 32px; margin-bottom: clamp(32px, 4vw, 56px); }
.section-head__title { font-size: var(--t-h2); font-stretch: 118%; font-weight: 300; line-height: 1.02; letter-spacing: -.025em; }
.section-head__text { grid-column: 1; color: var(--ink-2); margin: 0; max-width: 40em; }
.section-head .seg { grid-column: 2; grid-row: 1 / span 2; align-self: end; }
@media (max-width: 640px) { .section-head { grid-template-columns: 1fr; } .section-head .seg { grid-column: 1; grid-row: auto; justify-self: start; } }

.page-intro { padding-top: calc(var(--head-h) + clamp(48px, 9vw, 128px)); padding-bottom: clamp(40px, 5vw, 72px); }
.page-intro__title { font-size: var(--t-display); font-stretch: 125%; font-weight: 300; line-height: .96; letter-spacing: -.035em; margin-bottom: .35em; }

/* ---------- hero: the painting, still wet */
.hero {
  min-height: 100svh; display: grid; grid-template-columns: auto minmax(300px, 1fr);
  gap: clamp(28px, 6vw, 120px); padding: calc(var(--head-h) + 8px) var(--gutter) clamp(24px, 4vh, 48px);
  max-width: 1720px; margin-inline: auto; align-items: stretch;
}
.hero__stage { position: relative; display: flex; align-items: center; justify-content: flex-start; min-height: 420px; min-width: 240px; }
.hero__canvas {
  position: relative; height: 100%; max-height: calc(100svh - var(--head-h) - 56px); aspect-ratio: var(--ratio, .8);
  max-width: 100%; touch-action: pan-y; background: #fff;
  box-shadow: 0 1px 0 rgb(0 0 0 / .04), 0 40px 70px -40px rgb(0 0 0 / .45), 0 12px 24px -16px rgb(0 0 0 / .25);
}
.hero__canvas[data-sized] { height: auto; aspect-ratio: auto; }
.hero__img, .hero__canvas canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__img { object-fit: cover; transition: opacity .32s var(--ease); }
.js .hero__img { visibility: hidden; }
.js .hero__canvas.is-still .hero__img { visibility: visible; }
.hero__canvas[data-fading] .hero__img { opacity: 0; }
.hero__canvas canvas { opacity: 0; transition: opacity .6s var(--ease); }
.hero__canvas[data-gl] canvas { opacity: 1; }
.hero__canvas.is-still canvas { display: none; }
.hero__canvas[data-wet] { cursor: none; }
.hero__cursor {
  position: absolute; left: 0; top: 0; width: var(--brush, 72px); height: var(--brush, 72px); margin: calc(var(--brush, 72px) / -2) 0 0 calc(var(--brush, 72px) / -2);
  border-radius: 50%; border: 1px solid rgb(255 255 255 / .9); pointer-events: none; opacity: 0; transition: opacity .2s;
  box-shadow: 0 0 0 1px rgb(0 0 0 / .18), inset 0 0 0 1px rgb(0 0 0 / .12);
}
.hero__canvas[data-wet]:hover .hero__cursor { opacity: 1; }
@media (hover: none) { .hero__cursor { display: none; } .hero__canvas[data-wet] { cursor: auto; } }

.hero__text { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding-block: clamp(8px, 4vh, 40px) 0; min-width: 0; }
.hero__title { margin: 0; color: var(--ink); line-height: 0; }
.sig--hero { width: min(100%, 540px); }
.hero__lede { font-size: var(--t-lead); line-height: 1.45; color: var(--ink-2); max-width: 22em; margin: 20px 0 0; }
.hero__label { margin-top: auto; }
.hero__label .label__title { font-size: 17px; }
.hero__hint { font-size: var(--t-label); color: var(--ink-2); margin: 0; display: flex; align-items: center; gap: 10px; transition: opacity .6s; }
.hero__hint::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 1px solid currentColor; flex: none; }
.hero__hint[data-done] { opacity: 0; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
/* the Next button fills up while a painting is shown, then moves on */
.hero__next { position: relative; overflow: hidden; isolation: isolate; }
.hero__next::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(0 0 0 / .08); transform: scaleX(0); transform-origin: left; }
.hero__next[data-timing]::before { animation: timer 9s linear forwards; }
.hero[data-hold] .hero__next::before { animation-play-state: paused; }
@keyframes timer { to { transform: scaleX(1); } }

.hero__title .sig--hero { animation: sign 1.6s .25s var(--ease) both; }
@keyframes sign { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: auto; padding-top: calc(var(--head-h) + 24px); gap: 24px; }
  .hero__text { display: contents; }
  .hero__title { order: -2; }
  .hero__lede { order: -1; margin-top: 0; }
  .hero__stage { min-height: 0; justify-content: center; }
  .hero__canvas { height: auto; width: 100%; max-height: 72svh; }
  .hero__label, .hero__hint, .hero__actions { margin: 0; }
  .sig--hero { width: min(88%, 420px); }
}

/* ---------- statement */
.statement { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; padding-block: clamp(96px, 14vw, 200px) clamp(72px, 9vw, 140px); }
.statement__quote { grid-column: 1 / span 11; margin: 0; }
.statement__quote p { margin: 0; font-size: var(--t-display); font-stretch: 125%; font-weight: 300; line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.statement__body { grid-column: 7 / span 5; margin-top: clamp(40px, 5vw, 72px); font-size: var(--t-lead); line-height: 1.5; }
@media (max-width: 900px) { .statement__quote, .statement__body { grid-column: 1 / -1; } }

/* ---------- gallery cards: paintings sit on a shared baseline like works on a wall */
.gallery { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: clamp(48px, 5vw, 80px) clamp(24px, 3vw, 56px); }
.card__link { display: flex; flex-direction: column; gap: 18px; text-decoration: none; height: 100%; }
.card__frame { display: flex; align-items: flex-end; justify-content: center; height: clamp(220px, 24vw, 360px); }
.card__frame img { width: auto; height: auto; max-width: 100%; max-height: 100%; box-shadow: var(--shadow-art); background: var(--ink-3); }
.card__label { display: flex; flex-direction: column; font-size: var(--t-label); color: var(--ink-2); line-height: 1.45; padding-inline: 2px; }
.card__title { font-size: var(--t-small); color: var(--ink); }
.card__link:hover .card__title cite { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-color: var(--rosa); }
.status { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: var(--t-label); color: var(--ink-2); }
.status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--ink-2); }
.status--sold::before { background: var(--rosa); border-color: var(--rosa); }
@media (max-width: 640px) {
  .gallery, .gallery--archive, .gallery--series { grid-template-columns: 1fr 1fr; gap: 40px 16px; }
  .card__frame, .gallery--archive .card__frame, .gallery--series .card__frame { height: 168px; }
  .card__label { font-size: 12px; }
  .card__title { font-size: 13px; }
}

/* ---------- available works: a wall to walk along, at true scale */
.walk { position: relative; --edge: max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))); --gap: clamp(150px, 15vw, 230px); }
.walk__view { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100svh; min-height: 560px; padding-top: calc(var(--head-h) + 12px); overflow: clip; }
.walk__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 32px; padding-bottom: 8px; }
.walk__text { color: var(--ink-2); margin: 10px 0 0; }
.walk__wall { position: relative; container-type: size; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: thin; }
.walk[data-pin] { height: calc(var(--dist, 0) * 1px / var(--speed, 2) + 100svh); }
.walk[data-pin] .walk__view { position: sticky; top: 0; }
.walk[data-pin] .walk__wall { overflow: clip; }
.walk__track {
  --s: calc(100cqh / 184); position: relative; z-index: 1; isolation: isolate;
  display: flex; align-items: center; width: max-content; height: 100%; list-style: none; padding-inline: var(--edge);
}
.walk[data-pin] .walk__track { will-change: transform; }
.walk[data-css] { view-timeline: --walk block; }
.walk[data-css] .walk__track { animation: walk-pan linear both; animation-timeline: --walk; animation-range: contain 0% contain 100%; }
@keyframes walk-pan { to { transform: translate3d(calc(var(--dist, 0) * -1px), 0, 0); } }

.hang { position: relative; flex: none; margin-right: var(--gap); }
.hang:last-child { margin-right: calc(var(--gap) - 32px); }
.hang__art { position: relative; display: block; width: calc(var(--w) * var(--s)); height: calc(var(--h) * var(--s)); background: var(--c1, var(--gesso)); box-shadow: var(--shadow-art); outline-offset: 6px; }
.hang__art img { width: 100%; height: 100%; object-fit: cover; }
/* the painting in front of you is lit, and its colour reaches the wall */
.hang::before {
  content: ""; position: absolute; inset: -24% -20%; z-index: -1; pointer-events: none; opacity: 0; transition: opacity 1.1s var(--ease);
  background: radial-gradient(closest-side at 32% 38%, var(--c1), transparent), radial-gradient(closest-side at 68% 62%, var(--c2), transparent), radial-gradient(closest-side, var(--c3), transparent);
  filter: blur(56px);
}
.hang[data-active]::before { opacity: .34; }
.hang__label { position: absolute; left: calc(100% + 22px); top: calc(50% + 12px); width: calc(var(--gap) - 52px); margin: 0; display: flex; flex-direction: column; font-size: var(--t-label); line-height: 1.45; color: var(--ink-2); }
.hang__label a { color: var(--ink-2); text-decoration: none; font-size: var(--t-small); transition: color .5s; }
.hang[data-active] .hang__label a { color: var(--ink); }
.hang__label a:hover { text-decoration: underline; text-decoration-color: var(--rosa); }
.hang__label--list { top: 50%; transform: translateY(-50%); background: var(--paper); box-shadow: 0 0 0 10px var(--paper); }
.hang__label--list ul { list-style: none; margin-bottom: 8px; }
.hang__label--list a { font-size: var(--t-label); }
.salon { display: flex; align-items: center; gap: calc(9 * var(--s)); }
.salon__col { display: flex; flex-direction: column; align-items: center; gap: calc(9 * var(--s)); }
.salon .hang__art { box-shadow: 0 1px 1px rgb(0 0 0 / .1), 0 10px 18px -10px rgb(0 0 0 / .45); }

/* a laser level at 150 cm, the line a hanger works to */
.walk__level { position: absolute; left: 0; right: 0; top: 50%; z-index: 0; border-top: 1px dashed rgb(228 0 124 / .5); pointer-events: none; }
.walk__scale { --s: calc(100cqh / 184); position: absolute; left: var(--edge); bottom: 10px; z-index: 2; display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--ink-2); pointer-events: none; }
.walk__scale span { width: calc(100 * var(--s)); height: 6px; border: 1px solid currentColor; border-top: 0; }

.walk__foot { display: flex; justify-content: center; padding: 12px var(--gutter) max(20px, env(safe-area-inset-bottom)); }
.walk__mapwrap { position: relative; max-width: 100%; }
.walk__map { --m: .27px; position: relative; list-style: none; display: flex; align-items: center; gap: 5px; height: 54px; }
.walk__map li { flex: none; display: flex; }
.walk__mark { display: block; padding: 0; border: 0; cursor: pointer; width: calc(var(--w) * var(--m)); height: calc(var(--h) * var(--m)); background: var(--c1, var(--line)); opacity: .42; transition: opacity .3s; }
.walk__mark img { width: 100%; height: 100%; object-fit: cover; }
.walk__mark:hover, .walk__mark[aria-current] { opacity: 1; }
.walk__mark--salon { width: auto; height: auto; background: none; }
.walk__mark .salon { --s: var(--m); }
.walk__mark .salon img { width: calc(var(--w) * var(--m)); height: calc(var(--h) * var(--m)); }
.walk__window { position: absolute; top: -6px; bottom: -6px; left: 0; width: 40px; border: 1.5px solid var(--ink); border-radius: 6px; pointer-events: none; }
@media (max-width: 640px) {
  .walk { --gap: 140px; }
  .walk__map { --m: .125px; gap: 3px; height: 40px; }
  .hang__label a { font-size: var(--t-label); }
}

/* ---------- on your wall teaser */
.onwall { padding-block: clamp(48px, 6vw, 96px) clamp(80px, 10vw, 160px); }
.onwall__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 112px); align-items: center; }
.onwall__media { position: relative; margin: 0; overflow: hidden; border-radius: 4px; }
.onwall__room { width: 100%; }
.onwall__art { position: absolute; left: 50.9%; top: 37.3%; width: 31.8%; transform: translate(-50%, -50%); box-shadow: 0 2px 2px rgb(0 0 0 / .1), 0 22px 30px -20px rgb(0 0 0 / .5); }
.onwall__tag {
  position: absolute; left: 50.9%; top: calc(37.3% + 22%); transform: translate(-50%, 0); margin-top: 12px;
  font-size: 12px; padding: 7px 12px; border-radius: 999px; white-space: nowrap;
  background: rgb(255 255 255 / .7); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: var(--ink);
}
.onwall__text p:last-child { margin-top: 28px; }
.onwall__text .section-head__title, .kids__text .section-head__title, .commission__text .section-head__title, .formats .section-head__title { margin-bottom: 24px; }
@media (max-width: 900px) { .onwall__inner { grid-template-columns: 1fr; } }

/* ---------- studio video */
.studio { padding-block: clamp(96px, 12vw, 180px) 0; }
.studio__media { position: relative; height: min(88svh, 50vw); min-height: 320px; overflow: hidden; background: #e6e6e6; }
.studio__video { width: 100%; height: 100%; object-fit: cover; }
.studio__toggle {
  position: absolute; right: calc(6% + 16px); bottom: calc(5% + 16px); border: 0; cursor: pointer; padding: 8px 14px; border-radius: 999px; font-size: 12px; font-weight: 500;
  background: rgb(255 255 255 / .7); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.studio__text { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; padding-block: clamp(40px, 5vw, 72px) clamp(96px, 12vw, 180px); }
.studio__quote { grid-column: 1 / span 7; font-size: clamp(30px, 3.6vw, 56px); font-stretch: 118%; font-weight: 300; line-height: 1.05; letter-spacing: -.025em; }
.studio__text p { grid-column: 8 / span 5; }
.studio__text p:first-of-type { font-size: var(--t-lead); line-height: 1.5; }
.studio__text .label { grid-column: 8 / span 5; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .studio__media { animation: studio-open linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; }
    @keyframes studio-open { from { clip-path: inset(5% 6% 5% 6%); } to { clip-path: inset(0 0 0 0); } }
  }
}
@media (max-width: 900px) { .studio__quote, .studio__text p, .studio__text .label { grid-column: 1 / -1; } .studio__quote { margin-bottom: 20px; } .studio__media { height: 62vw; } }

/* ---------- series timeline */
.series-index { padding-bottom: clamp(96px, 12vw, 180px); }
.timeline { list-style: none; margin-bottom: 40px; }
.timeline__link {
  display: grid; grid-template-columns: 112px minmax(0, 1fr) minmax(0, 1.1fr) 72px; grid-template-areas: "year title chips count" "year lede chips count";
  gap: 4px 32px; align-items: center; padding: 24px 0; border-top: 1px solid var(--line); text-decoration: none;
}
.timeline__item:last-child .timeline__link { border-bottom: 1px solid var(--line); }
.timeline__year { grid-area: year; font-size: var(--t-label); color: var(--ink-2); font-variant-numeric: tabular-nums; align-self: start; padding-top: .6em; }
.timeline__title { grid-area: title; font-size: clamp(24px, 2.6vw, 38px); font-stretch: 118%; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.timeline__lede { grid-area: lede; font-size: var(--t-label); color: var(--ink-2); }
.timeline__chips { grid-area: chips; display: flex; justify-content: flex-end; align-items: flex-end; gap: 6px; height: 56px; overflow: hidden; }
.timeline__chips img { height: 100%; width: auto; flex: none; box-shadow: 0 1px 1px rgb(0 0 0 / .1); }
.timeline__count { grid-area: count; font-size: var(--t-label); color: var(--ink-2); text-align: right; }
.timeline__link:hover .timeline__title { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--rosa); text-underline-offset: .15em; }
@media (max-width: 900px) {
  .timeline__link { grid-template-columns: 1fr auto; grid-template-areas: "year count" "title title" "lede lede" "chips chips"; gap: 6px 16px; }
  .timeline__year { padding-top: 0; }
  .timeline__chips { justify-content: flex-start; height: 44px; margin-top: 10px; }
}

/* ---------- workshops teaser: the one place where shapes get playful */
.kids { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 112px); align-items: center; padding-bottom: clamp(96px, 12vw, 180px); }
.kids__text .btn { margin-top: 12px; }
.kids__list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
.kids__item { display: flex; flex-direction: column; gap: 12px; }
.kids__img { display: block; aspect-ratio: 1; overflow: hidden; }
.kids__img img { width: 100%; height: 100%; object-fit: cover; }
.kids__item:nth-child(1) .kids__img { border-radius: 999px 999px 0 0; }
.kids__item:nth-child(2) .kids__img { border-radius: 50%; }
.kids__item:nth-child(3) .kids__img { border-radius: 0 0 999px 999px; }
.kids__item:nth-child(4) .kids__img { border-radius: 40px; }
.kids__name { font-size: var(--t-small); font-weight: 500; }
@media (max-width: 900px) { .kids { grid-template-columns: 1fr; } }

/* ---------- commission teaser */
.commission { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 112px); align-items: end; padding-bottom: clamp(96px, 12vw, 180px); }
.commission__media { margin: 0; }
.commission__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 14px; }
@media (max-width: 900px) { .commission { grid-template-columns: 1fr; } }

/* ---------- contact plane (a rosa mexicano wall) */
.plane { background: var(--rosa-deep); color: #fff; padding-top: clamp(80px, 10vw, 160px); }
.plane ::selection { background: #fff; color: var(--rosa-deep); }
.plane :focus-visible { outline-color: #fff; }
.plane__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px clamp(32px, 6vw, 112px); align-items: end; padding-bottom: clamp(72px, 9vw, 140px); }
.plane__title { font-size: var(--t-display); font-stretch: 125%; font-weight: 300; line-height: .96; letter-spacing: -.04em; }
.plane__mail { display: inline-block; font-size: clamp(24px, 2.8vw, 40px); font-stretch: 112%; font-weight: 400; letter-spacing: -.01em; text-decoration-thickness: 1px; text-underline-offset: .18em; margin-bottom: 16px; word-break: break-word; }
.plane__mail:hover { text-decoration-color: #fff; text-decoration-thickness: 2px; }
.plane__text { color: rgb(255 255 255 / .86); max-width: 30em; }
.plane__links { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 28px; }
.link-light { font-weight: 500; color: #fff; }
.link-light:hover { text-decoration-color: #fff; }
.foot { display: grid; grid-template-columns: auto 1fr auto; gap: 16px 40px; align-items: center; padding-block: 28px 32px; border-top: 1px solid rgb(255 255 255 / .28); font-size: var(--t-label); }
.foot__home { color: #fff; display: inline-flex; }
.foot__home .sig { width: 104px; }
.foot__nav { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.foot__nav a { text-decoration: none; color: rgb(255 255 255 / .9); }
.foot__nav a:hover { text-decoration: underline; }
.foot__legal { margin: 0; color: rgb(255 255 255 / .8); }
@media (max-width: 900px) { .plane__inner, .foot { grid-template-columns: 1fr; } }

/* ---------- inquiry dialog */
.inquiry { width: min(640px, calc(100% - 24px)); max-height: calc(100svh - 24px); padding: 0; border: 0; border-radius: 28px; background: var(--paper); color: var(--ink); box-shadow: 0 40px 80px -20px rgb(0 0 0 / .45); }
.inquiry::backdrop { background: rgb(0 0 0 / .38); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.inquiry[open] { animation: rise .35s var(--ease); }
@keyframes rise { from { opacity: 0; transform: translateY(16px) scale(.98); } }
.inquiry__form { padding: clamp(24px, 4vw, 40px); display: grid; gap: 18px; }
.inquiry__head { display: flex; justify-content: space-between; align-items: start; gap: 16px; margin-bottom: 4px; }
.inquiry__head h2 { font-size: var(--t-h3); font-stretch: 118%; font-weight: 300; letter-spacing: -.015em; }
.inquiry__close { border: 0; background: rgb(0 0 0 / .06); width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; flex: none; }
.field { display: grid; gap: 6px; border: 0; margin: 0; padding: 0; min-width: 0; }
.field > span, .field legend { font-size: var(--t-label); color: var(--ink-2); padding: 0; }
.field input, .field textarea, .select select {
  font: inherit; color: var(--ink); width: 100%; background: var(--gesso); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; outline: none;
}
.field input:focus, .field textarea:focus, .select select:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgb(228 0 124 / .18); }
.field textarea { resize: vertical; min-height: 120px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }
.field--choice { display: flex; flex-wrap: wrap; gap: 8px; }
.field--choice legend { margin-bottom: 8px; }
.field--choice label { position: relative; }
.field--choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.field--choice span { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--gesso); font-size: 14px; }
.field--choice input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.field--choice input:focus-visible + span { outline: 2px solid var(--rosa); outline-offset: 2px; }
.inquiry__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 6px; }
.inquiry__note { font-size: var(--t-label); color: var(--ink-2); margin: 0; flex: 1 1 220px; }
.inquiry__error { color: var(--rosa-deep); font-size: var(--t-label); margin: 0; }

/* ---------- archive */
.filters {
  position: sticky; top: calc(var(--head-h) - 4px); z-index: 10; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px;
  padding: 12px 0; margin-bottom: 40px; background: rgb(255 255 255 / .86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.filters__count { margin: 0 0 0 auto; font-size: var(--t-label); color: var(--ink-2); }
.select select { padding: 9px 36px 9px 16px; border-radius: 999px; font-size: var(--t-label); font-weight: 500; appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 10px; }
.gallery--archive { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 48px clamp(20px, 2.4vw, 40px); padding-bottom: clamp(80px, 10vw, 140px); }
.gallery--archive .card__frame { height: clamp(170px, 17vw, 250px); }
.year-head { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 16px; padding-top: 24px; border-top: 1px solid var(--line); margin-top: 8px; }
.year-head:first-child { margin-top: 0; }
.year-head h2 { font-size: var(--t-h2); font-stretch: 118%; font-weight: 300; letter-spacing: -.03em; line-height: 1; }
.year-head span { font-size: var(--t-label); color: var(--ink-2); }

/* colour mode: a justified spectrum, captions on demand */
.gallery--spectrum { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery--spectrum::after { content: ""; flex: 1e4 1 0; }
.gallery--spectrum .card { flex: calc(var(--r) * 100) 1 calc(var(--r) * var(--row-h, 150px)); position: relative; }
.gallery--spectrum .card__link { gap: 0; }
.gallery--spectrum .card__frame { height: var(--row-h, 150px); display: block; }
.gallery--spectrum .card__frame img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; box-shadow: none; }
.gallery--spectrum .card__label {
  position: absolute; left: 8px; right: 8px; bottom: 8px; padding: 8px 10px; border-radius: 12px; z-index: 2;
  background: rgb(255 255 255 / .85); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s; pointer-events: none;
}
.gallery--spectrum .card__link:hover .card__label, .gallery--spectrum .card__link:focus-visible .card__label { opacity: 1; transform: none; }
.gallery--spectrum .year-head { display: none; }
@media (max-width: 640px) { .gallery--spectrum { --row-h: 96px; gap: 4px; } }

/* ---------- work detail */
.work {
  display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: clamp(32px, 5vw, 96px);
  max-width: var(--max); margin-inline: auto; padding: calc(var(--head-h) + 32px) var(--gutter) 64px;
}
.work__stage { position: sticky; top: calc(var(--head-h) + 16px); align-self: start; }
.work__figure { position: relative; margin: 0; height: calc(100svh - var(--head-h) - 150px); min-height: 360px; display: flex; align-items: center; justify-content: center; }
.work__glow {
  position: absolute; inset: 12% 8%; z-index: 0; opacity: .42; filter: blur(90px); pointer-events: none;
  background: radial-gradient(circle at 30% 40%, var(--glow-a), transparent 60%), radial-gradient(circle at 70% 60%, var(--glow-b), transparent 60%), radial-gradient(circle at 50% 50%, var(--glow-c), transparent 70%);
}
.work__img { position: relative; z-index: 1; width: auto; height: auto; max-width: 100%; max-height: 100%; box-shadow: var(--shadow-art); }
.views { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; justify-content: center; }
.views__btn { width: 58px; height: 58px; padding: 0; border: 1px solid transparent; border-radius: 10px; overflow: hidden; cursor: pointer; background: var(--gesso); opacity: .7; transition: opacity .15s, border-color .15s; }
.views__btn img { width: 100%; height: 100%; object-fit: cover; }
.views__btn:hover { opacity: 1; }
.views__btn[aria-pressed="true"] { opacity: 1; border-color: var(--ink); }
.work__info { padding-top: clamp(8px, 4vh, 48px); min-width: 0; }
.work__crumb { font-size: var(--t-label); color: var(--ink-2); margin-bottom: 20px; }
.work__title { font-size: clamp(38px, 4.6vw, 76px); font-stretch: 118%; font-weight: 300; line-height: 1; letter-spacing: -.03em; margin-bottom: 28px; }
.work__title cite { font-style: italic; }
.work__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; margin: 0 0 24px; }
.work__facts dt { font-size: var(--t-label); color: var(--ink-2); }
.work__facts dd { margin: 0; }
.work__status { display: flex; align-items: center; gap: 10px; font-weight: 500; margin-bottom: 24px; }
.work__status .dot { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--ink); }
.work__status--sold { color: var(--ink-2); font-weight: 400; }
.work__status--sold .dot { background: var(--rosa); border-color: var(--rosa); }
.work__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.work__desc { padding-top: 32px; border-top: 1px solid var(--line); }
.work__desc p { max-width: 34em; }
.work__scale { margin: 40px 0 0; padding-top: 32px; border-top: 1px solid var(--line); }
.scale-fig { width: 100%; max-width: 380px; height: auto; margin-bottom: 12px; overflow: visible; }
.scale-fig__floor { stroke: var(--ink); stroke-width: 1; vector-effect: non-scaling-stroke; }
.scale-fig__person { fill: var(--ink-3); }
.scale-fig__text { font-size: 9px; fill: var(--ink-2); font-family: inherit; }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-block: 24px clamp(80px, 10vw, 140px); }
.pager__link { display: flex; flex-direction: column; gap: 6px; padding-top: 20px; border-top: 1px solid var(--line); text-decoration: none; }
.pager__link--next { text-align: right; }
.pager__title { font-size: var(--t-h3); font-stretch: 112%; font-weight: 300; letter-spacing: -.01em; }
.pager__link:hover .pager__title { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--rosa); }
@media (max-width: 900px) {
  .work { grid-template-columns: 1fr; }
  .work__stage { position: static; }
  .work__figure { height: auto; min-height: 0; max-height: 72svh; }
  .work__img { max-height: 72svh; }
}

/* ---------- series page */
.toc ol { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 24px; margin-top: 40px; }
.toc a { display: flex; flex-direction: column; padding: 14px 0; border-top: 1px solid var(--line); text-decoration: none; font-size: var(--t-small); }
.toc a span { font-size: var(--t-label); color: var(--ink-2); }
.toc a:hover { text-decoration: underline; }
.series { padding-block: clamp(56px, 7vw, 112px); border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 32px clamp(32px, 6vw, 112px); }
.series__head { align-self: start; position: sticky; top: calc(var(--head-h) + 24px); }
.series__years { font-size: var(--t-label); color: var(--ink-2); margin-bottom: 10px; }
.series__title { font-size: var(--t-h2); font-stretch: 118%; font-weight: 300; line-height: 1.02; letter-spacing: -.025em; margin-bottom: 12px; }
.series__count { font-size: var(--t-label); color: var(--ink-2); }
.series__text p { max-width: 36em; }
.gallery--series { grid-column: 1 / -1; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); margin-top: 24px; }
.gallery--series .card__frame { height: clamp(170px, 17vw, 260px); }
.series-list { padding-bottom: clamp(80px, 10vw, 140px); }
@media (max-width: 900px) { .series { grid-template-columns: 1fr; } .series__head { position: static; } }

/* ---------- about */
.about { padding-top: calc(var(--head-h) + 24px); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 24px; padding-bottom: clamp(80px, 10vw, 140px); }
.about__portrait { grid-column: 1 / -1; margin: 0 0 clamp(48px, 7vw, 112px); }
.about__portrait img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; object-position: 60% 30%; }
.about__text { grid-column: 1 / span 12; display: grid; grid-template-columns: subgrid; }
.about__text h1 { grid-column: 1 / span 7; }
.about__text .prose { grid-column: 8 / span 5; font-size: var(--t-lead); line-height: 1.55; }
.about__strip { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: clamp(48px, 7vw, 112px) 0; }
.about__strip img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.about__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.about__facts div { padding-top: 16px; border-top: 1px solid var(--line); }
.about__facts dt { font-size: var(--t-label); color: var(--ink-2); margin-bottom: 4px; }
.about__facts dd { margin: 0; }
@media (max-width: 900px) {
  .about__text h1, .about__text .prose { grid-column: 1 / -1; }
  .about__facts { grid-template-columns: 1fr 1fr; }
}

/* ---------- commissions page */
.commission-page { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 112px); align-items: start; padding-bottom: clamp(80px, 10vw, 140px); }
.commission-page__media { margin: 0; position: sticky; top: calc(var(--head-h) + 24px); }
.commission-page__media img { width: 100%; margin-bottom: 14px; }
.commission-page__text { font-size: var(--t-lead); }
.commission-page__text .h3 { margin: 40px 0 8px; }
.steps { list-style: none; counter-reset: step; margin: 0 0 32px; }
.steps__item { counter-increment: step; display: grid; grid-template-columns: 44px 1fr; gap: 0 12px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.steps__item::before { content: counter(step); grid-row: 1 / span 2; font-size: var(--t-small); font-stretch: 112%; color: var(--ink-2); width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; }
.steps__item h3 { font-size: var(--t-body); font-weight: 600; }
.steps__item p { font-size: var(--t-body); color: var(--ink-2); margin: 4px 0 0; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.commission-examples { padding-bottom: clamp(80px, 10vw, 140px); }
.commission-examples .section-head__title { margin-bottom: 48px; }
@media (max-width: 900px) { .commission-page { grid-template-columns: 1fr; } .commission-page__media { position: static; } }

/* ---------- contact page */
.contact-intro { padding-bottom: clamp(80px, 10vw, 140px); }
.contact-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 48px 0; }
.contact-list div { padding-top: 16px; border-top: 1px solid var(--line); }
.contact-list dt { font-size: var(--t-label); color: var(--ink-2); }
.contact-list dd { margin: 4px 0 0; font-size: var(--t-lead); }
@media (max-width: 760px) { .contact-list { grid-template-columns: 1fr; } }

/* ---------- workshops page */
.kids-hero { padding-top: var(--head-h); }
.kids-hero__media { height: min(70svh, 46vw); min-height: 280px; overflow: hidden; margin: 0 var(--gutter); border-radius: 0 0 50vw 50vw / 0 0 18vw 18vw; }
.kids-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.kids-hero__text { padding-top: clamp(40px, 6vw, 96px); }
.kids-intro { font-size: var(--t-lead); padding-block: 16px clamp(64px, 8vw, 120px); columns: 2 22em; column-gap: clamp(32px, 6vw, 112px); }
.kids-intro p { break-inside: avoid; }
.programme { padding-bottom: clamp(64px, 8vw, 120px); }
.sessions { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px clamp(20px, 2.4vw, 40px); }
.session__img { margin: 0 0 20px; aspect-ratio: 1; overflow: hidden; }
.session__img img { width: 100%; height: 100%; object-fit: cover; }
.session:nth-child(1) .session__img { border-radius: 999px 999px 0 0; }
.session:nth-child(2) .session__img { border-radius: 50%; }
.session:nth-child(3) .session__img { border-radius: 0 0 999px 999px; }
.session:nth-child(4) .session__img { border-radius: 48px; }
.session__n { font-size: var(--t-label); color: var(--ink-2); margin-bottom: 4px; }
.session__title { font-size: var(--t-h3); font-stretch: 118%; font-weight: 300; letter-spacing: -.015em; margin-bottom: 10px; }
.formats { padding-bottom: clamp(80px, 10vw, 140px); }
.formats__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 24px; margin: 40px 0 24px; }
.formats__list div { padding: 24px; border-radius: 24px; background: var(--gesso); }
.formats__list dt { font-size: var(--t-h3); font-stretch: 112%; font-weight: 300; letter-spacing: -.01em; margin-bottom: 8px; }
.formats__list dd { margin: 0; color: var(--ink-2); }
.formats__note { color: var(--ink-2); }
@media (max-width: 1000px) { .sessions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sessions { grid-template-columns: 1fr; } }

/* ---------- not found */
.missing { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding-block: 64px; }
.missing__home { color: var(--ink); margin-bottom: 40px; }
.missing__home .sig--hero { width: min(70%, 360px); }

/* ---------- wall tool */
.page-intro.wall-intro { padding-top: calc(var(--head-h) + clamp(32px, 5vw, 72px)); padding-bottom: 32px; }
.wall-app { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; align-items: start; padding-bottom: clamp(80px, 10vw, 140px); }
.wall-stage { min-width: 0; }
.drop { border: 1.5px dashed var(--ink-3); border-radius: 28px; background: var(--gesso); min-height: min(68svh, 640px); display: grid; place-items: center; padding: 32px; text-align: center; transition: border-color .2s, background .2s; }
.drop[data-over] { border-color: var(--rosa); background: #fff; }
.drop__inner { max-width: 460px; display: grid; justify-items: center; gap: 10px; }
.drop__icon { width: 48px; height: 48px; color: var(--ink-2); margin-bottom: 8px; }
.drop__title { font-size: var(--t-h3); font-stretch: 112%; font-weight: 300; margin: 0; }
.drop__text { color: var(--ink-2); font-size: var(--t-small); }
.drop__or { font-size: var(--t-label); color: var(--ink-2); margin: 20px 0 4px; }
.samples { list-style: none; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.sample { border: 0; padding: 0; background: none; cursor: pointer; display: grid; gap: 6px; font-size: var(--t-label); color: var(--ink-2); }
.sample img { width: 104px; height: 78px; object-fit: cover; border-radius: 12px; transition: transform .2s var(--ease); }
.sample:hover img { transform: translateY(-2px); }

.room { display: grid; gap: 14px; }
.room__frame { position: relative; justify-self: center; max-width: 100%; touch-action: none; user-select: none; -webkit-user-select: none; border-radius: 4px; overflow: hidden; background: var(--ink-3); }
.room__photo { max-height: 74svh; width: auto; max-width: 100%; }
.room__scan { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
.room__scan[data-on] { opacity: 1; background: linear-gradient(90deg, transparent 0 40%, rgb(255 255 255 / .55) 50%, transparent 60% 100%) no-repeat; background-size: 60% 100%; animation: scan 1.8s linear infinite; mix-blend-mode: soft-light; }
.room__scan[data-on]::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / .18); }
@keyframes scan { from { background-position: -80% 0; } to { background-position: 180% 0; } }
.room__quad { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.room__quad polygon { fill: none; stroke: #fff; stroke-width: 1.5; stroke-dasharray: 6 5; vector-effect: non-scaling-stroke; opacity: 0; transition: opacity .4s; }
.room__quad[data-draw] polygon { stroke-dasharray: 4000; stroke-dashoffset: 4000; animation: draw 1.4s var(--ease) forwards, fade-out .8s 2.4s forwards; }
.room__quad[data-show] polygon { opacity: 1; fill: rgb(228 0 124 / .07); stroke-dasharray: 6 5; stroke-dashoffset: 0; animation: none; }
@keyframes draw { from { opacity: 1; } to { opacity: 1; stroke-dashoffset: 0; } }
@keyframes fade-out { from { opacity: 1; stroke-dashoffset: 0; } to { opacity: 0; stroke-dashoffset: 0; } }
.room__art { position: absolute; inset: 0; }
.hung { position: absolute; left: 0; top: 0; transform-origin: 0 0; cursor: grab; }
.hung:active { cursor: grabbing; }
.hung img { width: 100%; height: 100%; display: block; filter: brightness(var(--bright, 1)); box-shadow: 0 2px 2px rgb(0 0 0 / .14), 0 28px 34px -18px rgb(0 0 0 / .55); }
.hung__shade { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: multiply;
  background: linear-gradient(90deg, rgb(0 0 0 / var(--shade-l, 0)), transparent 55%), linear-gradient(270deg, rgb(0 0 0 / var(--shade-r, 0)), transparent 55%), var(--cast, transparent); }
.hung:focus-visible { outline: 3px solid var(--rosa); outline-offset: 6px; }
.hung[data-enter] { animation: hang .7s var(--ease) both; }
@keyframes hang { from { opacity: 0; } }
.handle { position: absolute; width: 28px; height: 28px; margin: -14px 0 0 -14px; border-radius: 50%; border: 2px solid #fff; background: var(--rosa); box-shadow: 0 2px 8px rgb(0 0 0 / .35); cursor: move; touch-action: none; }
.room__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.width-ctl { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-label); color: var(--ink-2); margin-left: auto; }
.width-ctl input { width: 84px; font: inherit; color: var(--ink); padding: 8px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--gesso); text-align: right; }

.wall-panel { position: sticky; top: calc(var(--head-h) + 12px); background: var(--gesso); border-radius: 28px; padding: 28px; max-height: calc(100svh - var(--head-h) - 24px); overflow: auto; }
.how { padding-left: 1.2em; margin: 16px 0 20px; display: grid; gap: 8px; color: var(--ink-2); }
.insight { display: grid; gap: 12px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.insight__mode { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-label); font-weight: 500; }
.insight__mode::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rosa); }
.insight__mode[data-local]::before { background: var(--ink-3); }
.insight__summary { margin: 0; }
.insight__palette { display: flex; gap: 6px; }
.insight__palette span { width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .12); }
.insight__meta { font-size: var(--t-label); color: var(--ink-2); margin: 0; }
.wall-panel__h { margin-bottom: 12px; }
.picks { list-style: none; display: grid; gap: 8px; margin-bottom: 20px; }
.pick { width: 100%; display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; text-align: left; padding: 10px; border-radius: 18px; border: 1px solid transparent; background: transparent; cursor: pointer; }
.pick:hover { background: rgb(0 0 0 / .04); }
.pick[aria-pressed="true"] { border-color: var(--ink); background: #fff; }
.pick__img { width: 64px; height: 64px; display: grid; place-items: center; }
.pick__img img { max-width: 64px; max-height: 64px; box-shadow: 0 1px 2px rgb(0 0 0 / .25); }
.pick__title { font-size: var(--t-small); display: block; }
.pick__meta { font-size: var(--t-label); color: var(--ink-2); display: block; }
.pick__why { font-size: var(--t-label); color: var(--ink); display: block; margin-top: 4px; line-height: 1.45; }
.pick-cta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.all-works summary { cursor: pointer; font-weight: 500; font-size: var(--t-small); padding: 8px 0; }
.all-works__grid { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 12px; }
.all-works__grid button { width: 100%; aspect-ratio: 1; padding: 6px; border: 1px solid transparent; border-radius: 12px; background: var(--paper); cursor: pointer; display: grid; place-items: center; }
.all-works__grid button[aria-pressed="true"] { border-color: var(--ink); }
.all-works__grid img { max-width: 100%; max-height: 100%; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line); border-top-color: var(--rosa); animation: spin .9s linear infinite; display: inline-block; vertical-align: -3px; margin-right: 8px; }
@keyframes spin { to { transform: rotate(360deg); } }
.steps-live { list-style: none; display: grid; gap: 10px; margin-top: 16px; font-size: var(--t-small); }
.steps-live li { display: flex; align-items: center; gap: 10px; color: var(--ink-3); transition: color .3s; }
.steps-live li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.steps-live li[data-on] { color: var(--ink); }
.steps-live li[data-done] { color: var(--ink-2); }
@media (max-width: 1000px) { .wall-app { grid-template-columns: 1fr; } .wall-panel { position: static; max-height: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
