.dock{--dock-gap:0.6rem;position:fixed;z-index:45;inset-inline-end:max(var(--space-page),env(safe-area-inset-right));inset-block-end:max(1rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:var(--dock-gap);pointer-events:none;transform:translateY(calc(-1 * var(--dock-lift, 0px)));transition:transform var(--duration-element) var(--ease-out),opacity var(--duration-element) var(--ease-out),visibility 0s linear 0s}.dock>*{pointer-events:auto}.js .dock[data-shown=false]{opacity:0;visibility:hidden;transform:translateY(calc(1rem - var(--dock-lift, 0px)));transition:transform var(--duration-element) var(--ease-out),opacity var(--duration-element) var(--ease-out),visibility 0s linear var(--duration-element)}.dock__chat{position:relative;display:grid;place-items:center;inline-size:56px;block-size:56px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--on-accent) 18%,transparent);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-ui) var(--ease-micro),transform var(--duration-micro) var(--ease-micro)}.dock__chat:hover{background:var(--accent-press)}.dock__chat:active{transform:scale(.94)}.dock__chat:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.dock__mark{inline-size:26px;block-size:26px}.dock__tip{position:absolute;inset-inline-end:calc(100% + .6rem);inset-block-start:50%;padding:.55rem .95rem;border-radius:var(--radius-pill);background:var(--fg);color:var(--bg);font:400 var(--text-caption)/1 var(--font-text);white-space:nowrap;opacity:0;visibility:hidden;transform:translate(.4rem,-50%);transition:opacity var(--duration-ui) var(--ease-micro),transform var(--duration-ui) var(--ease-out),visibility 0s linear var(--duration-ui);pointer-events:none}@media (hover:hover) and (pointer:fine){.dock__chat:focus-visible .dock__tip,.dock__chat:hover .dock__tip{opacity:1;visibility:visible;transform:translateY(-50%);transition-delay:0s}}.dock__book{display:none;align-items:center;gap:.5rem;min-block-size:48px;padding:0 1.15rem 0 .95rem;border-radius:var(--radius-pill);background:color-mix(in oklab,var(--bg) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(var(--blur-glass));backdrop-filter:saturate(180%) blur(var(--blur-glass));box-shadow:inset 0 0 0 1px var(--rule);color:var(--fg);font:600 var(--text-caption)/1 var(--font-text);white-space:nowrap;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:transform var(--duration-micro) var(--ease-micro)}.dock__book:active{transform:scale(.96)}.dock__book:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.dock__icon{inline-size:18px;block-size:18px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media (max-width:767px){.dock__book{display:inline-flex}.wf-in{padding-block-end:calc(5.5rem + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.dock,.js .dock[data-shown=false]{transform:translateY(calc(-1 * var(--dock-lift, 0px)));transition:none}.dock__book,.dock__chat,.dock__tip{transition:none}}@media print{.dock{display:none}}.lang{font-size:var(--text-nav)}.lang,.lang__link{display:inline-flex;align-items:center;color:var(--fg-2)}.lang__link{position:relative;gap:.6rem;min-block-size:44px;min-inline-size:32px;justify-content:center;padding-inline:.4rem;text-decoration:none;letter-spacing:.04em;transition:color var(--duration-micro) var(--ease-micro)}.lang__link:hover{color:var(--fg);text-decoration:none}.lang__link[aria-current=true]{color:var(--fg);font-weight:600}.lang__link:focus-visible,.lang__summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-pill)}.lang__code{font-variant-numeric:tabular-nums}.lang--bar>.lang__link+.lang__link:before{content:"·";position:absolute;inset-inline-start:-.15rem;color:var(--fg-2);font-weight:400;pointer-events:none}.lang__more{position:relative;margin-inline-start:.2rem}.lang__summary{display:inline-flex;align-items:center;gap:.3rem;min-block-size:44px;min-inline-size:44px;justify-content:center;padding-inline:.55rem;border-radius:var(--radius-pill);color:var(--fg-2);cursor:pointer;list-style:none;user-select:none;letter-spacing:.04em;transition:color var(--duration-micro) var(--ease-micro),background-color var(--duration-micro) var(--ease-micro)}.lang__summary::-webkit-details-marker{display:none}.lang__summary::marker{content:""}.lang__more[open]>.lang__summary,.lang__summary:hover{color:var(--fg);background:color-mix(in oklab,var(--fg) 7%,transparent)}.lang__summary[data-current=true]{color:var(--fg);font-weight:600}.lang__globe{inline-size:15px;block-size:15px;fill:none;stroke:currentColor;stroke-width:1.2}.lang__chev{inline-size:10px;block-size:10px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:transform var(--duration-ui) var(--ease-out)}.lang__more[open] .lang__chev{transform:rotate(180deg)}.lang__menu{position:absolute;inset-block-start:calc(100% + .5rem);inset-inline-end:0;z-index:60;min-inline-size:11.5rem;margin:0;padding:.375rem;list-style:none;background:var(--bg);color:var(--fg);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--rule)}.lang__more[open] .lang__menu{animation:lang-in var(--duration-ui) var(--ease-out) both}@keyframes lang-in{0%{opacity:0;transform:translateY(-4px)}}.lang__menu .lang__link{inline-size:100%;justify-content:flex-start;gap:.75rem;padding-inline:.75rem;border-radius:var(--radius-sm);color:var(--fg)}.lang__menu .lang__link:hover{background:color-mix(in oklab,var(--fg) 6%,transparent)}.lang__menu .lang__code{min-inline-size:1.5rem;color:var(--fg-2);font-size:var(--text-caption)}.lang__menu .lang__link[aria-current=true] .lang__code{color:var(--fg)}.lang__name{font-weight:400;letter-spacing:0}.lang__menu .lang__link[aria-current=true] .lang__name{font-weight:600}@media (max-width:1023px){.nav__links .lang{display:none}}.lang--sheet{gap:.25rem}.lang--sheet .lang__item{display:inline-flex;align-items:center}.lang--sheet .lang__link{min-inline-size:44px}.lang--sheet .lang__item[data-tier=secondary] .lang__link{font-size:var(--text-caption)}.lang--sheet .lang__item[data-tier=primary]+.lang__item[data-tier=secondary]{margin-inline-start:.5rem;padding-inline-start:.75rem;border-inline-start:1px solid var(--rule)}@media (prefers-reduced-motion:reduce){.lang__more[open] .lang__menu{animation:none}.lang__chev,.lang__link,.lang__summary{transition:none}}.mega-bar{align-items:center;gap:.125rem;margin:0;padding:0;list-style:none}.mega-bar,.mega-bar>li{display:flex}.mega-bar__link,.mega-bar__trigger{display:inline-flex;align-items:center;gap:.3rem;min-block-size:44px;padding-inline:.75rem;border-radius:var(--radius-pill);color:var(--fg);font-size:var(--text-nav);line-height:1;white-space:nowrap;opacity:.86;cursor:pointer;user-select:none;list-style:none;text-decoration:none;transition:opacity var(--duration-micro) var(--ease-micro),background-color var(--duration-micro) var(--ease-micro)}.mega-bar__trigger::-webkit-details-marker{display:none}.mega-bar__trigger::marker{content:""}.mega-bar__link:hover,.mega-bar__trigger:hover{opacity:1;text-decoration:none}.mega[open]>.mega-bar__trigger{opacity:1;background:color-mix(in oklab,var(--fg) 7%,transparent)}.mega-bar__link[aria-current=page],.mega-bar__trigger[data-current=true]{opacity:1;font-weight:600}.mega-bar__link:focus-visible,.mega-bar__trigger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mega-bar__chev{inline-size:12px;block-size:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:transform var(--duration-ui) var(--ease-out)}.mega[open] .mega-bar__chev{transform:rotate(180deg)}.mega__panel,.nav.glass[data-mega-open]{background:var(--bg)}.mega__panel{position:absolute;inset-inline:0;inset-block-start:100%;max-block-size:calc(100dvh - var(--nav-h));overflow-y:auto;overscroll-behavior:contain;color:var(--fg);border-block:1px solid var(--rule)}.mega[open] .mega__panel{animation:mega-in var(--duration-ui) var(--ease-out) both}.mega[open] .mega__grid>*{animation:mega-col var(--duration-element) var(--ease-out) both}.mega[open] .mega__grid>:nth-child(2){animation-delay:30ms}.mega[open] .mega__grid>:nth-child(3){animation-delay:60ms}.mega[open] .mega__grid>:nth-child(4){animation-delay:90ms}@keyframes mega-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes mega-col{0%{opacity:0;transform:translateY(6px)}}.mega__grid{display:grid;gap:clamp(2rem,3.2vw,3.5rem);padding-block:clamp(1.75rem,2.6vw,2.5rem) clamp(2rem,3vw,2.75rem);align-items:start}.mega__grid--about,.mega__grid--services{grid-template-columns:minmax(0,1.1fr) minmax(0,1.15fr) minmax(0,1.1fr) minmax(0,.9fr)}.mega__grid--projects{grid-template-columns:minmax(0,1.1fr) minmax(0,2.25fr) minmax(0,.9fr)}.mega__grid--insights{grid-template-columns:minmax(0,3.35fr) minmax(0,.9fr)}.mega-col{display:flex;flex-direction:column;min-inline-size:0}@media (max-width:1199px){.mega__grid--about,.mega__grid--services{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.95fr)}.mega-col--stories{display:none}}.mega-col__title{margin:0 0 .75rem;padding-block-end:.7rem;border-block-end:1px solid var(--rule);max-inline-size:none;font-size:var(--text-fine);line-height:1.2;letter-spacing:.01em;color:var(--fg-2)}.mega-col--start{align-self:stretch;padding-inline-start:clamp(1.25rem,2.2vw,2.25rem);border-inline-start:1px solid var(--rule)}.mega-more{align-self:flex-start;display:inline-flex;align-items:center;gap:.35em;min-block-size:44px;margin-block-start:.35rem;color:var(--link);font-size:var(--text-caption);font-weight:600;text-decoration:none}.mega-more:after{content:"";inline-size:.42em;block-size:.42em;border-inline-end:1.5px solid currentColor;border-block-start:1.5px solid currentColor;transform:rotate(45deg);transition:transform var(--duration-ui) var(--ease-out)}.mega-more:hover{text-decoration:none}.mega-more:hover:after{transform:translateX(3px) rotate(45deg)}.mega-list{display:grid;gap:.125rem;margin:0;padding:0;list-style:none}.mega-item{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.85rem;align-items:start;margin-inline:-.6rem;padding:.6rem;border-radius:var(--radius-md);color:var(--fg);text-decoration:none;transition:background-color var(--duration-micro) var(--ease-micro)}.mega-item:focus-visible,.mega-item:hover{background:var(--surface);text-decoration:none}.mega-item:focus-visible{outline:2px solid var(--focus);outline-offset:0}.mega-item__icon{display:grid;place-items:center;inline-size:2.25rem;block-size:2.25rem;border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--rule);background:var(--bg);color:var(--fg);transition:color var(--duration-ui) var(--ease-micro),box-shadow var(--duration-ui) var(--ease-micro)}.mega-item:focus-visible .mega-item__icon,.mega-item:hover .mega-item__icon{color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 45%,transparent)}.mega-icon{inline-size:20px;block-size:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.mega[open] .mega-icon>*,.sheet__group[open] .mega-icon>*{stroke-dasharray:64;animation:mega-draw .9s var(--ease-out) .12s both}.mega[open] .mega__grid>:nth-child(2) .mega-icon>*{animation-delay:.16s}.mega[open] .mega__grid>:nth-child(3) .mega-icon>*{animation-delay:.2s}}@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){.mega-item:hover .mega-icon>*{stroke-dasharray:64;animation:mega-redraw .7s var(--ease-out) both}}@keyframes mega-draw{0%{stroke-dashoffset:64}to{stroke-dashoffset:0}}@keyframes mega-redraw{0%{stroke-dashoffset:64}to{stroke-dashoffset:0}}.mega-item__text{display:grid;gap:.2rem;padding-block-start:.05rem}.mega-item__title{font:600 .9375rem/1.3 var(--font-text);letter-spacing:-.01em;text-wrap:pretty}.mega-item__desc{font-size:var(--text-caption);line-height:1.38;color:var(--fg-2)}.mega-item[aria-current=page] .mega-item__title{color:var(--link)}.mega-item__out{display:inline-block;vertical-align:-.1em;margin-inline-start:.2em;inline-size:.9em;block-size:.9em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:.6}.mega-post{display:grid;gap:.35rem;color:var(--fg);border-radius:var(--radius-md)}.mega-post,.mega-post:hover{text-decoration:none}.mega-post:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.mega-post__media,.mega-postrow__media{display:block;aspect-ratio:40/21;overflow:hidden;background:var(--surface-2);outline:1px solid var(--rule);outline-offset:-1px}.mega-post__media{border-radius:var(--radius-md);margin-block-end:.4rem}.mega-postrow__media{border-radius:var(--radius-sm)}.mega-post__media img,.mega-postrow__media img{display:block;inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--duration-element) var(--ease-out)}.mega-post:hover img,.mega-postrow:hover img{transform:scale(1.035)}.mega-post__meta{font-size:var(--text-fine);line-height:1.3;color:var(--fg-2)}.mega-post__title{font:600 .9375rem/1.32 var(--font-text);letter-spacing:-.01em;text-wrap:pretty;transition:color var(--duration-micro) var(--ease-micro)}.mega-post:hover .mega-post__title,.mega-post__read,.mega-postrow:hover .mega-postrow__title{color:var(--link)}.mega-post__read{display:inline-flex;align-items:center;gap:.35em;margin-block-start:.15rem;font-size:var(--text-caption)}.mega-post__read:after{content:"";inline-size:.42em;block-size:.42em;border-inline-end:1.5px solid currentColor;border-block-start:1.5px solid currentColor;transform:rotate(45deg)}.mega-postrow{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.85rem;align-items:center;padding-block:.65rem;color:var(--fg);border-radius:var(--radius-sm)}.mega-postrow,.mega-postrow:hover{text-decoration:none}.mega-postrow:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mega-postrow__text{display:grid;gap:.2rem;min-inline-size:0}.mega-postrow__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:600 var(--text-caption)/1.32 var(--font-text);letter-spacing:-.01em;transition:color var(--duration-micro) var(--ease-micro)}.mega-col--insights .mega-postrow{margin-block-start:.85rem;border-block-start:1px solid var(--rule);padding-block-start:.85rem;border-radius:0}.mega-postgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.2vw,2.25rem);margin:0;padding:0;list-style:none}.mega-stories{gap:0}.mega-story{display:grid;gap:.2rem;padding-block:.65rem;border-block-end:1px solid var(--rule);color:var(--fg);text-decoration:none}.mega-stories>li:first-child .mega-story{padding-block-start:.15rem}.mega-story:hover{text-decoration:none}.mega-story:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.mega-story__title{font:600 .9375rem/1.3 var(--font-text);letter-spacing:-.01em;transition:color var(--duration-micro) var(--ease-micro)}.mega-story__line{font-size:var(--text-caption);line-height:1.38;color:var(--fg-2)}.mega-story:hover .mega-story__title{color:var(--link)}.mega-col--wide .mega-stories{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(1.5rem,2.5vw,2.5rem)}.mega-col--wide .mega-stories>li:nth-child(2) .mega-story{padding-block-start:.15rem}.mega-col--wide>.mega-list:not(.mega-stories){grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(1.5rem,2.5vw,2.5rem);row-gap:.25rem}.mega-start__cta{align-self:flex-start;white-space:nowrap}.mega-start__note{margin:.55rem 0 1rem;font-size:var(--text-fine);line-height:1.35;color:var(--fg-2)}.mega-scrim{position:fixed;inset:0;z-index:49;pointer-events:none;opacity:0;visibility:hidden;background:color-mix(in oklab,var(--color-ink) 22%,transparent);transition:opacity var(--duration-ui) var(--ease-out),visibility 0s linear var(--duration-ui)}.mega-scrim[data-open=true]{pointer-events:auto;opacity:1;visibility:visible;transition-delay:0s}@media (max-width:1023px){.mega-scrim{display:none}}.sheet{position:fixed;inset:0;z-index:60;display:none;flex-direction:column;padding:0 var(--space-page) calc(1.5rem + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}.sheet[data-open=true]{display:flex;animation:mega-in var(--duration-ui) var(--ease-out) both}.sheet__bar{position:sticky;inset-block-start:0;z-index:1;display:flex;align-items:center;justify-content:space-between;flex:none;block-size:64px;background:var(--bg)}.sheet__body{display:grid;border-block-start:1px solid var(--rule)}.sheet__home,.sheet__summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-block-size:44px;padding-block:.85rem;color:var(--fg);font:600 1.625rem/1.2 var(--font-display);letter-spacing:-.015em;text-decoration:none;cursor:pointer;list-style:none}.sheet__home{border-block-end:1px solid var(--rule)}.sheet__home:hover{text-decoration:none}.sheet__home[aria-current=page],.sheet__summary[data-current=true]{color:var(--accent)}.sheet__summary::-webkit-details-marker{display:none}.sheet__summary::marker{content:""}.sheet__home:focus-visible,.sheet__summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.sheet__chev{inline-size:22px;block-size:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:transform var(--duration-ui) var(--ease-out)}.sheet__group{border-block-end:1px solid var(--rule)}.sheet__group[open] .sheet__chev{transform:rotate(180deg)}.sheet__panel{padding-block:.15rem 1.25rem}.sheet__group[open] .sheet__panel{animation:mega-col var(--duration-element) var(--ease-out) both}.sheet__start{display:grid;gap:.75rem;padding-block:1.75rem .5rem}.sheet__start .btn{inline-size:100%}.sheet__call{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-block-size:44px;color:var(--link);font-size:var(--text-caption);text-decoration:none}.sheet__call-icon{inline-size:18px;block-size:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sheet__lang{display:flex;justify-content:center;padding-block:.5rem 0}@media (min-width:1024px){.sheet{display:none!important}}@media (prefers-reduced-motion:reduce){.mega[open] .mega__grid>*,.mega[open] .mega__panel,.sheet[data-open=true],.sheet__group[open] .sheet__panel{animation:none}.mega-bar__chev,.mega-post img,.mega-postrow img,.mega-scrim,.sheet__chev{transition:none}}