:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.header{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#fffffff5;border-bottom:1px solid #e5e5e5;width:100%;position:fixed;top:0;left:0}.header-inner{justify-content:space-between;align-items:center;width:min(1126px,100%);margin:0 auto;padding:24px 32px;display:flex}.logo{color:#111;align-items:center;gap:12px;text-decoration:none;display:flex}.logo-image{object-fit:contain;width:52px;height:52px}.logo strong{letter-spacing:.08em;font-size:20px}.navigation{align-items:center;gap:36px;display:flex}.navigation a{color:#111;letter-spacing:.06em;font-size:14px;text-decoration:none}.navigation a:hover{opacity:.5}@media (width<=700px){.header-inner{padding:18px 20px}.logo-image{width:42px;height:42px}.logo strong{font-size:16px}.navigation{display:none}}.footer{color:#fff;background-color:#171918;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.footer-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;width:min(1126px,100%);min-height:190px;margin:0 auto;padding:48px 36px;display:grid}.footer a{color:inherit;text-decoration:none}.footer-contact{letter-spacing:.08em;align-items:center;gap:14px;width:fit-content;font-size:17px;display:flex}.footer-contact:hover{opacity:.6}.footer-information{color:#777;font-size:12px}.footer-socials{justify-content:flex-end;align-items:center;gap:28px;display:flex}.footer-socials a{font-size:15px;font-weight:600}.footer-socials a:hover{opacity:.5}@media (width<=800px){.footer-inner{grid-template-columns:1fr;gap:36px;min-height:auto;padding:48px 24px}.footer-socials{justify-content:flex-start}}.home-projects{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:200px;grid-auto-flow:dense;gap:24px;padding:24px;display:grid}.home-project-card{color:#fff;isolation:isolate;background-color:#222;width:100%;height:100%;text-decoration:none;display:block;position:relative;overflow:hidden}.home-project-card-large{grid-area:span 2/span 2}.home-project-card:after{z-index:1;opacity:0;content:"";background-color:#0009;transition:opacity .35s;position:absolute;inset:0}.home-project-image{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.home-project-info{z-index:2;color:#fff;text-align:center;opacity:0;width:calc(100% - 40px);transition:opacity .35s,transform .35s;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.home-project-info p{color:#fff;letter-spacing:.14em;margin:0 0 10px;font-size:12px}.home-project-info h2{color:#fff;margin:0;font-size:24px;font-weight:600;line-height:1.4}.home-project-info span{color:#fff;letter-spacing:.08em;margin-top:14px;font-size:13px;display:block}.home-project-card:hover .home-project-image{transform:scale(1.08)}.home-project-card:hover:after{opacity:1}.home-project-card:hover .home-project-info{opacity:1;transform:translate(-50%,-50%)}.home-project-card:focus-visible{outline-offset:3px;outline:3px solid #111}.home-project-card:focus-visible .home-project-image{transform:scale(1.08)}.home-project-card:focus-visible:after{opacity:1}.home-project-card:focus-visible .home-project-info{opacity:1;transform:translate(-50%,-50%)}.home-news{text-align:left;padding:100px 36px 120px}.home-news-heading{justify-content:space-between;align-items:flex-end;margin-bottom:48px;display:flex}.home-news-heading p{color:#999;letter-spacing:.18em;margin:0 0 10px;font-size:12px}.home-news-heading h2{margin:0;font-size:42px;line-height:1}.home-news-more{color:#111;letter-spacing:.12em;align-items:center;gap:18px;padding-bottom:4px;font-size:12px;text-decoration:none;display:flex}.home-news-more span{transition:transform .25s}.home-news-more:hover span{transform:translate(5px)}.home-news-list{border-top:1px solid #d8d8d8}.home-news-item{color:#111;border-bottom:1px solid #d8d8d8;grid-template-columns:220px minmax(0,1fr) 40px;align-items:center;gap:32px;padding:30px 16px;text-decoration:none;transition:padding-left .25s,background-color .25s;display:grid}.home-news-item:hover{background-color:#f7f7f7;padding-left:28px}.home-news-meta{align-items:center;gap:14px;display:flex}.home-news-meta time{color:#777;font-size:13px}.home-news-meta span{color:#888;letter-spacing:.08em;border:1px solid #ccc;border-radius:999px;padding:5px 9px;font-size:9px}.home-news-item h3{color:#222;margin:0;font-size:17px;font-weight:500;line-height:1.6}.home-news-arrow{color:#999;font-size:18px;transition:transform .25s}.home-news-item:hover .home-news-arrow{transform:translate(5px)}@media (width<=700px){.home-news{padding:72px 20px 80px}.home-news-heading{align-items:center}.home-news-heading h2{font-size:34px}.home-news-item{grid-template-columns:1fr 24px;gap:16px;padding:24px 0}.home-news-item:hover{padding-left:0}.home-news-meta,.home-news-item h3{grid-column:1}.home-news-arrow{grid-area:1/2/span 2}}@media (width<=900px){.home-projects{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:230px;gap:18px;padding:18px}}@media (width<=600px){.home-projects{grid-template-columns:1fr;grid-auto-rows:320px;gap:14px;padding:14px}.home-project-card-large{grid-area:span 1/span 1}.home-project-card:after{opacity:.45}.home-project-info{opacity:1;transform:translate(-50%,-50%)}.home-project-info h2{font-size:21px}}.projects-page{text-align:left;padding:64px 36px 100px}.projects-heading{margin-bottom:56px}.projects-heading p{letter-spacing:.18em;margin:0 0 12px;font-size:13px}.projects-heading h1{letter-spacing:-.05em;margin:0;font-size:clamp(42px,7vw,80px);line-height:1}.projects-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:80px 56px;display:grid}.projects-item{color:inherit;text-decoration:none;display:block}.projects-image-wrapper{aspect-ratio:4/3;background-color:#f3f3f3;width:100%;overflow:hidden}.projects-image{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.projects-item:hover .projects-image{transform:scale(1.05)}.projects-info{padding-top:20px}.projects-meta{color:#999;letter-spacing:.05em;margin:0 0 10px;font-size:13px}.projects-info h2{color:#111;margin:0 0 14px;font-size:22px;font-weight:500;line-height:1.5}.projects-description{color:#777;margin:0;font-size:15px;line-height:1.8}@media (width<=800px){.projects-page{padding:48px 20px 80px}.projects-list{grid-template-columns:1fr;row-gap:56px}}.project-detail-page{text-align:left;padding:48px 36px 120px}.project-back-link{color:#888;letter-spacing:.14em;margin-bottom:72px;font-size:13px;text-decoration:none;display:inline-block}.project-detail-header{max-width:900px;margin-bottom:48px}.project-detail-header>p{color:#999;letter-spacing:.16em;margin:0 0 16px;font-size:13px}.project-detail-header h1{letter-spacing:-.05em;margin:0;font-size:clamp(48px,8vw,96px);line-height:1.05}.project-detail-media{background-color:#111;width:100%;overflow:hidden}.project-detail-video,.project-detail-image{width:100%;max-height:720px;display:block}.project-detail-video{aspect-ratio:16/9;object-fit:contain;background-color:#111}.project-detail-image{object-fit:cover;object-fit:cover;width:100%;height:100%}.project-overview,.project-section{border-bottom:1px solid #ddd;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:80px;padding:88px 0;display:grid}.project-section-title>p{color:#999;letter-spacing:.16em;margin:0 0 12px;font-size:12px}.project-section-title h2{margin:0;font-size:28px;line-height:1.4}.project-description{color:#666;margin:0 0 48px;font-size:17px;line-height:2}.project-information{border-top:1px solid #ddd;margin:0}.project-information div{border-bottom:1px solid #ddd;grid-template-columns:140px 1fr;gap:24px;padding:20px 0;display:grid}.project-information dt{color:#999;letter-spacing:.12em;font-size:12px}.project-information dd{color:#222;margin:0;line-height:1.7}.technology-list{flex-wrap:wrap;align-content:flex-start;gap:12px;display:flex}.technology-list span{color:#333;border:1px solid #ccc;border-radius:999px;padding:10px 18px;font-size:14px}.feature-list{margin:0;padding:0;list-style:none}.feature-list li{border-top:1px solid #ddd;grid-template-columns:48px 1fr;gap:20px;padding:24px 0;display:grid}.feature-list li:last-child{border-bottom:1px solid #ddd}.feature-list span{color:#aaa;font-size:13px}.feature-list p{color:#222;margin:0;font-size:17px}.project-links{border-top:1px solid #222;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:88px;display:grid}.project-links a{color:#111;border-bottom:1px solid #222;justify-content:space-between;align-items:center;padding:28px 20px;text-decoration:none;transition:color .25s,background-color .25s;display:flex}.project-links a:first-child{border-right:1px solid #222}.project-links a:hover{color:#fff;background-color:#111}.project-not-found{text-align:left;min-height:70vh;padding:80px 36px}.project-not-found a{color:#111}@media (width<=800px){.project-detail-page{padding:36px 20px 80px}.project-detail-video{max-height:500px}.project-back-link{margin-bottom:48px}.project-overview,.project-section{grid-template-columns:1fr;gap:36px;padding:56px 0}.project-information div{grid-template-columns:1fr;gap:8px}.project-links{grid-template-columns:1fr;margin-top:56px}.project-links a:first-child{border-right:none}}.research-page{text-align:left;padding:64px 36px 120px}.research-heading{margin-bottom:72px}.research-heading>p{color:#999;letter-spacing:.18em;margin:0 0 12px;font-size:13px}.research-heading h1{letter-spacing:-.05em;margin:0 0 24px;font-size:clamp(48px,7vw,88px);line-height:1}.research-heading span{color:#777;line-height:1.8}.research-list{border-top:1px solid #d8d8d8}.research-item{border-bottom:1px solid #d8d8d8;grid-template-columns:70px minmax(0,1fr) minmax(280px,.8fr);gap:36px;padding:48px 0;display:grid}.research-number{color:#aaa;letter-spacing:.12em;font-size:14px}.research-period{color:#999;margin:0 0 14px;font-size:13px}.research-content h2{margin:0;font-size:28px;font-weight:500;line-height:1.5}.research-english-title{color:#999;margin:12px 0 0;font-size:13px;line-height:1.7}.research-summary{color:#666;max-width:620px;margin:28px 0;font-size:15px;line-height:1.9}.research-technologies{flex-wrap:wrap;gap:8px;display:flex}.research-technologies span{color:#555;border:1px solid #d0d0d0;border-radius:999px;padding:7px 12px;font-size:12px}.research-image-wrapper{aspect-ratio:4/3;background-color:#f2f2f2;overflow:hidden}.research-image{object-fit:cover;width:100%;height:100%;transition:transform .6s}.research-item:hover .research-image{transform:scale(1.04)}@media (width<=800px){.research-page{padding:48px 20px 80px}.research-heading{margin-bottom:48px}.research-item{grid-template-columns:42px 1fr;gap:20px}.research-image-wrapper{grid-column:2;margin-top:12px}}@media (width<=560px){.research-item{grid-template-columns:1fr}.research-number,.research-image-wrapper{grid-column:auto}.research-content h2{font-size:22px}}.about-page{text-align:left;padding:64px 36px 120px}.about-heading{margin-bottom:64px}.about-heading>p{color:#999;letter-spacing:.18em;margin:0 0 12px;font-size:13px}.about-heading h1{letter-spacing:-.05em;margin:0;font-size:clamp(48px,7vw,88px);line-height:1}.about-profile{border-bottom:1px solid #ddd;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start;gap:64px;padding-bottom:88px;display:grid}.about-image-wrapper{aspect-ratio:4/5;background-color:#f2f2f2;overflow:hidden}.about-image{object-fit:cover;width:100%;height:100%}.about-profile-content{padding-top:24px}.about-position{color:#999;letter-spacing:.14em;margin:0 0 24px;font-size:12px}.about-profile-content h2{letter-spacing:-.04em;margin:0;font-size:clamp(36px,5vw,64px);line-height:1.2}.about-profile-content h2 span{color:#999;letter-spacing:.06em;margin-top:12px;font-size:16px;font-weight:400;display:block}.about-description{color:#666;max-width:620px;margin:36px 0 48px;font-size:17px;line-height:2}.about-data{border-top:1px solid #ddd;margin:0}.about-data div{border-bottom:1px solid #ddd;grid-template-columns:140px 1fr;gap:24px;padding:20px 0;display:grid}.about-data dt{color:#999;letter-spacing:.12em;font-size:12px}.about-data dd{color:#222;margin:0}.about-section{border-bottom:1px solid #ddd;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:80px;padding:88px 0;display:grid}.about-section-heading>p{color:#999;letter-spacing:.16em;margin:0 0 12px;font-size:12px}.about-section-heading h2{margin:0;font-size:28px}.about-strength{gap:24px;display:grid}.about-strength p{color:#555;margin:0;font-size:17px;line-height:2}.about-skills{flex-wrap:wrap;align-content:flex-start;gap:12px;display:flex}.about-skills span{color:#333;border:1px solid #ccc;border-radius:999px;padding:10px 18px;font-size:14px}.about-fields{border-bottom:1px solid #ddd;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.about-field{border-right:1px solid #ddd;padding:48px 28px}.about-field:last-child{border-right:none}.about-field>span{color:#aaa;letter-spacing:.12em;font-size:13px}.about-field h2{margin:28px 0 20px;font-size:24px;line-height:1.4}.about-field p{color:#666;margin:0;font-size:15px;line-height:1.9}@media (width<=800px){.about-page{padding:48px 20px 80px}.about-profile{grid-template-columns:1fr;gap:36px;padding-bottom:56px}.about-image-wrapper{max-width:480px}.about-section{grid-template-columns:1fr;gap:36px;padding:56px 0}.about-fields{grid-template-columns:1fr}.about-field{border-bottom:1px solid #ddd;border-right:none}.about-field:last-child{border-bottom:none}}@media (width<=560px){.about-data div{grid-template-columns:1fr;gap:8px}}.news-page{text-align:left;padding:64px 36px 120px}.news-heading{margin-bottom:72px}.news-heading>p{color:#999;letter-spacing:.18em;margin:0 0 12px;font-size:13px}.news-heading h1{letter-spacing:-.05em;margin:0 0 24px;font-size:clamp(48px,7vw,88px);line-height:1}.news-heading>span{color:#777;line-height:1.8}.news-list{border-top:1px solid #d8d8d8}.news-item{border-bottom:1px solid #d8d8d8;grid-template-columns:200px minmax(0,1fr) 40px;align-items:start;gap:36px;padding:40px 16px;transition:background-color .25s,padding-left .25s;display:grid;position:relative}.news-item:hover{background-color:#f7f7f7;padding-left:28px}.news-meta{flex-direction:column;gap:12px;display:flex}.news-meta time{color:#444;letter-spacing:.06em;font-size:14px}.news-meta span{color:#888;letter-spacing:.1em;border:1px solid #ccc;border-radius:999px;width:fit-content;padding:6px 10px;font-size:10px}.news-content h2{margin:0 0 14px;font-size:22px;font-weight:500;line-height:1.5}.news-content p{color:#777;max-width:680px;margin:0;font-size:14px;line-height:1.9}.news-arrow{color:#999;font-size:20px;transition:transform .25s}.news-item{color:inherit;text-decoration:none}.news-item:hover .news-arrow{transform:translate(4px,-4px)}@media (width<=700px){.news-page{padding:48px 20px 80px}.news-heading{margin-bottom:48px}.news-item{grid-template-columns:1fr 28px;gap:20px;padding:28px 0}.news-item:hover{padding-left:0}.news-meta{flex-direction:row;grid-column:1;align-items:center}.news-content{grid-column:1}.news-arrow{grid-area:1/2/span 2}.news-content h2{font-size:19px}}.news-detail-page{text-align:left;min-height:80vh;padding:48px 36px 120px}.news-back-link{color:#888;letter-spacing:.14em;margin-bottom:72px;font-size:13px;text-decoration:none;display:inline-block}.news-detail{max-width:820px;margin:0 auto}.news-detail-meta{align-items:center;gap:16px;margin-bottom:24px;display:flex}.news-detail-meta time{color:#777;font-size:14px}.news-detail-meta span{color:#888;letter-spacing:.1em;border:1px solid #ccc;border-radius:999px;padding:6px 10px;font-size:10px}.news-detail h1{letter-spacing:-.04em;margin:0;font-size:clamp(38px,6vw,72px);line-height:1.25}.news-detail-description{color:#666;margin:36px 0;font-size:18px;line-height:1.9}.news-detail-content{border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:48px 0}.news-detail-content p{color:#555;margin:0;font-size:16px;line-height:2}.news-detail-links{border-top:1px solid #222;margin-top:64px;display:grid}.news-detail-links a{color:#111;border-bottom:1px solid #222;justify-content:space-between;align-items:center;padding:24px 16px;text-decoration:none;transition:color .25s,background-color .25s;display:flex}.news-detail-links a:hover{color:#fff;background-color:#111}.news-not-found{text-align:left;min-height:70vh;padding:80px 36px}.news-not-found a{color:#111}@media (width<=700px){.news-detail-page{padding:36px 20px 80px}.news-back-link{margin-bottom:48px}.news-detail-description{font-size:16px}}.contact-page{text-align:left;padding:64px 36px 120px}.contact-heading{margin-bottom:72px}.contact-heading>p{color:#999;letter-spacing:.18em;margin:0 0 12px;font-size:13px}.contact-heading h1{letter-spacing:-.05em;margin:0;font-size:clamp(48px,7vw,88px);line-height:1}.contact-introduction{grid-template-columns:1.2fr .8fr;align-items:end;gap:80px;padding-bottom:80px;display:grid}.contact-introduction h2{letter-spacing:-.04em;margin:0;font-size:clamp(32px,5vw,58px);line-height:1.35}.contact-introduction p{color:#777;margin:0;font-size:16px;line-height:2}.contact-links{border-top:1px solid #ccc;border-left:1px solid #ccc;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contact-link{color:#111;border-bottom:1px solid #ccc;border-right:1px solid #ccc;flex-direction:column;justify-content:space-between;min-height:330px;padding:28px;text-decoration:none;transition:color .3s,background-color .3s;display:flex;position:relative}.contact-link:not(.contact-link-disabled):hover{color:#fff;background-color:#111}.contact-link-heading{justify-content:space-between;align-items:center;display:flex}.contact-link-heading p{color:#999;letter-spacing:.14em;margin:0;font-size:11px}.contact-link-heading span{font-size:20px;transition:transform .3s}.contact-link:not(.contact-link-disabled):hover .contact-link-heading span{transform:translate(4px,-4px)}.contact-link-content h2{color:inherit;margin:0 0 18px;font-size:30px;font-weight:500}.contact-link-content p{color:#777;max-width:420px;margin:0;font-size:14px;line-height:1.9;transition:color .3s}.contact-link:not(.contact-link-disabled):hover .contact-link-content p{color:#ccc}.contact-link-label{letter-spacing:.12em;font-size:12px}.contact-link-disabled{color:#999;background-color:#f7f7f7}@media (width<=700px){.contact-page{padding:48px 20px 80px}.contact-heading{margin-bottom:48px}.contact-introduction{grid-template-columns:1fr;gap:28px;padding-bottom:56px}.contact-links{grid-template-columns:1fr}.contact-link{min-height:280px;padding:24px}}.page{min-height:calc(100vh - 101px);padding:80px 32px}.page>p{letter-spacing:.16em;margin:0 0 12px;font-size:13px}.page h1{letter-spacing:-.06em;margin:0;font-size:clamp(48px,8vw,120px);line-height:1}.app{flex-direction:column;min-height:100vh;padding-top:101px;display:flex}.app-content{flex:1}@media (width<=700px){.app{padding-top:79px}}
