.motion-scene{--scene-duration:9s;position:relative}.motion-scene[data-playing=false] *,.motion-scene[data-playing=false] :before,.motion-scene[data-playing=false] :after{animation-play-state:paused!important}.spine-figure .motion-scene .mfig{height:280px;padding:24px}.sfig-frame.motion-scene .mfig{height:320px;padding:24px}.motion-scene .mfig-card{border-color:var(--outline)}.motion-scene .mfig-panel{right:12px}.motion-scene .mfig-guard{max-width:calc(100% - 24px)}.demo-controls{justify-content:center;align-items:center;margin:0 0 38px;display:flex}.demo-controls .demo-switch{margin:0}.problem-demo *,.problem-demo :before,.problem-demo :after{animation:none!important}.problem-demo{--demo-t:1.35s;--demo-copy-t:0s;--demo-lag:.72s}.problem-demo .demo-cards>li{--card-d:0s}.problem-demo .demo-copy-state{transition:none!important}.problem-demo .demo-switch-thumb,.problem-demo .demo-switch-mirror{transition-duration:.32s}.problem-demo .flow-track{--demo-t:.65s;--demo-lag:1s}.problem-demo .flow-tool{--demo-t:.95s}.problem-demo .flow-step{--demo-t:.28s}.problem-demo .flow-tool i,.problem-demo .flow-tether{transition-delay:.85s}.problem-demo:has(#problem-demo-fixed:checked) .flow-tool i{transition-delay:0s}.problem-demo:has(#problem-demo-fixed:checked) .flow-tether{transition-delay:0s}.problem-demo .fig-path{--demo-t:.28s}.problem-demo .fig-path>*{--d:calc(var(--row,0) * .54s)}.problem-demo:not(:has(#problem-demo-fixed:checked)) .fig-path>*{--d:calc((4 - var(--row,0)) * .54s)}.problem-demo:has(#problem-demo-fixed:checked) .path-gate:before{background:var(--demo-accent)}.problem-demo .path-node:before,.problem-demo .path-gate:before{z-index:2}.problem-demo:has(#problem-demo-fixed:checked) .path-node:after{background:repeating-linear-gradient(var(--muted-soft) 0 3px, transparent 3px 6px)}.problem-demo:has(#problem-demo-fixed:checked) .path-gate:after{background:repeating-linear-gradient(var(--muted-soft) 0 3px, transparent 3px 6px)}.problem-demo .path-check{z-index:3;fill:none;width:8px;height:8px;stroke:var(--on-dark);stroke-width:1.5px;opacity:0;transition:opacity .12s var(--ease) var(--d);position:absolute;top:50%;left:8.5px;translate:0 -50%}.problem-demo:has(#problem-demo-fixed:checked) .path-check{opacity:1;transition-delay:calc(var(--d) + .24s)}.problem-demo .path-link{z-index:1;background:var(--demo-accent);transform-origin:top;width:1.5px;height:calc(100% + 2px);transition:transform .2s var(--ease) var(--d);position:absolute;top:50%;left:11.25px;transform:scaleY(0)}.problem-demo:has(#problem-demo-fixed:checked) .path-link{transition-delay:calc(var(--d) + .34s);transform:scaleY(1)}.problem-demo .flow-tool{z-index:1}.motion-scene[data-animated=true] .mfig-flow li{animation:scene-row var(--scene-duration) var(--ease) infinite both}.motion-scene .mfig-flow li:nth-child(2){animation-delay:1s}.motion-scene .mfig-flow li:nth-child(3){animation-delay:2.8s}.motion-scene .mfig-flow li:nth-child(4){animation-delay:3.6s}.motion-scene[data-animated=true] .mfig-node{animation:scene-node var(--scene-duration) var(--ease) infinite both;animation-delay:inherit}.motion-scene[data-animated=true] .mfig-flow li+li:before{transform-origin:top;animation:scene-route var(--scene-duration) var(--ease) infinite both;animation-delay:inherit}.motion-scene[data-animated=true] .mfig-wait svg{animation:scene-clock var(--scene-duration) var(--ease) infinite;animation-delay:.8s}.motion-scene[data-animated=true] .mfig-ranks li{animation:scene-candidate var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .mfig-ranks li[data-top]{z-index:1;animation-name:scene-rank-up;position:relative}.motion-scene[data-animated=true] .mfig-ranks li:nth-child(2){animation-name:scene-rank-down}.motion-scene[data-animated=true] .mfig-meter i[data-on]{transform-origin:0;animation:scene-meter var(--scene-duration) var(--ease) infinite both}.motion-scene .mfig-meter i:nth-child(2){animation-delay:.2s}.motion-scene .mfig-meter i:nth-child(3){animation-delay:.4s}.motion-scene .mfig-meter i:nth-child(4){animation-delay:.6s}.motion-scene .mfig-meter i:nth-child(5){animation-delay:.8s}.motion-scene[data-animated=true] .mfig-ask{animation:scene-question var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .mfig-wire:before,.motion-scene[data-animated=true] .mfig-fit li[data-picked]:before{transform-origin:0 100%;animation:scene-evidence-wire var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .mfig-fit li[data-picked]{animation:scene-evidence-pick var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .mfig-tick{animation:scene-confirm var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .mfig-window{animation:scene-window var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .mfig-field:before{transform-origin:0;animation:scene-type var(--scene-duration) var(--ease) infinite both}.motion-scene .mfig-field:nth-child(2):before{animation-delay:.35s}.motion-scene .mfig-field:nth-child(3):before{animation-delay:.7s}.motion-scene[data-animated=true] .mfig-build .mfig-key-solid{animation:scene-button var(--scene-duration) var(--ease) infinite both;position:relative}.motion-scene .mfig-pointer{display:none}.motion-scene[data-animated=true] .mfig-pointer{width:16px;height:20px;fill:var(--ink);stroke:var(--canvas);stroke-width:1.3px;animation:scene-pointer var(--scene-duration) var(--ease-move) infinite both;display:block;position:absolute;bottom:-9px;right:-4px}.motion-scene[data-animated=true] .mfig-guard{animation:scene-guard var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .sfig-rail li{animation:scene-release var(--scene-duration) var(--ease) infinite both}.motion-scene .sfig-rail li:nth-child(2){animation-delay:1.7s}.motion-scene .sfig-rail li:nth-child(3){animation-name:scene-release-final}.motion-scene[data-animated=true] .sfig-ship .mfig-guard{animation-name:scene-release-guard}.motion-scene[data-animated=true] .mfig-panel{animation:scene-panel var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .mfig-panel .mfig-line{transform-origin:0;animation:scene-draft var(--scene-duration) var(--ease) infinite both}.motion-scene .mfig-panel .mfig-line:nth-of-type(2){animation-delay:.3s}.motion-scene .mfig-panel .mfig-line:nth-of-type(3){animation-delay:.6s}.motion-scene[data-animated=true] .mfig-actions .mfig-key-solid{animation:scene-decision var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .mfig-spark-line{animation:scene-chart var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .mfig-spark-area{animation:scene-chart-area var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .mfig-flows li{animation:scene-pattern var(--scene-duration) var(--ease-move) infinite both}.motion-scene .mfig-flows li:nth-child(2){animation-delay:.8s}.motion-scene .mfig-flows li:nth-child(3){animation-delay:1.6s}.motion-scene[data-animated=true] .sfig-dot{animation:scene-map-dot var(--scene-duration) var(--ease-move) infinite both}.motion-scene .sfig-dot:nth-of-type(2n){animation-delay:.3s}.motion-scene .sfig-dot:nth-of-type(3n){animation-delay:.6s}.motion-scene .sfig-dot{font-style:normal}.motion-scene[data-animated=true] .sfig-dot[data-pick]:after{content:"";border:1px solid var(--ink);animation:scene-select-ring var(--scene-duration) var(--ease) infinite both;border-radius:50%;position:absolute;inset:-7px}.motion-scene[data-animated=true] .sfig-pick{animation:scene-confirm var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .sfig-run .mfig-line{transform-origin:0;animation:scene-draft var(--scene-duration) var(--ease) infinite both}.motion-scene .sfig-run .mfig-line:nth-of-type(2){animation-delay:.25s}.motion-scene .sfig-run .mfig-line:nth-of-type(3){animation-delay:.5s}.motion-scene[data-animated=true] .sfig-gate{animation:scene-approval var(--scene-duration) var(--ease) infinite both;position:relative}.sfig-approval-mark{display:none}.motion-scene[data-animated=true] .sfig-approval-mark{background:var(--ink);width:16px;height:16px;color:var(--on-primary);animation:scene-approved var(--scene-duration) var(--ease) infinite both;border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.motion-scene .sfig-approval-mark svg{color:inherit}.motion-scene[data-animated=true] .sfig-gate~.sfig-wire{transform-origin:0;animation:scene-send-wire var(--scene-duration) var(--ease) infinite both}.motion-scene[data-animated=true] .sfig-run .mfig-key-solid{animation:scene-send var(--scene-duration) var(--ease-move) infinite both}.motion-scene[data-animated=true] .sfig-source{animation:scene-source var(--scene-duration) var(--ease-move) infinite both}.motion-scene .sfig-source:nth-child(2){animation-delay:.4s}.motion-scene[data-animated=true] .sfig-access{animation-name:scene-access}.motion-scene[data-animated=true] .sfig-answer .mfig-line{transform-origin:0;animation:scene-answer var(--scene-duration) var(--ease) infinite both}.motion-scene .sfig-answer .mfig-line:nth-of-type(2){animation-delay:.3s}.motion-scene .sfig-answer .mfig-line:nth-of-type(3){animation-delay:.6s}.motion-scene[data-animated=true] .sfig-systems li+li:after{content:"";background:var(--ink);width:4px;height:4px;animation:scene-packet var(--scene-duration) var(--ease) infinite both;border-radius:50%;position:absolute;top:calc(50% - 2px);left:-30px}.motion-scene .sfig-systems li:nth-child(3):after{animation-delay:1.5s}.motion-scene[data-animated=true] .sfig-sys{animation:scene-system var(--scene-duration) var(--ease) infinite both}.motion-scene .sfig-systems li:nth-child(2) .sfig-sys{animation-delay:1.5s}.motion-scene .sfig-systems li:nth-child(3) .sfig-sys{animation-delay:3s}.motion-scene[data-animated=true] .sfig-net .sfig-exception{animation:scene-handoff var(--scene-duration) var(--ease-move) infinite both;position:relative}.motion-scene[data-animated=true] .sfig-net .sfig-exception:before{content:"";border-left:1px dashed var(--body);transform-origin:top;height:12px;animation:scene-branch var(--scene-duration) var(--ease) infinite both;position:absolute;top:-13px;left:26px}.motion-scene .sfig-roles li:nth-child(2) .mfig-meter{animation-delay:.8s}.motion-scene .sfig-roles li:nth-child(3) .mfig-meter{animation-delay:1.6s}.motion-scene .sfig-roles .mfig-meter i[data-on]{animation-delay:inherit;background:var(--body)}.motion-scene[data-animated=true] .sfig-usage .sfig-exception{animation:scene-handoff var(--scene-duration) var(--ease-move) infinite both}@keyframes scene-row{0%,7%,95%,to{background:0 0}14%,65%{background:var(--wash)}78%{background:0 0}}@keyframes scene-route{0%,7%,to{opacity:.35;transform:scaleY(.3)}18%,78%{opacity:1;transform:scaleY(1)}92%{opacity:.35;transform:scaleY(1)}}@keyframes scene-node{0%,7%,95%,to{box-shadow:0 0 #0000}15%,28%{box-shadow:0 0 0 4px var(--wash-strong);border-color:var(--ink);background:var(--ink)}40%,78%{border-color:var(--ink);box-shadow:0 0 #0000}}@keyframes scene-clock{0%,8%{transform:rotate(0)}18%{transform:rotate(180deg)}30%,to{transform:rotate(360deg)}}@keyframes scene-candidate{0%,to{opacity:.45}20%,80%{opacity:1}}@keyframes scene-rank-up{0%,14%,to{opacity:.5;transform:translateY(calc(100% + 5px))}32%,85%{opacity:1;transform:translateY(0)}95%{opacity:.5;transform:translateY(0)}}@keyframes scene-rank-down{0%,14%,to{opacity:.5;transform:translateY(calc(-100% - 5px))}32%,85%{opacity:1;transform:translateY(0)}95%{opacity:.5;transform:translateY(0)}}@keyframes scene-meter{0%,8%,to{opacity:.25;transform:scaleX(.15)}32%,82%{opacity:1;transform:scaleX(1)}94%{opacity:.25;transform:scaleX(1)}}@keyframes scene-question{0%,to{opacity:.4;transform:translate(-8px)}14%,88%{opacity:1;transform:translate(0)}}@keyframes scene-evidence-wire{0%,15%,to{opacity:0;transform:scaleY(0)}32%,85%{opacity:1;transform:scaleY(1)}}@keyframes scene-evidence-pick{0%,25%,to{border-color:var(--hairline);transform:translate(5px)}40%,85%{border-color:var(--ink);transform:translate(0)}}@keyframes scene-confirm{0%,35%,to{opacity:0;transform:scale(.7)}47%,87%{opacity:1;transform:scale(1)}}@keyframes scene-window{0%,to{opacity:.7;transform:translateY(6px)}15%,87%{opacity:1;transform:translateY(0)}}@keyframes scene-type{0%,12%,to{transform:translateY(-50%)scaleX(0)}32%,86%{background:var(--mark);transform:translateY(-50%)scaleX(1)}}@keyframes scene-button{0%,40%,65%,to{transform:scale(1)}49%,54%{transform:scale(.94)}}@keyframes scene-pointer{0%,32%,70%,to{opacity:0;transform:translate(26px,18px)}44%,57%{opacity:1;transform:translate(0)}63%{opacity:0;transform:translate(0)}}@keyframes scene-guard{0%,28%,to{opacity:0;transform:translateY(8px)}43%,88%{opacity:1;transform:translateY(0)}}@keyframes scene-release{0%,4%,30%,to{background:var(--canvas);color:var(--body);border-color:var(--hairline)}8%,24%{background:var(--ink);color:var(--on-primary);border-color:var(--ink)}}@keyframes scene-release-final{0%,50%,to{background:var(--canvas);color:var(--body);border-color:var(--hairline)}62%,90%{background:var(--ink);color:var(--on-primary);border-color:var(--ink)}}@keyframes scene-release-guard{0%,28%,to{opacity:0;transform:translateY(6px)}43%,92%{opacity:1;transform:translateY(0)}}@keyframes scene-decision{0%,45%,65%,to{transform:scale(1)}53%,57%{transform:scale(.95)}}@keyframes scene-approved{0%,46%,to{opacity:0;transform:scale(.6)}54%,94%{opacity:1;transform:scale(1)}}@keyframes scene-panel{0%,12%,to{opacity:0;translate:36px}28%,88%{opacity:1;translate:0}}@keyframes scene-draft{0%,20%,to{opacity:.3;transform:scaleX(0)}40%,86%{opacity:1;transform:scaleX(1)}}@keyframes scene-approval{0%,36%,to{border-color:var(--hairline)}48%,94%{border-color:var(--ink);box-shadow:0 0 0 3px var(--wash-strong)}}@keyframes scene-chart{0%,7%,to{clip-path:inset(0 100% 0 0);opacity:0}43%,88%{clip-path:inset(0);opacity:1}94%{clip-path:inset(0);opacity:0}}@keyframes scene-chart-area{0%,20%,to{opacity:0}50%,87%{opacity:1}}@keyframes scene-pattern{0%,38%,to{opacity:.35;transform:translateY(5px)}54%,82%{opacity:1;transform:translateY(0)}}@keyframes scene-map-dot{0%,to{opacity:0;transform:translate(-22px,22px)scale(.5)}28%,87%{opacity:1;transform:translate(0)scale(1)}}@keyframes scene-select-ring{0%,30%,to{opacity:0;transform:scale(.4)}44%,82%{opacity:.4;transform:scale(1)}}@keyframes scene-send-wire{0%,48%,to{opacity:.2;transform:scaleX(0)}62%,87%{opacity:1;transform:scaleX(1)}}@keyframes scene-send{0%,55%,to{opacity:.2;transform:translate(-3px)}68%,86%{opacity:1;transform:translate(0)}}@keyframes scene-source{0%,8%,to{opacity:.35;transform:translateY(6px)}25%,88%{opacity:1;border-color:var(--body);transform:translateY(0)}}@keyframes scene-access{0%,to{opacity:.4}12%,88%{opacity:1;border-color:var(--body)}}@keyframes scene-answer{0%,32%,to{opacity:.3;transform:scaleX(0)}55%,87%{opacity:1;transform:scaleX(1)}}@keyframes scene-packet{0%,16%,45%,to{opacity:0;transform:translate(0)}19%{opacity:1;transform:translate(0)}38%{opacity:1;transform:translate(29px)}44%{opacity:0;transform:translate(29px)}}@keyframes scene-system{0%,to{border-color:var(--hairline)}18%,38%{border-color:var(--ink)}52%,85%{border-color:var(--outline)}}@keyframes scene-handoff{0%,48%,to{opacity:.25;transform:translateY(-5px)}64%,86%{opacity:1;border-color:var(--body);transform:translateY(0)}}@keyframes scene-branch{0%,45%,to{opacity:0;transform:scaleY(0)}64%,86%{opacity:1;transform:scaleY(1)}}@media (max-width:720px){.spine-figure .motion-scene .mfig,.sfig-frame.motion-scene .mfig{height:260px;padding:16px}.demo-controls{gap:8px;width:100%}.demo-controls .demo-switch{flex:1;min-width:0;max-width:340px}.demo-controls .demo-switch label,.demo-controls .demo-switch-mirror>span{padding:9px 8px;font-size:12px}}@media (prefers-reduced-motion:reduce),print{.motion-scene *,.motion-scene :before,.motion-scene :after,.problem-demo *,.problem-demo :before,.problem-demo :after{transition:none!important;animation:none!important}.mfig-pointer,.sfig-approval-mark{display:none}.motion-scene{padding-bottom:0}}@media (max-width:420px){.motion-scene .sfig-wire-row{gap:4px}.motion-scene .sfig-run .mfig-key{padding:5px 8px}.motion-scene .sfig-gate{gap:4px;padding:5px 6px}.motion-scene .sfig-wire{min-width:4px}.motion-scene .mfig-panel{width:68%;padding:10px}.motion-scene .mfig-actions{gap:4px}.motion-scene .mfig-actions .mfig-key{padding:5px 6px}.spine-figure .motion-scene .mfig-prove{grid-template-columns:minmax(0,1fr);height:380px;padding:16px}.motion-scene .mfig-ask{grid-area:1/1;margin-bottom:20px}.motion-scene .mfig-fit-head{grid-area:2/1}.motion-scene .mfig-fit{grid-area:3/1}.motion-scene .mfig-wire,.motion-scene .mfig-ask:before,.motion-scene .mfig-fit li[data-picked]:before{display:none}.motion-scene .mfig-ask:after{opacity:.5;border-radius:0;width:1px;height:14px;top:100%;left:50%;right:auto;transform:none}.motion-scene .mfig-fit li:first-child{min-height:52px}.motion-scene .mfig-tick{position:absolute;top:4px;right:5px}.motion-scene .mfig-fit li:nth-child(2){min-height:64px;padding-right:42px}.motion-scene .mfig-fit li:nth-child(3){min-height:76px;padding-right:82px}.motion-scene .mfig-name{overflow-wrap:anywhere}.motion-scene .mfig-flows li{white-space:normal;justify-content:flex-start;padding:5px 8px}.motion-scene .mfig-flows{flex-direction:column;gap:4px}.spine-figure .motion-scene .mfig-compound{gap:10px;height:340px}.motion-scene .mfig-build .mfig-guard{align-self:flex-end;position:static}}
.featured-projects-module__HD3N2W__section{scroll-margin-top:calc(var(--header) + 24px)}.featured-projects-module__HD3N2W__heading{grid-template-columns:1.15fr 1fr;align-items:end;gap:clamp(24px,5vw,72px);margin-bottom:clamp(36px,5vw,56px);display:grid}.featured-projects-module__HD3N2W__heading h2{max-width:14ch;letter-spacing:var(--track-display);text-wrap:balance;margin:0;font-size:clamp(32px,3.8vw,48px);line-height:1.08}.featured-projects-module__HD3N2W__intro{justify-self:end;max-width:42ch}.featured-projects-module__HD3N2W__intro p{color:var(--body);text-wrap:pretty;margin:0 0 16px;font-size:clamp(16px,1.5vw,18px);line-height:1.6}.featured-projects-module__HD3N2W__allLink{min-height:44px;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--outline);text-decoration-color:var(--outline);text-underline-offset:6px;align-items:center;gap:16px;display:inline-flex}.featured-projects-module__HD3N2W__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,64px) clamp(24px,3vw,40px);display:grid}.featured-projects-module__HD3N2W__item{min-width:0}.featured-projects-module__HD3N2W__projectLink{height:100%;color:var(--ink);border-radius:var(--r-lg);flex-direction:column;text-decoration:none;display:flex}.featured-projects-module__HD3N2W__preview{border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-soft);overflow:hidden}.featured-projects-module__HD3N2W__preview img{aspect-ratio:1.44;object-fit:contain;width:100%;height:auto;transition:transform .4s var(--ease);display:block}.featured-projects-module__HD3N2W__details{border-bottom:1px solid var(--hairline);flex-direction:column;flex:1;padding-top:24px;display:flex}.featured-projects-module__HD3N2W__category{color:var(--body);font-family:var(--font-mono);margin:0 0 10px;font-size:11px;line-height:1.6}.featured-projects-module__HD3N2W__titleRow{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.featured-projects-module__HD3N2W__titleRow h3{letter-spacing:var(--track-display);margin:0;font-size:clamp(28px,2.8vw,36px);line-height:1.1}.featured-projects-module__HD3N2W__arrow{border:1px solid var(--outline);border-radius:var(--r-pill);width:44px;height:44px;transition:background .2s var(--ease), color .2s var(--ease);flex:0 0 44px;place-items:center;display:grid}.featured-projects-module__HD3N2W__arrow svg{width:20px;height:16px;transition:transform .2s var(--ease)}.featured-projects-module__HD3N2W__description{max-width:48ch;color:var(--body);text-wrap:pretty;margin:0 0 20px;font-size:16px;line-height:1.65}.featured-projects-module__HD3N2W__capabilities{flex-wrap:wrap;gap:6px 16px;margin:auto 0 20px;padding:0;list-style:none;display:flex}.featured-projects-module__HD3N2W__capabilities li{color:var(--body);align-items:baseline;gap:8px;font-size:12px;line-height:1.6;display:inline-flex}.featured-projects-module__HD3N2W__capabilities li:before{content:"";border-radius:var(--r-pill);background:var(--muted);flex:0 0 3px;align-self:center;width:3px;height:3px}.featured-projects-module__HD3N2W__read{width:fit-content;text-decoration:underline;-webkit-text-decoration-color:var(--outline);text-decoration-color:var(--outline);text-underline-offset:5px;padding-bottom:24px;font-size:13px;line-height:1.5}.featured-projects-module__HD3N2W__projectLink:focus-visible,.featured-projects-module__HD3N2W__allLink:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.featured-projects-module__HD3N2W__projectLink:focus-visible .featured-projects-module__HD3N2W__arrow{background:var(--ink);color:var(--page)}.featured-projects-module__HD3N2W__related{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}@media (hover:hover) and (pointer:fine){.featured-projects-module__HD3N2W__projectLink:hover .featured-projects-module__HD3N2W__preview img{transform:scale(1.015)}.featured-projects-module__HD3N2W__projectLink:hover .featured-projects-module__HD3N2W__arrow{background:var(--ink);color:var(--page)}.featured-projects-module__HD3N2W__projectLink:hover .featured-projects-module__HD3N2W__arrow svg,.featured-projects-module__HD3N2W__allLink:hover svg{transform:translate(2px)}.featured-projects-module__HD3N2W__projectLink:hover .featured-projects-module__HD3N2W__read,.featured-projects-module__HD3N2W__allLink:hover{text-decoration-color:currentColor}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.featured-projects-module__HD3N2W__item{animation:linear both featured-projects-module__HD3N2W__reveal-project;animation-timeline:view();animation-range:entry entry 20%}}}@keyframes featured-projects-module__HD3N2W__reveal-project{0%{opacity:.65;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.featured-projects-module__HD3N2W__heading,.featured-projects-module__HD3N2W__grid{grid-template-columns:minmax(0,1fr)}.featured-projects-module__HD3N2W__heading{gap:20px}.featured-projects-module__HD3N2W__intro{justify-self:start}.featured-projects-module__HD3N2W__heading h2{max-width:17ch}.featured-projects-module__HD3N2W__details{padding-top:20px}}@media (prefers-reduced-motion:reduce),print{.featured-projects-module__HD3N2W__item,.featured-projects-module__HD3N2W__projectLink .featured-projects-module__HD3N2W__preview img,.featured-projects-module__HD3N2W__arrow,.featured-projects-module__HD3N2W__projectLink .featured-projects-module__HD3N2W__arrow svg,.featured-projects-module__HD3N2W__allLink svg{transition:none;animation:none;transform:none}}@media print{.featured-projects-module__HD3N2W__item{break-inside:avoid}}
.design-page-module__8sIx7q__hero,.design-page-module__8sIx7q__gallery,.design-page-module__8sIx7q__close{overflow-wrap:anywhere}.design-page-module__8sIx7q__hero{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(40px,5vw,64px)}.design-page-module__8sIx7q__hero h1{max-width:17ch;margin:var(--sp-lg) 0 var(--sp-xl);letter-spacing:var(--track-display);text-wrap:balance;font-size:clamp(44px,7.2vw,92px);line-height:1.03}.design-page-module__8sIx7q__intro{align-items:end;gap:var(--sp-xl);grid-template-columns:minmax(0,1fr) auto;display:grid}.design-page-module__8sIx7q__intro p{max-width:44ch;color:var(--body);text-wrap:pretty;margin:0;font-size:clamp(16px,1.5vw,18px);line-height:1.6}.design-page-module__8sIx7q__action{max-width:100%;min-height:44px}.design-page-module__8sIx7q__heroActions{justify-content:end;align-items:center;gap:var(--sp-sm);flex-wrap:wrap;max-width:520px;display:flex}.design-page-module__8sIx7q__downloadMeta{color:var(--body);font-family:var(--font-mono);white-space:nowrap;font-size:10px}.design-page-module__8sIx7q__gallery{scroll-margin-top:calc(var(--header) + var(--sp-md));padding-top:clamp(40px,5vw,64px)}.design-page-module__8sIx7q__discovery{display:contents}.design-page-module__8sIx7q__galleryHeading{justify-content:space-between;align-items:end;gap:var(--sp-sm) var(--sp-lg);margin-bottom:var(--sp-lg);flex-wrap:wrap;display:flex}.design-page-module__8sIx7q__galleryHeading h2,.design-page-module__8sIx7q__galleryHeading p{margin:0}.design-page-module__8sIx7q__galleryHeading h2{letter-spacing:var(--track-display);font-size:clamp(28px,3.2vw,40px);line-height:1.15}.design-page-module__8sIx7q__galleryHeading>div p{max-width:58ch;margin-top:var(--sp-sm);color:var(--body);font-size:14px;line-height:1.6}.design-page-module__8sIx7q__resultCount{color:var(--body);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;padding-bottom:4px;font-size:12px}.design-page-module__8sIx7q__discoveryControls{top:calc(var(--header) + var(--sp-sm));scroll-margin-top:calc(var(--header) + var(--sp-sm));z-index:4;justify-content:space-between;align-items:center;gap:var(--sp-sm) var(--sp-lg);margin-bottom:var(--sp-xl);padding:var(--sp-xs) var(--sp-md);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--bar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;position:sticky}.design-page-module__8sIx7q__filters{gap:var(--sp-lg);overscroll-behavior-x:contain;scrollbar-width:none;min-width:0;display:flex;overflow-x:auto}.design-page-module__8sIx7q__filters::-webkit-scrollbar{display:none}.design-page-module__8sIx7q__filters button{min-height:44px;padding:var(--sp-xs) 0;color:var(--body);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;font-size:13px;transition:color .16s,border-color .16s}.design-page-module__8sIx7q__filters button:hover,.design-page-module__8sIx7q__filters button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}.design-page-module__8sIx7q__filters button:focus-visible{outline-offset:-3px}.design-page-module__8sIx7q__search{align-items:center;gap:var(--sp-xs);min-width:160px;min-height:44px;color:var(--body);flex:0 248px;display:flex}.design-page-module__8sIx7q__search svg{flex-shrink:0}.design-page-module__8sIx7q__search input{width:100%;min-width:0;min-height:44px;padding:var(--sp-xs) 4px;color:var(--ink);font:inherit;background:0 0;border:0;border-radius:0;font-size:14px}.design-page-module__8sIx7q__search input::placeholder{color:var(--muted);opacity:1}.design-page-module__8sIx7q__search input::-webkit-search-cancel-button{display:none}.design-page-module__8sIx7q__search button{width:44px;height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;flex-shrink:0;padding:0;font-size:24px}.design-page-module__8sIx7q__projects{gap:var(--sp-xxl) var(--sp-lg);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.design-page-module__8sIx7q__project{min-width:0;scroll-margin-top:160px;display:grid}.design-page-module__8sIx7q__project[hidden]{display:none}.design-page-module__8sIx7q__project article{flex-direction:column;min-width:0;display:flex}.design-page-module__8sIx7q__preview{margin:0 0 var(--sp-md)}.design-page-module__8sIx7q__previewLink{border-radius:var(--r-md);display:block;position:relative}.design-page-module__8sIx7q__imageFrame{aspect-ratio:1.85;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--canvas);overflow:hidden}.design-page-module__8sIx7q__imageFrame img{object-fit:contain;object-position:center top;width:100%;height:100%;transition:transform .48s var(--ease);display:block}.design-page-module__8sIx7q__previewArrow{right:var(--sp-md);bottom:var(--sp-md);border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--ink);width:36px;height:36px;color:var(--on-primary);transition:transform .24s var(--ease);place-items:center;display:grid;position:absolute}.design-page-module__8sIx7q__projectMeta{justify-content:space-between;align-items:baseline;gap:var(--sp-md);margin-bottom:var(--sp-xs);display:flex}.design-page-module__8sIx7q__number{color:var(--muted);font-family:var(--font-mono);letter-spacing:var(--track-mono);flex-shrink:0;font-size:11px}.design-page-module__8sIx7q__category{margin:0 0 var(--sp-sm);color:var(--body);font-size:13px;line-height:1.5}.design-page-module__8sIx7q__projectTitle{min-width:0;letter-spacing:var(--track-display);text-wrap:balance;margin:0;font-size:clamp(22px,2.2vw,28px);line-height:1.12}.design-page-module__8sIx7q__description{max-width:52ch;margin:0 0 var(--sp-md);color:var(--body);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.design-page-module__8sIx7q__projectFooter{padding-top:var(--sp-xs);border-top:1px solid var(--hairline);align-items:center;margin-top:auto;display:flex}.design-page-module__8sIx7q__projectActions{gap:var(--sp-xs) var(--sp-lg);flex-wrap:wrap;max-width:100%;display:flex}.design-page-module__8sIx7q__projectAction{align-items:center;gap:var(--sp-xs);min-height:44px;color:var(--ink);text-underline-offset:5px;font-size:13px;display:inline-flex}.design-page-module__8sIx7q__projectAction:hover{text-decoration:underline}.design-page-module__8sIx7q__projectAction svg{transition:transform .24s var(--ease);flex-shrink:0}.design-page-module__8sIx7q__privateNotice{min-height:44px;color:var(--body);align-items:center;margin:0;font-size:13px;line-height:1.5;display:flex}.design-page-module__8sIx7q__empty{min-height:280px;padding:var(--sp-xxl) 0}.design-page-module__8sIx7q__empty h3{margin:0;font-size:28px;line-height:1.2}.design-page-module__8sIx7q__empty p,.design-page-module__8sIx7q__noScript{color:var(--body);font-size:15px;line-height:1.6}.design-page-module__8sIx7q__close{align-items:end;gap:var(--sp-xxl);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);display:grid}.design-page-module__8sIx7q__close h2{max-width:17ch;margin:var(--sp-lg) 0 0;letter-spacing:var(--track-display);text-wrap:balance;font-size:clamp(36px,4.5vw,60px);line-height:1.08}.design-page-module__8sIx7q__closeCopy p{margin:0 0 var(--sp-lg);color:var(--body);font-size:16px;line-height:1.6}.design-page-module__8sIx7q__previewDialog{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--canvas);width:min(1100px,100vw - 40px);max-width:none;max-height:calc(100svh - 40px);color:var(--ink);overscroll-behavior:contain;margin:auto;padding:0}.design-page-module__8sIx7q__previewDialog::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.design-page-module__8sIx7q__previewDialogHeader{z-index:1;justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--hairline);background:var(--canvas);display:flex;position:sticky;top:0}.design-page-module__8sIx7q__previewDialogHeader h2{letter-spacing:var(--track-display);margin:0 0 4px;font-size:clamp(24px,3vw,32px);line-height:1.15}.design-page-module__8sIx7q__previewDialogHeader p{color:var(--body);margin:0;font-size:13px;line-height:1.5}.design-page-module__8sIx7q__previewDialogClose{border:1px solid var(--hairline);border-radius:var(--r-pill);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;flex:none;place-items:center;display:grid}.design-page-module__8sIx7q__previewDialogClose:hover{background:var(--surface-soft)}.design-page-module__8sIx7q__previewDialogImage{object-fit:contain;background:var(--page);width:100%;height:auto;max-height:65svh;display:block}.design-page-module__8sIx7q__previewDialogDetails{gap:var(--sp-lg);padding:var(--sp-md) var(--sp-lg);border-top:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.design-page-module__8sIx7q__previewDialogDetails>p{max-width:72ch;color:var(--body);margin:0;font-size:14px;line-height:1.6}.design-page-module__8sIx7q__previewDialogDetails .design-page-module__8sIx7q__projectActions{justify-content:end}@media (max-width:1050px){.design-page-module__8sIx7q__projects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.design-page-module__8sIx7q__previewLink:hover img{transform:scale(1.035)}.design-page-module__8sIx7q__previewLink:hover .design-page-module__8sIx7q__previewArrow,.design-page-module__8sIx7q__projectAction:hover svg{transform:translate(2px,-2px)}}.design-page-module__8sIx7q__previewLink:focus-visible .design-page-module__8sIx7q__previewArrow{transform:translate(2px,-2px)}@media (max-width:1000px){.design-page-module__8sIx7q__intro{gap:var(--sp-lg);grid-template-columns:minmax(0,1fr)}.design-page-module__8sIx7q__heroActions{justify-content:start;max-width:none}.design-page-module__8sIx7q__discoveryControls{flex-direction:column-reverse;align-items:stretch;gap:0}.design-page-module__8sIx7q__search{border-bottom:1px solid var(--hairline);flex:auto}.design-page-module__8sIx7q__project{scroll-margin-top:210px}}@media (max-width:760px){.design-page-module__8sIx7q__hero{padding-top:var(--sp-xxl);padding-bottom:var(--sp-xl)}.design-page-module__8sIx7q__hero h1{margin-bottom:var(--sp-lg);font-size:clamp(42px,8.5vw,64px)}.design-page-module__8sIx7q__intro p{max-width:48ch}.design-page-module__8sIx7q__close{gap:var(--sp-xxl);grid-template-columns:minmax(0,1fr)}.design-page-module__8sIx7q__discoveryControls{padding:var(--sp-xs) var(--sp-sm)}.design-page-module__8sIx7q__filters{gap:var(--sp-lg)}.design-page-module__8sIx7q__search input{font-size:16px}.design-page-module__8sIx7q__projectTitle{font-size:26px}.design-page-module__8sIx7q__preview{margin-bottom:var(--sp-md)}.design-page-module__8sIx7q__previewArrow{right:var(--sp-sm);bottom:var(--sp-sm);width:36px;height:36px}.design-page-module__8sIx7q__close{gap:var(--sp-lg)}.design-page-module__8sIx7q__previewDialog{width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.design-page-module__8sIx7q__previewDialogHeader,.design-page-module__8sIx7q__previewDialogDetails{padding:var(--sp-md)}.design-page-module__8sIx7q__previewDialogDetails{gap:var(--sp-sm);grid-template-columns:minmax(0,1fr)}.design-page-module__8sIx7q__previewDialogDetails .design-page-module__8sIx7q__projectActions{justify-content:start}}@media (max-width:580px){.design-page-module__8sIx7q__projects{gap:var(--sp-xl);grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.design-page-module__8sIx7q__imageFrame img,.design-page-module__8sIx7q__previewArrow,.design-page-module__8sIx7q__projectAction svg,.design-page-module__8sIx7q__filters button{transition:none;transform:none!important}}@media print{.design-page-module__8sIx7q__hero,.design-page-module__8sIx7q__gallery,.design-page-module__8sIx7q__close{padding:var(--sp-lg) 0}.design-page-module__8sIx7q__hero h1{font-size:48px}.design-page-module__8sIx7q__discoveryControls,.design-page-module__8sIx7q__galleryHeading,.design-page-module__8sIx7q__heroActions,.design-page-module__8sIx7q__previewArrow,.design-page-module__8sIx7q__empty,.design-page-module__8sIx7q__noScript{display:none}.design-page-module__8sIx7q__previewDialog,.design-page-module__8sIx7q__previewDialog::backdrop{display:none!important}.design-page-module__8sIx7q__description{display:block;overflow:visible}.design-page-module__8sIx7q__project{break-inside:avoid}.design-page-module__8sIx7q__project[hidden]{display:grid}.design-page-module__8sIx7q__projects{gap:var(--sp-xl)}}
