.container{margin:0 auto;max-width:var(--container-max);padding:0 24px}.section{padding:96px 0}.section--sunken{background:var(--surface-sunken)}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}h2{font-size:clamp(1.9rem,1.6rem + 1.3vw,2.6rem);margin-bottom:40px}.mono{font-family:var(--font-mono)}.scroll-progress{background:var(--amber-bright);height:3px;left:0;position:fixed;right:0;top:0;transform-origin:0 50%;z-index:var(--z-toast)}.btn{align-items:center;border:1.5px solid #0000;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:.98rem;font-weight:600;gap:9px;line-height:1;padding:13px 22px;text-decoration:none;transition:transform .2s var(--ease-out-quart),background-color .2s var(--ease-out-quart),border-color .2s var(--ease-out-quart)}.btn svg{font-size:1.15em}.btn--primary{background:var(--amber-bright);border-color:var(--amber-bright);color:var(--ink)}.btn--primary:hover{background:#c48926;transform:translateY(-2px)}.btn--ghost{background:#0000;border-color:var(--ink-faint);color:var(--ink)}.btn--ghost:hover{background:var(--amber-soft);border-color:var(--amber-bright);transform:translateY(-2px)}.btn--sm{font-size:.85rem;padding:8px 14px}.nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#f7f7f7d1;border-bottom:1px solid #0000;position:sticky;top:0;transition:border-color .3s var(--ease-out-quart);z-index:var(--z-sticky)}.nav--scrolled{border-bottom-color:var(--ink-faint)}.nav__inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:var(--container-max);padding:16px 24px}.nav__logo{align-items:center;color:var(--ink);display:inline-flex;font-family:var(--font-mono);font-size:1.1rem;font-weight:500;text-decoration:none}.nav__cursor{background:var(--amber-bright);display:inline-block;height:1.1em;margin-left:3px;width:8px}@media (prefers-reduced-motion:no-preference){.nav__cursor{animation:blink 1.1s steps(1) infinite}}@keyframes blink{50%{opacity:0}}.nav__links{align-items:center;display:flex;gap:28px}.nav__link{background:none;border:none;color:var(--ink-dim);cursor:pointer;font-family:var(--font-body);font-size:.98rem;font-weight:500;padding:4px 2px;position:relative}.nav__cv,.nav__link:hover,.nav__toggle{color:var(--ink)}.nav__toggle{background:none;border:none;cursor:pointer;display:none;font-size:1.5rem;line-height:0;padding:4px}.nav__sheet{display:none}@media (max-width:720px){.nav__links{display:none}.nav__toggle{display:block}.nav__sheet{background:var(--bg);border-top:1px solid var(--ink-faint);display:flex;flex-direction:column;gap:4px;padding:8px 24px 20px}.nav__sheet-link{background:none;border:none;color:var(--ink);cursor:pointer;font-family:var(--font-body);font-size:1.05rem;font-weight:500;padding:12px 4px;text-align:left;text-decoration:none}}.hero{padding:72px 0 96px}.hero__grid{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:1.15fr .85fr}.hero__role{color:var(--amber);font-size:.95rem;font-weight:500;letter-spacing:.01em;margin-bottom:14px}.hero__name{font-size:clamp(2.4rem,1.7rem + 3vw,4.2rem);margin-bottom:20px}.hero__pitch{color:var(--ink-dim);font-size:1.1rem;margin-bottom:32px;max-width:54ch}.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:28px}.hero__location{align-items:center;color:var(--ink-dim);display:inline-flex;font-size:.9rem;gap:9px}.hero__dot{background:var(--amber-bright);border-radius:50%;box-shadow:0 0 0 3px var(--amber-soft);height:8px;width:8px}@media (prefers-reduced-motion:no-preference){.hero__dot{animation:pulse-dot 2.4s ease-in-out infinite}}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px var(--amber-soft)}50%{box-shadow:0 0 0 6px var(--amber-soft)}}.hero__panel{justify-self:stretch}@media (max-width:900px){.hero__grid{gap:40px;grid-template-columns:1fr}.hero__panel{max-width:420px}}.code-panel{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);overflow:hidden}.code-panel__bar{align-items:center;background:var(--surface-sunken);border-bottom:1px solid var(--ink-faint);display:flex;gap:9px;padding:11px 16px}.code-panel__dot{background:var(--amber-bright);border-radius:50%;height:9px;width:9px}.code-panel__label{color:var(--ink-dim);font-family:var(--font-mono);font-size:.82rem}.code-panel__body{padding:22px 20px}.diff-line{align-items:flex-start;border-radius:6px;display:flex;font-family:var(--font-mono);font-size:1.05rem;gap:10px;padding:6px 10px}.diff-line--remove{background:var(--rose-soft);margin-bottom:6px}.diff-line--remove .diff-line__gutter{color:var(--rose)}.diff-line--add{background:var(--amber-soft);transition:opacity .3s var(--ease-out-quart)}.diff-line--add .diff-line__gutter{color:var(--amber)}.diff-line__gutter{flex-shrink:0;font-weight:700;width:14px}.diff-line__text--strike{color:var(--rose);text-decoration:line-through;text-decoration-thickness:1.5px}.diff-line__cursor{animation:blink .9s steps(1) infinite;background:var(--ink);display:inline-block;height:1.05em;margin-left:2px;vertical-align:text-bottom;width:8px}.diff-panel--mini{margin-top:12px;max-width:260px}.diff-panel--mini .code-panel__body{padding:14px}.diff-panel--mini .diff-line{font-size:.88rem}.experience__diff{margin-left:0}.stack-section{padding:56px 0}.stack-panel{margin:0 auto;max-width:720px}.stack-panel__body{font-family:var(--font-mono);font-size:.95rem;line-height:1.9}.stack-row{padding-left:22px}.stack-row__key{color:var(--amber)}.stack-row__punct,.stack-row__value{color:var(--ink-dim)}@media (max-width:640px){.stack-panel__body{font-size:.82rem}.stack-row{padding-left:10px}}.about__grid{grid-gap:56px;align-items:start;display:grid;gap:56px;grid-template-columns:.9fr 1.6fr}.about__photo-wrap{perspective:900px}.about__photo{aspect-ratio:3/4;border:1px solid var(--ink-faint);border-radius:var(--radius-md);overflow:hidden;position:relative;transform-style:preserve-3d;will-change:transform}.about__photo img{height:100%;object-fit:cover;width:100%}.about__note{color:var(--ink-dim);font-size:1.1rem;margin-bottom:36px;max-width:56ch}.fact-list{display:flex;flex-direction:column;gap:0;margin:0}.fact-list__row{grid-gap:16px;border-top:1px solid var(--ink-faint);display:grid;gap:16px;grid-template-columns:140px 1fr;padding:16px 0}.fact-list__row:last-child{border-bottom:1px solid var(--ink-faint)}.fact-list__row dt{color:var(--ink-dim);font-size:.85rem}.fact-list__row dd{color:var(--ink);font-weight:500;margin:0}@media (max-width:780px){.about__grid{grid-template-columns:1fr}.about__photo-wrap{margin:0 auto;max-width:280px}.fact-list__row{grid-template-columns:110px 1fr}}@media (max-width:640px){.about__content{text-align:center}.about__note{margin-left:auto;margin-right:auto}.fact-list{text-align:left}}.experience{background:var(--surface-sunken)}.experience__card{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);padding:36px}.experience__head{align-items:flex-start;border-bottom:1px solid var(--ink-faint);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:24px;padding-bottom:20px}.experience__role{font-size:1.4rem;margin-bottom:4px}.experience__company{color:var(--ink-dim);font-weight:500}.experience__location{font-weight:400}.experience__dates{color:var(--ink-dim);font-size:.9rem;white-space:nowrap}.experience__bullets{display:flex;flex-direction:column;gap:20px;list-style:none;margin:0;padding:0}.experience__bullets li{color:var(--ink-dim);line-height:1.7;padding-left:22px;position:relative}.experience__bullets li:before{background:var(--amber-bright);border-radius:50%;content:"";height:6px;left:0;position:absolute;top:10px;width:6px}@media (max-width:640px){.experience__card{padding:24px}}.project-intro{margin-bottom:28px}.project-intro__type{color:var(--ink-dim);font-size:.85rem;margin-bottom:8px}.project-intro__name{font-size:1.8rem;margin-bottom:14px}.project-intro__description{color:var(--ink-dim);max-width:68ch}.app-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.app-tab{background:var(--surface);border:1.5px solid var(--ink-faint);border-radius:var(--radius-pill);color:var(--ink-dim);cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:500;padding:10px 18px;transition:background-color .2s var(--ease-out-quart),border-color .2s var(--ease-out-quart),color .2s var(--ease-out-quart)}.app-tab:hover{border-color:var(--amber-bright);color:var(--ink)}.app-tab--active,.app-tab--active:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.project-card{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.project-card--text-only{grid-template-columns:1fr}.project-card__visual{align-items:center;background:var(--surface-sunken);border-right:1px solid var(--ink-faint);display:flex;justify-content:center;padding:32px}.gallery{width:100%}.gallery__track{-webkit-overflow-scrolling:touch;display:flex;gap:16px;overflow-x:auto;padding:4px 4px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery__track::-webkit-scrollbar{display:none}.gallery__slide{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);flex:0 0 auto;height:440px;margin:0;overflow:hidden;scroll-snap-align:center}.gallery__slide img{display:block;height:100%;object-fit:cover;width:auto}.gallery__controls{align-items:center;display:flex;flex-direction:column;gap:10px;margin-top:16px}.gallery__dots{display:flex;gap:4px}.gallery__dot{background:#0000;border:none;border-radius:50%;cursor:pointer;height:24px;padding:0;position:relative;width:24px}.gallery__dot:before{background:var(--ink-faint);border-radius:50%;content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background-color .2s var(--ease-out-quart),transform .2s var(--ease-out-quart);width:8px}.gallery__dot--active:before{background:var(--amber-bright);transform:translate(-50%,-50%) scale(1.25)}.gallery__caption{color:var(--ink-dim);font-size:.8rem}.project-card__body{padding:36px}.project-card__app-name{font-size:1.3rem;margin-bottom:14px}.project-card__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.badge{border:1px solid var(--ink-faint);border-radius:var(--radius-pill);color:var(--ink-dim);font-size:.78rem;padding:5px 12px}.badge--status-shipped{background:var(--amber-soft);border-color:var(--amber-bright);color:var(--amber);font-weight:600}.badge--status-in-progress,.badge--status-planned{border-style:dashed;color:var(--ink-dim)}.project-card__description{color:var(--ink-dim);margin-bottom:24px;max-width:60ch}.project-card__list-label{color:var(--amber);font-size:.78rem;margin-bottom:10px}.project-card__body ul{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.project-card__body li{color:var(--ink-dim);font-size:.92rem;padding-left:16px;position:relative}.project-card__body li:before{background:var(--ink-faint);border-radius:50%;content:"";height:5px;left:0;position:absolute;top:8px;width:5px}@media (max-width:820px){.project-card{grid-template-columns:1fr}.project-card__visual{border-bottom:1px solid var(--ink-faint);border-right:none}.gallery__slide{height:360px}.project-card__body{padding:28px}}.exploring-list{display:flex;flex-direction:column;gap:32px}.exploring-card{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);padding:36px}.exploring-card__head{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:16px}.exploring-card__name{font-size:1.4rem}.exploring-card__description{color:var(--ink-dim);margin-bottom:20px;max-width:72ch}.exploring-card__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.exploring-card__lists{grid-gap:28px;border-top:1px solid var(--ink-faint);display:grid;gap:28px;grid-template-columns:1fr 1fr;margin-bottom:24px;padding-top:24px}.exploring-card__list-label{color:var(--amber);font-size:.78rem;margin-bottom:10px}.exploring-card__lists ul{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.exploring-card__lists li{color:var(--ink-dim);font-size:.92rem;padding-left:16px;position:relative}.exploring-card__lists li:before{background:var(--ink-faint);border-radius:50%;content:"";height:5px;left:0;position:absolute;top:8px;width:5px}.exploring-card__solution{border-top:1px solid var(--ink-faint);color:var(--ink-dim);font-size:.95rem;max-width:72ch;padding-top:20px}.exploring-card__solution-label{color:var(--ink);font-weight:500}@media (max-width:640px){.exploring-card{padding:24px}.exploring-card__lists{grid-template-columns:1fr}}.rates__intro{color:var(--ink-dim);margin-bottom:36px;max-width:60ch}.rates-card{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);padding:36px}.rates-group{border-bottom:1px solid var(--ink-faint);margin-bottom:32px;padding-bottom:32px}.rates-group--plan{border-bottom:none;margin-bottom:0;padding-bottom:0}.rates-group__label{color:var(--amber);font-size:.78rem;margin-bottom:18px}.rate-rows{display:flex;flex-direction:column;gap:28px}.rate-row__head{align-items:baseline;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:10px}.rate-row__name{font-size:1.25rem}.rate-row__price{color:var(--ink);font-size:.95rem;white-space:nowrap}.rate-row__billing{color:var(--ink-dim)}.rate-row__description{color:var(--ink-dim);margin-bottom:10px;max-width:62ch}.rate-row__for{color:var(--ink-dim);font-size:.92rem}.rate-row__for-label{color:var(--ink);font-weight:500}.rates-group--plan .rate-row__description{margin-bottom:0}.rate-tiers{display:flex;flex-direction:column;margin-top:28px}.rate-tier{grid-gap:16px;border-top:1px solid var(--ink-faint);display:grid;gap:16px;grid-template-columns:110px 1fr;padding:18px 0}.rate-tier:last-child{border-bottom:1px solid var(--ink-faint)}.rate-tier__name{color:var(--ink);font-weight:600}.rate-tier__price{color:var(--amber);font-size:.88rem;margin-bottom:6px}.rate-tier__detail{color:var(--ink-dim);font-size:.92rem;max-width:56ch}.rates-included{margin-top:28px}.rates-included__label{color:var(--amber);font-size:.78rem;margin-bottom:10px}.rates-included ul{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0 0 24px;padding:0}.rates-included li{color:var(--ink-dim);font-size:.92rem;padding-left:16px;position:relative}.rates-included li:before{background:var(--ink-faint);border-radius:50%;content:"";height:5px;left:0;position:absolute;top:8px;width:5px}.rates-note{border-top:1px solid var(--ink-faint);color:var(--ink-dim);font-size:.85rem;max-width:62ch;padding-top:16px}.rates-note+.rates-note{border-top:none;padding-top:8px}.rates__guidance{color:var(--ink-dim);font-size:.95rem;margin-top:24px;max-width:60ch}.rates__guide-link{margin-top:20px}@media (max-width:640px){.rates-card{padding:24px}.rate-tier{gap:6px;grid-template-columns:1fr}}.faq .container{align-items:center;display:flex;flex-direction:column}.faq h2{text-align:center}.chat{background:var(--surface);border:1px solid var(--ink-faint);border-radius:var(--radius-md);max-width:640px;overflow:hidden;text-align:left;width:100%}.chat__header{background:var(--surface-sunken);border-bottom:1px solid var(--ink-faint);gap:14px;padding:18px 22px}.chat__avatar,.chat__header{align-items:center;display:flex}.chat__avatar{background:var(--ink);border-radius:50%;color:var(--amber-bright);flex-shrink:0;font-size:.85rem;font-weight:600;height:40px;justify-content:center;width:40px}.chat__name{color:var(--ink);font-family:var(--font-body);font-weight:600;margin-bottom:2px}.chat__status{align-items:center;color:var(--ink-dim);display:inline-flex;font-size:.78rem;gap:7px}.chat__status-dot{background:var(--amber-bright);border-radius:50%;box-shadow:0 0 0 3px var(--amber-soft);height:7px;width:7px}@media (prefers-reduced-motion:no-preference){.chat__status-dot{animation:pulse-dot 2.4s ease-in-out infinite}}.chat__thread{gap:22px;padding:22px}.chat__pair,.chat__thread{display:flex;flex-direction:column}.chat__pair{gap:8px}.chat__bubble{font-size:.95rem;line-height:1.55;margin:0;max-width:82%;padding:12px 16px}.chat__bubble--in{align-self:flex-start;background:var(--surface-sunken);border-radius:4px 16px 16px 16px;color:var(--ink);font-weight:500}.chat__bubble--out{align-self:flex-end;background:var(--ink);border-radius:16px 16px 4px 16px;color:var(--bg)}@media (max-width:560px){.chat__bubble{max-width:92%}}.contact{background:var(--ink)}.contact,.contact h2{color:var(--bg)}.contact__intro{color:#b7b8bd;font-size:1.1rem;margin-bottom:40px;max-width:56ch}.contact-grid{background:#2a2c33;border:1px solid #2a2c33;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:1px;margin-bottom:40px;overflow:hidden}.contact-row{align-items:center;background:var(--ink);color:var(--bg);display:flex;gap:18px;padding:22px 24px;text-decoration:none;transition:background-color .2s var(--ease-out-quart)}.contact-row:hover{background:#1e2027}.contact-row--email{justify-content:space-between}.contact-row__main{align-items:center;color:inherit;display:flex;flex:1 1;gap:18px;text-decoration:none}.contact-row__icon{align-items:center;background:#d0932a29;border-radius:var(--radius-sm);color:var(--amber-bright);display:flex;flex-shrink:0;font-size:1.3rem;height:44px;justify-content:center;width:44px}.contact-row__text{display:flex;flex-direction:column;gap:2px}.contact-row__label{color:#9a9ba1;font-size:.82rem}.contact-row__value{font-family:var(--font-mono);font-size:1.05rem}.contact-row__copy{align-items:center;background:#0000;border:1px solid #3c3e46;border-radius:var(--radius-sm);color:var(--bg);cursor:pointer;display:flex;flex-shrink:0;font-size:.85rem;gap:6px;margin:0 24px;padding:8px 14px}.contact-row__copy:hover{border-color:var(--amber-bright);color:var(--amber-bright)}.contact-secondary{display:flex;flex-wrap:wrap;gap:28px}.contact-secondary__link{align-items:center;color:#c9cad0;display:inline-flex;font-size:.95rem;font-weight:500;gap:8px;text-decoration:none}.contact-secondary__link:hover{color:var(--amber-bright)}@media (max-width:640px){.contact-row{padding:18px}.contact-row--email{flex-wrap:wrap}.contact-row__copy{margin:12px 0 0}}.footer{background:var(--ink);color:var(--bg);padding:28px 0}.footer__inner{align-items:center;display:flex;gap:16px;justify-content:space-between}.footer__logo{color:var(--bg);font-size:1rem;text-decoration:none}.footer__note{color:#8a8b91;font-size:.85rem}.footer__top{align-items:center;border:1px solid #3c3e46;border-radius:50%;color:#8a8b91;display:flex;height:36px;justify-content:center;transition:color .2s var(--ease-out-quart),border-color .2s var(--ease-out-quart);width:36px}.footer__top:hover{border-color:var(--amber-bright);color:var(--amber-bright)}@media (max-width:560px){.footer__inner{flex-wrap:wrap;justify-content:center;text-align:center}}@media (max-width:640px){.project-intro,h2{text-align:center}.project-intro__description,.rates__intro{margin-left:auto;margin-right:auto}.rates__intro{text-align:center}.rates__guide-link{display:flex;margin:20px auto 0;width:fit-content}.contact__intro{margin-left:auto;margin-right:auto;text-align:center}.contact-secondary{justify-content:center}.section:not(.contact){border-top:1px solid var(--ink-faint)}.hero+.section{border-top:none}}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:500;src:url(/static/media/fraunces-vietnamese-500-normal.37d183da99a46ed9fa22.woff2) format("woff2"),url(/static/media/fraunces-vietnamese-500-normal.28f11b80b38f21fc11c3.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:500;src:url(/static/media/fraunces-latin-ext-500-normal.ab820f774ce6d08540da.woff2) format("woff2"),url(/static/media/fraunces-latin-ext-500-normal.d44309eeb0499dc13378.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Fraunces;font-style:normal;font-weight:500;src:url(/static/media/fraunces-latin-500-normal.7975c8b63048dbe5abe5.woff2) format("woff2"),url(/static/media/fraunces-latin-500-normal.db6e41366fa0f0c2d006.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:600;src:url(/static/media/fraunces-vietnamese-600-normal.729fcb9d6ddf510cad7c.woff2) format("woff2"),url(/static/media/fraunces-vietnamese-600-normal.ca9b5e09dfbccabcc584.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:600;src:url(/static/media/fraunces-latin-ext-600-normal.c001a40e1d4c09219d77.woff2) format("woff2"),url(/static/media/fraunces-latin-ext-600-normal.846d7b20a2e5f7cf0cbf.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Fraunces;font-style:normal;font-weight:600;src:url(/static/media/fraunces-latin-600-normal.2ff38412868fc8bf103b.woff2) format("woff2"),url(/static/media/fraunces-latin-600-normal.abcc7b0dbd26f0a00e13.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-cyrillic-ext-400-normal.c7f19d6795be43c1647b.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-ext-400-normal.5b7e59c2b55016b43956.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-cyrillic-400-normal.f55992bec61fac647a43.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-400-normal.c4aae3aa3c88327f34ff.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-greek-400-normal.173a235dfc0f0cb815f0.woff2) format("woff2"),url(/static/media/ibm-plex-sans-greek-400-normal.c71f9181cb26e36962cc.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-vietnamese-400-normal.a9c0738f08c3b2b7c486.woff2) format("woff2"),url(/static/media/ibm-plex-sans-vietnamese-400-normal.c17b6e031af6463841fb.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-latin-ext-400-normal.11781b13e59d30facc40.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-ext-400-normal.24d83b525f192cb3d1ca.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-sans-latin-400-normal.3160b5c6767eb4c69c78.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-400-normal.65b2eda743bf11103476.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-cyrillic-ext-500-normal.bf4ba7689c1c873083d6.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-ext-500-normal.502b749418e91f6ec84e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-cyrillic-500-normal.aa1edf9c09d921c7710a.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-500-normal.d010060bc8d2b38e3767.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-greek-500-normal.b4df5194a9b00b517462.woff2) format("woff2"),url(/static/media/ibm-plex-sans-greek-500-normal.94671ea6706bf9a62ff4.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-vietnamese-500-normal.032cc11fc5aa88f634f8.woff2) format("woff2"),url(/static/media/ibm-plex-sans-vietnamese-500-normal.89666946bba6060cd645.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-latin-ext-500-normal.d8f3e27fbeccd900a867.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-ext-500-normal.7e8aef37b06800e20ef5.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-sans-latin-500-normal.fcd7b8c3d12375eedc97.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-500-normal.4b130dfcfa945eac3e54.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-cyrillic-ext-600-normal.0a51b2f38b29d4091556.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-ext-600-normal.6b943717131f2e6cc42c.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-cyrillic-600-normal.e07c188c118d4142e480.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-600-normal.2e3e0b0b4224d519869e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-greek-600-normal.1fb74172d11b0014a7fe.woff2) format("woff2"),url(/static/media/ibm-plex-sans-greek-600-normal.dfea56a150d465fd323a.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-vietnamese-600-normal.1e7f665a0c00db1aee4b.woff2) format("woff2"),url(/static/media/ibm-plex-sans-vietnamese-600-normal.9a97e0373f1f8eebef08.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-latin-ext-600-normal.57f2c00df3cb0b0cff43.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-ext-600-normal.5051947b55c2e3d31cc2.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-sans-latin-600-normal.24bc59b4b4ad02d1666d.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-600-normal.d73e2e25bcd162ae992f.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-cyrillic-ext-700-normal.8743554c96ec7bd0804f.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-ext-700-normal.071a0292f006b9ecdd44.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-cyrillic-700-normal.4760ba1e0e76b927b015.woff2) format("woff2"),url(/static/media/ibm-plex-sans-cyrillic-700-normal.9402b432a2e78403414e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-greek-700-normal.9db89ac07fc88fe4cd23.woff2) format("woff2"),url(/static/media/ibm-plex-sans-greek-700-normal.8159b6cef1425dc37ee2.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-vietnamese-700-normal.6879ecb90d9d0922523c.woff2) format("woff2"),url(/static/media/ibm-plex-sans-vietnamese-700-normal.e9d512669132a5535b2f.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-latin-ext-700-normal.ee3a0d8f4dabfc102030.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-ext-700-normal.030dbfa556e131505e09.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-sans-latin-700-normal.cc104bdc19efb9831e65.woff2) format("woff2"),url(/static/media/ibm-plex-sans-latin-700-normal.07479b3959672b80189f.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-cyrillic-ext-400-normal.c5a38b926939e1f1ca99.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-400-normal.cd5f0922a60470e1bde4.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-cyrillic-400-normal.c6f862a99064981cc8ee.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-400-normal.c45eb9547383e10d0f20.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-vietnamese-400-normal.fa0747293826f3ba17f2.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-400-normal.d4e725bc424dbf53dc36.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-latin-ext-400-normal.081b2e53053c361ddb54.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-400-normal.52bdf7642f685aaccf13.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-latin-400-normal.2b13cc93b07c41b27134.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-400-normal.12ede62e388083e7c01c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-cyrillic-ext-500-normal.0cef616364a9e45506c9.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-500-normal.32dc85f4f2d15c29e3c5.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-cyrillic-500-normal.93f9e00744ba26615214.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-500-normal.15083deeb53439b48cb0.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-vietnamese-500-normal.acbf296481a133b31c7a.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-500-normal.6412cb41302803180f86.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-latin-ext-500-normal.c28c19b51fcc5afd6835.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-500-normal.0324453e532da2451cdd.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-latin-500-normal.a1fc5384545ba0657d83.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-500-normal.89a2903adc59285a5efa.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#f7f7f7;--surface:#fff;--surface-sunken:#f1f1f0;--ink:#14161b;--ink-dim:#4b4e55;--ink-faint:#d3d4d7;--amber:#7a5308;--amber-bright:#d0932a;--amber-soft:#f7e8c8;--rose:#9a3b2c;--rose-soft:#f6e4df;--font-display:"Fraunces","Iowan Old Style",ui-serif,Georgia,serif;--font-body:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--container-max:1160px;--radius-sm:8px;--radius-md:12px;--radius-pill:999px;--z-sticky:100;--z-modal:200;--z-toast:300;--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-out-expo:cubic-bezier(0.16,1,0.3,1);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f7f7;background:var(--bg);font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:16px;line-height:1.6;padding:0}body,h1,h2,h3,h4{color:#14161b;color:var(--ink);margin:0}h1,h2,h3,h4{text-wrap:balance;font-family:Fraunces,Iowan Old Style,ui-serif,Georgia,serif;font-family:var(--font-display);font-weight:560;letter-spacing:-.02em;line-height:1.08}p{text-wrap:pretty;margin:0}a{color:inherit}button{font-family:inherit}.mono,code{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}img{display:block;max-width:100%}:focus-visible{border-radius:4px;outline:2px solid #7a5308;outline:2px solid var(--amber);outline-offset:3px}.skip-link{background:#14161b;background:var(--ink);border-radius:0 0 8px 0;border-radius:0 0 var(--radius-sm) 0;color:#f7f7f7;color:var(--bg);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.9rem;left:-9999px;padding:12px 20px;position:absolute;text-decoration:none;top:0;z-index:300;z-index:var(--z-toast)}.skip-link:focus{left:0}::selection{background:#f7e8c8;background:var(--amber-soft);color:#14161b;color:var(--ink)}
/*# sourceMappingURL=main.27c59f8a.css.map*/