.illustration{background:var(--surface);width:100%;height:auto;transition:transform .45s var(--ease);display:block}.illustration text{font-family:var(--display)}.illustration .mono{font-family:var(--mono);letter-spacing:.06em}.illustration.is-paused *{animation-play-state:paused}.illustration :is(.pulse,.pop,.tl-check,.clip-spin){transform-box:fill-box;transform-origin:50%}.illustration .flow{stroke-dasharray:3 9;animation:1.1s linear infinite ill-flow}.illustration .pulse{opacity:0;animation:ill-pulse 2.8s var(--ease) infinite}.illustration .blink{animation:1.1s step-end infinite ill-blink}.illustration .pop{animation:ill-pop 7s var(--ease) infinite both}.illustration .type{transform-box:fill-box;transform-origin:0;animation:ill-type 7s var(--ease) infinite both}@keyframes ill-flow{to{stroke-dashoffset:-24px}}@keyframes ill-pulse{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.9)}}@keyframes ill-blink{50%{opacity:0}}@keyframes ill-pop{0%{opacity:0;transform:scale(1.08)}5%{opacity:1;transform:scale(1)}72%{opacity:1}82%,to{opacity:0}}@keyframes ill-type{0%{transform:scaleX(0)}10%,62%{opacity:1;transform:scaleX(1)}72%,to{opacity:0;transform:scaleX(1)}}.roya-scan{opacity:0;animation:7s linear infinite roya-scan}.roya-flicker{animation:5.5s step-end infinite roya-flicker}@keyframes roya-scan{0%{opacity:0;transform:translate(0)}6%,86%{opacity:1}to{opacity:0;transform:translate(520px)}}@keyframes roya-flicker{0%,55%,61%,to{opacity:1}40%,58%{opacity:.2}}.clip-spin{animation:9s ease-in-out infinite clip-spin}.clip-layer{animation:3.2s ease-in-out infinite clip-layer}@keyframes clip-spin{50%{transform:scaleX(.06)}}@keyframes clip-layer{0%,40%,to{stroke:#3b4a63}18%{stroke:#8baff7}}.tl-timer{animation:9s linear infinite tl-timer}.tl-cursor-b{animation:tl-cursor-b 9s var(--ease) infinite;transform:translate(560px,238px)}.tl-jiggle{animation:4s ease-in-out infinite tl-jiggle}.tl-dot{animation:1.2s ease-in-out infinite tl-dot}.tl-check{animation:tl-check 6s var(--ease) infinite both}@keyframes tl-timer{to{stroke-dashoffset:119.4px}}@keyframes tl-cursor-b{0%,16%,86%,to{transform:translate(560px,238px)}40%,62%{transform:translate(548px,382px)}}@keyframes tl-jiggle{0%,to{transform:translate(0)}35%{transform:translate(7px,3px)}70%{transform:translate(-4px,6px)}}@keyframes tl-dot{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes tl-check{0%{transform:scale(0)}6%,80%{transform:scale(1)}90%,to{transform:scale(0)}}.ng-layer{opacity:0;animation:4.2s ease-in-out infinite ng-layer}.ng-token{animation:3.6s ease-in-out infinite ng-token}.ng-merge{animation:3.6s ease-in-out infinite ng-merge}.ng-cell{animation:5s ease-in-out infinite ng-cell}@keyframes ng-layer{0%,44%,to{opacity:0}14%,22%{opacity:.9}}@keyframes ng-token{0%,30%,to{fill:#dce8ff;stroke:#b9cdfb}10%{fill:#b9cdfb;stroke:#2455d6}}@keyframes ng-merge{0%,to{opacity:.45}40%,60%{opacity:1}}@keyframes ng-cell{0%{fill:#c9d6ea}4%{fill:#2455d6}14%,78%{fill:#8baff7}92%,to{fill:#c9d6ea}}.illustration-motion-control{cursor:pointer;width:fit-content;min-height:44px;color:var(--muted);font:11px var(--mono);align-items:center;gap:9px;padding:8px 18px;display:flex}.illustration-motion-control input{width:16px;height:16px;accent-color:var(--accent)}.illustration-motion-control input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.visual-loops:has(.illustration-pause:checked) .illustration *{animation-play-state:paused}.project-lab{background:var(--surface)}.experiment-heading{border-bottom:1px solid var(--line);font:9px var(--mono);letter-spacing:.06em;color:var(--muted);justify-content:space-between;gap:12px;padding:18px 20px;display:flex}.project-controls{padding-inline:16px}.project-controls label{text-transform:uppercase;color:var(--muted);border-color:var(--line);font-size:10px}.project-controls input:checked+label{background:var(--accent);color:var(--paper);border-color:var(--accent)}.embedding-field{width:100%;height:auto}.experiment-caption{background:var(--paper);border-top:1px solid var(--line);min-height:82px;color:var(--muted);padding:16px 20px;font-size:12px}.experiment-caption strong{color:var(--ink);font-weight:500}.embedding-group{opacity:.25;transition:opacity var(--motion-reveal)}.embedding-lab:has(#concept-mountain:checked) .cluster-mountain,.embedding-lab:has(#concept-flower:checked) .cluster-flower,.embedding-lab:has(#concept-boat:checked) .cluster-boat{opacity:1}@media (hover:hover) and (pointer:fine){.embedding-lab:has(label:hover) .embedding-group{opacity:.25}.embedding-lab:has(label[for=concept-mountain]:hover) .cluster-mountain,.embedding-lab:has(label[for=concept-flower]:hover) .cluster-flower,.embedding-lab:has(label[for=concept-boat]:hover) .cluster-boat{opacity:1}}.evidence-strip{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.evidence-strip>div{border-right:1px solid var(--line);padding:16px}.evidence-strip>div:last-child{border:0}.evidence-strip strong{font:30px var(--display);color:var(--ink);display:block}.evidence-strip span{font:9px var(--mono);color:var(--muted);margin-top:4px;display:block}.visual-notes .illustration{border-top:1px solid var(--line)}@media (width<=800px){.experiment-heading{padding:12px;font-size:8px}.experiment-heading>span:last-child{display:none}.project-controls{padding-inline:8px}.project-controls label{gap:4px;font-size:8px}.project-controls label span{display:none}.experiment-caption{min-height:88px;padding:12px;font-size:11px}.evidence-strip>div{padding:12px 8px}.evidence-strip strong{font-size:24px}.evidence-strip span{font-size:8px}}.evidence-strip strong b{font-variant-numeric:tabular-nums;font-weight:400}.evidence-strip strong .sr-only{margin:-1px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.embedding-field>.embedding-group{transform:translate(var(--depth-x,0px), var(--depth-y,0px));transition:transform var(--motion-reveal) var(--ease-spatial), opacity var(--motion-reveal)}}@media (width<=800px){.project-controls label{font-size:11px}}figure.project-visual{--hair:#101a2a14;--tile:#242938;isolation:isolate;backdrop-filter:blur(18px)saturate(1.4);box-shadow:0 0 0 1px var(--hair), 0 1px 0 #fff inset, 0 1px 2px #101a2a0d, 0 30px 60px -32px #1b3a7a47;transition:box-shadow .5s var(--ease-spatial);background:linear-gradient(155deg,#ffffffc4 0%,#f7f9fd9e 50%,#eef3faad 100%);border:1px solid #ffffffd9;border-radius:26px;grid-template-columns:minmax(0,1fr);grid-template-areas:"media""extra""caption""foot";margin:0;display:grid;position:relative;overflow:hidden;container-type:inline-size}figure.project-visual:before,figure.project-visual:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s var(--ease-spatial);position:absolute;inset:0}figure.project-visual:before{z-index:-1;background:radial-gradient(460px circle at var(--light-x,50%) var(--light-y,0%), #2455d612, transparent 65%)}figure.project-visual:after{z-index:4;background:radial-gradient(280px circle at var(--light-x,50%) var(--light-y,0%), #2455d68c, transparent 70%);-webkit-mask-composite:xor;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}figure.project-visual:hover:before,figure.project-visual:hover:after{opacity:1}figure.project-visual:hover{box-shadow:0 0 0 1px #2455d61f,inset 0 1px #fff,0 1px 2px #101a2a0d,0 40px 80px -36px #1b3a7a5c}.visual-link{isolation:isolate;position:relative}.visual-link:before{content:"";z-index:-1;filter:blur(34px);pointer-events:none;background:radial-gradient(closest-side at 22% 28%,#2455d633,#0000),radial-gradient(closest-side at 82% 78%,#38a3f22b,#0000);position:absolute;inset:6% 4%}.project-visual .illustration,.project-visual .project-lab{background:0 0}.project-visual .embedding-field>rect:first-of-type{fill:#0000}.project-visual>.project-media,.project-visual>.project-lab{border-radius:26px 26px 0 0;grid-area:media}figure.project-visual>figcaption{z-index:1;min-height:58px;font:10px var(--mono);letter-spacing:.02em;color:var(--muted);pointer-events:none;border:0;grid-area:foot;align-self:start;align-items:center;margin:0 16px;padding:0 170px 0 6px;display:flex}.project-visual>.visual-notes{border-top:1px solid var(--hair);grid-area:foot;margin:0 16px}.project-visual .visual-notes summary{width:fit-content;min-height:36px;box-shadow:0 0 0 1px var(--hair), 0 2px 6px -3px #101a2a26;font:11px var(--body);color:var(--ink);background:#ffffffb8;border-radius:99px;justify-content:flex-start;gap:10px;margin:11px 0 10px auto;padding:0 7px 0 15px;transition:background .25s,color .25s,box-shadow .25s}.project-visual .visual-notes summary span{background:var(--tile);color:#fff;width:24px;height:24px;transition:transform .3s var(--ease-spatial), background .25s, color .25s;border-radius:50%;place-items:center;font-size:15px;line-height:1;display:grid}.project-visual .visual-notes summary:hover,.project-visual .visual-notes[open] summary{background:var(--tile);color:#fff}.project-visual .visual-notes summary:hover span,.project-visual .visual-notes[open] summary span{color:var(--tile);background:#fff}.project-visual .visual-notes summary:focus-visible{outline-offset:3px}.project-visual .visual-notes ol{color:var(--ink-soft);padding:2px 6px 20px 22px}.project-visual .visual-notes .illustration{border-top:1px solid var(--hair)}.project-visual .evidence-strip{border:0;grid-area:extra;gap:10px;padding:4px 16px 16px}.project-visual .evidence-strip>div,.project-visual .evidence-strip>div:last-child{box-shadow:0 0 0 1px var(--hair), 0 1px 0 #fff inset;background:#ffffffa6;border:0;border-radius:16px;padding:14px 16px}.project-visual .illustration-motion-control{z-index:3;backdrop-filter:blur(10px);min-height:32px;box-shadow:0 0 0 1px var(--hair), 0 6px 16px -8px #101a2a40;font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:#ffffffb8;border-radius:99px;padding:0 13px 0 11px;transition:background .25s,color .25s;position:absolute;top:14px;right:14px}.project-visual .illustration-motion-control:hover{background:var(--tile);color:#fff}.project-visual .illustration-motion-control input{opacity:0;width:1px;height:1px;position:absolute}.project-visual .illustration-motion-control:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.motion-state{align-items:center;gap:8px;display:flex}.motion-state b{font-weight:400}.motion-state i{border-inline:2.5px solid;width:8px;height:9px}.motion-state .when-paused,.illustration-motion-control:has(input:checked) .when-playing{display:none}.illustration-motion-control:has(input:checked) .when-paused{display:inline}.illustration-motion-control:has(input:checked) .motion-state i{border-inline:0;border-left:8px solid;border-block:5px solid #0000;width:0;height:0}.project-visual .experiment-heading{border:0;padding:18px 22px 8px}.project-visual .project-controls{box-shadow:inset 0 0 0 1px var(--hair);background:#101a2a0a;border-radius:99px;gap:4px;margin:6px 16px 0;padding:4px}.project-visual .project-controls label{letter-spacing:.06em;min-height:38px;color:var(--muted);transition:background .3s var(--ease-spatial), color .3s, box-shadow .3s;border:0;border-radius:99px}.project-visual .project-controls label:hover{color:var(--ink);background:#ffffffb8}.project-visual .project-controls input:checked+label{background:var(--tile);color:#fff;box-shadow:0 8px 18px -10px #101a2acc}.project-visual .project-controls input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}.project-visual .experiment-caption{border-top:1px solid var(--hair);background:0 0;margin:0 16px;padding:16px 6px}.project.revealed figure.project-visual{animation:card-rise var(--motion-scene) var(--ease-spatial) both}@keyframes card-rise{0%{opacity:0;transform:translateY(24px)scale(.985)}}@container (width<=540px){figure.project-visual>figcaption{border-top:1px solid var(--hair);grid-area:caption;min-height:0;padding:14px 6px 0}.project-visual>.visual-notes{border-top:0}.project-visual .visual-notes summary{margin:10px 0 14px}.project-visual .illustration-motion-control{grid-area:extra;justify-self:start;margin:4px 16px 0;position:static}.project-visual .evidence-strip{gap:6px;padding-inline:12px}.project-visual .evidence-strip>div,.project-visual .evidence-strip>div:last-child{border-radius:12px;padding:12px 10px}}
