@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f5f3ee;--paper-2:#edeae3;--paper-3:#e4e0d7;--white:#fbfaf7;--ink:#1e1d1a;--ink-2:#6b6760;--ink-3:#8a857c;--ink-3-ui:#6f6a63;--stone:#d9d4ca;--stone-dot:#b7b1a5;--accent:#45576d;--accent-hover:#52667e;--accent-press:#364557;--on-accent:var(--paper);--success:#5b6b3c;--font-sans:"Inter Tight Variable", "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--control-h:36px;--radius:4px;--radius-lg:6px;--ease:cubic-bezier(.2, 0, 0, 1);--dur-fast:.12s;--dur:.18s;--measure:38em;--inset:80px;--dot:7px;--page-max:800px;--gutter:32px}@media (width<=719px){:root{--inset:0px;--gutter:20px;--control-h:44px}}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px;font-size:100%}body{font-feature-settings:"ss01" 0, "cv11" 1;flex-direction:column;min-height:100dvh;margin:0;font-size:15px;line-height:1.5;display:flex}main{flex:1}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3{text-wrap:balance;hyphens:manual}p,li,dd{text-wrap:pretty}:is(time,dd,ol,.tnum){font-variant-numeric:tabular-nums}::selection{background:var(--paper-3);color:var(--ink)}a{color:var(--ink);text-decoration:underline 1px;text-decoration-color:var(--stone);text-underline-offset:3px;transition:text-decoration-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}a:hover{text-decoration-color:currentColor}:focus-visible{outline:1.5px solid var(--accent);outline-offset:1.5px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:var(--gutter);z-index:20;background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;position:absolute;top:-100px}.skip:focus{top:12px}.wrap{width:100%;max-width:calc(var(--page-max) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.top{z-index:10;background:var(--paper);transition:border-color var(--dur) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.top[data-scrolled]{border-bottom-color:var(--stone)}.top .wrap{justify-content:space-between;align-items:center;gap:var(--s-6);height:64px;display:flex}.brand{align-items:center;display:inline-flex}.brand img{width:28px;height:28px;display:block}.nav{align-items:center;gap:var(--s-6);font-size:14px;display:flex}.nav a{color:var(--ink-3-ui);white-space:nowrap;padding-block:6px;text-decoration:none}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--ink);text-underline-offset:6px;text-decoration:underline 1.5px;text-decoration-color:var(--ink)}.menu-btn{display:none}@media (width<=719px){.menu-btn{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;margin-right:-10px;padding:0 10px;display:inline-flex}.menu-btn span{background:var(--ink);width:20px;height:2px;transition:transform var(--dur) var(--ease);display:block}.top[data-open] .menu-btn span:first-child{transform:translateY(4px)rotate(45deg)}.top[data-open] .menu-btn span:last-child{transform:translateY(-4px)rotate(-45deg)}.nav{padding:var(--s-2) var(--gutter) var(--s-4);background:var(--paper);border-bottom:1px solid var(--stone);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:100%;left:0;right:0}.top[data-open]{border-bottom-color:var(--stone)}.top[data-open] .nav{display:flex}.nav a{color:var(--ink-2);padding-block:12px;font-size:16px}.nav a+a{border-top:1px solid var(--stone)}.nav a[aria-current=page]{color:var(--ink);text-decoration:none}}.btn{height:var(--control-h);border-radius:var(--radius);font:500 14px/1 var(--font-sans);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{background:var(--accent-press)}.btn-secondary{color:var(--ink);border-color:var(--ink);background:0 0}.btn-secondary:hover{background:var(--paper-2)}.btn-secondary:active{background:var(--paper-3)}.btn svg{flex:none;width:16px;height:16px}.icon{fill:none;stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.section{padding-top:var(--s-16)}.section-grid{border-top:1px solid var(--stone);padding-top:var(--s-6);padding-inline:var(--inset)}.section-grid>h2{margin-bottom:var(--s-6);color:var(--ink-3-ui);letter-spacing:.01em;font-size:13px;font-weight:400;line-height:1.5}.section-grid>.body{min-width:0}@media (width<=719px){.section{padding-top:var(--s-12)}.section-grid>h2{margin-bottom:var(--s-5)}}.hero{--avatar:88px;--avatar-gap:28px;padding-top:clamp(48px,10vw,112px)}.hero-body{padding-inline:var(--inset);min-width:0}.portrait{width:var(--avatar);height:var(--avatar);object-fit:cover;background:var(--paper-3);box-shadow:0 0 0 1.5px var(--paper), 0 0 0 2.5px var(--stone);margin-bottom:var(--avatar-gap);border-radius:50%;display:block}.hero .place{color:var(--ink-3-ui);margin-bottom:var(--s-4);font-size:13px;line-height:20px}.city{cursor:help;text-decoration:underline dotted var(--stone-dot);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease);position:relative}.city:hover,.city:focus{color:var(--ink)}.city .tip{z-index:5;background:var(--ink);width:max-content;max-width:240px;color:var(--paper);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur) var(--ease), visibility 0s linear var(--dur);border-radius:3px;padding:6px 8px;font-size:12px;line-height:1.4;text-decoration:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px #1e1d1a24}.city:hover .tip{opacity:1;visibility:visible;transition-delay:.4s,.4s}.city:focus .tip{opacity:1;visibility:visible;transition-delay:0s,0s}.hero h1{letter-spacing:-.03em;margin-left:-.04em;font-size:clamp(40px,7.4vw,68px);font-weight:600;line-height:1.02}.hero .lead{margin-top:var(--s-8);gap:var(--s-4);max-width:36em;display:grid}.hero .lead p{color:var(--ink-2);white-space:pre-line;font-size:clamp(16px,1.9vw,17px);line-height:1.6}.hero .lead p:first-child{text-wrap:balance;letter-spacing:-.01em;color:var(--ink);font-size:clamp(20px,2.6vw,24px);line-height:1.35}.actions{margin-top:var(--s-8);align-items:center;gap:var(--s-3) var(--s-6);flex-wrap:wrap;display:flex}@media (width<=719px){.hero{--avatar:72px;--avatar-gap:24px}}.mark{vertical-align:middle;flex:none;display:inline-block}.hero .lead .mark{vertical-align:-.1em;margin-inline:1px 2px}.projects{margin-top:calc(-1 * var(--s-4))}.projects li+li{border-top:1px solid var(--stone)}.project{gap:6px var(--s-4);padding:var(--s-4) var(--s-3);margin-inline:calc(-1 * var(--s-3));border-radius:var(--radius);color:inherit;grid-template-columns:40px 1fr auto;text-decoration:none;display:grid}.project:hover{background:var(--paper-2)}.project-mark{border:1px solid var(--stone);border-radius:var(--radius-lg);background:var(--white);width:40px;height:40px;transition:border-color var(--dur-fast) var(--ease);grid-row:1/span 3;align-self:start;place-items:center;display:grid}.project:hover .project-mark{border-color:var(--border-control,#928c81)}.project h3{align-self:center;font-size:16px;font-weight:600;line-height:1.3}.project .host{color:var(--ink-3-ui);align-self:start;align-items:center;gap:6px;padding-top:2px;font-size:13px;display:inline-flex}.project .host .icon{width:14px;height:14px;transition:color var(--dur-fast) var(--ease)}.project:hover .host{color:var(--ink)}.project p{color:var(--ink-2);max-width:var(--measure);grid-column:2/-1;font-size:14px}.project .meta{color:var(--ink-3-ui);letter-spacing:.01em;flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:4px 12px;font-size:12px;display:flex}.project .meta .mark{margin-top:-1px}.project .meta .customers{white-space:nowrap;align-items:center;gap:10px;display:inline-flex}.project .meta .customers:before{content:"·";margin-inline:-8px -6px}@media (width<=719px){.project .meta .customers:before{content:none}.project .host span{display:none}}.timeline{--tl-time:36px}.tl-row{grid-template-columns:var(--tl-time) 16px var(--dot) 24px 1fr;padding-bottom:var(--s-8);display:grid;position:relative}.tl-row:last-child{padding-bottom:0}.tl-time{white-space:nowrap;color:var(--ink-3-ui);font-variant-numeric:tabular-nums;grid-column:1;padding-top:3px;font-size:13px;line-height:1.2}.tl-dot{width:var(--dot);height:var(--dot);background:var(--ink);border-radius:50%;grid-column:3;margin-top:6px}.tl-row:not(:last-child):after{content:"";left:calc(var(--tl-time) + 16px + var(--dot) / 2 - 1.1px);background-image:radial-gradient(circle, var(--stone-dot) 1.1px, transparent 1.2px);background-repeat:repeat-y;background-size:2.2px 7px;width:2.2px;position:absolute;top:20px;bottom:6px}.tl-body{grid-column:5;min-width:0}.tl-body h3{font-size:16px;font-weight:600;line-height:1.3}.tl-org{color:var(--ink-2);margin-top:2px;font-size:14px}.tl-org .mark{vertical-align:-3px;width:auto;max-width:24px;height:auto;max-height:16px;margin-right:9px}.tl-org a{color:var(--ink-2)}.tl-org a:hover{color:var(--ink)}.tl-period{color:var(--ink-3-ui);margin-top:2px;font-size:13px}.tl-text{margin-top:var(--s-2);color:var(--ink-2);max-width:var(--measure);font-size:14px}.more{margin-top:var(--s-8);font-size:14px}.more a{color:var(--ink-2)}.more a:hover{color:var(--ink)}.contact .section-grid{padding-top:calc(var(--s-16) + var(--s-6))}.contact p{color:var(--ink-2);max-width:var(--measure);font-size:15px}.contact .mail{margin-top:var(--s-4);letter-spacing:-.015em;text-underline-offset:6px;font-size:clamp(22px,3.6vw,30px);font-weight:600;line-height:1.2;text-decoration-thickness:1.5px;display:inline-block}.contact .links{margin-top:var(--s-5);gap:var(--s-2) var(--s-6);flex-wrap:wrap;font-size:14px;display:flex}.foot{margin-top:var(--s-16);padding-block:var(--s-6) var(--s-8)}.foot .wrap>div{border-top:1px solid var(--stone);padding-top:var(--s-5);justify-content:space-between;gap:var(--s-3) var(--s-6);color:var(--ink-3-ui);flex-wrap:wrap;font-size:13px;display:flex}.foot a{color:var(--ink-3-ui);text-decoration:none}.foot a:hover{color:var(--ink)}.empty{text-align:center;justify-items:center;gap:var(--s-3);padding-top:clamp(64px,14vw,160px);display:grid}.empty .motif{margin-bottom:var(--s-3);align-items:center;gap:6px;display:flex}.empty .motif i{background:var(--ink);border-radius:50%;width:7px;height:7px}.empty .motif i.open{box-shadow:inset 0 0 0 1px var(--ink-3-ui);background:0 0}.empty .motif b{background-image:radial-gradient(circle, var(--stone-dot) 1.1px, transparent 1.2px);background-size:7px 2.2px;width:28px;height:2.2px}.empty h1{font-size:16px;font-weight:600}.empty p{color:var(--ink-2);max-width:380px;font-size:14px}.empty .btn{margin-top:var(--s-3)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
