.loading{z-index:9999;color:#fff;background-color:#000;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1s cubic-bezier(.77,0,.175,1);display:flex;position:fixed;inset:0}.loading.is-loaded{opacity:0;pointer-events:none}.loading__content{flex-direction:column;align-items:center;display:flex}.loading__text{letter-spacing:.15em;opacity:0;font-family:Inter,serif;font-size:1.5rem;font-weight:200;transition:transform 3s cubic-bezier(.77,0,.175,1),opacity 3s cubic-bezier(.77,0,.175,1);transform:scale(.95)}.loading.is-active .loading__text{opacity:1;transform:scale(1)}.loading__text span{opacity:0;transition:opacity .8s}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#fff;letter-spacing:.02em;background-color:#000;font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:200;line-height:1.9}a{color:#fff;text-decoration:none;transition:opacity .3s}a:hover{opacity:.7}.privacy__link{color:#fff;text-decoration:underline}.section{border-top:1px solid #262626;padding:8rem 0}.section__container{max-width:1200px;margin:0 auto;padding:0 4rem}.section__title{flex-direction:column;gap:.5rem;margin-bottom:4rem;display:flex}.section__label{text-transform:lowercase;letter-spacing:.3em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}.section__title{letter-spacing:.05em;font-size:2rem;font-weight:200}.hero{border-bottom:1px solid #262626;justify-content:center;align-items:center;min-height:100svh;padding:4rem 0;display:flex}.hero__container{text-align:center;padding:0 2rem}.hero__title{letter-spacing:.05em;flex-direction:column;gap:1rem;font-size:4rem;font-weight:200;display:flex}.hero__label{letter-spacing:.3em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.875rem;font-weight:200}.business__grid{background-color:#262626;border:1px solid #262626;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.business__item{background-color:#000;flex-direction:column;gap:1.5rem;padding:3rem 2rem;display:flex}.business__category{letter-spacing:.1em;color:#fff;font-family:Inter,sans-serif;font-size:.875rem;font-weight:300}.business__details{color:#a3a3a3;font-size:.875rem;font-weight:200;line-height:2}.projects__grid{background-color:#262626;border:1px solid #262626;flex-direction:column;gap:1px;display:flex}.project__item{background-color:#000;padding:2.5rem 2rem}.project__header{border-bottom:1px solid #262626;justify-content:space-between;align-items:baseline;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.project__title{letter-spacing:.05em;font-size:1.125rem;font-weight:300}.project__year{letter-spacing:.1em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}.project__meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem;display:grid}.project__meta-item{flex-direction:column;gap:.5rem;display:flex}.project__meta-label{text-transform:uppercase;letter-spacing:.2em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.625rem;font-weight:200}.project__meta-value{overflow-wrap:anywhere;word-break:break-word;font-size:.875rem;font-weight:200;line-height:1.6}.project__link{color:#fff;text-underline-offset:3px;text-decoration:underline}.projects__divider{background-color:#262626;border:none;height:1px;margin:0}.timeline{background-color:#262626;border:1px solid #262626;flex-direction:column;gap:1px;display:flex}.timeline__item{background-color:#000;grid-template-columns:120px 1fr;align-items:start;gap:3rem;padding:2rem;display:grid}.timeline__year{letter-spacing:.1em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.875rem;font-weight:200}.timeline__content{font-size:.9375rem;font-weight:200;line-height:1.8}.skills__grid{background-color:#262626;border:1px solid #262626;flex-direction:column;gap:1px;display:flex}.skills__category{background-color:#000;grid-template-columns:200px 1fr;align-items:start;gap:3rem;padding:2.5rem 2rem;display:grid}.skills__category-title{letter-spacing:.1em;font-family:Inter,sans-serif;font-size:.875rem;font-weight:300}.skills__list{flex-wrap:wrap;gap:1rem;display:flex}.skill__tag{letter-spacing:.05em;border:1px solid #262626;padding:.5rem 1rem;font-size:.8125rem;font-weight:200;transition:all .3s}.skill__tag:hover{color:#000;background-color:#fff;border-color:#fff}.contact__content{background-color:#262626;border:1px solid #262626;grid-template-columns:repeat(2,1fr);gap:1px;margin-bottom:4rem;display:grid}.contact__item{background-color:#000;flex-direction:column;gap:1rem;padding:2.5rem 2rem;display:flex}.contact__label{text-transform:uppercase;letter-spacing:.2em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}.contact__link{letter-spacing:.05em;text-underline-offset:4px;overflow-wrap:anywhere;word-break:break-word;font-size:1rem;font-weight:200;text-decoration:underline}.privacy{color:#a3a3a3;max-width:800px;margin:0 auto;font-size:.75rem;font-weight:200;line-height:1.9}.privacy p{margin-bottom:1rem}.privacy a{color:#a3a3a3;text-underline-offset:2px;text-decoration:underline}.footer{border-top:1px solid #262626;padding:3rem 0}.footer__container{text-align:center;max-width:1200px;margin:0 auto;padding:0 4rem}.footer__copy{letter-spacing:.1em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}@media screen and (width<=1024px){.section__container{padding:0 2rem}.hero__title{font-size:3rem}.business__grid{grid-template-columns:1fr}.timeline__item{grid-template-columns:100px 1fr;gap:2rem}.skills__category{grid-template-columns:150px 1fr;gap:2rem}.contact__content{grid-template-columns:1fr}}.contact__form-wrapper{margin-bottom:4rem}.contact__form{max-width:700px;margin:0 auto}.contact__honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.form__group{margin-bottom:2rem}.form__label{letter-spacing:.05em;color:#fff;margin-bottom:.75rem;font-size:.9rem;font-weight:300;display:block}.form__required{color:#ff6b6b;font-size:.85rem}.form__input,.form__textarea{color:#fff;letter-spacing:.02em;background-color:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;width:100%;padding:1rem 1.25rem;font-family:Inter,Noto Sans JP,sans-serif;font-size:.95rem;font-weight:300;transition:all .3s cubic-bezier(.4,0,.2,1)}.form__input:focus,.form__textarea:focus{background-color:#ffffff14;border-color:#ffffff4d;outline:none}.form__input::placeholder,.form__textarea::placeholder{color:#ffffff4d}.form__textarea{resize:vertical;min-height:180px;line-height:1.6}.form__submit{color:#000;letter-spacing:.1em;cursor:pointer;background-color:#fff;border:none;border-radius:4px;width:100%;padding:1.25rem 2rem;font-family:Inter,Noto Sans JP,sans-serif;font-size:1rem;font-weight:400;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.form__submit:hover{background-color:#ffffffe6;transform:translateY(-2px)}.form__submit:active{transform:translateY(0)}.form__submit.is-loading{pointer-events:none;opacity:.7}.form__submit.is-loading .submit__text{opacity:0}.form__submit.is-loading .submit__loading{opacity:1}.submit__text,.submit__loading{transition:opacity .3s}.submit__loading{opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.form__message{letter-spacing:.02em;text-align:center;opacity:0;border-radius:4px;margin-top:1.5rem;padding:1rem 1.25rem;font-size:.9rem;transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateY(-10px)}.form__message.is-visible{opacity:1;transform:translateY(0)}.form__message.is-success{color:#2ed573;background-color:#2ed5731a;border:1px solid #2ed5734d}.form__message.is-error{color:#ff6b6b;background-color:#ff6b6b1a;border:1px solid #ff6b6b4d}.contact__alternative{border-top:1px solid #ffffff1a;margin-top:6rem;padding-top:4rem}.alternative__title{letter-spacing:.1em;text-align:center;margin-bottom:1rem;font-size:1.2rem;font-weight:300}.alternative__description{letter-spacing:.05em;color:#ffffffb3;text-align:center;max-width:600px;margin-bottom:2rem;margin-left:auto;margin-right:auto;font-size:.9rem;font-weight:300;line-height:1.8}.contact__note{color:#ffffff80;letter-spacing:.05em;margin-top:.5rem;font-size:.85rem;font-weight:300}@media screen and (width<=768px){.loading__text{letter-spacing:.1em;font-size:1rem}.section{padding:5rem 0}.section__container{padding:0 1.5rem}.hero__title{font-size:2rem}.hero__label{font-size:.75rem}.hero__subtitle{letter-spacing:.08em;font-size:.875rem;line-height:1.7}.section__title{margin-bottom:3rem;font-size:1.5rem}.business__item,.project__item,.timeline__item,.skills__category,.contact__item{padding:2rem 1.5rem}.timeline__item{grid-template-columns:1fr;gap:.5rem}.skills__category{grid-template-columns:1fr;gap:1.5rem}.project__header{flex-direction:column;align-items:flex-start;gap:.5rem}.project__meta{grid-template-columns:1fr}.skill__tag{padding:.4rem .8rem;font-size:.75rem}.footer__container{padding:0 1.5rem}.form__input,.form__textarea{padding:.875rem 1rem;font-size:.9rem}.form__submit{padding:1rem 1.5rem;font-size:.95rem}.alternative__title{font-size:1rem}.alternative__description{font-size:.85rem}.privacy-page__container{padding:0 1.5rem}.privacy-page__title{font-size:2rem}.privacy-page__content h2{font-size:1.25rem}.privacy-page__content ul{padding-left:1.25rem}.privacy-table th{width:auto}.privacy-contact{padding:1.25rem}}.privacy-page{min-height:100vh;padding:4rem 0}.privacy-page__container{max-width:900px;margin:0 auto;padding:0 2rem}.privacy-page__header{text-align:center;border-bottom:1px solid #262626;margin-bottom:4rem;padding-bottom:2rem}.privacy-page__title{letter-spacing:.05em;margin-bottom:1rem;font-size:2.5rem;font-weight:200}.privacy-page__subtitle{color:#a3a3a3;margin-bottom:.5rem;font-size:1rem}.privacy-page__updated{color:#737373;font-family:Inter,sans-serif;font-size:.85rem}.privacy-page__nav{margin-bottom:3rem}.privacy-page__back{color:#a3a3a3;font-size:.9rem;transition:color .3s;display:inline-block}.privacy-page__back:hover{color:#fff;opacity:1}.privacy-section{margin-bottom:3rem}.privacy-section__title{border-bottom:1px solid #1a1a1a;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:300}.privacy-section__text{color:#e5e5e5;margin-bottom:1rem;line-height:2}.privacy-section__list{margin:1.5rem 0;padding-left:2rem}.privacy-section__list li{color:#e5e5e5;margin-bottom:.75rem;line-height:1.9}.privacy-table{border-collapse:collapse;-webkit-overflow-scrolling:touch;width:100%;margin:1.5rem 0;display:block;overflow-x:auto}.privacy-table th,.privacy-table td{text-align:left;border:1px solid #262626;min-width:10rem;padding:1rem}.privacy-table th{background-color:#0a0a0a;width:200px;font-weight:300}.privacy-table td{color:#e5e5e5}.privacy-table a{text-decoration:underline}.privacy-contact{background-color:#0a0a0a;border-left:3px solid #404040;margin:1.5rem 0;padding:2rem}.privacy-contact p{margin-bottom:.5rem;line-height:1.9}.privacy-contact__note{color:#a3a3a3;margin-top:1rem;font-size:.85rem}.privacy-page__footer{text-align:center;color:#737373;border-top:1px solid #262626;margin-top:4rem;padding-top:2rem;font-size:.9rem}.privacy-page__footer p{margin-bottom:.5rem}.footer__nav{margin-bottom:1rem}.footer__link{color:#a3a3a3;font-size:.9rem;transition:color .3s}.footer__link:hover{color:#fff;opacity:1}.privacy-page__content h2{border-bottom:1px solid #1a1a1a;margin-top:3rem;margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:300}.privacy-page__content p{color:#e5e5e5;margin-bottom:1rem;line-height:2}.privacy-page__content ul{margin:1.5rem 0;padding-left:2rem;list-style-type:disc}.privacy-page__content li{color:#e5e5e5;margin-bottom:.75rem;line-height:1.9}.privacy-page__content strong{color:#fff;font-weight:300}.privacy-page__content table{border-collapse:collapse;-webkit-overflow-scrolling:touch;width:100%;margin:1.5rem 0;display:block;overflow-x:auto}.privacy-page__content th,.privacy-page__content td{text-align:left;border:1px solid #262626;min-width:10rem;padding:1rem}.privacy-page__content th{background-color:#0a0a0a;font-weight:300}.privacy-page__content td{color:#e5e5e5}.privacy-page__content a{color:#fff;overflow-wrap:anywhere;word-break:break-word;text-decoration:underline}.privacy-page__content hr{border:none;border-top:1px solid #262626;margin:2rem 0}.not-found-page{min-height:100vh}.not-found-page__section{align-items:center;min-height:calc(100vh - 120px);display:flex}.not-found-page__card{text-align:center;background:linear-gradient(#ffffff05 0%,#fff0 100%);border:1px solid #262626;max-width:760px;margin:0 auto;padding:4rem 3rem}.not-found-page__title{letter-spacing:.06em;margin-bottom:1.5rem;font-size:clamp(1.8rem,4vw,3rem);font-weight:200;line-height:1.4}.not-found-page__description{color:#cfcfcf;margin-bottom:2.5rem;font-size:.95rem;font-weight:200;line-height:2}.not-found-page__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.not-found-page__link{letter-spacing:.08em;border:1px solid #fff;justify-content:center;align-items:center;min-width:220px;padding:.85rem 1.5rem;font-family:Inter,Noto Sans JP,sans-serif;font-size:.85rem;transition:background-color .3s,color .3s,border-color .3s;display:inline-flex}.not-found-page__link:hover{opacity:1;color:#000;background-color:#fff}.not-found-page__link--sub{color:#a3a3a3;border-color:#404040}.not-found-page__link--sub:hover{color:#000;border-color:#fff}@media (width<=768px){.not-found-page__section{min-height:auto}.not-found-page__card{padding:3rem 1.5rem}.not-found-page__description{font-size:.875rem}.not-found-page__link{width:100%;min-width:0}}@media (prefers-reduced-motion:no-preference){[data-aos].aos-init{opacity:0;transition-property:opacity,transform}[data-aos].aos-init.aos-animate{opacity:1}}.news-page{min-height:100vh}.news-page__container{max-width:1100px;margin:0 auto;padding:6rem 4rem}.news-page__header{margin-bottom:.75rem}.news-page__label{letter-spacing:.3em;color:#a3a3a3;text-transform:lowercase;margin-bottom:.5rem;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}.news-page__title{letter-spacing:.05em;font-size:2rem;font-weight:200}.news-page__nav{border-bottom:1px solid #262626;margin-bottom:3.5rem;padding-bottom:2rem}.news-page__back{color:#a3a3a3;letter-spacing:.08em;font-family:Inter,sans-serif;font-size:.75rem;text-decoration:none;transition:color .2s}.news-page__back:hover{color:#fff;opacity:1}.news-page__empty{color:#a3a3a3;text-align:center;padding:6rem 0;font-size:.875rem;font-weight:200}.news-page__grid{background-color:#1a1a1a;grid-template-columns:repeat(3,1fr);gap:1px;list-style:none;display:grid}.news-card{background-color:#000}.news-card__link{color:#fff;flex-direction:column;height:100%;text-decoration:none;transition:background-color .25s;display:flex}.news-card__link:hover{opacity:1;background-color:#0d0d0d}.news-card__image-wrap{aspect-ratio:16/9;background-color:#0a0a0a;width:100%;overflow:hidden}.news-card__image{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.news-card__link:hover .news-card__image{transform:scale(1.03)}.news-card__image-placeholder{letter-spacing:.3em;color:#404040;text-transform:uppercase;justify-content:center;align-items:center;width:100%;height:100%;font-family:Inter,sans-serif;font-size:.625rem;font-weight:200;display:flex}.news-card__body{flex-direction:column;flex:1;gap:.75rem;padding:1.5rem 1.5rem 2rem;display:flex}.news-card__meta{align-items:center;gap:.75rem;display:flex}.news-card__date{letter-spacing:.06em;color:#a3a3a3;font-family:Inter,sans-serif;font-size:.7rem;font-weight:200}.news-card__category{letter-spacing:.15em;text-transform:uppercase;color:#fff;background-color:#1a1a1a;border:1px solid #333;padding:.25em .75em;font-family:Inter,sans-serif;font-size:.6rem;font-weight:200}.news-card__title{color:#e5e5e5;font-size:.9rem;font-weight:300;line-height:1.7}@media screen and (width<=1024px){.news-page__container{padding:5rem 2rem 4rem}.news-page__grid{grid-template-columns:repeat(2,1fr)}}@media screen and (width<=768px){.news-page__container{padding:5rem 1.5rem 3rem}.news-page__grid{grid-template-columns:1fr}}.news-detail{min-height:100vh}.news-detail__hero{background-color:#0a0a0a;width:100%;max-height:480px;overflow:hidden}.news-detail__hero-image{object-fit:cover;width:100%;height:100%;max-height:480px;display:block}.news-detail__container{max-width:760px;margin:0 auto;padding:3.5rem 2rem 6rem}.news-detail__nav{margin-bottom:2.5rem}.news-detail__back{color:#a3a3a3;letter-spacing:.08em;font-family:Inter,sans-serif;font-size:.75rem;text-decoration:none;transition:color .2s}.news-detail__back:hover{color:#fff;opacity:1}.news-detail__header{border-bottom:1px solid #262626;margin-bottom:3rem;padding-bottom:2.5rem}.news-detail__meta{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.news-detail__category{letter-spacing:.15em;text-transform:uppercase;color:#fff;background-color:#1a1a1a;border:1px solid #333;padding:.3em .9em;font-family:Inter,sans-serif;font-size:.6rem;font-weight:200}.news-detail__date{color:#a3a3a3;letter-spacing:.06em;font-family:Inter,sans-serif;font-size:.75rem;font-weight:200}.news-detail__title{letter-spacing:.02em;color:#fff;font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:200;line-height:1.5}.news-detail__content{color:#d4d4d4;font-size:.95rem;font-weight:200;line-height:2}.news-detail__content p{margin-bottom:1.75rem}.news-detail__content h2{color:#fff;letter-spacing:.03em;border-bottom:1px solid #262626;margin-top:3rem;margin-bottom:1.25rem;padding-bottom:.75rem;font-size:1.3rem;font-weight:300}.news-detail__content h3{color:#fff;margin-top:2.25rem;margin-bottom:.75rem;font-size:1.05rem;font-weight:300}.news-detail__content ul,.news-detail__content ol{margin:1.25rem 0;padding-left:1.75rem}.news-detail__content li{margin-bottom:.6rem;line-height:1.9}.news-detail__content a{text-underline-offset:3px;color:#fff;overflow-wrap:anywhere;text-decoration:underline}.news-detail__content img{max-width:100%;height:auto;margin:2rem 0;display:block}.news-detail__content blockquote{color:#a3a3a3;border-left:3px solid #333;margin:2rem 0;padding:.75rem 1.5rem;font-style:italic}@media screen and (width<=768px){.news-detail__container{padding:3rem 1.5rem 4rem}.news-detail__hero{max-height:240px}}
