@property --spread{syntax:"<number>";inherits:true;initial-value:0}@property --scroll-spread{syntax:"<number>";inherits:true;initial-value:0}@property --rx{syntax:"<angle>";inherits:true;initial-value:58deg}@property --rz{syntax:"<angle>";inherits:true;initial-value:-38deg}@property --z{syntax:"<integer>";inherits:true;initial-value:0}.phone{--k:1;--w:calc(168px * var(--k));--h:calc(348px * var(--k));--radius:calc(28px * var(--k));--base-gap:calc(26px * var(--k));--extra-gap:calc(22px * var(--k));--spread:var(--scroll-spread);--z:calc(4 * (26 + 22 * var(--spread)));--half:calc(.4 * var(--w) + .31 * var(--h));width:calc(var(--half) * 2 + 110px);max-width:100%;margin:0;transition:--spread .5s cubic-bezier(.2,.8,.2,1)}.phone .scene{height:calc(390px * var(--k));position:relative}.phone .stack{left:var(--half);width:var(--w);height:var(--h);margin:calc(var(--h) / -2) 0 0 calc(var(--w) / -2);transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateZ(var(--rz));animation:7s ease-in-out infinite phone-breathe;position:absolute;top:70%}@keyframes phone-breathe{50%{--rx:54deg;--rz:-33deg}}.phone .layer{border:1px solid var(--ink);border-radius:var(--radius);transform:translateZ(calc(var(--base-gap) * var(--i) + var(--spread) * var(--extra-gap) * var(--i)));position:absolute;inset:0}.phone .layer-window{background:var(--ink)}.phone .layer-content{background:var(--canvas)}.phone .layer-list,.phone .layer-nav,.phone .layer-action{background:0 0}.phone .layer-nav{border-style:dashed}.phone .layer-action{border:1px dashed var(--accent)}.phone .row{left:calc(12px * var(--k));right:calc(12px * var(--k));height:calc(38px * var(--k));align-items:center;gap:calc(10px * var(--k));padding:0 calc(10px * var(--k));border:1px solid var(--ink);border-radius:calc(9px * var(--k));background:var(--canvas);color:var(--ink);font:500 calc(9px * var(--k)) / 1 var(--font-sans);white-space:nowrap;display:flex;position:absolute}.phone .row:first-child{top:calc(66px * var(--k))}.phone .row:nth-child(2){top:calc(112px * var(--k))}.phone .row:nth-child(3){top:calc(158px * var(--k))}.phone .row .time{font-family:var(--font-mono);color:var(--ink-muted)}.phone .row.selected .time{color:var(--accent-text)}.phone .bar{left:calc(12px * var(--k));right:calc(12px * var(--k));top:calc(18px * var(--k));height:calc(28px * var(--k));padding:0 calc(10px * var(--k));border-radius:calc(7px * var(--k));background:var(--ink);color:var(--paper);font:600 calc(10px * var(--k)) / 1 var(--font-sans);white-space:nowrap;align-items:center;display:flex;position:absolute}.phone .pill{left:50%;bottom:calc(20px * var(--k));width:calc(108px * var(--k));height:calc(32px * var(--k));margin-left:calc(-54px * var(--k));border-radius:calc(16px * var(--k));background:var(--accent);color:var(--ink);font:600 calc(10px * var(--k)) / 1 var(--font-sans);place-items:center;display:grid;position:absolute}.phone .tag{left:100%;top:calc(100% - var(--radius));white-space:nowrap;color:var(--ink);font:400 10px / 1 var(--font-mono);transform-origin:0 0;transform:rotate(calc(var(--rz) * -1)) scale(1, calc(1 / cos(var(--rx))));align-items:center;gap:6px;display:flex;position:absolute}.phone .tag:before{content:"";width:calc(18px * var(--k));border-top:1px solid}.phone .layer-action .tag{color:var(--accent-text)}.phone .inspector{justify-content:space-between;gap:var(--s-1) var(--s-4);margin-top:var(--s-3);padding-top:var(--s-2);border-top:1px solid var(--rule);font:400 11px / 1.2 var(--font-mono);color:var(--ink-muted);white-space:pre;flex-wrap:wrap;display:flex}.phone .inspector .sel{color:var(--accent-text)}.phone .inspector .z{color:var(--ink);counter-reset:z var(--z)}.phone .inspector .z:after{content:counter(z)}@supports (animation-timeline:view()){.phone{animation:linear both phone-spread;animation-timeline:view();animation-range:exit -30% exit 55%}}@keyframes phone-spread{0%{--scroll-spread:0}to{--scroll-spread:1}}@media (hover:hover) and (width>=768px){.phone:hover{--spread:1}}@media (width<=767px){.phone{--k:.7}@supports (animation-timeline:view()){.phone{animation-range:exit -135% exit -15%}}.phone .tag{font-size:9px}}@media (prefers-reduced-motion:reduce){.phone,.phone:hover{--spread:.5;transition:none;animation:none}.phone .stack{animation:none}}.hero[data-astro-cid-i3irphx7]{gap:var(--s-6);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}.kicker[data-astro-cid-i3irphx7]{margin:0 0 var(--s-4);font:600 var(--fs-label) / 1.4 var(--font-mono);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--accent-text)}h1[data-astro-cid-i3irphx7]{margin:0 0 var(--s-4);letter-spacing:-.035em;max-width:14ch;font-size:clamp(2.375rem,1.1rem + 4.6vw,4.5rem);font-weight:600;line-height:1.02}.subline[data-astro-cid-i3irphx7]{margin:0 0 var(--s-5);max-width:44ch;color:var(--ink-muted);font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);line-height:1.55}.ctas[data-astro-cid-i3irphx7]{gap:var(--s-3);flex-wrap:wrap;display:flex}.cta[data-astro-cid-i3irphx7]{align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-4);border:1px solid var(--ink);font:500 var(--fs-label) / 1 var(--font-mono);border-radius:4px;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.primary[data-astro-cid-i3irphx7]{background:var(--ink);color:var(--paper)}.primary[data-astro-cid-i3irphx7]:hover,.primary[data-astro-cid-i3irphx7]:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--ink)}.secondary[data-astro-cid-i3irphx7]{color:var(--ink)}.secondary[data-astro-cid-i3irphx7]:hover,.secondary[data-astro-cid-i3irphx7]:focus-visible{border-color:var(--accent);color:var(--accent-text)}.visual[data-astro-cid-i3irphx7]{isolation:isolate;min-width:0;padding-block:var(--s-4);justify-content:center;display:flex;position:relative}.visual[data-astro-cid-i3irphx7]:before{content:"";inset:0 calc(-1 * var(--s-4));z-index:-1;border-block:1px solid var(--rule);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:var(--grid) var(--grid);background-position:50%;position:absolute}.meta[data-astro-cid-i3irphx7]{justify-content:space-between;gap:var(--s-2) var(--s-5);padding-top:var(--s-3);border-top:1px solid var(--rule);font:400 var(--fs-label) / 1.4 var(--font-mono);color:var(--ink-muted);flex-wrap:wrap;display:flex}.home>.hero[data-astro-cid-i3irphx7]{padding-bottom:var(--s-5)}@media (width>=1024px){.hero[data-astro-cid-i3irphx7]{column-gap:var(--s-6);row-gap:var(--s-6);grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.visual[data-astro-cid-i3irphx7]{padding:var(--s-5) 0;justify-content:flex-end}.visual[data-astro-cid-i3irphx7]:before{inset:0 calc(-1 * var(--s-5)) 0 0;border:1px solid var(--rule);border-right:0}.meta[data-astro-cid-i3irphx7]{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.cta[data-astro-cid-i3irphx7]{transition:none}}.services[data-astro-cid-qmjtkzr2]{border-top:1px solid var(--ink);background:var(--paper);margin:0;padding:0;list-style:none}.service[data-astro-cid-qmjtkzr2]{gap:var(--s-2) var(--s-4);padding-block:var(--s-5);border-bottom:1px solid var(--rule);grid-template-columns:3.5rem minmax(0,1fr);display:grid}.service[data-astro-cid-qmjtkzr2]:last-child{border-bottom:0;padding-bottom:0}.num[data-astro-cid-qmjtkzr2]{font:400 var(--fs-label) / 1 var(--font-mono);color:var(--ink-muted);padding-top:.4em}h3[data-astro-cid-qmjtkzr2]{margin:0 0 var(--s-2);letter-spacing:-.015em;font-size:1.375rem;font-weight:600}.text[data-astro-cid-qmjtkzr2] p[data-astro-cid-qmjtkzr2]{max-width:var(--measure);color:var(--ink-muted);margin:0}.stack[data-astro-cid-qmjtkzr2]{gap:var(--s-2);margin:var(--s-2) 0 0;flex-wrap:wrap;grid-column:2;padding:0;list-style:none;display:flex}.stack[data-astro-cid-qmjtkzr2] li[data-astro-cid-qmjtkzr2]{padding:3px var(--s-2);border:1px solid var(--rule);font:400 var(--fs-label) / 1.4 var(--font-mono);border-radius:3px}.island[data-astro-cid-nam54o46]{justify-items:center;gap:var(--s-1);color:var(--ink);display:grid}.art[data-astro-cid-nam54o46]{width:100%;max-width:120px;height:auto;display:block;overflow:visible}.face[data-astro-cid-nam54o46]{stroke:currentColor;stroke-width:1px;stroke-linejoin:round}.top[data-astro-cid-nam54o46]{fill:var(--plinth-top)}.right[data-astro-cid-nam54o46]{fill:var(--canvas)}.hatch[data-astro-cid-nam54o46]{stroke:currentColor;stroke-width:.8px}.shadow[data-astro-cid-nam54o46]{fill:currentColor;opacity:.1}.guide[data-astro-cid-nam54o46]{stroke:var(--accent);stroke-width:1px;stroke-dasharray:2 2}.float[data-astro-cid-nam54o46]{fill:currentColor}.mono[data-astro-cid-nam54o46]{font:600 17px var(--font-mono);letter-spacing:-.02em}.label[data-astro-cid-nam54o46]{font:500 var(--fs-label) / 1.3 var(--font-mono);text-align:center;overflow-wrap:anywhere}@media (hover:hover) and (prefers-reduced-motion:no-preference){.float[data-astro-cid-nam54o46]{transition:transform .25s cubic-bezier(.2,.8,.2,1)}.island[data-astro-cid-nam54o46]:hover .float[data-astro-cid-nam54o46]{transform:translateY(-5px)}}.tools[data-astro-cid-mp555yrt]{--cols:3;--gap:var(--s-3);justify-content:center;gap:var(--s-4) var(--gap);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tools[data-astro-cid-mp555yrt]>li{flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));min-width:0}@media (width>=560px){.tools[data-astro-cid-mp555yrt]{--cols:4}}@media (width>=1024px){.tools[data-astro-cid-mp555yrt]{--cols:5;justify-content:flex-start;row-gap:var(--s-5)}}@media (width>=1200px){.tools[data-astro-cid-mp555yrt]{--cols:7}}.points[data-astro-cid-jeht7s6z]{border-top:1px solid var(--ink);background:var(--paper);margin:0;padding:0;list-style:none}.point[data-astro-cid-jeht7s6z]{gap:var(--s-2) var(--s-4);padding-block:var(--s-5);border-bottom:1px solid var(--rule);grid-template-columns:3.5rem minmax(0,1fr);display:grid}.point[data-astro-cid-jeht7s6z]:last-child{border-bottom:0;padding-bottom:0}.num[data-astro-cid-jeht7s6z]{font:400 var(--fs-label) / 1 var(--font-mono);color:var(--ink-muted);padding-top:.4em}h3[data-astro-cid-jeht7s6z]{margin:0 0 var(--s-2);letter-spacing:-.015em;font-size:1.375rem;font-weight:600}.text[data-astro-cid-jeht7s6z] p[data-astro-cid-jeht7s6z]{max-width:var(--measure);color:var(--ink-muted);margin:0}.tags[data-astro-cid-jeht7s6z]{gap:var(--s-2);margin:var(--s-2) 0 0;flex-wrap:wrap;grid-column:2;padding:0;list-style:none;display:flex}.tags[data-astro-cid-jeht7s6z] li[data-astro-cid-jeht7s6z]{padding:3px var(--s-2);border:1px solid var(--rule);font:400 var(--fs-label) / 1.4 var(--font-mono);border-radius:3px}.chips[data-astro-cid-xjy2o6if]{align-content:start;gap:var(--s-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}li[data-astro-cid-xjy2o6if]{padding:var(--s-2) var(--s-4);border:1px solid var(--ink);font-size:var(--fs-small);border-radius:999px;font-weight:500;line-height:1.3}@media (width>=1024px){.chips[data-astro-cid-xjy2o6if]{padding-top:calc(var(--fs-label) * 1.4 + var(--s-3))}}.work[data-astro-cid-vvm4xlcm]{gap:var(--s-4);display:grid}.grid[data-astro-cid-vvm4xlcm]{gap:var(--s-4);grid-template-columns:minmax(0,1fr);display:grid}.all[data-astro-cid-vvm4xlcm]{margin-top:var(--s-2);font:500 var(--fs-label) / 1.4 var(--font-mono);color:var(--ink);justify-self:start}.all[data-astro-cid-vvm4xlcm]:hover,.all[data-astro-cid-vvm4xlcm]:focus-visible{color:var(--accent-text)}@media (width>=768px){.products[data-astro-cid-vvm4xlcm]{grid-template-columns:repeat(2,minmax(0,1fr))}.experience[data-astro-cid-vvm4xlcm]{grid-template-columns:repeat(3,minmax(0,1fr))}}.contact-form[data-astro-cid-vekgkm42]{min-width:0}form[data-astro-cid-vekgkm42]{gap:var(--s-4);display:grid}.field[data-astro-cid-vekgkm42]{gap:var(--s-1);display:grid}label[data-astro-cid-vekgkm42]{font:400 var(--fs-label) / 1.4 var(--font-mono);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink-muted)}input[data-astro-cid-vekgkm42],textarea[data-astro-cid-vekgkm42]{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--ink);padding:var(--s-2) var(--s-3);box-sizing:border-box;border-radius:0;width:100%}input[data-astro-cid-vekgkm42]:focus-visible,textarea[data-astro-cid-vekgkm42]:focus-visible,button[data-astro-cid-vekgkm42]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea[data-astro-cid-vekgkm42]{resize:vertical}.hp[data-astro-cid-vekgkm42]{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}button[data-astro-cid-vekgkm42]{font:inherit;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:var(--s-2) var(--s-5);cursor:pointer;border-radius:0;justify-self:start}button[data-astro-cid-vekgkm42]:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}button[data-astro-cid-vekgkm42]:disabled{opacity:.6;cursor:progress}.status[data-astro-cid-vekgkm42]{min-height:1.5em;margin:0}.status[data-astro-cid-vekgkm42][data-state=sent]{color:var(--ink)}.status[data-astro-cid-vekgkm42]:not([data-state=sent]):not(:empty){color:var(--accent-text)}.noscript[data-astro-cid-vekgkm42]{margin:0 0 var(--s-4);color:var(--ink)}.noscript[data-astro-cid-vekgkm42] a[data-astro-cid-vekgkm42]{color:var(--ink)}.direct[data-astro-cid-vekgkm42]{margin:var(--s-4) 0 0;color:var(--ink-muted)}.direct[data-astro-cid-vekgkm42] a[data-astro-cid-vekgkm42]{color:var(--ink)}
