.rb-text-word{white-space:nowrap;display:inline-block}.rb-motion-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.detailed-model{--model-light:#f4f8ff;--model-mid:#b7cbe8;--model-shadow:#647fa9;--model-panel:#d5e1f2}[data-paper=blue] .detailed-model{--model-light:#647e9e;--model-mid:#314b6b;--model-shadow:#14273e;--model-panel:#2d435d}.detailed-model .model-canvas{touch-action:pan-y pinch-zoom}.cube-panel{opacity:.95}.cube-fastener,.cube-optic,.orbital-module{animation:1.5s .5s both detail-develop}.orbit-band-segment{animation:1.5s .2s both detail-develop}.orbital-assembly{filter:drop-shadow(0 2px 2px #16345b12)}.detailed-model .model-heading button{min-width:44px;min-height:44px}@keyframes detail-develop{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.cube-fastener,.cube-optic,.orbital-module,.orbit-band-segment{animation:none}}.detailed-model.touch-rotation .model-canvas{touch-action:none}.detailed-model .model-canvas{-webkit-user-select:none;user-select:none}.detailed-model.is-dragging .model-canvas{cursor:grabbing}.detailed-model.is-dragging .cube-fastener,.detailed-model.is-dragging .cube-optic,.detailed-model.is-dragging .orbital-module,.detailed-model.is-dragging .orbit-band-segment{animation:none}.model-rotation-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:-10px 5px 12px;display:flex}.model-rotation-controls button{border:1px solid var(--line);background:var(--paper);min-width:44px;min-height:44px;color:var(--blue);cursor:pointer;border-radius:5px;padding:8px;font-size:18px}.model-rotation-controls .model-touch-mode{font-size:11px;display:none}.model-rotation-controls button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.model-rotation-controls button[aria-pressed=true]{color:var(--paper);background:var(--blue);border-color:var(--blue)}@media (pointer:coarse),(width<=800px){.model-rotation-controls .model-touch-mode{width:100%;display:block}}.workshop-logo{flex-shrink:0;width:58px;height:58px;overflow:visible}.logo-frame{stroke:var(--blue);stroke-width:1.3px;opacity:.6}.logo-guides{stroke:var(--blue);stroke-width:.6px;opacity:.16}.logo-j,.logo-h{stroke:var(--ink);stroke-width:3.4px;stroke-linejoin:round;stroke-linecap:round}.logo-h{stroke:var(--blue)}.logo-junction{fill:var(--paper);stroke:var(--blue);stroke-width:1.5px}.header .brand .brand-mark{align-items:center;padding-right:15px;display:flex}.brand:hover .logo-j,.brand:hover .logo-h,.brand:focus-visible .logo-j,.brand:focus-visible .logo-h{animation:.8s both logo-draft}.brand:hover .logo-h{animation-delay:.12s}@keyframes logo-draft{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@media (width<=600px){.header .brand{gap:8px}.header .brand .brand-mark{border:0;padding-right:0}.header .brand .workshop-logo{width:38px;height:38px}}@media (width<=360px){.header .brand small{display:none}.header .brand{font-size:12px}.header .brand .workshop-logo{width:32px;height:32px}}@media (prefers-reduced-motion:reduce){.workshop-logo *{animation:none!important}}.drafting-cursor{pointer-events:none;z-index:1500;width:100%;height:100%;position:fixed;inset:0}.workshop-arrival{--city-wall:#f1f5fc;--city-side:#c1d0e8;--city-shadow:#7f9cc5;--city-roof:#f8fbff;z-index:1400;pointer-events:auto;background:var(--paper);color:var(--blue);justify-content:center;align-items:center;transition:opacity 1s,visibility 1s;display:flex;position:fixed;inset:0;overflow:hidden}[data-paper=blue] .workshop-arrival{--city-wall:#344968;--city-side:#263950;--city-shadow:#142338;--city-roof:#4c6582}.workshop-arrival.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.arrival-scene{width:min(1080px,100vw);transition:transform 1.2s cubic-bezier(.25,.65,.2,1),filter 1s;transform:translateY(35px)}.arrival-city{stroke-width:1.05px;width:100%;height:min(80vh,760px);animation:3s cubic-bezier(.2,.6,.2,1) both city-camera;overflow:visible}.is-leaving .arrival-scene{filter:blur(3px);transform:translateY(-18px)scale(1.09)}.arrival-caption{z-index:1;color:var(--ink);align-items:center;gap:20px;transition:opacity .5s,transform .7s;display:flex;position:absolute;top:5vh;left:7vw}.arrival-caption .workshop-logo{width:78px;height:78px}.arrival-caption .logo-j,.arrival-caption .logo-h{animation:1.3s both logo-draft}.arrival-caption .logo-h{animation-delay:.2s}.arrival-caption span{font-family:Gabriola,Segoe Script,cursive;font-size:clamp(36px,4.5vw,60px)}.arrival-caption p{color:var(--muted);margin:0;font-size:clamp(12px,2vw,15px)}.is-leaving .arrival-caption{opacity:0;transform:translateY(-10px)}.arrival-ground{opacity:.16;stroke-width:.8px}.arrival-ground path{animation:1.7s ease-out both city-line}.arrival-edge{animation:city-line 1.5s var(--city-delay,0s) both cubic-bezier(.2,.5,.2,1)}.city-facet{animation:city-face 1.5s var(--city-delay,0s) both}.city-windows{opacity:.48;stroke-width:.75px}.city-plinth-side{fill:var(--city-side);opacity:.7;animation:1.2s both city-face}.city-plinth-side.darker{fill:var(--city-shadow)}.city-detail-draw{animation:1.4s ease-out .85s both city-line}.city-skybridges{stroke-width:1.1px}.city-crown{stroke-width:1.2px}.city-crown circle,.city-train{fill:var(--blue);stroke:var(--paper);stroke-width:2px}.city-transit{opacity:.65}.city-dome{stroke-width:1px}.city-flight-trails{opacity:.2;stroke-dasharray:4 8}.city-flyer-anchor{animation:city-face .7s calc(1s + var(--flight-delay)) both}.city-flyer{animation:city-hover 3.2s var(--flight-delay) infinite ease-in-out}.flyer-hull{fill:var(--city-wall);stroke-width:1.5px}.flyer-rotor{stroke-width:1.1px;fill:color-mix(in srgb,var(--blue) 8%,transparent)}.flyer-wake{stroke:none;fill:var(--blue);opacity:.08}.city-train{animation:1s 1.5s both city-face}.arrival-skip{border:1px solid var(--line);min-height:44px;color:var(--blue);background:var(--paper);pointer-events:auto;padding:10px 18px;position:absolute;bottom:5vh;right:7vw}[data-arrival=revealing] #root>main,[data-arrival=revealing] #root>.header{animation:1s both portfolio-unveil}@keyframes portfolio-unveil{0%{opacity:.15;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes city-line{0%{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}8%{opacity:1}to{stroke-dasharray:1;stroke-dashoffset:0;opacity:1}}@keyframes city-face{0%{opacity:0}to{opacity:1}}@keyframes city-camera{0%{transform:translateY(24px)scale(.94)}to{transform:translateY(0)scale(1)}}@keyframes city-hover{0%,to{transform:translate(0)}50%{transform:translate(14px,-12px)}}@media (width<=600px){.arrival-scene{flex-shrink:0;width:125vw;transform:translateY(35px)}.arrival-city{height:64vh}.arrival-caption{gap:12px;top:9vh;left:6vw}.arrival-caption .workshop-logo{width:58px;height:58px}.arrival-caption span{font-size:38px}}@media (height<=520px){.arrival-caption{top:3vh}.arrival-caption .workshop-logo{width:46px;height:46px}.arrival-caption span{font-size:28px}.arrival-caption p{font-size:11px}.arrival-scene{width:min(700px,85vw);transform:translateY(15px)}.arrival-city{height:90vh}}@media (prefers-reduced-motion:reduce){.workshop-arrival,.drafting-cursor{display:none}[data-arrival=revealing] #root>main,[data-arrival=revealing] #root>.header{animation:none}}@media print{.workshop-arrival,.drafting-cursor{display:none}}.stack-object-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px;display:grid}.stack-object-overview .stack-object-choice{border-bottom:1px solid var(--line);width:100%;color:var(--blue);padding:0 5px 20px;position:relative;transform:none}.stack-object-overview .stack-object-choice:hover{border-bottom-color:var(--blue)}.stack-preview-model{width:100%;transition:transform .55s;display:block;overflow:visible}.stack-object-choice:hover .stack-preview-model{transform:translateY(-7px)rotate(-2deg)}.stack-object-overview .graph-node-label{color:var(--ink);background:0 0;font-size:13px}.stack-model-surfaces{animation:1.8s both stack-surface-in}.stack-model-line{stroke-dasharray:1;animation:1.7s both stack-model-draw;animation-delay:var(--line-delay)}.stack-model-entrance{animation:.8s both stack-space-in}.stack-scene-toolbar{color:var(--blue);justify-content:space-between;align-items:center;gap:20px;margin:22px 0 10px;display:flex}.stack-scene-toolbar>span{font-size:17px}.stack-scene-toolbar button{color:var(--muted);background:0 0;border:0;padding:8px 0;font-size:11px}.stack-scene-toolbar button:hover{color:var(--blue)}.stack-scene-wrap .stack-3d-scene{background-image:radial-gradient(color-mix(in srgb,var(--blue) 12%,transparent) .7px,transparent .7px);background-size:24px 24px}.stack-scene-canvas{touch-action:none;cursor:grab;width:100%;height:100%;position:absolute;inset:0}.stack-scene-canvas:active{cursor:grabbing}.stack-scene-canvas:focus{outline:none}.stack-scene-canvas:focus-visible{outline:1px solid var(--blue);outline-offset:5px}.stack-3d-scene .scene-tech-node{z-index:1;min-height:64px;padding-top:32px}.stack-3d-scene .scene-tech-node .graph-node-label{font-size:12px}.stack-anchor-wire{stroke-dasharray:1;animation:1.4s .35s both stack-model-draw}.stack-anchor-link{transition:opacity .25s}.stack-rotate-hint{text-align:center;width:100%;color:var(--muted);pointer-events:none;font-size:10px;position:absolute;left:0}@keyframes stack-model-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes stack-surface-in{0%,25%{fill-opacity:0}to{fill-opacity:1}}@keyframes stack-space-in{0%{opacity:0}to{opacity:1}}@media (width<=900px){.stack-object-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=650px){.stack-object-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.stack-object-overview .graph-node-label{font-size:11px}.stack-scene-toolbar>span{font-size:14px}.stack-scene-toolbar button{font-size:10px}.stack-3d-scene.is-compact .stack-scene-canvas{touch-action:pan-y}.stack-3d-scene .scene-tech-node .graph-node-label{font-size:11px}}@media (prefers-reduced-motion:reduce){.stack-model-surfaces,.stack-model-line,.stack-model-entrance,.stack-anchor-wire{animation:none}.stack-preview-model,.stack-anchor-link{transition:none}.stack-object-choice:hover .stack-preview-model{transform:none}}.stack-3d-scene .scene-tech-node{min-height:108px;padding:76px 2px 8px;transform:translate(-50%,-34px)}.technology-emblem{border:1.5px solid color-mix(in srgb,var(--blue) 55%,var(--line));background:#f8f7f1;border-radius:50%;place-items:center;width:68px;height:68px;transition:transform .3s,border-color .3s,box-shadow .3s;display:grid;position:absolute;top:0;left:calc(50% - 34px);box-shadow:0 5px 16px #172c4714,inset 0 0 0 5px #ffffff80}.technology-emblem img{object-fit:contain;width:33px;height:33px;display:block}.technology-monogram{color:#2752cb;letter-spacing:-.06em;font-family:Workshop,Arial,sans-serif;font-size:18px;font-weight:700}.stack-3d-scene .scene-tech-node .graph-node-label{color:var(--ink);padding:3px 6px;font-size:13px}.stack-3d-scene .scene-tech-node:hover .technology-emblem,.stack-3d-scene .scene-tech-node:focus-visible .technology-emblem{border-color:var(--blue);box-shadow:0 0 0 5px color-mix(in srgb,var(--blue) 12%,transparent),0 7px 20px #172c4720;transform:scale(1.09)}.stack-3d-scene .scene-tech-node.is-active .technology-emblem{border:2px solid var(--blue);box-shadow:0 0 0 6px color-mix(in srgb,var(--blue) 16%,transparent),0 6px 18px #172c471a}.stack-3d-scene .scene-tech-node.is-related .technology-emblem{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 11%,transparent)}.stack-3d-scene .scene-tech-node.is-muted{opacity:.55}.stack-3d-scene .scene-tech-node.is-active .graph-node-label,.stack-3d-scene .scene-tech-node.is-related .graph-node-label{color:var(--blue)}@media (width<=650px){.stack-3d-scene .scene-tech-node{min-height:105px;padding-top:66px;transform:translate(-50%,-29px)}.technology-emblem{width:58px;height:58px;left:calc(50% - 29px)}.technology-emblem img{width:28px;height:28px}.technology-monogram{font-size:15px}.stack-3d-scene .scene-tech-node .graph-node-label{font-size:11px}}@media (prefers-reduced-motion:reduce){.technology-emblem{transition:none}.stack-3d-scene .scene-tech-node:hover .technology-emblem{transform:none}}.graph-toolkit{background:color-mix(in srgb,var(--paper) 94%,var(--blue))}.graph-navigation{align-items:center;gap:18px;min-height:35px;margin-bottom:18px;font-size:12px;display:flex}.graph-navigation button{color:var(--blue);background:0 0;border:0;padding:9px 0}.graph-navigation button:disabled{color:var(--muted);opacity:.65}.graph-navigation>span{color:var(--muted);border-left:1px solid var(--line);padding-left:18px}.graph-field-switch{flex-wrap:wrap;gap:8px 20px;margin-bottom:25px;display:flex}.graph-field-switch button{color:var(--muted);background:0 0;border:0;border-bottom:1px solid #0000;padding:8px 0;font-size:11px}.graph-field-switch button[aria-pressed=true]{border-color:var(--blue);color:var(--blue)}.stack-plot{isolation:isolate;background-image:linear-gradient(color-mix(in srgb,var(--blue) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--blue) 5%,transparent) 1px,transparent 1px);color:var(--blue);background-size:24px 24px;position:relative}.stack-connections{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.field-curve{opacity:.55;stroke-width:1.5px;stroke-dasharray:1;animation:1.7s both field-draw;animation-delay:var(--branch-delay)}.curve-highlight{animation:.25s connection-reveal}.graph-node{min-height:78px;color:var(--ink);text-align:center;background:0 0;border:0;padding:35px 2px 10px;transition:color .25s,opacity .25s;position:absolute;transform:translate(-50%,-14px)}.node-junction{border:1px solid var(--blue);background:var(--paper);width:8px;height:8px;animation:.5s both node-appear;animation-delay:var(--point-delay);border-radius:50%;transition:background .25s,box-shadow .25s;position:absolute;top:10px;left:calc(50% - 4px)}.graph-node-label{background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere;animation:.55s both node-appear;animation-delay:var(--point-delay);padding:3px 5px;font-size:13px;line-height:1.65}.graph-node-arrow{color:var(--muted);margin-left:3px;font-size:11px;display:inline-block}.graph-node.is-active{color:var(--blue)}.graph-node.is-active .node-junction{background:var(--blue);box-shadow:0 0 0 6px color-mix(in srgb,var(--blue) 15%,transparent)}.graph-node.is-related{color:var(--blue)}.graph-node.is-related .node-junction{background:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 10%,transparent)}.graph-node.is-muted{opacity:.4}.graph-node:hover .node-junction,.graph-node:focus-visible .node-junction{box-shadow:0 0 0 7px color-mix(in srgb,var(--blue) 12%,transparent)}.graph-node:hover{color:var(--blue);opacity:1}.graph-relation-note,.graph-selection-hint{color:var(--muted);text-align:center;margin-top:18px;font-size:11px}.tool-detail-sheet{border:1px solid var(--line);border-top:2px solid var(--blue);background:var(--paper);margin-top:30px;padding:30px;scroll-margin-top:110px;animation:.4s detail-enter}.tool-detail-sheet:focus{outline:none}.tool-detail-sheet:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.tool-detail-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding-bottom:22px;display:flex}.tool-detail-heading>div>span{color:var(--muted);font-size:11px}.tool-detail-heading h3{overflow-wrap:anywhere;margin-top:7px;font-size:34px}.tool-official{color:var(--blue);border:1px solid var(--line);flex-shrink:0;padding:12px 15px;font-size:12px}.tool-official:hover{border-color:var(--blue)}.tool-detail-grid{grid-template-columns:1fr 1fr;gap:28px 40px;padding-top:26px;display:grid}.tool-detail-block{min-width:0}.tool-detail-block h4{margin:0 0 12px;font-size:14px;font-weight:400}.tool-detail-block p{color:var(--muted);font-size:13px;line-height:1.75}.tool-detail-block .tool-pair-note{font-size:11px}.tool-companions{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.tool-companions button{border:1px solid var(--line);color:var(--ink);background:0 0;gap:12px;padding:7px 9px;font-size:11px;display:flex}.tool-companions button>span{color:var(--blue)}.tool-companions button:hover{color:var(--blue);border-color:var(--blue)}.tool-related{border-top:1px solid var(--line);grid-column:1/-1;padding-top:24px}.tool-project-list{grid-template-columns:1fr 1fr;gap:8px 30px;display:grid}.tool-project-list a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:11px 0;font-size:14px;display:flex}.tool-project-list a:hover{color:var(--blue)}.tool-project-list small{color:var(--muted);margin-top:6px;font-size:10px;display:block}@keyframes field-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes node-appear{0%{opacity:0}to{opacity:1}}@keyframes connection-reveal{0%{opacity:0}to{opacity:1}}@keyframes detail-enter{0%{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:none}}@media (width<=600px){.graph-navigation{gap:10px;font-size:11px}.graph-field-switch{gap:4px 13px}.graph-field-switch button{font-size:10px}.graph-node-label{padding-inline:2px;font-size:11px}.graph-node-arrow{margin-left:1px;font-size:10px}.tool-detail-sheet{padding:20px 16px}.tool-detail-heading{flex-direction:column;align-items:start;gap:16px}.tool-detail-heading h3{font-size:28px}.tool-detail-grid,.tool-project-list{grid-template-columns:1fr;gap:23px}.tool-project-list{gap:5px}.tool-related{grid-column:auto}.graph-relation-note{font-size:10px}}@media (prefers-reduced-motion:reduce){.field-curve,.node-junction,.graph-node-label,.curve-highlight,.tool-detail-sheet{animation:none}.graph-node,.node-junction{transition:none}}.events.workshop-events{padding-block:80px;display:block}.workshop-events>header{margin-bottom:36px}.workshop-events h2{max-width:650px}.workshop-event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.workshop-event-card{border:1px solid var(--line);background:var(--paper);min-width:0;transition:transform .35s,box-shadow .35s,border-color .35s}.workshop-event-cover{aspect-ratio:2;background:color-mix(in srgb,var(--blue) 7%,var(--paper));color:var(--blue);position:relative;overflow:hidden}.workshop-event-cover svg,.workshop-event-cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.workshop-event-cover img{filter:saturate(.45);transition:transform .7s,filter .7s}.workshop-event-cover img[hidden]{display:none}.workshop-event-status{max-width:calc(100% - 36px);color:var(--blue);background:var(--paper);border:1px solid var(--line);padding:7px 11px;font-size:12px;position:absolute;bottom:16px;left:18px}.event-afm .workshop-event-status{border-color:var(--blue)}.event-edition{color:var(--ink);text-shadow:0 2px 20px var(--paper);place-items:center;font:italic 64px Georgia,serif;display:grid;position:absolute;inset:0}.workshop-event-copy{flex-direction:column;padding:26px;display:flex}.workshop-event-copy h3{margin:0 0 12px;font-size:24px}.workshop-event-copy p{color:var(--muted);min-height:80px;margin:0 0 24px;font-size:15px;line-height:1.75}.workshop-event-copy a{border-top:1px solid var(--line);color:var(--blue);justify-content:space-between;align-items:center;padding-top:14px;font-size:13px;display:flex}.workshop-event-copy a span{transition:transform .3s}.workshop-event-card:focus-within{outline:2px solid var(--blue);outline-offset:4px}@media (hover:hover){.workshop-event-card:hover{border-color:var(--blue);transform:translateY(-5px);box-shadow:0 14px 28px #142c5310}.workshop-event-card:hover img{filter:saturate(.8);transform:scale(1.035)}.workshop-event-copy a:hover span{transform:translate(3px,-3px)}}@media (width<=600px){.workshop-event-grid{grid-template-columns:1fr;gap:22px}.workshop-event-copy{padding:21px}.workshop-event-copy p{min-height:0}.events.workshop-events{padding-block:50px}}@media (prefers-reduced-motion:reduce){.workshop-event-card,.workshop-event-cover img,.workshop-event-copy a span{transition:none;transform:none!important}}.workshop-event-cover{background:radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--blue) 7%,var(--paper)),var(--paper))}.event-blueprint{overflow:visible}.event-blueprint .blueprint-guides{opacity:.2;stroke-width:.8px}.event-blueprint .blueprint-depth{opacity:.3}.event-blueprint .blueprint-wash{fill:color-mix(in srgb,var(--blue) 5%,var(--paper))}.event-blueprint .blueprint-object{transform-origin:300px 150px;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.event-blueprint .blueprint-signal{stroke-width:2px}.event-blueprint:not(.is-drawn) :is(path,circle,ellipse){opacity:0}.event-blueprint.is-drawn :is(path,circle,ellipse){animation:event-ink-draw 1.7s var(--draw-delay,0s) both ease-out}.event-blueprint.is-visible .blueprint-float{animation:5s ease-in-out infinite event-ink-float}.workshop-event-card:is(:hover,:focus-within) .blueprint-object{transform:translateY(-5px)scale(1.045)}.workshop-event-card:is(:hover,:focus-within) .blueprint-node{animation:event-ink-glow 1.8s var(--node-delay,0s) infinite ease-in-out}.workshop-event-card:is(:hover,:focus-within) .blueprint-signal{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--blue) 45%,transparent))}@keyframes event-ink-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}15%{opacity:1}to{stroke-dasharray:1;stroke-dashoffset:0;opacity:1}}@keyframes event-ink-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes event-ink-glow{0%,to{filter:drop-shadow(0 0 #0000)}50%{filter:drop-shadow(0 0 4px var(--blue))}}@media (prefers-reduced-motion:reduce){.event-blueprint *,.workshop-event-card:is(:hover,:focus-within) .blueprint-object{opacity:1;stroke-dashoffset:0!important;transition:none!important;animation:none!important;transform:none!important}.event-blueprint:not(.is-drawn) :is(path,circle,ellipse){opacity:1}}.event-photo{border-top:1px solid var(--line);margin:0}.event-photo>img{aspect-ratio:2;object-fit:cover;filter:saturate(.75);width:100%;transition:filter .4s;display:block}.event-photo>img[hidden]{display:none}.event-photo figcaption{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:6px 12px;padding:10px 18px;font-size:10px;line-height:1.6;display:flex}.event-photo figcaption a{color:var(--blue)}.workshop-event-card:hover .event-photo img{filter:saturate()}.event-blueprint.is-drawn .blueprint-hover-ink :is(path,circle){stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:none}.workshop-event-card:is(:hover,:focus-within) .event-blueprint.is-drawn .blueprint-hover-ink :is(path,circle){animation:1.5s ease-out both event-ink-draw}.workshop-event-card:is(:hover,:focus-within) .blueprint-hover-ink :nth-child(2){animation-delay:.15s}.workshop-event-card:is(:hover,:focus-within) .blueprint-hover-ink :nth-child(n+3){animation-delay:.3s}@media (hover:none){.event-blueprint.is-visible .blueprint-hover-ink :is(path,circle){animation:1.5s ease-out .6s both event-ink-draw}}@media (prefers-reduced-motion:reduce){.event-blueprint .blueprint-hover-ink :is(path,circle){stroke-dashoffset:0!important;opacity:.6!important;animation:none!important}.event-photo>img{transition:none}}.event-afm .event-photo>img{aspect-ratio:3/2;object-fit:contain}.event-photo>img,.event-afm .event-photo>img{aspect-ratio:3/2;object-fit:contain;object-position:center;background:color-mix(in srgb,var(--ink) 6%,var(--paper));filter:none;width:100%}.event-afm .event-photo>img{box-sizing:border-box;padding:10px}.contact.contact-workshop{background:var(--paper);color:var(--ink);border-top:1px solid var(--line)}.contact-workshop .section-label,.contact-workshop p{color:var(--muted)}.contact-workshop .contact-inner{gap:40px}.contact-workshop .email{border-color:var(--line)}.contact-workshop .socials{gap:14px;margin-top:24px}.contact-workshop .socials a,.contact-workshop .socials button,.contact-workshop .email-actions a,.contact-workshop .email-actions button{align-items:center;min-height:44px;display:inline-flex}.contact-system{color:var(--blue);margin-top:48px}.contact-system-heading{flex-wrap:wrap;align-items:baseline;gap:12px 25px;display:flex}.contact-system-heading h3{color:var(--ink);font-size:22px}.contact-system-heading span{color:var(--muted);font-size:13px}.contact-orbit-stage{aspect-ratio:900/520;touch-action:pan-y pinch-zoom;cursor:grab;position:relative;overflow:hidden}.contact-orbit-stage.is-editing{touch-action:none}.contact-orbit-stage svg{width:100%;height:100%;display:block}.contact-construction{opacity:.18}.contact-orbit-ink{opacity:.45}.contact-orbit-stage.is-visible .contact-orbit-ink path{animation:1.8s ease-out both contact-orbit-draw}.contact-orbit-stage:not(.is-visible) .contact-orbit-ink path{stroke-dasharray:1;stroke-dashoffset:1px}.contact-sun text{fill:var(--blue);paint-order:stroke;stroke:var(--paper);stroke-width:4px;font:600 15px monospace}.orbit-contact{min-width:64px;min-height:58px;color:var(--blue);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:flex;position:absolute;transform:translate(-50%,-35%)}.orbit-contact b{background:var(--paper);width:30px;height:30px;box-shadow:0 0 16px color-mix(in srgb,var(--blue) 12%,transparent);border-radius:50%;place-items:center;font:600 14px monospace;display:grid}.orbit-contact span{background:var(--paper);border:1px solid var(--line);white-space:nowrap;padding:4px 7px;font-size:12px}.orbit-contact:is(:hover,:focus-visible) span{border-color:var(--blue)}.orbit-contact:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:8px}.contact-orbit-controls{flex-wrap:wrap;gap:8px;display:flex}.contact-orbit-controls button{border:1px solid var(--line);background:var(--paper);min-width:44px;min-height:44px;color:var(--ink);padding:9px 13px;font-size:12px}.contact-orbit-controls button[aria-pressed=true]{background:var(--blue);color:var(--paper)}.contact-orbit-controls button:disabled{opacity:.4}.contact-workshop .contact-system-help{max-width:none;margin-top:14px;font-size:12px;line-height:1.6}@keyframes contact-orbit-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@media (width<=600px){.contact-orbit-stage{aspect-ratio:1/1.15}.contact-orbit-stage svg{position:absolute;inset:0}.orbit-contact span{padding:4px;font-size:10px}.orbit-contact{min-width:55px}.contact-system-heading span{line-height:1.6}.contact-workshop .contact-inner{gap:25px}}@media (prefers-reduced-motion:reduce){.contact-orbit-stage .contact-orbit-ink path{stroke-dashoffset:0!important;animation:none!important}}@media (width<=600px){.contact-orbit-stage{aspect-ratio:900/800}}.contact.contact-workshop p{color:var(--muted)}.contact-orbit-stage.is-visible .contact-wire-planet,.contact-orbit-stage.is-visible .contact-sun{animation:1.2s ease-out both contact-body-appear}@keyframes contact-body-appear{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.contact-orbit-stage .contact-wire-planet,.contact-orbit-stage .contact-sun{animation:none!important}}.contact-orbit-stage>svg{width:100%;height:100%;position:absolute;inset:0}.orbit-contact{isolation:isolate;min-width:44px;min-height:44px;display:block;transform:translate(-50%,-50%)}.orbit-contact b.contact-planet-body{background:radial-gradient(circle at 28% 22%,#f8fbff 0%,#d4e0f6 22%,#8aa5d8 48%,#43659c 76%,#203857 100%);border:1px solid #8ca5d0;place-items:center;width:100%;height:100%;display:grid;position:absolute;inset:0;overflow:visible;box-shadow:inset -5px -6px 10px #10264060,inset 2px 2px 5px #ffffffc0,3px 7px 12px #142b4826,0 0 0 4px #688cc10c}.orbit-contact b.planet-1{background:radial-gradient(circle at 28% 22%,#fff,#cdd8e4 25%,#758aa3 55%,#25384e 90%)}.orbit-contact b.planet-2{background:radial-gradient(circle at 28% 22%,#f3ffff,#b5dfea 25%,#5ba0b7 55%,#1c4b6b 90%)}.orbit-contact b.planet-4{background:radial-gradient(circle at 28% 22%,#fff,#d7d2f0 25%,#9892ce 55%,#48416f 90%)}.orbit-contact b.planet-3:after{content:"";pointer-events:none;border:3px double #7b98c3;border-radius:50%;position:absolute;inset:35% -22%;transform:rotate(-25deg);box-shadow:0 2px 3px #13284e26}.orbit-contact .contact-planet-body>svg{color:#152f58;filter:drop-shadow(0 1px 1px #ffffffb0);z-index:2;width:48%;height:48%;position:relative;inset:auto}.planet-latitude,.planet-meridian{pointer-events:none;border:1px solid #eef6ff60;border-radius:50%;position:absolute;inset:30% 1%;transform:rotate(-20deg)}.planet-meridian{inset:1% 30%}.orbit-contact>span{border-radius:3px;font-size:12px;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 3px 8px #142b4809}.orbit-contact:is(:hover,:focus-visible) b{box-shadow:inset -5px -6px 10px #10264060,inset 2px 2px 5px #ffffffc0,0 0 0 5px color-mix(in srgb,var(--blue) 12%,transparent),3px 7px 15px #142b4833}@media (width<=600px){.orbit-contact>span{font-size:10px}}@font-face{font-family:Workshop;src:url(/fonts/Play-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Workshop;src:url(/fonts/Play-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--paper:#f4f2ea;--ink:#26303a;--muted:#677079;--line:#cccfc9;--blue:#2752cb;--pale:#e8edf4;--drawing-fill:#edf1f8;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Workshop,Arial,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{min-width:320px;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.4}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:5px}::selection{background:#d4def6}p{margin:0;line-height:1.75}h1,h2,h3{letter-spacing:-.055em;margin:0;font-weight:400}h1{font-size:clamp(42px,4.9vw,74px);line-height:1.08}h2{font-size:clamp(30px,3.2vw,46px);line-height:1.14}h3{font-size:27px;line-height:1.25}img{max-width:100%;display:block}.wrap{max-width:1320px;margin-inline:auto;padding-inline:48px}.arrow{flex-shrink:0;width:24px;height:24px}.multiline{white-space:pre-line}.section-label{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;margin-bottom:25px;font-size:12px;display:flex}.cross{font-family:monospace;font-size:21px;font-weight:400;line-height:1}.header{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f4f2eaf5;justify-content:space-between;align-items:center;gap:24px;height:96px;margin:0 auto;padding:0 max(40px,50vw - 612px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:center;gap:17px;font-size:18px;display:flex}.brand-mark{letter-spacing:-.1em;border-right:1px solid var(--line);padding-right:19px;font-size:31px;font-weight:700}.brand-mark span{color:var(--blue);font-weight:400}.brand small{color:var(--muted);letter-spacing:.045em;margin-top:6px;font-size:10px;display:block}.nav{gap:30px;font-size:13px;display:flex}.nav a{padding:12px 0;position:relative}.nav a:after{content:"";background:var(--blue);height:1px;transition:right .25s;position:absolute;bottom:5px;left:0;right:100%}.nav a:hover:after{right:0}.header-controls{align-items:center;gap:12px;display:flex}.header select{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:0;padding:9px;font-size:12px}.menu-button{background:0 0;border:0;font-size:24px;display:none}.hero{grid-template-columns:1.04fr 1fr;align-items:center;gap:46px;padding-block:76px 62px;display:grid}.hero-copy{padding:12px 0}.hero h1 em{color:var(--blue);font-style:normal}.hero-intro{color:#5e6871;max-width:440px;margin-top:29px;font-size:17px}.hero-actions{align-items:center;gap:27px;margin-top:35px;display:flex}.hero-actions .MuiButton-root{border:1px solid var(--blue);padding:14px 21px;font-size:13px}.text-link{align-items:center;gap:15px;font-size:13px;display:flex}.text-link:hover{color:var(--blue)}.hero-signature{align-items:center;gap:24px;margin-top:64px;display:flex}.signature{letter-spacing:-1.2px;font-family:Georgia,serif;font-size:28px;font-style:italic;transform:rotate(-6deg)}.hero-signature>span:last-child{border-left:1px solid var(--line);color:var(--muted);letter-spacing:.04em;padding-left:24px;font-size:10px}.drawing-board{color:var(--blue);box-shadow:6px 6px 0 var(--paper), 7px 7px 0 #cbd0d8;background:#eef0f0;border:1px solid #bdc7da;position:relative}.board-heading{letter-spacing:.06em;border-bottom:1px solid #c7d0df;justify-content:space-between;align-items:center;padding:14px 17px;font:10px monospace;display:flex}.workshop-drawing{width:100%;height:auto;margin-top:-6px;display:block}.sheet-layer{transform-origin:50%;transition:opacity .4s,transform .4s}.drawing-board:hover .sheet-layer:first-of-type{transform:translateY(3px)}.layer-controls{margin:-7px 17px 0;display:flex;position:relative}.layer-controls button{color:#667890;background:0 0;border:1px solid #c7d0df;flex:1;justify-content:center;align-items:center;gap:9px;padding:10px 4px;font-size:11px;display:flex}.layer-controls button+button{border-left:0}.layer-controls button[aria-pressed=true]{color:var(--blue);background:#e1e8f8}.layer-controls span{opacity:.6;font:9px monospace}.layer-note{color:#5f6d81;min-height:57px;padding:13px 18px 15px;font-size:11px;line-height:1.6}.about{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1.65fr 1fr;align-items:center;gap:42px;padding-block:45px 48px;display:grid}.about-person{flex-direction:column;gap:17px;display:flex}.portrait{outline:1px solid var(--line);outline-offset:5px;background:#e2e5e3;place-items:center;width:86px;height:86px;display:grid;position:relative}.portrait img{object-fit:cover;filter:grayscale();width:100%;height:100%}.portrait>span:first-child{color:var(--blue);font-size:31px}.portrait-arrow{background:var(--blue);color:#fff;padding:4px 7px;font-size:13px;position:absolute;bottom:-8px;right:-8px}.about-person strong{font-size:19px;font-weight:400;display:block}.about-person div>span{color:var(--muted);margin-top:7px;font-size:11px;display:block}.about-person div>a{color:var(--blue);margin-top:11px;font-size:11px;display:inline-block}.about-text .section-label{margin-bottom:13px}.about-text h2{font-size:31px}.about-text p{color:var(--muted);max-width:475px;margin-top:15px;font-size:13px}.experience{border-left:1px solid var(--line);gap:24px;padding-left:27px;display:grid}.experience>div{letter-spacing:-.03em;align-items:center;gap:17px;font-size:21px;display:flex}.experience small{color:var(--muted);letter-spacing:0;margin-top:5px;font-size:11px;display:block}.experience-line{color:var(--blue);width:25px;font-size:24px}.work{padding-block:94px 82px}.section-heading{justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:36px;display:flex}.section-heading>p{max-width:340px;color:var(--muted);padding-bottom:3px;font-size:13px}.section-heading .section-label{margin-bottom:20px}.filter-row{border-block:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:33px;padding-block:12px;display:flex}.filters{gap:6px;display:flex}.filters button{color:var(--muted);background:0 0;border:0;padding:9px 14px;font-size:12px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.filter-count{color:var(--muted);font-size:11px}.active-filter{color:var(--blue);background:#e6ebf8;border:1px solid #a8b9e0;margin-bottom:24px;padding:9px 14px;display:block}.active-filter span{padding-left:10px;font-size:10px}.project-grid{grid-template-columns:1fr 1fr;gap:44px 30px;display:grid}.project-art{color:#506c9b;--drawing-fill:#e8edf4;background:#e8edf4;border:1px solid #c3ccda;display:block;position:relative;overflow:hidden}.card-data .project-art{--drawing-fill:#e7ebe4;color:#58705d;background:#e7ebe4;border-color:#c3cec2}.card-web .project-art,.card-automation .project-art{--drawing-fill:#eee8df;color:#8b7356;background:#eee8df;border-color:#d4cbbd}.card-systems .project-art{--drawing-fill:#e4eae9;color:#557c7e;background:#e4eae9}.art-label{letter-spacing:.05em;justify-content:space-between;padding:16px 20px 0;font:9px monospace;display:flex}.project-drawing{width:100%;height:auto;display:block}.project-card .project-drawing{padding:10px 18px 22px;transition:transform .4s}.project-card:hover .project-drawing{transform:translateY(-4px)}.art-open{background:var(--paper);border:1px solid;place-items:center;width:34px;height:34px;transition:background .2s;display:grid;position:absolute;bottom:16px;right:16px}.art-open .arrow{width:19px}.project-card:hover .art-open{background:#dbe5f7}.project-info{padding:20px 2px 0}.project-kind{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.project-info h3{margin-top:9px}.project-info h3 a{justify-content:space-between;gap:20px;display:flex}.project-info h3 a span{color:var(--blue);font-size:22px}.project-info h3 a:hover{color:var(--blue)}.project-info p{color:var(--muted);max-width:470px;min-height:42px;margin-top:11px;font-size:13px;line-height:1.6}.stack-tags{flex-wrap:wrap;gap:5px 15px;margin-top:17px;display:flex}.stack-tags span{color:#5d6570;font:10px monospace}.stack-tags span+span:before{content:"·";color:#9c9f9f;margin-right:15px}.show-more.MuiButton-root{border-color:var(--line);color:var(--ink);min-width:230px;margin:41px auto 0;padding:11px 25px;font-size:12px;display:flex}.empty{text-align:center;padding:40px}.empty button{color:var(--blue);background:0 0;border:0;margin-top:16px}.tool-section{border-block:1px solid var(--line);background:#eaece7;padding:75px 0 80px}.tool-layout{grid-template-columns:330px 1fr;gap:55px;display:grid}.tool-tabs{flex-direction:column;display:flex}.tool-tabs button{text-align:left;background:0 0;border:0;border-bottom:1px solid #c8cec6;align-items:center;gap:19px;padding:21px 17px;font-size:16px;display:flex}.tool-tabs button>span{color:#7e8a7e;min-width:28px;font-family:monospace;font-size:19px}.tool-tabs button .arrow{width:18px;margin-left:auto}.tool-tabs button[aria-selected=true]{color:var(--blue);background:#f4f5ef;border:1px solid #b5bfd3}.tool-panel{padding:19px 0}.tool-panel>p{color:var(--muted);min-height:49px;font-size:14px}.tool-panel>small{color:var(--muted);margin-top:22px;font-size:11px;display:block}.tool-network{align-items:center;gap:32px;min-height:230px;display:flex}.network-core{background:var(--blue);color:#fff;text-align:center;flex-shrink:0;width:155px;padding:24px 22px;font-size:14px;position:relative}.network-core:after{content:"";background:#9daec7;width:32px;height:1px;position:absolute;top:50%;right:-32px}.network-branches{border-left:1px solid #9daec7;flex:1;gap:9px;padding:5px 0 5px 30px;display:grid}.tool-node{background:#f5f6f0;border:1px solid #bfc9ce;display:flex;position:relative}.tool-node:before{content:"";background:#9daec7;width:30px;height:1px;position:absolute;top:50%;left:-31px}.tool-node>a{flex:1;justify-content:space-between;gap:10px;padding:12px 14px;font:12px monospace;display:flex}.tool-node>a:hover{color:var(--blue)}.tool-node>a>span{opacity:.5}.tool-node>button{color:var(--blue);background:0 0;border:0;border-left:1px solid #cbd2d1;padding:0 10px}.tool-node>button:hover{background:#dfe7f6}.tool-node .arrow{width:17px}.events{grid-template-columns:1fr 1fr;gap:90px;padding-block:80px;display:grid}.events h2{max-width:390px;font-size:29px;line-height:1.3}.event-list>a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:19px 0;font-size:18px;display:flex}.event-list>a:first-child{padding-top:0}.event-list>a:hover{color:var(--blue)}.event-list small{color:var(--muted);margin-top:7px;font-size:11px;display:block}.contact{background:var(--blue);color:#f5f4ec;padding-block:74px}.contact-inner{grid-template-columns:1.05fr 1fr;align-items:center;gap:74px;display:grid}.contact .section-label{color:#b9c9f5}.contact h2{font-size:43px}.contact p{color:#d1dbf6;max-width:350px;margin-top:23px;font-size:13px}.email{letter-spacing:-.04em;border-bottom:1px solid #9eafe16b;justify-content:space-between;gap:16px;padding-bottom:18px;font-size:clamp(20px,2.4vw,34px);display:flex}.email-actions{justify-content:space-between;gap:12px;margin-top:16px;font-size:11px;display:flex}.email-actions button,.socials button{color:inherit;background:0 0;border:0;padding:0}.email-actions button:hover,.socials a:hover,.socials button:hover{text-decoration:underline}.socials{flex-wrap:wrap;gap:25px;margin-top:47px;font-size:12px;display:flex}.footer{color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding-block:25px;font-size:10px;display:flex}.footer button{background:0 0;border:0;font-size:11px}.skip{background:var(--ink);color:#fff;z-index:100;padding:12px 20px;position:fixed;top:-60px;left:20px}.skip:focus{top:12px}.case{padding-top:40px}.back-link{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:inline-flex}.back-link:hover{color:var(--blue)}.back-link .arrow{width:18px}.case-title{max-width:850px;padding:65px 0 42px}.case-title h1{font-size:clamp(40px,5vw,72px)}.case-title>p{max-width:650px;color:var(--muted);margin-top:24px;font-size:19px}.case-actions{flex-wrap:wrap;align-items:center;gap:25px;margin-top:25px;font-size:12px;display:flex}.case-actions>a{color:var(--blue)}.pending-link{color:var(--muted);border:1px dashed var(--line);padding:11px 14px;font-size:11px}.case-hero-art{color:#46689c;--drawing-fill:#e8edf4;background:#e8edf4;border:1px solid #becadb;padding:14px;position:relative}.case-hero-art .project-drawing{max-width:850px;margin:auto}.case-hero-art>span{color:#6a7b95;border-top:1px solid #c4cfdd;padding:14px 20px;font:10px monospace;display:block}.case-layout{grid-template-columns:280px 1fr;gap:90px;margin-top:70px;display:grid}.case-spec{align-self:start;position:sticky;top:125px}.case-tools{flex-direction:column;gap:13px;font:12px monospace;display:flex}.case-tools a{color:var(--blue);width:fit-content}.case-tools a:hover{text-decoration:underline}.case-spec small{color:var(--muted);max-width:220px;margin-top:25px;font-size:11px;line-height:1.6;display:block}.case-story>section{margin-bottom:40px}.case-story h2{margin-bottom:17px;font-size:31px}.case-story p{color:#5b6670;font-size:15px}.feature-row{border-top:1px solid var(--line);gap:18px;padding:15px 0;display:flex}.feature-row>span{color:var(--blue);font-size:22px}.case-gallery{border-top:1px solid var(--line);margin-top:30px;padding-top:50px}.case-gallery .section-heading>p{max-width:430px;font-size:12px}.gallery-art{color:#4e6b95;--drawing-fill:#e8edf4;touch-action:pan-y;background:#e8edf4;border:1px solid #c2ccdb}.gallery-open{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:25px;display:block;position:relative}.gallery-open .project-drawing{max-width:850px;margin:auto}.gallery-open>span{font-size:26px;position:absolute;bottom:25px;right:25px}.gallery-controls{justify-content:space-between;align-items:center;padding:13px 0;display:flex}.gallery-dots{gap:12px;display:flex}.gallery-dots button{background:0 0;border:1px solid #8896ac;border-radius:50%;width:8px;height:8px;padding:0}.gallery-dots button.active{background:var(--blue);border-color:var(--blue)}.viewer-controls{border-bottom:1px solid var(--line);justify-content:center;align-items:center;gap:10px;padding:12px;display:flex}.viewer-controls>button:not(.MuiButtonBase-root){border:1px solid var(--line);background:0 0;width:32px;height:32px}.viewer-controls>span{text-align:center;min-width:40px;font:12px monospace}.viewer-content{color:#4e6b95;--drawing-fill:#e8edf4;background:#e8edf4;max-height:75svh}.real-screenshot{width:100%;height:auto}.next-project{border-top:1px solid var(--line);letter-spacing:-.03em;justify-content:space-between;align-items:center;margin-top:65px;padding:38px 0;font-size:30px;display:flex}.next-project small{color:var(--muted);letter-spacing:0;margin-bottom:13px;font-size:11px;display:block}.next-project:hover{color:var(--blue)}.not-found{padding-block:120px}.not-found a{color:var(--blue);margin-top:30px;display:inline-block}@media (hover:hover){.project-card:hover .diagram-signal{stroke-dashoffset:-30px;transition:stroke-dashoffset 1.5s}}@media (width>=1500px){.hero{gap:70px}.hero h1{font-size:74px}}@media (width<=1100px){.wrap,.header{padding-inline:30px}.hero{gap:28px;padding-block:55px}.hero h1{font-size:53px}.hero-actions{gap:19px}.hero-intro{font-size:15px}.hero-signature{gap:16px;margin-top:40px}.hero-signature>span:last-child{padding-left:16px;font-size:9px}.nav{gap:20px}.about{grid-template-columns:.8fr 1.6fr 1fr;gap:26px}.about-text h2{font-size:27px}.experience{padding-left:20px}.tool-layout{grid-template-columns:280px 1fr;gap:30px}.contact-inner{gap:40px}.case-layout{grid-template-columns:230px 1fr;gap:45px}}@media (width<=800px){.header{height:78px}.brand small{font-size:8px}.brand{gap:13px;font-size:16px}.brand-mark{padding-right:14px;font-size:28px}.nav{gap:16px;font-size:11px}.hero{grid-template-columns:1fr;gap:40px;padding-top:52px}.hero-copy{max-width:620px}.hero h1{font-size:66px}.hero-intro{max-width:490px}.hero-signature{margin-top:29px}.drawing-board{width:min(100%,560px);margin:auto}.hero .workshop-drawing{max-height:420px}.about{grid-template-columns:125px 1fr;gap:30px;padding-block:40px}.experience{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;justify-content:space-between;padding:25px 0 0;display:flex}.section-heading{align-items:start;gap:30px}.section-heading>p{max-width:280px}.work{padding-block:65px}.project-grid{gap:35px 23px}.project-info h3{font-size:23px}.art-label{padding:13px 13px 0;font-size:8px}.project-card .project-drawing{padding:8px 5px 15px}.tool-layout{grid-template-columns:1fr}.tool-tabs{grid-template-columns:1fr 1fr;display:grid}.tool-tabs button{padding:15px 10px;font-size:14px}.tool-panel{padding:0}.tool-panel>p{min-height:auto;margin-bottom:20px}.tool-network{max-width:600px}.events{gap:40px}.events h2{font-size:25px}.contact-inner{grid-template-columns:1fr;gap:40px}.contact h2{font-size:43px}.contact-links{max-width:650px}.socials{margin-top:30px}.case-title{padding-top:45px}.case-layout{grid-template-columns:1fr;gap:35px;margin-top:40px}.case-spec{position:static}.case-tools{flex-flow:wrap;gap:15px 23px}.case-spec small{max-width:none}.case-story>section{margin-bottom:30px}}@media (width<=600px){html{scroll-padding-top:90px}.wrap{padding-inline:22px}.header{gap:10px;height:75px;padding-inline:22px}.menu-button{display:block}.nav{background:var(--paper);border-bottom:1px solid var(--line);padding:15px 22px;display:none;position:absolute;top:75px;left:0;right:0;box-shadow:0 12px 15px #26303a0a}.nav.is-open{flex-direction:column;gap:0;font-size:16px;display:flex}.nav a{padding:15px 0}.brand small{font-size:9px}.header select{padding:8px 5px;font-size:11px}.hero{gap:35px;padding-top:44px;padding-bottom:38px}.hero h1{font-size:clamp(42px,9.8vw,59px)}.hero .section-label{margin-bottom:22px;font-size:10px}.hero-intro{max-width:420px;margin-top:23px;font-size:14px}.hero-actions{flex-wrap:wrap;gap:23px;margin-top:26px}.hero-actions .MuiButton-root{padding:12px 15px;font-size:12px}.text-link{font-size:12px}.hero-signature{margin-top:28px}.signature{font-size:25px}.board-heading{padding:12px;font-size:8px}.layer-controls{margin:0 12px}.layer-controls button{gap:5px;padding:10px 2px;font-size:10px}.layer-controls span{font-size:8px}.layer-note{min-height:63px;padding:12px;font-size:10px}.about{grid-template-columns:1fr;gap:25px;padding-block:34px}.about-person{flex-direction:row;align-items:center;gap:23px}.portrait{width:72px;height:72px}.about-text .section-label{margin-bottom:15px}.about-text h2{font-size:30px}.about-text p{font-size:13px}.experience{grid-column:auto;gap:10px}.experience>div{gap:8px;font-size:18px}.experience-line{display:none}.experience small{max-width:100px;font-size:9px;line-height:1.5}.section-heading{flex-direction:column;gap:20px;margin-bottom:25px}.section-heading>p{max-width:450px;font-size:13px}.section-heading .section-label{margin-bottom:18px}h2{font-size:34px}.work{padding-block:55px}.filter-row{align-items:start;gap:10px;padding-block:10px}.filters{flex-wrap:wrap;gap:0}.filters button{padding:9px 10px;font-size:11px}.filter-count{white-space:nowrap;padding-top:10px;font-size:9px}.project-grid{grid-template-columns:1fr;gap:35px}.project-info{padding-top:17px}.project-info h3{font-size:27px}.project-info p{min-height:0}.project-drawing{max-height:none}.project-card .project-drawing{padding:10px 12px 18px}.art-label{font-size:9px}.stack-tags{gap:5px 12px}.stack-tags span+span:before{margin-right:12px}.tool-section{padding-block:50px}.tool-tabs button{gap:9px;font-size:12px}.tool-tabs button>span{min-width:24px;font-size:16px}.tool-tabs button .arrow{display:none}.tool-network{gap:19px}.network-core{width:105px;padding:20px 10px;font-size:12px}.network-core:after{width:19px;right:-19px}.network-branches{gap:8px;padding-left:19px}.tool-node:before{width:19px;left:-20px}.tool-node>a{gap:5px;padding:11px 9px;font-size:10px}.tool-node>button{padding-inline:7px}.tool-panel>p{font-size:13px}.tool-panel>small{font-size:10px}.events{grid-template-columns:1fr;gap:35px;padding-block:50px}.events h2{font-size:28px}.event-list>a{font-size:17px}.contact{padding-block:49px}.contact h2{font-size:36px}.contact .section-label{margin-bottom:22px}.contact-inner{gap:34px}.email{letter-spacing:-.04em;font-size:clamp(23px,7vw,33px)}.email-actions{font-size:10px}.socials{gap:22px;font-size:11px;line-height:1.6}.footer{flex-wrap:wrap;gap:15px;padding-block:23px;font-size:9px}.footer>span:nth-child(2){display:none}.case{padding-top:25px}.case-title{padding-top:35px;padding-bottom:30px}.case-title h1{overflow-wrap:anywhere;font-size:40px}.case-title>p{font-size:16px;line-height:1.6}.case-hero-art{padding:4px}.case-hero-art>span{padding:12px;font-size:8px;line-height:1.6}.case-story h2{font-size:28px}.case-story p{font-size:14px}.case-gallery{padding-top:35px}.gallery-open{padding:7px}.gallery-open>span{font-size:20px;bottom:14px;right:14px}.next-project{gap:30px;margin-top:40px;padding-block:27px;font-size:24px}.viewer-controls{gap:6px;padding:8px}.viewer-controls .MuiButton-root{padding:6px;font-size:11px}.viewer-content.MuiDialogContent-root{padding:5px}.not-found{padding-block:70px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.header,.hero-actions,.filters,.show-more,.socials,.email-actions,.footer button,.gallery-controls{display:none!important}.wrap{padding:10px}.hero,.about,.case-layout{break-inside:avoid}.project-grid{display:block}.project-card{break-inside:avoid;margin-bottom:30px}.contact{color:#000;background:#fff}.contact p,.contact .section-label{color:#000}}.card-screenshot{aspect-ratio:16/10;object-fit:contain;object-position:center;background:#f1f1ec;border:1px solid #b7bec74d;width:calc(100% - 36px);height:auto;margin:17px 18px 22px;transition:transform .35s;display:block}.project-card:hover .card-screenshot{transform:translateY(-3px)}.case-cover{object-fit:contain;background:#e8edf4;width:100%;height:auto;max-height:690px}.gallery-art .real-screenshot{object-fit:contain;width:100%;height:auto;max-height:620px}.media-credit{width:fit-content;color:var(--muted);margin:0 0 20px;font-size:11px;display:block}.media-credit:hover{color:var(--blue)}.viewer-content .real-screenshot{height:auto;max-height:none}.art-open{z-index:1}.project-art{aspect-ratio:1.6;flex-direction:column;display:flex}.project-art>.art-label{flex-shrink:0}.project-art>.project-drawing{flex:1;height:0;min-height:0}.project-art>.card-screenshot{aspect-ratio:auto;flex:1;height:0;min-height:0}.drawing-board{isolation:isolate;position:relative}.drawing-board:after,.project-art:after{content:"";pointer-events:none;background:radial-gradient(180px circle at var(--pointer-x,50%) var(--pointer-y,50%), #2752cb0b, transparent);opacity:0;z-index:2;transition:opacity .35s;position:absolute;inset:0}.drawing-board:hover:after,.project-art:hover:after{opacity:1}.bench-tabs{border-bottom:1px solid var(--line);display:flex}.bench-tabs button{color:var(--muted);text-align:left;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:17px 16px;font-size:12px}.bench-tabs button span{float:right;opacity:.5;font:9px monospace}.bench-tabs button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue);background:#2752cb06}.bench-view{animation:.5s both sheet-arrival}.bench-view .workshop-drawing{width:100%;height:auto;display:block}.sheet-layer{transition:opacity .5s,transform .65s cubic-bezier(.2,.7,.2,1)}.sheet-layer:hover{transform:translateY(-7px)}.draft-model{position:relative}.model-canvas{cursor:grab;touch-action:none;width:100%;color:var(--blue);display:block}.model-canvas:active{cursor:grabbing}.mini-switch{flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:15px;left:15px;right:15px}.mini-switch button,.circuit-caption button,.tool-advance{background:var(--paper);border:1px solid var(--line);padding:8px 10px;font-size:11px}.mini-switch button[aria-pressed=true]{color:var(--blue);border-color:var(--blue)}.mini-switch button:last-child{margin-left:auto}.bench-hint{color:var(--muted);text-align:center;padding:0 18px 18px;font-size:11px}.circuit{color:var(--blue);position:relative}.circuit>svg{width:100%;display:block}.terminal-layer{aspect-ratio:640/560;pointer-events:none;position:absolute;inset:0 0 auto}.terminal-layer button{background:var(--paper);width:40px;height:40px;color:var(--blue);pointer-events:auto;border:1px solid;border-radius:50%;transition:background .3s,box-shadow .3s;position:absolute;transform:translate(-50%,-50%)}.terminal-layer button[aria-pressed=true]{background:var(--blue);color:var(--paper);box-shadow:0 0 0 6px #2752cb12}.circuit-caption{justify-content:space-between;align-items:center;gap:18px;padding:0 18px 18px;display:flex}.circuit-caption p{color:var(--muted);max-width:310px;font-size:11px}.circuit-caption button{flex-shrink:0}.circuit-wire{stroke-dasharray:500;animation:.65s both wire-arrival}.circuit-check{opacity:.12;transition:opacity .4s}.is-connected .circuit-check{opacity:1}.is-connected>svg{animation:1.2s connected}.paper-switch{color:var(--ink);background:0 0;border:0;padding:5px;font-size:24px}.author-badge{position:relative}.badge-hook{color:var(--ink);background:0 0;border:0;align-items:center;padding:5px;display:flex}.badge-hook span{border:1px solid var(--line);transform-origin:top;padding:7px 5px;font:9px monospace;animation:5s ease-in-out infinite badge-rest;transform:rotate(6deg)}.badge-rig{pointer-events:none;z-index:10;width:280px;height:420px;position:absolute;top:28px;left:50%;transform:translate(-50%)}.badge-rope{width:280px;height:360px;position:absolute;top:0;left:0;overflow:visible}.hanging-card{background:var(--paper);width:200px;color:var(--ink);border:1px solid var(--line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transform-origin:50% 0;pointer-events:auto;border-radius:5px;padding:22px 18px 16px;position:absolute;top:98px;left:40px;box-shadow:0 14px 30px #18233420}.hanging-card:active{cursor:grabbing}.badge-slot{border:1px solid var(--line);border-radius:4px;width:26px;height:4px;position:absolute;top:8px;left:calc(50% - 13px)}.hanging-card strong{font-size:21px;display:block}.hanging-card small{color:var(--blue);margin:8px 0 12px;font-size:9px;display:block}.hanging-card p{font-size:10px;line-height:1.6}.hanging-card a{color:var(--blue);margin-top:14px;font-size:12px;display:block}.hanging-card button{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;width:100%;margin-top:12px;padding:12px 0 0;font-size:10px}.tool-advance{color:var(--blue);align-items:center;gap:24px;margin-bottom:20px;display:flex}.tool-advance span{font-size:20px;transition:transform .6s}.tool-advance:hover span{transform:rotate(180deg)}.tool-network{animation:.5s both sheet-arrival}.network-core{position:relative}.network-core:before{content:"";border:1px dashed var(--blue);opacity:.25;pointer-events:none;position:absolute;inset:-7px}.tool-node{transition:transform .25s,box-shadow .25s}.tool-node:hover,.tool-node:focus-within{box-shadow:-3px 0 var(--blue);transform:translate(4px)}.project-card{transition:transform .35s}.project-info h3 a,.event-list>a,.socials a,.case-tools a{transition:color .25s,transform .25s}.project-info h3 a span{transition:transform .3s;display:inline-block}.rb-text-word{transition:color .25s,text-shadow .25s}.rb-text-word:hover{color:var(--blue);text-shadow:2px 2px #2752cb15}.hero-intro,.about-text p,.case-story p{transition:color .4s}.hero-intro:hover,.about-text p:hover,.case-story p:hover{color:var(--blue)}.signature{position:relative}.signature:after{content:"";background:var(--blue);transform-origin:0;height:1px;transition:transform .6s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.signature:hover:after{transform:scaleX(1)}.section-label .cross{transition:transform .5s;display:inline-block}section:hover>.section-label .cross,.section-heading:hover .cross{transform:rotate(90deg)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.project-card:hover{transform:translateY(-5px)}.project-card:hover .project-info h3 a span{transform:translate(3px,-3px)}.project-art:hover{cursor:crosshair}.event-list>a:hover{transform:translate(5px)}.drawing-guides{transform-origin:320px 284px;animation:90s linear infinite drafting-orbit}.drawing-board:hover .drawing-guides{animation-play-state:paused}}@keyframes drafting-orbit{to{transform:rotate(360deg)}}@keyframes sheet-arrival{0%{opacity:.5;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes wire-arrival{0%{stroke-dashoffset:500px}to{stroke-dashoffset:0}}@keyframes connected{50%{filter:drop-shadow(0 0 8px #2752cb55)}}@keyframes badge-rest{0%,to{transform:rotate(6deg)}50%{transform:rotate(-5deg)}}:root[data-paper=blue]{--paper:#172c47;--ink:#edf0ec;--muted:#a9bad0;--line:#435970;--blue:#a6c9ff;--pale:#213a56;--drawing-fill:#213a56;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-paper=blue] .header,[data-paper=blue] .tool-section,[data-paper=blue] .drawing-board,[data-paper=blue] .project-art,[data-paper=blue] .tool-node,[data-paper=blue] .network-core{background-color:var(--paper);color:var(--ink)}[data-paper=blue] .workshop-drawing .sheet-layer>path[fill]:not([fill=none]){fill:var(--pale)}[data-paper=blue] .contact{background:#101f32}[data-paper=blue] .card-screenshot{background:var(--pale)}[data-paper=blue] .project-kind,[data-paper=blue] .stack-tags,[data-paper=blue] .art-label,[data-paper=blue] .board-heading,[data-paper=blue] .project-info p,[data-paper=blue] .hero-intro,[data-paper=blue] .case-story p,[data-paper=blue] .layer-note,[data-paper=blue] .layer-controls button,[data-paper=blue] .stack-tags span{color:var(--muted)}[data-paper=blue] .layer-controls button[aria-pressed=true],[data-paper=blue] .tool-tabs button[aria-selected=true],[data-paper=blue] .active-filter,[data-paper=blue] .tool-node>button:hover,[data-paper=blue] .project-card:hover .art-open{background:var(--pale);color:var(--blue)}[data-paper=blue] .project-art{--drawing-fill:#213a56}.model-canvas:focus{outline:none}.model-canvas:focus-visible{outline:2px solid var(--blue);outline-offset:-4px}@media (width<=600px){.header-controls{gap:4px}.header .brand{gap:8px;font-size:14px}.header .brand-mark{display:none}.header .brand small{font-size:8px}.badge-hook{padding:0}.badge-hook span{display:none}.bench-tabs button{padding:14px 12px;font-size:11px}.mini-switch{gap:4px;top:9px;left:9px;right:9px}.mini-switch button{padding:7px;font-size:9px}.bench-hint{font-size:10px}.terminal-layer button{width:34px;height:34px;font-size:12px}.circuit-caption{gap:10px;padding:0 12px 16px}.circuit-caption p{font-size:10px}}@media (prefers-reduced-motion:reduce){.bench-view,.tool-network,.drawing-guides,.badge-hook span,.circuit-wire,.is-connected>svg{animation:none}.project-card,.tool-node,.sheet-layer,.rb-text-word,.signature:after{transition:none}.project-card:hover,.tool-node:hover,.sheet-layer:hover{transform:none}}@media print{.author-badge,.paper-switch,.bench-tabs,.tool-advance{display:none}}.model-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:24px 12px 14px;display:grid}.model-pair .draft-model+.draft-model{border-left:1px solid var(--line)}.model-heading{color:var(--muted);justify-content:space-between;align-items:center;padding:0 16px 10px;font-size:12px;display:flex}.model-heading button{border:1px solid var(--line);color:var(--blue);background:0 0;width:32px;height:32px;font-size:20px}.model-pair .model-canvas{min-width:0}@media (width<=600px){.model-pair{padding:18px 4px 12px}.model-heading{padding:0 10px 8px;font-size:11px}}.dimensional-plot{--plot-light:#fff;--plot-tint:#84a9e0}[data-paper=blue] .dimensional-plot{--plot-light:#d9ecff;--plot-tint:#6193cf}.plot-axis-label{fill:var(--muted);font:italic 12px Georgia,serif}.plot-stroke{stroke-dasharray:1;stroke-dashoffset:0;animation:1.6s cubic-bezier(.3,.1,.2,1) both plot-trace;animation-delay:var(--draw-delay,0s)}.plot-surface{animation:1.8s both plot-wash}@keyframes plot-trace{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes plot-wash{0%,25%{fill-opacity:0;stroke-opacity:0}to{fill-opacity:1;stroke-opacity:1}}@media (prefers-reduced-motion:reduce){.plot-stroke,.plot-surface{animation:none}}.profile-card-stage{perspective:900px;max-width:490px;margin-top:30px}.profile-card{border:1px solid var(--line);background:var(--paper);box-shadow:5px 6px 0 var(--pale);transform:translate(var(--profile-x,0px),var(--profile-y,0px)) rotateY(var(--profile-tilt,0deg));cursor:grab;touch-action:pan-y;position:relative}.profile-card:active{cursor:grabbing}.profile-card-face{flex-direction:column;min-height:270px;padding:23px;animation:.45s profile-turn;display:flex}.profile-identity{align-items:center;gap:22px;display:flex}.profile-avatar{background:var(--pale);border:1px solid var(--line);flex-shrink:0;width:96px;height:96px;display:block;position:relative}.profile-avatar img{object-fit:cover;filter:saturate(.45);width:100%;height:100%;transition:filter .3s}.profile-avatar:hover img{filter:saturate()}.profile-avatar>span:first-child{place-items:center;height:100%;display:grid}.profile-avatar .profile-avatar-arrow{background:var(--blue);color:var(--paper);padding:4px 7px;position:absolute;bottom:-1px;right:-1px}.profile-identity h1{letter-spacing:-.035em;font-size:29px}.profile-identity p{color:var(--muted);margin-top:7px;font-size:12px;line-height:1.5}.profile-github{color:var(--blue);margin-top:12px;font-size:11px;display:inline-block}.profile-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px;padding-top:16px;display:grid}.profile-stats strong{white-space:nowrap;font-size:17px;font-weight:400}.profile-stats span{color:var(--muted);margin-top:5px;font-size:9px;line-height:1.4;display:block}.profile-flip{width:100%;color:var(--blue);background:0 0;border:0;justify-content:space-between;margin-top:auto;padding:16px 0 0;font-size:11px;display:flex}.profile-flip>span{font-size:17px}.profile-card-controls{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:9px;display:flex}.profile-card-controls button{font-size:inherit;color:inherit;background:0 0;border:0;padding:4px 0}.profile-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.profile-card-top strong{font-size:22px;font-weight:400}.profile-card-top span,.profile-events>span{color:var(--muted);font-size:10px}.profile-education{margin-top:18px}.profile-education strong{font-size:13px;font-weight:400}.profile-education p,.profile-events p{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.6}.profile-events{margin-top:12px}@keyframes profile-turn{0%{opacity:.3;transform:rotateY(-12deg)}to{opacity:1;transform:rotateY(0)}}@media (width<=600px){.profile-card-face{min-height:265px;padding:18px}.profile-identity{gap:15px}.profile-avatar{width:76px;height:76px}.profile-identity h1{font-size:25px}.profile-stats{gap:8px}.profile-stats strong{font-size:15px}.profile-stats span,.profile-card-controls{font-size:8px}}@media (prefers-reduced-motion:reduce){.profile-card-face{animation:none}}.hero .profile-identity h1{letter-spacing:-.035em;font-size:29px;line-height:1.14}.hero-copy>.profile-card-stage{margin-top:0}@media (width<=600px){.hero .profile-identity h1{font-size:25px}}.workshop-home{z-index:1;position:relative}.workshop-home .hero{grid-template-columns:minmax(0,.78fr) minmax(0,1.35fr);gap:38px;min-height:650px}.workshop-home .hero-name{overflow-wrap:anywhere;font-size:clamp(42px,4.8vw,70px);line-height:1.1}.hero-statement{max-width:460px;color:var(--muted);margin-top:27px;font-size:16px;line-height:1.85}.workshop-home .drawing-board{background-color:color-mix(in srgb,var(--paper) 92%,var(--blue));width:100%;max-width:none}.workshop-home .model-pair{padding:28px 5px 18px}.plot-redraw{transform-origin:320px 280px;animation:1.1s both model-appear}.model-function{stroke-dasharray:1;stroke-dashoffset:1px;animation:10s cubic-bezier(.4,0,.2,1) 1.7s infinite function-trace}.secondary-function,.model-function:nth-child(2){stroke-width:1.7px;opacity:.65;animation-delay:3s}@keyframes model-appear{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:none}}@keyframes function-trace{0%{stroke-dashoffset:1px;opacity:.15}32%,70%{stroke-dashoffset:0;opacity:1}95%,to{stroke-dashoffset:-1px;opacity:0}}.profile-about>.profile-card-stage{grid-row:span 2;width:100%;max-width:490px;margin-top:0}.profile-about .experience{border-left:0;border-top:1px solid var(--line);justify-content:space-between;gap:15px;padding:22px 0 0;display:flex}.profile-identity h2{letter-spacing:-.035em;font-size:29px;line-height:1.14}.workshop-backdrop{pointer-events:none;z-index:0;color:var(--blue);opacity:.11;position:fixed;inset:0;overflow:hidden}.backdrop-sketch{width:clamp(150px,21vw,320px);height:auto;position:absolute}.backdrop-sketch path{stroke-dasharray:1;animation:24s ease-in-out infinite background-sketch;animation-delay:var(--sketch-delay)}.sketch-web{top:3%;left:-85px;transform:rotate(-14deg)}.sketch-neural{top:5%;right:-70px;transform:rotate(10deg)}.sketch-math{top:65%;left:23%;transform:rotate(-8deg)}.sketch-book{bottom:-70px;right:-80px;transform:rotate(15deg)}.sketch-data{top:57%;left:-95px;transform:rotate(-12deg)}.sketch-model{top:-150px;right:26%;transform:rotate(12deg)}@keyframes background-sketch{0%,to{stroke-dashoffset:1px;opacity:0}25%,70%{stroke-dashoffset:0;opacity:1}90%{stroke-dashoffset:-1px;opacity:0}}@media (width<=1000px){.workshop-home .hero{grid-template-columns:1fr;gap:35px;min-height:auto}.workshop-home .hero-copy{max-width:680px}.hero-statement{max-width:620px}.workshop-home .drawing-board{max-width:760px}.profile-about{gap:26px}.profile-about .experience{flex-wrap:wrap;grid-column:2}}@media (width<=600px){.workshop-home .hero-name{font-size:clamp(40px,10vw,56px)}.hero-statement{margin-top:22px;font-size:14px}.workshop-home .hero{gap:34px}.workshop-home .model-pair{padding:18px 0 12px}.profile-about{grid-template-columns:1fr;gap:35px}.profile-about>.profile-card-stage{grid-row:auto}.profile-about .experience{flex-wrap:nowrap;grid-column:auto}.profile-identity h2{font-size:25px}.workshop-backdrop{opacity:.07}.sketch-math,.sketch-model{display:none}}@media (prefers-reduced-motion:reduce){.plot-redraw,.model-function,.backdrop-sketch path{animation:none}.model-function,.backdrop-sketch path{stroke-dashoffset:0}}@media print{.workshop-backdrop{display:none}}.workshop-home .drawing-board{box-shadow:none;background:0 0;border:0}.workshop-home .drawing-board:after{display:none}.workshop-home .model-pair .draft-model+.draft-model{border-left:0}.workshop-home .bench-tabs{border:0;justify-content:center;gap:25px}.workshop-home .bench-tabs button{color:var(--muted);background:0 0;border-bottom:1px solid #0000;flex:none;padding:9px 2px;font-size:11px;transition:color .25s,border-color .25s}.workshop-home .bench-tabs button span{display:none}.workshop-home .bench-tabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--line)}.workshop-home .bench-tabs button:hover{color:var(--blue)}.workshop-home .model-heading{font-size:10px}.workshop-home .model-heading button{color:var(--muted);background:0 0;border:0;font-size:18px}.workshop-home .model-heading button:hover{color:var(--blue)}.workshop-home .bench-hint{font-size:10px}.workshop-home .hero-name{letter-spacing:-.025em;overflow-wrap:normal;transform-origin:35% 65%;width:fit-content;max-width:100%;margin-bottom:8px;font-family:Gabriola,Bickham Script Pro,Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:clamp(66px,7.2vw,104px);font-weight:400;line-height:1.25;display:inline-block;position:relative;transform:rotate(-6deg)}.workshop-home .hero-name:after{content:"";border-bottom:2px solid var(--blue);transform-origin:0;pointer-events:none;border-radius:0 0 55% 35%;height:12px;transition:transform .65s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:10px;left:2%;right:-2%;transform:scaleX(0)}.workshop-home .hero-name:hover:after{transform:scaleX(1)}.workshop-home .hero-name .rb-text-word:hover{text-shadow:none}@media (width<=600px){.workshop-home .hero-name{font-size:clamp(64px,17vw,86px)}.workshop-home .bench-tabs{gap:24px}.workshop-home .hero-name:after{bottom:5px}}@media (prefers-reduced-motion:reduce){.workshop-home .hero-name:after{transition:none}}.animated-workshop-backdrop{opacity:.19}.backdrop-scene{width:clamp(210px,25vw,380px);position:absolute;overflow:visible}.scene-0{top:-20px;left:-65px;transform:rotate(-12deg)}.scene-1{top:6%;right:-60px;transform:rotate(10deg)}.scene-2{bottom:-75px;left:23%;transform:rotate(-8deg)}.scene-3{bottom:-60px;right:-45px;transform:rotate(12deg)}.scene-4{top:54%;left:-80px;transform:rotate(-10deg)}.scene-5{top:-185px;left:42%;transform:rotate(14deg)}.background-construction{animation:24s linear infinite construction-presence;animation-delay:var(--phase)}.background-construction path{stroke-dasharray:1;stroke-dashoffset:1px}.background-guides path{animation:24s ease-in-out infinite construct-guide;animation-delay:var(--phase)}.construction-line{animation:24s cubic-bezier(.35,.1,.35,1) infinite construct-line;animation-delay:calc(var(--phase) + var(--stroke-lag))}.construction-origin{opacity:.5;animation:3s ease-in-out infinite construction-pulse}@keyframes construction-presence{0%{opacity:0}5%,39%{opacity:1}48%,to{opacity:0}}@keyframes construct-guide{0%{stroke-dashoffset:1px}10%,40%{stroke-dashoffset:0}49%,to{stroke-dashoffset:-1px}}@keyframes construct-line{0%,5%{stroke-dashoffset:1px}27%,40%{stroke-dashoffset:0}49%,to{stroke-dashoffset:-1px}}@keyframes construction-pulse{50%{opacity:1}}.animated-workshop-backdrop[data-paused=true] *{animation-play-state:paused}@media (width<=600px){.animated-workshop-backdrop{opacity:.12}.backdrop-scene{width:210px}.scene-0{top:5%;left:-100px}.scene-1{top:25%;right:-110px}.scene-2{bottom:-35px;left:-95px}.scene-3{bottom:8%;right:-110px}.scene-4,.scene-5{display:none}}@media (prefers-reduced-motion:reduce){.background-construction,.background-construction path,.construction-origin{animation:none}.background-construction path{stroke-dashoffset:0}.background-construction:nth-child(2){display:none}}.animated-workshop-backdrop{opacity:.29;-webkit-mask-image:linear-gradient(90deg,#000 0% 15%,#0007 33%,#0006 58%,#000b 80%,#000 100%);mask-image:linear-gradient(90deg,#000 0% 15%,#0007 33%,#0006 58%,#000b 80%,#000 100%)}.backdrop-scene{translate:calc(var(--scene-x,0px) * var(--depth,1)) calc(var(--scene-y,0px) * var(--depth,1))}.scene-0{--depth:.8}.scene-1{--depth:-1}.scene-2{--depth:.55}.scene-3{--depth:-.65}.scene-4{--depth:1.1}.scene-5{--depth:-.45}.hero-copy,.about-text{isolation:isolate;position:relative}.hero-copy:before,.about-text:before{content:"";background:radial-gradient(ellipse at center,var(--paper) 42%,transparent 74%);z-index:-1;pointer-events:none;opacity:.85;position:absolute;inset:-24px}.profile-about>.collectible-stage{max-width:490px;padding:28px 0}.collectible-card{width:min(320px,100% - 32px);box-shadow:none;touch-action:none;transform:translate(var(--profile-x,0px),var(--profile-y,0px)) rotateX(var(--profile-pitch,0deg)) rotateY(var(--profile-tilt,0deg));background:0 0;border:0;margin:auto;transition:transform .18s ease-out}.collectible-card[data-dragging=true]{cursor:grabbing;transition:none}.collectible-face{border:1px solid var(--blue);background:var(--paper);min-height:570px;box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--line),7px 9px 0 var(--pale),0 14px 28px #172c4710;border-radius:18px 3px;gap:11px;padding:22px;position:relative;overflow:hidden}.collectible-face:before{content:"";border-radius:inherit;pointer-events:none;opacity:.45;background:radial-gradient(ellipse at var(--card-light-x,50%) var(--card-light-y,30%),color-mix(in srgb,var(--blue) 18%,transparent),transparent 65%),repeating-linear-gradient(135deg,transparent 0 18px,color-mix(in srgb,var(--blue) 4%,transparent) 19px,transparent 20px);position:absolute;inset:7px}.collectible-face>*{position:relative}.collectible-front{text-align:center;align-items:center}.card-rarity{letter-spacing:.09em;width:100%;color:var(--blue);justify-content:space-between;align-items:center;font:9px Workshop,Arial,sans-serif;display:flex}.card-monogram{font:italic 20px Georgia,serif}.collectible-front .profile-avatar{border:1px solid var(--blue);background:var(--pale);border-radius:15px 2px;width:146px;height:146px;margin:3px auto 0;padding:6px}.collectible-front .profile-avatar img{filter:saturate(.7);border-radius:9px 1px}.card-profession{color:var(--muted);letter-spacing:.12em;margin-top:4px;font-size:8px}.card-name{letter-spacing:-.04em;font-size:33px;line-height:1.1}.card-role{color:var(--muted);font-size:11px}.collectible-front .profile-stats{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;width:100%;margin:2px 0 0;padding:12px 0}.collectible-front .profile-stats>div+div{border-left:1px solid var(--line)}.collectible-front .profile-stats strong{color:var(--blue);font-size:27px}.collectible-front .profile-stats span{font-size:9px}.card-availability{color:var(--muted);align-items:center;gap:7px;padding:2px 0;font-size:10px;display:flex}.card-availability i{background:var(--blue);border-radius:50%;width:5px;height:5px}.collectible-front .profile-github{border:1px solid var(--line);background:var(--paper);justify-content:center;align-items:center;gap:9px;width:100%;margin:0;padding:10px;font-size:12px;display:flex}.collectible-face .profile-flip{border:1px solid var(--blue);background:var(--blue);color:var(--paper);align-items:center;margin-top:auto;padding:10px 12px;font-size:11px}.card-back-name{font-size:26px}.card-record{border-block:1px solid var(--line);margin:0;padding:12px 0}.card-record>div{justify-content:space-between;gap:15px;font-size:11px;line-height:1.8;display:flex}.card-record dt{color:var(--muted)}.card-record dd{color:var(--blue);margin:0}.collectible-back .profile-education{border-left:2px solid var(--blue);background:var(--pale);margin-top:0;padding:10px 12px}.collectible-back h4{color:var(--blue);margin:0 0 7px;font-size:10px;font-weight:400}.collectible-back .profile-education p{font-size:11px}.collectible-back .profile-education strong{margin-top:6px;font-size:11px;line-height:1.6;display:block}.collectible-back .profile-events{margin-top:0}.profile-events ul{color:var(--muted);margin:0;padding-left:16px;font-size:11px;line-height:1.8}.card-traits{color:var(--muted);font-size:11px;line-height:1.7}.collectible-stage .profile-card-controls{flex-wrap:wrap;justify-content:center;margin-top:26px;font-size:10px}.collectible-stage .profile-card-controls button{border:1px solid var(--line);padding:5px 8px}.profile-about{align-items:center}@media (width<=600px){.animated-workshop-backdrop{opacity:.17}.profile-about>.collectible-stage{padding:20px 0}.collectible-face{min-height:570px;padding:20px}.collectible-front .profile-stats strong{font-size:27px}.collectible-stage .profile-card-controls{font-size:9px}}@media (prefers-reduced-motion:reduce){.backdrop-scene{translate:none}.collectible-card{transition:none}}.profile-about{grid-template-columns:minmax(300px,.9fr) minmax(0,1.2fr);align-items:start;gap:20px 60px}.profile-about>.collectible-stage{align-self:center}.profile-about .about-text{padding-top:25px}.experience-studies{grid-column:2;gap:0;display:grid}.experience-study{border-top:1px solid var(--line);grid-template-columns:142px minmax(0,1fr);align-items:center;gap:20px;padding:21px 0;display:grid}.experience-study:last-child{border-bottom:1px solid var(--line)}.experience-picture{color:var(--blue);background:radial-gradient(ellipse,var(--pale),transparent 72%)}.experience-illustration{width:100%;height:auto;display:block}.experience-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.experience-heading h3{letter-spacing:-.02em;font-size:20px}.experience-heading h3:first-letter{text-transform:uppercase}.experience-heading>span{color:var(--blue);white-space:nowrap;font-size:22px}.experience-description p{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.7}.experience-study .field-floating{transform-box:fill-box;transform-origin:50%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.experience-study:hover .field-floating{transform:translateY(-4px)rotate(-4deg)}.experience-study .field-signal{stroke-dasharray:4 8;stroke-dashoffset:0}.experience-study:hover .field-signal{animation:2s linear infinite experience-signal}.experience-study:hover h3{color:var(--blue);transition:color .3s}@keyframes experience-signal{to{stroke-dashoffset:-48px}}@media (width<=1000px){.profile-about{grid-template-columns:minmax(270px,.9fr) minmax(0,1.2fr);gap:20px 30px}.experience-study{grid-template-columns:100px minmax(0,1fr);gap:15px}.experience-heading h3{font-size:17px}.experience-heading>span{font-size:20px}}@media (width<=700px){.profile-about{grid-template-columns:1fr;gap:25px}.profile-about>.collectible-stage{grid-row:auto;justify-self:center}.profile-about .about-text{padding-top:0}.experience-studies{grid-column:auto}.experience-study{grid-template-columns:110px minmax(0,1fr);padding:22px 0}}@media (width<=380px){.experience-study{grid-template-columns:84px minmax(0,1fr);gap:12px}.experience-description p{font-size:11px}}@media (prefers-reduced-motion:reduce){.experience-study .field-floating{transition:none}.experience-study:hover .field-floating{transform:none}.experience-study:hover .field-signal{animation:none}}
