/*
 * Front-end base CSS bundle.
 * Edit source files under public/css/foundations, public/css/components, or public/css/share-components.css.
 * Rebuild with: npm run build:front-css
 */
@keyframes vt-root-out{to{opacity:0;transform:translateY(-.625rem)}}@keyframes vt-root-in{0%{opacity:0;transform:translateY(1.125rem)}}@keyframes translate-spin{to{transform:rotate(360deg)}}:root{--font-root-desktop:16px;--font-root-mobile:14px;--font-sans:'Plus Jakarta Sans', 'Noto Sans SC', "Microsoft YaHei", sans-serif;--color-ink:#141414;--color-muted:#6f6f6f;--color-soft:#a7a7a7;--color-line:#e7e3dc;--color-paper:#fbfaf7;--color-surface:#ffffff;--color-inverse:#ffffff;--color-accent:#19a96b;--text-xs:0.6875rem;--text-sm:0.8125rem;--text-xl:var(--fluid-3);--fluid-1:clamp(1.0625rem, 1.5vw, 1.5rem);--fluid-2:clamp(1.375rem, 2.5vw, 2rem);--fluid-3:clamp(1.5rem, 3vw, 2.5rem);--fluid-4:clamp(1.75rem, 4vw, 3.5rem);--fluid-5:clamp(2rem, 5vw, 4.5rem);--fluid-6:clamp(2.25rem, 6vw, 6rem);--fluid-7:clamp(2.75rem, 8vw, 7rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius:0.1875rem;--radius-md:0.5rem;--radius-full:999rem;--container-pad:clamp(1.25rem, 4vw, 4rem);--grid-gap:clamp(0.5rem, 1vw, 1rem);--nav-height:4.5rem;--shadow-sm:0 0.0625rem 0.0625rem 0 rgb(0 0 0 / 0.03);--shadow:0 0.0625rem 0.125rem 0 rgb(0 0 0 / 0.05);--ease-standard:cubic-bezier(.2, .7, .2, 1);--ease-emphasis:cubic-bezier(.16, 1, .3, 1);--duration-fast:160ms;--duration-base:320ms;--duration-slow:720ms;--leading-tight:0.95;--leading-none:1;--leading-snug:1.2;--leading-normal:1.5;--leading-loose:1.75;--tracking-wide:0.08em;--tracking-wider:0.16em}html{font-size:var(--font-root-desktop)}@media (max-width:48rem){html{font-size:var(--font-root-mobile)}}*,::after,::before{box-sizing:border-box}body,html{min-height:100%}html{scroll-behavior:smooth}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:var(--leading-loose);top:0!important}img,picture,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.visually-hidden{position:absolute!important;width:.0625rem!important;height:.0625rem!important;padding:0!important;margin:-.0625rem!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}body,h1,h2,h3,h4,h5,h6,p{margin:0}h1,h2,h3{line-height:var(--leading-none);letter-spacing:0}h1,h2,h3,p{font-weight:300}.eyebrow,.fine-copy,p{color:var(--color-muted)}.eyebrow{font-size:var(--text-xs);font-weight:400;letter-spacing:0;text-transform:uppercase}.fine-copy{font-weight:300;line-height:var(--leading-loose)}.container,.site-container{width:100%;max-width:80rem;margin:0 auto;padding-inline:var(--container-pad)}.site-container{max-width:105rem}.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-12{grid-column:span 12}@media (max-width:53.75rem){.grid-12{grid-template-columns:repeat(4,minmax(0,1fr))}.span-12,.span-3,.span-4,.span-5,.span-6,.span-7,.span-8,.span-9{grid-column:1/-1}}@view-transition{navigation:auto}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:vt-root-out var(--duration-base) var(--ease-standard) both}::view-transition-new(root){animation:vt-root-in var(--duration-slow) var(--ease-emphasis) both}.js .reveal,.js [data-reveal-group]>*{opacity:0;transform:translateY(1.75rem);transition:opacity var(--duration-slow) var(--ease-emphasis),transform var(--duration-slow) var(--ease-emphasis);transition-delay:calc(var(--reveal-i, 0)*80ms);will-change:opacity,transform}.js .reveal.is-visible,.js [data-reveal-group].is-visible>*{opacity:1;transform:translateY(0)}.js [data-reveal-group]>*{transform:translateY(1.25rem)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}*,::after,::before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;color:var(--color-ink);background:linear-gradient(30deg,rgba(251,250,247,.7),rgba(251,250,247,.1));backdrop-filter:blur(1.125rem);view-transition-name:site-navbar}.navbar::before{content:"";position:absolute;inset:0;border-bottom:.0625rem solid rgba(20,20,20,.08);background:inherit;backdrop-filter:inherit}.navbar-content{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:var(--nav-height);padding:0 var(--container-pad)}.logo,.logo-text{display:inline-flex;align-items:center}.logo{position:relative;min-width:4rem;color:inherit;font-size:var(--text-sm);letter-spacing:0;z-index:1}.logo::before{content:"";display:none;flex:0 0 auto;width:5.875rem;height:3rem;background-image:var(--site-logo-image);background-repeat:no-repeat;background-position:left center;background-size:contain}.has-cached-site-logo .logo::before{display:block}.logo-text{min-height:3rem;font-size:1rem;font-weight:500;letter-spacing:.18em;white-space:nowrap}.has-cached-site-logo .logo-text,.logo [data-logo-placeholder][hidden]{display:none!important}.has-cached-site-logo .logo img{position:absolute;width:.0625rem;height:.0625rem;opacity:0;pointer-events:none}.logo img{width:5.875rem;max-height:3rem;object-fit:contain;filter:none;transition:width var(--duration-base) var(--ease-standard),max-height var(--duration-base) var(--ease-standard)}.nav-links,.nav-menu{display:flex;align-items:center}.nav-links{z-index:1;gap:var(--space-5);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.nav-menu{gap:var(--space-6);margin:0;padding:0;list-style:none}.nav-menu::after{content:"";position:absolute;left:var(--indicator-left, 0);bottom:.125rem;width:var(--indicator-width, 0);height:.125rem;background:currentColor;opacity:var(--indicator-opacity, 0);transition:left var(--duration-base) var(--ease-standard),width var(--duration-base) var(--ease-standard),opacity var(--duration-base) var(--ease-standard)}.nav-menu,.nav-more{position:relative}.nav-more__trigger{display:inline-flex;justify-content:center;align-items:center;width:2.625rem;height:2.625rem;border:0;background:0 0;color:inherit;cursor:pointer}.nav-more__icon{width:1.125rem;height:1.125rem;overflow:visible}.nav-more__line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;transition:opacity var(--duration-base) var(--ease-standard)}.nav-more__trigger:focus-visible,.nav-more__trigger:hover{opacity:.72}body.nav-more-open .nav-more__trigger,body.nav-more-open .nav-toggle{opacity:0;pointer-events:none;visibility:hidden}.nav-more.is-open .nav-more__line--middle{opacity:0}.nav-link{position:relative;display:inline-flex;padding:var(--space-2)0;color:inherit;font-weight:400}.nav-more__menu,.nav-more__overlay{position:fixed;top:0;height:100vh;opacity:0;pointer-events:none}.nav-more__overlay{left:0;z-index:1100;width:100vw;background:0 0;transition:opacity var(--duration-base) var(--ease-standard)}.nav-more__menu{right:0;z-index:1101;width:min(44vw,43rem);min-width:26rem;padding:calc(var(--nav-height) + 2rem) clamp(1.75rem,3vw,2.5rem) 2rem;border-left:.0625rem solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 18%),linear-gradient(155deg,#1a1d25 0,#111318 46%,#090b10 100%);color:rgba(255,255,255,.92);box-shadow:-1.5rem 0 3.75rem rgba(0,0,0,.28);overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;transform:translateX(100%);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) cubic-bezier(.22,1,.36,1)}.nav-more__menu::-webkit-scrollbar{display:none;width:0;height:0}.nav-more__menu::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) .0625rem,transparent .0625rem),linear-gradient(90deg,rgba(255,255,255,.04) .0625rem,transparent .0625rem);background-size:1.75rem 1.75rem;opacity:.24;pointer-events:none}.nav-more__close{position:absolute;top:calc(var(--nav-height) - 2rem);right:clamp(1.75rem,3vw,2.5rem);z-index:2;width:2.5rem;height:2.5rem;border:0;border-radius:var(--radius-full);background:rgba(255,255,255,.04);color:var(--color-inverse);cursor:pointer;transition:background var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-emphasis)}.nav-more__close:hover{background:rgba(255,255,255,.1);transform:rotate(90deg)}.nav-more__close span{position:absolute;top:50%;left:50%;width:1rem;height:.0625rem;background:currentColor}.nav-more__close span:first-child{transform:translate(-50%,-50%) rotate(45deg)}.nav-more__close span:last-child{transform:translate(-50%,-50%) rotate(-45deg)}.nav-more__nav{position:relative;z-index:1}.nav-more__list{margin:0;padding:0;list-style:none;border-top:.0625rem solid rgba(255,255,255,.12)}.nav-more__item{border-bottom:.0625rem solid rgba(255,255,255,.12);opacity:0;transform:translateY(.75rem);transition:opacity var(--duration-base) var(--ease-emphasis),transform var(--duration-base) var(--ease-emphasis)}.nav-more.is-open .nav-more__item{opacity:1;transform:none}.nav-more.is-open .nav-more__item:nth-child(1){transition-delay:90ms}.nav-more.is-open .nav-more__item:nth-child(2){transition-delay:140ms}.nav-more.is-open .nav-more__item:nth-child(3){transition-delay:190ms}.nav-more.is-open .nav-more__item:nth-child(4){transition-delay:240ms}.nav-more.is-open .nav-more__item:nth-child(5){transition-delay:290ms}.nav-more__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;min-height:3rem}.nav-more__label{position:relative;display:inline-block;padding:var(--space-5)0;color:rgba(255,255,255,.92);font-size:var(--fluid-2);font-weight:300;line-height:var(--leading-none);transition:color var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}a.nav-more__label{flex:1}.nav-more__label:hover,.nav-more__row:hover .nav-more__label{color:var(--color-accent);transform:translateX(.4rem)}.nav-more__sub>ul{margin:0;padding:0 0 var(--space-3);list-style:none}.nav-more__sub a{display:inline-flex;padding:var(--space-2)0 var(--space-2) var(--space-4);color:rgba(255,255,255,.56);transition:color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.nav-more__sub a:hover{transform:translateX(.4rem)}.nav-more__footer{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-8);padding-top:var(--space-5);border-top:.0625rem solid rgba(255,255,255,.12);opacity:0;transition:opacity var(--duration-slow) var(--ease-standard)}.nav-more.is-open .nav-more__footer{opacity:1;transition-delay:340ms}.nav-more__contact-link,.nav-more__minor-link{color:rgba(255,255,255,.72);font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-standard)}.nav-more__minor-link{margin-top:var(--space-2);color:rgba(255,255,255,.56);font-size:var(--text-xs)}.nav-more__contact-link:hover,.nav-more__minor-link:hover,.nav-more__sub a:hover{color:var(--color-inverse)}.nav-more.is-open .nav-more__overlay{opacity:1;pointer-events:auto}.nav-more.is-open .nav-more__menu{opacity:1;pointer-events:auto;transform:translateX(0)}.lang-toggle-btn{z-index:1}.nav-toggle{z-index:1;border:0;background:0 0;color:inherit;display:none;align-items:center;justify-content:center;width:2.625rem;height:2.625rem;padding:0}@media (max-width:53.75rem){.navbar-content{padding-inline:1.25rem}.nav-toggle{display:inline-flex;border:.0625rem solid rgba(20,20,20,.12);border-radius:var(--radius-full);background:rgba(251,250,247,.86);backdrop-filter:blur(.75rem)}.nav-links{position:static;display:inline-flex;align-items:center;gap:0;padding:0;border:0;background:0 0;color:inherit;opacity:1;pointer-events:auto;transform:none;transition:none}.lang-toggle-btn{min-width:2rem;padding:var(--space-2)0;text-align:center}.nav-menu{display:none}.nav-more{position:static;display:block}.nav-more__trigger{display:none}.nav-more__overlay{display:block}.nav-more__menu{width:min(100vw,28rem);min-width:0;max-width:100vw;padding:calc(var(--nav-height) + 1.25rem) 1.25rem 1.5rem}.nav-more__label{font-size:var(--fluid-1)}.nav-more__row{min-height:3.5rem}}@font-face{font-family:"Plus Jakarta Sans";font-weight:300;font-style:normal;font-display:swap;src:url(/fonts/PlusJakartaSans-Light.woff2)format("woff2")}#goog-gt-tt,#google_translate_element,.goog-te-balloon-frame,.goog-te-banner-frame,.goog-te-gadget,.goog-tooltip,.goog-tooltip:hover{display:none!important;visibility:hidden!important}.skiptranslate{display:none!important}.lang-toggle-btn{padding:var(--space-2);border:0;background:0 0;color:inherit;font-family:var(--font-sans);cursor:pointer}.lang-toggle-btn.is-en,.lang-toggle-btn:hover{color:var(--color-accent)}#translate-loading-overlay{display:none;position:fixed;inset:0;z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);background:rgba(251,250,247,.92);backdrop-filter:blur(.375rem);-webkit-backdrop-filter:blur(.375rem)}#translate-loading-overlay.active{display:flex}.translate-spinner{width:2.25rem;height:2.25rem;border:.125rem solid var(--color-line);border-top-color:var(--color-accent);border-radius:var(--radius-full);animation:translate-spin .7s linear infinite}.translate-loading-text{color:var(--color-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:300;letter-spacing:0}@media (prefers-reduced-motion:reduce){.translate-spinner{animation:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.75rem;padding:0 var(--space-5);border:.0625rem solid transparent;border-radius:var(--radius-full);font-size:var(--text-sm);line-height:var(--leading-none);text-decoration:none;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.btn-primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-inverse)}.btn-primary:hover{transform:translateY(-.0625rem);box-shadow:var(--shadow-sm)}.btn-outline{background:0 0;border-color:currentColor;color:inherit}.btn-outline:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-inverse)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:.125rem solid var(--color-accent);outline-offset:.125rem}.button-outline,.quiet-link,.text-link{display:inline-flex;align-items:center;font-size:var(--text-sm)}.quiet-link,.text-link{gap:var(--space-2);color:var(--color-ink);line-height:var(--leading-none)}.quiet-link::after,.text-link::after{content:"";width:1.625rem;height:.0625rem;background:var(--color-accent);transform-origin:left;transition:transform var(--duration-base) var(--ease-standard)}.quiet-link:hover::after,.text-link:hover::after{transform:scaleX(2)}.button-outline{justify-content:center;min-height:2.75rem;padding:0 var(--space-5);border:.0625rem solid currentColor;border-radius:var(--radius-full);background:0 0;color:inherit;transition:background var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard)}.button-outline:hover,.footer{background:var(--color-ink);color:var(--color-inverse)}.footer-content{padding:var(--space-8) var(--container-pad) var(--space-6)}.footer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--grid-gap);align-items:start}.footer-brand{display:grid;gap:var(--space-4);align-content:start}.footer-logo-text,.footer-logo-wrap{display:inline-flex;align-items:center}.footer-logo-wrap{position:relative;min-height:2.5rem}.footer-logo-wrap::before{content:"";display:none;flex:0 0 auto;width:7.5rem;height:2.5rem;background-image:var(--site-logo-image);background-repeat:no-repeat;background-position:left center;background-size:contain;filter:brightness(0) invert(1)}.has-cached-site-logo .footer-logo-wrap::before{display:block}.footer-logo-text{font-size:1rem;letter-spacing:.18em;color:var(--color-inverse)}.footer-logo-wrap [data-logo-placeholder][hidden],.has-cached-site-logo .footer-logo-text{display:none!important}.has-cached-site-logo .footer-logo-wrap img{position:absolute;width:.0625rem!important;height:.0625rem!important;max-width:.0625rem!important;max-height:.0625rem!important;opacity:0;pointer-events:none}.footer-logo-wrap img{width:7.5rem;max-height:2.5rem;object-fit:contain;filter:brightness(0) invert(1)}.contact-info,.footer-info,.footer-social{color:rgba(255,255,255,.74);font-size:var(--text-sm)}.contact-info{display:grid;max-width:20rem;gap:var(--space-2)}.footer a{color:inherit}.footer-info{padding:var(--space-4) var(--container-pad) var(--space-6);border-top:.0625rem solid rgba(255,255,255,.12);text-align:center}@media (max-width:53.75rem){.footer-row{grid-template-columns:1fr}}.faq-section{padding:var(--space-9) var(--container-pad);background:var(--color-surface)}.faq-container{max-width:61.25rem;margin:0 auto}.faq-title{margin-bottom:var(--space-6);color:var(--color-ink);font-size:var(--fluid-4)}.faq-list{border-top:.0625rem solid var(--color-line)}.faq-item{border-bottom:.0625rem solid var(--color-line)}.faq-question{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-5)0;border:0;background:0 0;color:var(--color-ink);text-align:left}.faq-question-text{font-size:var(--fluid-1);font-weight:300}.faq-icon{flex:0 0 auto;position:relative;display:inline-block;width:1.125rem;height:1.125rem;color:var(--color-muted);font-size:0;line-height:0;transform:rotate(0deg);transform-origin:center;transition:transform var(--duration-base) cubic-bezier(.22,1,.36,1),color var(--duration-base) var(--ease-standard);will-change:transform}.faq-icon::after,.faq-icon::before{content:"";position:absolute;top:50%;left:50%;width:100%;height:.125rem;border-radius:var(--radius-full);background:currentColor;transform:translate(-50%,-50%)}.faq-icon::after{width:.125rem;height:100%}.faq-question.active .faq-icon{color:var(--color-ink);transform:rotate(45deg)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-base) var(--ease-standard)}.faq-answer.active{grid-template-rows:1fr}.faq-answer-content{min-height:0;overflow:hidden;color:var(--color-muted);line-height:var(--leading-loose)}.faq-answer.active .faq-answer-content{padding-bottom:var(--space-5)}.share-button-container{position:relative;display:inline-block}.share-button,.share-menu{border-radius:var(--radius-full)}.share-button{display:inline-flex;align-items:center;justify-content:center;width:2.1875rem;height:2.1875rem;color:var(--color-muted);cursor:pointer;transition:all .3s ease;padding:0;margin:.3125rem 0;background-color:transparent}.share-button:active,.share-button:hover{color:var(--color-inverse);background-color:var(--color-ink)}.share-button:hover{box-shadow:0 .125rem .5rem rgba(0,0,0,.12)}.share-button:active{transform:translateY(0)}.share-button-container .btn,.share-button-container button{border:0;outline:0}.share-menu{position:absolute;top:0;right:0;margin-top:0;background:var(--color-paper);box-shadow:0 .25rem .75rem rgba(0,0,0,.12);z-index:1000;display:flex;flex-direction:column;min-width:2.1875rem;overflow:hidden;opacity:0;transform:translateY(0);transition:opacity .2s ease-out,transform .2s ease-out}.share-menu.active{opacity:1;transform:translateY(-6.875rem)}.share-option{display:flex;align-items:center;justify-content:center;padding:.5rem;background:0 0;border:0;cursor:pointer;transition:background-color .2s ease;font-size:1.25rem;color:var(--color-muted)}.share-option:hover{background:var(--color-paper)}.share-option:nth-child(1):hover,.share-option:nth-child(2):hover,.share-option:nth-child(3):hover{color:var(--color-ink);background:var(--color-surface)}.share-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.86);color:var(--color-inverse);padding:.75rem;border-radius:var(--radius-md);font-size:1.25rem;z-index:9999;opacity:0;transition:opacity .3s ease;pointer-events:none;white-space:nowrap}.share-toast.show{opacity:1}@media (max-width:48rem){.share-menu{right:auto;left:0}.share-option{padding:.625rem;font-size:1.125rem}}.portfolio-meta .share-button-container{margin-left:auto}.portfolio-meta{display:flex;align-items:center;justify-content:flex-end}.portfolio-meta button{border:0}
