:root{color-scheme:light;--paper:#ede8da;--ink:#304538;--muted:#57604f;--line:#b8bbac;font-family:Inter,sans-serif;background:var(--paper);color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:inherit;text-underline-offset:.3em}button,input{font:inherit}button{color:inherit}::selection{background:#d599ab;color:#263c31}:focus-visible{outline:2px solid #9b3d51;outline-offset:5px}html{scrollbar-color:#657c67 var(--paper)}.skip{position:fixed;top:-100px;left:20px;z-index:5;background:var(--ink);color:var(--paper);padding:15px}.skip:focus{top:12px}header,main,footer{max-width:1640px;margin:auto}header{padding:26px 4.5vw;display:flex;justify-content:space-between;align-items:center}.signature{font:300 27px Fraunces,serif;text-decoration:none;letter-spacing:-.03em}.back{display:flex;align-items:center;gap:10px;font-size:14px;min-height:44px;text-decoration:none}.back:hover{text-decoration:underline}.back svg,footer svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4}main{padding:0 4.5vw}.study{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:clamp(36px,5vw,100px)}.artwork{margin:0;min-width:0}.art-stage{position:relative;width:100%;max-width:850px;margin-inline:auto;aspect-ratio:1;overflow:hidden;background:var(--paper)}.art-stage canvas,.art-stage svg{position:absolute;inset:0;display:block;width:100%;height:100%}.art-stage canvas{opacity:0;pointer-events:none}body[data-renderer=webgpu] canvas{opacity:1}body[data-renderer=webgpu] #art-fallback{visibility:hidden}.artwork>figcaption{margin-top:9px;font-size:14px;color:var(--muted);text-align:center}.editorial{padding-top:48px}.introduction h1{font:300 clamp(48px,5.1vw,78px)/.98 Fraunces,serif;letter-spacing:-.04em;margin:0 0 29px}.introduction h1 em{font-weight:300;color:#8b4257}.lead{font:300 27px/1.25 Fraunces,serif;margin:0 0 18px}.description{font-size:14px;line-height:1.8;margin:0;max-width:34ch}form{margin-top:38px}.control{margin-bottom:18px}.control label{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.5}.control output{font-variant-numeric:tabular-nums;color:var(--muted)}input[type=range]{display:block;width:100%;height:44px;margin:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;accent-color:var(--ink)}input::-webkit-slider-runnable-track{height:1px;background:#7b8a73}input::-moz-range-track{height:1px;background:#7b8a73}input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:15px;height:15px;margin-top:-7px;border:3px solid var(--paper);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink)}input::-moz-range-thumb{width:10px;height:10px;border:3px solid var(--paper);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink)}.ends{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:-5px}.actions{display:flex;gap:18px;align-items:center;margin-top:28px}.actions button{min-height:44px;font-size:14px;cursor:pointer}#play{border:0;display:flex;align-items:center;gap:10px;padding:10px 15px;background:var(--ink);color:#f6f0e1}#play:hover{background:#48624e}#play:disabled{opacity:.55;cursor:not-allowed}#play svg{width:14px;height:14px;fill:currentColor}#reset{padding:10px 0;background:none;border:0;text-decoration:underline;text-underline-offset:5px}#reset:hover{color:#8b4257}#renderer-status,.attribution{font-size:12px;line-height:1.7;color:var(--muted)}#renderer-status{margin:20px 0 12px}.attribution{margin:0}.references{margin-top:100px;padding:52px 0 74px;border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1fr 1fr;gap:38px}.references h2{font:300 36px/1.15 Fraunces,serif;letter-spacing:-.03em;margin:0 0 24px}.references p{font-size:14px;line-height:1.8;margin:0;max-width:32ch}.references figure{margin:0}.references img{display:block;width:100%;height:auto;aspect-ratio:1.15;object-fit:cover}.references figcaption{font-size:14px;line-height:1.6;margin-top:14px}.references figcaption span{display:block;color:var(--muted);margin-top:5px}footer{border-top:1px solid var(--line);padding:27px 4.5vw 40px;display:flex;justify-content:space-between;gap:24px;align-items:center}footer>span{font:300 23px Fraunces,serif}footer a{min-height:44px;display:flex;align-items:center;gap:12px;font-size:14px;text-decoration:none}footer a:hover{text-decoration:underline}@media(max-width:1150px){.study{grid-template-columns:minmax(0,1fr) 250px;gap:28px}.editorial{padding-top:20px}.introduction h1{font-size:58px}.lead{font-size:24px}form{margin-top:28px}.references{gap:25px}.references h2{font-size:32px}}@media(max-width:800px){header{padding:18px 6vw}main{padding:0 6vw}.study{display:flex;flex-direction:column;gap:0}.editorial{display:contents}.introduction{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;align-items:end;padding-top:24px;margin-bottom:20px}.introduction h1{font-size:52px;margin:0}.lead{font-size:24px;margin:0}.description{grid-column:1/-1;max-width:55ch;font-size:14px;line-height:1.65}.artwork{width:100%}.art-stage{max-height:none}.artwork>figcaption{font-size:14px}form{width:100%;margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}.control{margin:0}.control:nth-child(3){grid-column:1/-1}.actions{grid-column:1/-1;margin-top:2px}#renderer-status,.attribution{font-size:12px;width:100%}.attribution{max-width:64ch}.references{margin-top:70px;grid-template-columns:1fr 1fr;gap:28px 20px;padding-top:35px}.reference-intro{grid-column:1/-1}.references p{max-width:55ch}.references h2{font-size:32px;margin-bottom:20px}footer{padding:22px 6vw 30px;flex-direction:column;align-items:start;gap:10px}}@media(max-width:440px){.introduction h1{font-size:46px}.lead{font-size:21px}.introduction{gap:18px}.description{font-size:14px}.artwork>figcaption{font-size:13px}.references{grid-template-columns:1fr}.reference-intro{grid-column:auto}form{grid-template-columns:1fr;gap:24px}.control:nth-child(3),.actions{grid-column:auto}.references img{aspect-ratio:1.3}.signature{font-size:25px}footer>span{font-size:21px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
