@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Mukta:wght@700&display=swap);
*{margin:0;padding:0;box-sizing:border-box}
body.loaded{opacity:1}
.container{max-width:1400px;margin:0 auto;padding:0 30px}
.single-app .app-content,.single-web .web-content{margin-top:40px}
.single-privacy-policy .privacy-policy-content{margin-top:20px}
.l-header{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);position:relative;z-index:100}
.l-header .container{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 30px;position:relative;z-index:101}
.site-logo a{font-size:2rem;font-family:Mukta,sans-serif;font-weight:700;text-decoration:none}
.site-title{margin:0;position:relative;z-index:10}
.site-title a{font-size:2rem;font-family:Mukta,sans-serif;font-weight:700;text-decoration:none;color:#111;transition:color .3s;cursor:pointer;display:block;position:relative;z-index:10;pointer-events:auto}
.site-title a:hover{color:#666}
.site-navigation{display:flex;align-items:center;padding:50px 0}
.nav-menu{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;gap:15px;text-align:left}
.nav-menu li{margin:0}
.nav-menu a{text-decoration:none;color:#666;font-weight:500;font-size:.9rem;position:relative;display:block}
.nav-menu a:hover{color:#666}
.nav-menu a.current-menu-item,.nav-menu a.current_page_item{color:#111!important}
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:0;padding-bottom:50px}
.language-switcher{display:flex;align-items:center;gap:4px;font-size:.8rem;font-weight:500}
.lang-btn{background:0 0;border:none;color:#666;cursor:pointer;padding:2px 4px;font-size:.8rem;font-weight:500;transition:color .3s}
.lang-btn.active,.lang-btn:hover{color:#111}
.lang-btn.active{font-weight:600}
.lang-separator{font-size:.75rem}
.about-title,.app-title,.contact-title,.page-title,.section-title{font-size:2.5rem;font-weight:700;margin-bottom:40px;text-align:left;color:#111;opacity:1;visibility:visible}
.section-title{font-size:2rem}
.about-section,.contact-section,.page-content{margin:60px 0}
.about-content,.contact-content,.page-body,.privacy-policy-content{max-width:800px;line-height:1.8;color:#111}
.about-content p,.contact-content p{margin-bottom:20px;font-size:1.1rem;line-height:1.8}
.page-body{font-size:1rem}
.page-body h1,.page-body h2,.page-body h3,.page-body h4,.page-body h5,.page-body h6{margin:30px 0 15px;font-weight:600;color:#111}
.page-body h1{font-size:1.8rem}
.page-body h2{font-size:1.4rem}
.page-body h3{font-size:1.2rem}
.page-body p,.privacy-policy-content p{margin-bottom:15px;color:#111}
.page-body ol,.page-body ul,.privacy-policy-content ul{margin:15px 0;padding-left:20px;color:#111}
.page-body li,.privacy-policy-content li{margin-bottom:8px;color:#111}
.page-body a,.privacy-policy-content a{color:#007bff;text-decoration:none}
.page-body a:hover,.privacy-policy-content a:hover{text-decoration:underline}
.about-content a{color:#111;text-decoration:none;transition:color .3s}
.about-content a:hover{color:#666}
.contact-email a{color:#111;text-decoration:underline;font-size:inherit;line-height:1.2;transition:color .3s}
.contact-email a:hover{color:#666}
.works .work-items-container{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:1fr;gap:0;margin-top:40px}
body.home .works .work-items-container{margin-top:0}
.works .work-item{position:relative;overflow:hidden;transition:transform .3s,opacity .5s;background-color:#efefef;opacity:1;aspect-ratio:1/1}
.works .work-item:hover{transform:translateY(-2px)}
.work-content-wrapper{position:relative;width:100%;height:100%}
.thumbnail-container{position:relative;width:100%;height:100%;overflow:hidden}
.app-thumbnail{width:100%;height:100%;object-fit:cover;transition:transform .3s;opacity:1}
.work-content-wrapper:hover .app-thumbnail{transform:scale(1.05)}
.work-info-box{position:absolute;bottom:0;left:0;right:0;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);padding:20px 20px 10px;transform:translateY(100%);transition:transform .3s;min-height:60px;display:flex;flex-direction:column;justify-content:center}
.work-content-wrapper:hover .work-info-box{transform:translateY(0)}
.work-content-wrapper:hover .work-description{display:none}
.work-title{margin-bottom:8px;line-height:1.2;min-height:auto}
.work-title a{text-decoration:none;color:#111;font-weight:600;font-size:1rem;line-height:1.2;display:block}
.work-title .app-name{display:block;font-weight:600;font-size:1rem;color:#111;text-decoration:none;transition:color .3s;line-height:1.2;word-wrap:break-word;overflow-wrap:break-word}
.work-title .app-name:hover{color:#666}
.work-description{font-size:.85rem;color:#666;line-height:1.5}
.app-link-wrapper,.theme-link{display:block;text-decoration:none;color:inherit;width:100%;height:100%}
.single-work-title{font-size:2rem;font-weight:700;margin-bottom:20px;text-align:left;line-height:1.2;color:#111}
.single-work-body{margin-top:40px;line-height:1.8;font-size:1rem;color:#111}
.app-body{margin-top:40px;line-height:1.8;font-size:1.1rem;color:#111}
.app-content-main{margin-bottom:40px;line-height:1.8;font-size:1.1rem;color:#111}
.app-content-en img,.app-content-jp img,.app-content-main img,.full-width-image{max-width:100%;height:auto;border-radius:8px;margin:20px 0}
.app-support{margin-top:40px;padding:20px;background:#f8f9fa;border-radius:8px}
.app-support p{margin-bottom:10px;color:#111}
.app-support .support-email{font-weight:400;font-size:1rem;line-height:1.2}
.app-store-links{margin-top:20px;display:flex;gap:15px;flex-wrap:wrap}
.app-support .support-email a,.privacy-policy-link a,.store-link{color:#111;text-decoration:underline;font-size:1rem;font-weight:400;line-height:1.2;transition:color .3s}
.app-support .support-email a:hover,.privacy-policy-link a:hover,.store-link:hover{color:#666}
.privacy-policy-title{font-size:2.5rem;font-weight:700;margin-bottom:40px;text-align:left;color:#111;opacity:1;visibility:visible}
.privacy-policy-body{margin-top:40px;line-height:1.8;font-size:1.1rem;color:#111}
.privacy-policy-body h2{font-size:1.5rem;font-weight:600;margin:30px 0 15px;padding-bottom:10px;border-bottom:2px solid #eee;color:#111}
.privacy-policy-body a{color:#111;text-decoration:underline;transition:color .3s}
.privacy-policy-body a:hover{color:#666}
.contact-form{max-width:600px}
.contact-form-multilingual{position:relative}
.contact-form-multilingual .wpcf7-form{transition:opacity .3s}
.contact-link,.wpcf7-form{margin-top:20px}
.wpcf7-form label{display:block;margin-bottom:8px;font-weight:500;font-size:.9rem;color:#111}
.wpcf7-form input[type=email],.wpcf7-form input[type=tel],.wpcf7-form input[type=text],.wpcf7-form select.wpcf7-select,.wpcf7-form textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit;background:#fff;color:#111;transition:border-color .3s}
.wpcf7-form input[type=email]:focus,.wpcf7-form input[type=tel]:focus,.wpcf7-form input[type=text]:focus,.wpcf7-form textarea:focus{outline:0;border-color:#111}
.wpcf7-form textarea{min-height:120px;resize:vertical}
.wpcf7-form select.wpcf7-select{background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3e%3cpath stroke='%23111111' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 9-7 7-7-7'/%3e%3c/svg%3e") right 12px center/20px no-repeat #fff;padding:12px 45px 12px 12px;cursor:pointer;appearance:none;border:1px solid #ddd;border-radius:8px;font-size:.9rem;font-family:inherit;color:#111;transition:.3s;position:relative;min-height:45px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.wpcf7-form select.wpcf7-select:hover{border-color:#111;box-shadow:0 2px 4px rgba(0,0,0,.1)}
.wpcf7-form select.wpcf7-select:focus{outline:0;border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.1)}
.wpcf7-form select.wpcf7-select option{padding:12px;background:#fff;color:#111;font-size:.9rem;border:none}
.wpcf7-form select.wpcf7-select option:hover{background:#f8f9fa}
.wpcf7-form select.wpcf7-select option:checked{background:#111;color:#fff}
.select-container{position:relative;display:inline-block;width:100%}
.wpcf7-form label:has(select){margin-bottom:15px;display:block}
.wpcf7-form select[name=inquiry-project]{background-color:#fafafa;border:2px solid #e5e5e5;font-weight:500}
.wpcf7-form select[name=inquiry-project]:hover{background-color:#fff;border-color:#111}
.wpcf7-form select[name=inquiry-project]:focus{background-color:#fff;border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.1)}
.wpcf7-form input[type=button],.wpcf7-form input[type=submit]{background:#111;color:#fff;border:none;padding:12px 24px;font-size:.9rem;font-weight:600;border-radius:0;cursor:pointer;transition:background .3s}
.wpcf7-form input[type=button]:hover,.wpcf7-form input[type=submit]:hover{background:#333}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.payment-required .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output{border:2px solid #dc3545;color:#dc3545;background:#f8d7da;padding:12px;border-radius:6px;margin-top:20px}
.wpcf7 form.sent .wpcf7-response-output{border:2px solid #28a745;color:#155724;background:#d4edda}
.wpcf7 form .wpcf7-response-output{padding:12px;border-radius:6px;margin-top:20px;font-weight:600}
.l-footer{margin-top:50px;padding:40px 0;background:#111;color:#fff}
body,html{height:100%;margin:0;padding:0}
body{font-family:Roboto,sans-serif;font-size:16px;line-height:1.6;letter-spacing:.05em;background-color:#fff;color:#111;opacity:0;transition:opacity .8s ease-in-out;display:flex;flex-direction:column;min-height:100vh;margin:0;padding:0}
.l-main{flex:1}
.l-footer .container{max-width:1400px;margin:0 auto;padding:0 30px}
.footer-content{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin:0 auto}
.footer-left{flex:1;width:50%;padding-right:40px}
.app-links{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:10px;font-size:.9rem;line-height:1.6;word-wrap:break-word;overflow-wrap:break-word}
.app-links a{color:#fff;text-decoration:none;transition:color .3s;white-space:normal;word-break:break-word}
.app-links a:hover{color:#ccc}
.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:0;width:50%;flex-shrink:0}
.footer-right .site-logo{margin:0}
.footer-right .site-logo a{font-size:2rem;font-family:Mukta,sans-serif;font-weight:700;text-decoration:none}
.footer-right .language-switcher{display:flex;align-items:center;gap:4px;font-size:.8rem;font-weight:500}
.footer-right .lang-btn{background:0 0;border:none;color:#fff;cursor:pointer;padding:2px 4px;font-size:.8rem;font-weight:500;transition:color .3s}
.footer-right .lang-btn.active,.footer-right .lang-btn:hover{color:#ccc}
.footer-right .lang-btn.active{font-weight:600}
.footer-right .lang-separator{font-size:.75rem;color:#fff}
.error-404{text-align:center;padding:80px 20px;color:#111}
.error-404 .section-title{font-size:3rem;margin-bottom:20px;color:#111}
.error-404 p{font-size:1.2rem;margin-bottom:30px;color:#111}
.error-404 a{display:inline-block;padding:12px 24px;background:#111;color:#fff;text-decoration:none;border-radius:6px;font-weight:600;transition:background .3s}
.error-404 a:hover{background:#333}
#wpadminbar{display:none!important}
main{padding-top:0}
@media screen and (max-width:768px){
body{padding:0;margin:0}
.l-main{padding-top:0}
.container,.l-header .container{padding:0 15px}
.site-navigation{padding:50px 0}
.about-section,.contact-section,.page-content{margin:40px 0}
.about-title,.contact-title,.page-title{font-size:2rem;margin-bottom:30px}
.header-right{gap:6px}
.language-switcher{font-size:.75rem}
.lang-btn{font-size:.75rem;padding:1px 3px}
.lang-separator{font-size:.75rem}
.works .work-items-container{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:0}
.works .work-item{background-color:#efefef;opacity:1}
.l-footer{padding:15px 0 0}
.l-footer .container{padding:0 15px}
.footer-content{flex-direction:column;gap:15px;max-width:100%}
.footer-left{order:2;width:100%;padding-right:0;padding-bottom:30px}
.footer-right{order:1;align-items:center;width:100%}
.app-links{justify-content:flex-start;gap:10px;font-size:.85rem}
.footer-right .site-logo a{font-size:2rem}
.site-logo a span{font-size:2rem!important}
.footer-right .site-logo a span{font-size:2rem!important;font-family:Mukta,sans-serif!important;font-weight:700!important}
.footer-right .language-switcher{justify-content:center}
.work-info-box{padding:10px;min-height:50px}
.work-title{margin-bottom:6px}
.work-title .app-name,.work-title a{font-size:.9rem}
.work-content-wrapper:hover .work-info-box{transform:translateY(100%)}
.work-content-wrapper:hover .work-description{display:block}
.work-content-wrapper:hover .app-thumbnail{transform:none}
.wpcf7-form select.wpcf7-select{padding:10px 40px 10px 10px;font-size:1rem;min-height:50px}
.wpcf7-form select.wpcf7-select option{padding:15px;font-size:1rem}
.wpcf7-form select[name=inquiry-project]{background-color:#f8f9fa;border:2px solid #e0e0e0}
}
[data-text-animation=fadeIn]{opacity:0;transition:opacity .3s ease-in-out;pointer-events:none}
[data-text-animation=fadeIn].animation-ready{opacity:1}
[data-text-animation=fadeIn] span{opacity:0;transition:opacity .3s ease-in-out;display:inline-block}
[data-text-animation=fadeIn] span.is-active{opacity:1}
[data-text-animation=fadeIn]:not(:has(span:not(.is-active))){pointer-events:auto}
.footer-right .site-logo a span,.nav-menu a span,.section-title span,.site-logo a span{transition:opacity .2s ease-in-out;font-size:inherit;font-family:inherit;font-weight:inherit;color:inherit}
.site-logo a span{font-size:2rem!important;font-family:Mukta,sans-serif!important;font-weight:700!important}
.l-header .site-logo a,.l-header .site-logo a span,.site-logo a,.site-logo a span{color:#000!important;opacity:1!important;visibility:visible!important}
.footer-right .site-logo a,.footer-right .site-logo a span{color:#fff!important;opacity:1!important;visibility:visible!important}
.site-logo,.site-logo a{margin-top:.5rem;opacity:1!important;visibility:visible!important}
.site-logo,.site-logo a,.site-logo a span{pointer-events:auto!important;cursor:pointer!important}
.site-logo a span[data-text-animation],.site-logo a[data-text-animation],.site-logo[data-text-animation]{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.footer-right .site-logo a span{font-size:1.5rem!important;font-family:Mukta,sans-serif!important;font-weight:700!important;color:#fff!important}