@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Variable.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}:root{--paper:#ecd5a7;--ink:#281c0c;--switch-ink:var(--ink);--switch-knob:#f5d309;--switch-glow:transparent;--sheet:#f8edd6;--sheet-ink:#281c0c;--sheet-muted:#6b5a3e;--sheet-edge:#281c0c;--focus:#0c6091;--bar:#0c6091;--plate-yellow:#f5d309;--plate-blue:#0c6091;--plate-navy:#284479;--plate-ink:#221714;--plate-red:#e73c1b;--on-yellow:#281c0c;--on-blue:#fff9ea;--on-navy:#fff9ea;--on-ink:#fff9ea;--on-red:#fff9ea;--cta:#c13028;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-look=neon]{--paper:#0a031c;--switch-ink:#fcffa4;--switch-knob:#fcffa4;--switch-glow:#f98e09bf;--sheet:#140a32;--sheet-ink:#fbf3e4;--sheet-muted:#b8a8d8;--sheet-edge:#fcffa4;--focus:#fcffa4;--bar:#fb9b06;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior-y:none;background:var(--paper);height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Satoshi,system-ui,sans-serif;overflow:hidden}.stage{background:var(--paper);position:fixed;inset:0}.stage canvas{opacity:0;width:100%;height:100%;transition:opacity .4s;display:block}.stage[data-ready=true] canvas{opacity:1}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}body:has(.stage[data-fallback]){overflow:auto}:is(.page:has(.stage[data-fallback]) .stage,.page:has(.stage[data-fallback]) .rooms,.page:has(.stage[data-fallback]) .close){display:none}.page:has(.stage[data-fallback]) .sr-only{clip-path:none;white-space:normal;letter-spacing:-.02em;width:auto;max-width:720px;height:auto;margin:0 auto;padding:56px 24px 8px;font-size:clamp(2.5rem,9vw,5rem);font-weight:900;position:static}.page:has(.stage[data-fallback]) .leaf{clip-path:none;pointer-events:auto;visibility:visible;opacity:1;width:auto;max-width:720px;height:auto;margin:0 auto;transition:none;position:static;container-type:normal;transform:none!important}.page:has(.stage[data-fallback]) .sheet{visibility:visible;opacity:1;padding:24px;transition:none;position:static}.look-switch{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:4;min-height:44px;color:var(--switch-ink);letter-spacing:.01em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;text-shadow:0 0 10px var(--switch-glow);background:0 0;border:0;align-items:center;gap:12px;padding:10px 6px 10px 12px;font:600 14px/1 Satoshi,system-ui,sans-serif;transition:color .3s,text-shadow .3s;animation:.6s 2.4s both look-switch-in;display:inline-flex;position:fixed}.look-switch__track{width:48px;height:24px;box-shadow:0 0 0 0 var(--switch-glow), inset 0 0 0 0 var(--switch-glow);border:1.5px solid;transition:box-shadow .3s;position:relative}.look-switch__knob{background:var(--switch-knob);border:1.5px solid var(--ink);width:17px;height:17px;box-shadow:0 0 0 0 var(--switch-glow);transition:transform .35s cubic-bezier(.3,.7,.2,1),background-color .3s,border-color .3s,box-shadow .3s;position:absolute;top:2px;left:2px}.look-switch[aria-checked=true] .look-switch__knob{border-color:var(--switch-knob);box-shadow:0 0 12px 3px var(--switch-glow);transform:translate(24px)}.look-switch[aria-checked=true] .look-switch__track{box-shadow:0 0 10px 0 var(--switch-glow), inset 0 0 8px 0 var(--switch-glow)}.look-switch:hover .look-switch__track{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 16%, transparent)}.look-switch[aria-checked=true]:hover .look-switch__track{box-shadow:0 0 14px 1px var(--switch-glow), inset 0 0 8px 0 var(--switch-glow)}.look-switch:focus-visible{outline-offset:2px;outline:2px solid}.look-switch:active .look-switch__knob{width:19px}.page:has(.stage[data-fallback]) .look-switch{display:none}@keyframes look-switch-in{0%{opacity:0}}.rooms{z-index:2;pointer-events:none;position:fixed;inset:0}.tag{color:var(--sheet-ink);opacity:0;text-decoration:none;position:fixed;bottom:24px;left:24px}.tag:focus-visible{opacity:1;outline:none}.tag__text{border:1.5px solid var(--sheet-edge);background:var(--sheet);color:var(--sheet-ink);letter-spacing:.01em;white-space:nowrap;padding:8px 12px;font:700 14px/1 Satoshi,system-ui,sans-serif;display:block}.tag[data-hover=true] .tag__text,.tag[aria-current] .tag__text{background:var(--plate);color:var(--on-plate)}.tag:focus-visible .tag__text{outline:3px solid var(--focus);outline-offset:3px}.leaf{z-index:3;width:var(--page-w,480px);height:var(--page-h,640px);color:var(--leaf-ink);background:var(--leaf-bg,transparent);pointer-events:none;visibility:hidden;opacity:0;clip-path:inset(0 0 100%);transform-origin:0 0;transition:opacity .2s,clip-path .2s,visibility 0s linear .2s;position:fixed;top:0;left:0;container-type:size}.leaf[data-open=true]{visibility:visible;transition:opacity .2s,clip-path .2s,visibility}.leaf[data-open=true][data-ready=true]{opacity:1;pointer-events:auto;clip-path:inset(0);transition:opacity .4s,clip-path 1s cubic-bezier(.2,.7,.2,1),visibility}.leaf{--leaf-ink:#1f1a18;--leaf-muted:#5c4c34;--leaf-line:#1f1a18;--leaf-mark:var(--plate-blue);--leaf-link:var(--plate-red);--leaf-focus:#0c6091}.leaf[data-ink=light]{--leaf-ink:#fbf3e4;--leaf-muted:#eadcbc;--leaf-line:#fbf3e4;--leaf-mark:var(--plate-yellow);--leaf-link:var(--plate-yellow);--leaf-focus:#f5d309}html[data-look=neon] .leaf:before{content:"";z-index:-1;background:#0a031ce0;position:absolute;inset:5px}html[data-look=neon] .leaf{--leaf-ink:#fbf3e4;--leaf-muted:#b8a8d8;--leaf-line:#fcffa4;--leaf-mark:#fb9b06;--leaf-link:#fcffa4;--leaf-focus:#fcffa4;background:0 0}.sheet{overscroll-behavior-y:contain;scrollbar-color:var(--leaf-line) transparent;scrollbar-width:thin;visibility:hidden;opacity:0;padding:clamp(12px,4cqw,28px);font-size:clamp(.875rem,.65rem + .8cqw,1.1875rem);transition:opacity .2s,visibility 0s linear .2s;position:absolute;inset:0;overflow-y:auto}.sheet[data-open=true]{visibility:visible;opacity:1;transition:opacity .4s .1s,visibility}.sheet:focus{outline:none}@media (pointer:fine){@supports selector(::-webkit-scrollbar){.sheet{scrollbar-width:auto;scrollbar-color:auto}.sheet::-webkit-scrollbar{width:8px}.sheet::-webkit-scrollbar-track{background:color-mix(in srgb, var(--leaf-line) 14%, transparent)}.sheet::-webkit-scrollbar-thumb{background:var(--leaf-line);border-radius:4px}}}.sheet a:focus-visible{outline:3px solid var(--leaf-focus);outline-offset:3px}.close{top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));z-index:4;border:1.5px solid var(--sheet-edge);background:var(--sheet);width:44px;height:44px;color:var(--sheet-ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;visibility:hidden;opacity:0;place-items:center;padding:0;transition:opacity .2s,visibility 0s linear .2s,background-color .2s,color .2s;display:grid;position:fixed}.close[data-open=true]{visibility:visible;opacity:1;transition:opacity .4s .5s,visibility,background-color .2s,color .2s}.close svg{fill:none;stroke:currentColor;stroke-width:2px;width:16px;height:16px}.close:hover{background:var(--plate-yellow);color:#281c0c}.close:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.sheet__title{letter-spacing:-.02em;margin:0 0 .5em;font:900 clamp(1.75rem,9cqw,3.5rem)/1.02 Satoshi,system-ui,sans-serif}html[data-look=neon] .sheet__title{text-shadow:0 0 14px #f98e098c}.sheet__sub{margin:1.8em 0 .7em;font:800 1.125em/1.2 Satoshi,system-ui,sans-serif}.sheet p{max-width:60ch;margin:0 0 .85em;font-weight:450;line-height:1.55}.sheet .lead{font-size:1.25em;font-weight:600;line-height:1.4}.sheet a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--leaf-link);text-decoration-color:var(--leaf-link);text-underline-offset:4px;text-decoration-thickness:2px}.sheet a:hover{text-decoration-color:currentColor}.facts{margin:1.4em 0 0}.facts>div{border-top:1.5px solid color-mix(in srgb, var(--leaf-line) 28%, transparent);grid-template-columns:7.5em 1fr;gap:4px 16px;padding:.8em 0;display:grid}@container (max-width:440px){.facts>div{grid-template-columns:1fr}}.facts dt{font-weight:800}.facts dd{margin:0;line-height:1.5}.roles{margin:0;padding:0;list-style:none}.role{border-left:2px solid var(--leaf-line);margin-left:6px;padding:0 0 1.5em 1.4em;position:relative}.role:before{content:"";border:2px solid var(--leaf-line);background:var(--leaf-mark);width:14px;height:14px;position:absolute;top:.3em;left:-8px}.role__head{flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.sheet .role__head>*{margin:0}.role__company{font:800 1.3em/1.2 Satoshi,system-ui,sans-serif}.sheet .role__head .role__title{font-weight:600}.sheet .role__head .role__dates{color:var(--leaf-muted);font-variant-numeric:tabular-nums;flex-basis:100%;font-size:.9em}.role ul{margin:.7em 0 0;padding:0;list-style:none}.role li{margin:0 0 .55em;padding-left:1.3em;font-size:.97em;line-height:1.5;position:relative}.role li:before{content:"";background:var(--leaf-mark);width:7px;height:7px;position:absolute;top:.6em;left:0}.earlier strong{font-weight:800}.project{border-left:10px solid var(--leaf-mark);margin:1.6em 0 0;padding:2px 0 2px 1.2em}.project__name{letter-spacing:-.01em;text-wrap:balance;margin:0;font:900 1.75em/1.1 Satoshi,system-ui,sans-serif}.sheet .project__link{overflow-wrap:anywhere;margin:.4em 0 .8em;font-weight:700}.sheet .project__stack{color:var(--leaf-muted);margin:0;font-size:.9em;font-weight:600}.sheet .project__shot{width:min(100%,12em);margin:0 0 .9em;text-decoration:none;display:block}.project__shot img{border:2px solid var(--leaf-line);background:var(--leaf-muted);width:100%;height:auto;display:block}.sheet .project__shot:hover img{border-color:var(--leaf-link)}@container (min-width:760px){.project{grid-template-columns:minmax(0,1fr) 15em;align-items:start;column-gap:1.4em;display:grid}.project>*{grid-column:1}.project>.project__shot{grid-area:1/2/span 4;width:auto;margin:.4em 0 0}}.plates{flex-wrap:wrap;gap:8px;margin:0 0 1.4em;padding:0;list-style:none;display:flex}.plates li{background:var(--c);color:var(--on-c);padding:.7em .95em;font:700 .95em/1.1 Satoshi,system-ui,sans-serif}.bars{margin:1.8em 0 0}.bars figcaption{color:var(--leaf-muted);margin-bottom:.9em;font-size:.9em;font-weight:500;line-height:1.4}.bars ul{gap:1em;margin:0;padding:0;list-style:none;display:grid}.bars li{grid-template-columns:1fr auto;align-items:baseline;gap:6px 12px;display:grid}.bars__label{font-weight:600}.bars__value{font-variant-numeric:tabular-nums;font-weight:800}.bars__track{background:color-mix(in srgb, var(--leaf-line) 14%, transparent);grid-column:1/-1;height:12px}.bars__fill{background:var(--bar);transform-origin:0;border-radius:0 3px 3px 0;height:100%;transition:transform .2s;display:block;transform:scaleX(0)}.leaf[data-ready=true] .sheet[data-open=true] .bars__fill{transition:transform .9s cubic-bezier(.2,.7,.2,1) .6s;transform:none}.sheet a.cta{background:var(--cta);color:#fff9ea;overflow-wrap:anywhere;margin:.4em 0 1.2em;padding:.7em .9em;font:800 clamp(1.05em,4.2cqw,1.3em)/1.2 Satoshi,system-ui,sans-serif;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-block}.sheet a.cta:hover{box-shadow:5px 5px 0 0 var(--leaf-line);transform:translate(-2px,-2px)}.links{margin:0 0 1em;padding:0;list-style:none}.links li{margin:0 0 .45em;font-weight:700}.sheet .where{color:var(--leaf-muted);margin:0;font-weight:600}@container (min-aspect-ratio:3/2){#contact{flex-wrap:wrap;align-content:safe center;align-items:center;gap:.5em 2.5em;font-size:clamp(.8rem,2.1cqw,1.9rem);display:flex}#contact .sheet__title,#contact .lead{flex-basis:100%;max-width:none;margin:0}#contact a.cta,#contact .links,#contact .where{margin:0}}@container (max-height:190px){#contact{gap:4px 14px;padding:8px 14px}#contact .lead{display:none}#contact .sheet__title{font-size:1.5em}#contact a.cta{padding:.4em .6em;font-size:1em}#contact .links li{margin:0}}@media (prefers-reduced-motion:reduce){.stage canvas,.look-switch,.look-switch__track,.look-switch__knob,.tag,.tag__text,.leaf,.leaf[data-open=true],.leaf[data-open=true][data-ready=true],.sheet,.sheet[data-open=true],.close,.close[data-open=true],.bars__fill,.leaf[data-ready=true] .sheet[data-open=true] .bars__fill{transition:none;animation:none}.bars__fill{transform:none}}
