@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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{--canvas:#fff;--surface:#f6f6f7;--line:#e2e2e3;--text:#16161a;--muted:#5a5a61;--faint:#8a8a90;--accent:#185fa5;--accent-hover:#0c447c;--accent-soft:#e6f1fb;--accent-wash:#f3f8fd;--accent-line:#b5d4f4;--shadow:0 8px 24px #3c3c4314;--shadow-pop:0 12px 32px #3c3c4324;--radius:14px;color:var(--text);background:var(--canvas);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter Variable,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}::selection{background:var(--accent-soft);color:var(--text)}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-width:320px;scroll-padding-top:5rem}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0;font-size:1rem;line-height:1.5;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit}a{color:inherit;transition:color .18s,background-color .18s,border-color .18s,box-shadow .18s}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{z-index:100;background:var(--text);color:var(--canvas);padding:.65rem .8rem;font-size:.9rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;min-height:4rem;position:fixed;inset:0 0 auto}.site-nav{justify-content:space-between;align-items:center;gap:1.5rem;width:min(100%,1440px);min-height:4rem;margin:0 auto;padding:0 clamp(1rem,3vw,2rem);display:flex}.site-mark{color:var(--text);letter-spacing:-.04em;white-space:nowrap;flex:none;font-size:1.05rem;font-weight:750;line-height:1;text-decoration:none}.site-mark-short{display:none}.site-links{align-items:center;gap:.1rem;display:flex}.site-links>a,.language-toggle{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0 .7rem;font-size:.88rem;font-weight:620;text-decoration:none;transition:color .18s,background-color .18s;display:inline-flex}.site-links>a:hover{color:var(--accent);background:var(--surface)}.language-toggle:hover{color:var(--accent-hover);background:var(--surface)}.language-toggle{border-left:1px solid var(--line);color:var(--accent);letter-spacing:.04em;margin-left:.35rem;font-size:.76rem}.page-shell{width:min(100%,1152px);margin:0 auto;padding:0 clamp(1.25rem,4vw,4rem)}section[id]{scroll-margin-top:5.5rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero{padding:clamp(7rem,12vw,10.5rem) 0 clamp(3rem,6vw,4.5rem)}.hero-title{max-width:15em;color:var(--text);letter-spacing:-.05em;margin:0;font-size:clamp(2.5rem,6.2vw,4.75rem);font-weight:760;line-height:1.06}.hero-title:after{content:".";color:var(--accent)}.hero-lede{max-width:44ch;color:var(--muted);margin:clamp(1.25rem,2.5vw,1.75rem) 0 0;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.7}.content-section{border-top:1px solid var(--line);padding:clamp(3.5rem,7vw,5.5rem) 0}.content-section-last{border-bottom:1px solid var(--line)}.section-head{margin-bottom:clamp(1.5rem,3vw,2rem)}.section-head h2{color:var(--text);letter-spacing:-.05em;margin:0;font-size:clamp(1.5rem,3vw,2.1rem);font-weight:720;line-height:1.15}.project-list{border-top:1px solid var(--line)}.project-item{border-bottom:1px solid var(--line)}.project-row{cursor:pointer;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0 -.75rem;padding:1.15rem .75rem;list-style:none;transition:background-color .18s;display:flex}.project-row::-webkit-details-marker{display:none}.project-row:hover{background:var(--accent-wash)}.project-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.project-index{color:var(--accent);letter-spacing:.08em;flex:none;font-size:.78rem;font-weight:650}.project-name{color:var(--text);letter-spacing:-.03em;flex:none;margin:0;font-size:clamp(1.05rem,1.7vw,1.25rem);font-weight:680}.project-tagline{min-width:0;color:var(--muted);flex:10rem;font-size:.9rem}.project-status{color:var(--faint);flex:none;font-size:.8rem}.project-chevron{color:var(--faint);flex:none;place-items:center;transition:transform .2s,color .18s;display:grid}.project-chevron svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px;height:16px}.project-row:hover .project-chevron{color:var(--accent)}.project-item[open] .project-chevron{color:var(--accent);transform:rotate(180deg)}.project-detail{max-width:62ch;padding:0 .75rem 1.5rem;animation:.22s project-open}@keyframes project-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.project-detail p{color:var(--muted);margin:0;line-height:1.75}.project-detail .text-link{margin-top:1rem}.text-link{color:var(--accent);align-items:center;gap:.4rem;font-size:.92rem;font-weight:620;text-decoration:none;display:inline-flex}.text-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:.9rem;height:.9rem;transition:transform .18s}.text-link:hover{color:var(--accent-hover)}.text-link:hover svg{transform:translate(2px,-2px)}.product-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;display:grid}.product-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);flex-direction:column;min-height:clamp(14rem,20vw,17rem);padding:clamp(1.5rem,3vw,2.25rem);transition:border-color .18s,box-shadow .18s;display:flex}.product-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow)}.card-index{color:var(--accent);letter-spacing:.1em;margin-bottom:1.5rem;font-size:.78rem;font-weight:650}.product-card h3{color:var(--text);letter-spacing:-.03em;margin:auto 0 0;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:680}.product-card p{color:var(--muted);margin:.65rem 0 0;font-size:.95rem;line-height:1.65}.social-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.social-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);min-height:clamp(9.5rem,14vw,11.5rem);color:var(--text);text-align:left;cursor:pointer;flex-direction:column;justify-content:space-between;padding:clamp(1.1rem,2vw,1.4rem);text-decoration:none;transition:border-color .18s,box-shadow .18s;display:flex;position:relative}button.social-card{font:inherit}.social-card:hover,.social-card:focus-visible{border-color:var(--accent-line);box-shadow:var(--shadow)}.social-icon{background:var(--surface);width:40px;height:40px;color:var(--text);border-radius:10px;place-items:center;transition:background-color .18s,color .18s;display:grid}.social-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:20px;height:20px}.social-card:hover .social-icon,.social-card:focus-visible .social-icon{background:var(--accent);color:var(--canvas)}.social-text{flex-direction:column;margin-top:1.5rem;display:flex}.social-name{letter-spacing:-.02em;font-size:1.02rem;font-weight:680;line-height:1.25}.social-desc{color:var(--muted);margin-top:.2rem;font-size:.82rem}.social-external{color:var(--faint);transition:color .18s;position:absolute;top:1.15rem;right:1.15rem}.social-external svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px;height:16px}.social-card:hover .social-external{color:var(--accent)}.social-qr{z-index:30;border:1px solid var(--line);background:var(--canvas);width:12.5rem;box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;border-radius:12px;padding:.6rem;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%,-4px)}.social-card:first-child .social-qr{left:0;transform:translateY(-4px)}.social-card:last-child .social-qr{left:auto;right:0;transform:translateY(-4px)}.social-qr img{border-radius:8px;width:100%;height:auto;display:block}@media (hover:hover) and (pointer:fine){.social-card:hover .social-qr{opacity:1;transform:translate(-50%)}.social-card:first-child:hover .social-qr,.social-card:last-child:hover .social-qr{transform:translate(0)}}.social-card:focus-visible .social-qr{opacity:1;transform:translate(-50%)}.social-card:first-child:focus-visible .social-qr,.social-card:last-child:focus-visible .social-qr{transform:translate(0)}.site-footer{width:min(100%,1152px);color:var(--muted);letter-spacing:.02em;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:1.75rem clamp(1.25rem,4vw,4rem) 3rem;font-size:.8rem;display:flex}.site-footer p{margin:0}.footer-top{color:var(--muted);text-decoration:none}.footer-top:hover{color:var(--accent)}.qr-dialog{border:1px solid var(--line);background:var(--canvas);width:min(18rem,100vw - 2rem);max-height:calc(100vh - 2rem);color:var(--text);border-radius:16px;margin:auto;padding:0;overflow:auto;box-shadow:0 1.5rem 4rem #18181b2e}.qr-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#18181b47}.qr-dialog figure{margin:0;padding:1rem}.qr-dialog img{border-radius:8px;width:100%;height:auto;display:block}.qr-dialog figcaption{color:var(--muted);text-align:center;margin:.75rem 0 .25rem}.qr-dialog-close{width:44px;height:44px;color:var(--text);cursor:pointer;background:#ffffffeb;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:.5rem;right:.5rem}.qr-dialog-close:hover{background:var(--surface)}.qr-dialog-close svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:1.1rem;height:1.1rem}@media (max-width:900px){.social-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.social-qr{display:none}.social-card{min-height:9rem}}@media (max-width:800px){.site-links>a,.language-toggle{padding:0 .45rem;font-size:.84rem}.language-toggle{margin-left:.15rem}.hero{padding-top:6.5rem}.content-section{padding:3.25rem 0}.project-tagline{order:3}.project-status{order:4}.project-chevron{order:2;margin-left:auto}}@media (max-width:420px){.site-nav{gap:.5rem;padding:0 .75rem}.site-mark{font-size:.98rem}.site-mark-full{display:none}.site-mark-short{display:inline}.site-links{gap:0}.site-links>a,.language-toggle{padding:0 .3rem;font-size:.78rem}.page-shell{padding:0 1.25rem}.social-grid{gap:.75rem}.social-card{padding:1.1rem}.site-footer{flex-direction:column;align-items:flex-start;gap:.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/*$vite$:1*/