*{box-sizing:border-box}main{padding-top:64px}html{scroll-behavior:smooth}.logo{font-family:Bodoni Moda,serif}.btn{color:#f7f7f7;background:#000;border-radius:25px;align-items:center;gap:8px;padding:7px 20px;font-family:Bodoni Moda,serif;font-size:19px;text-decoration:none;transition:all .3s;display:inline-flex}.btn:hover{box-shadow:0 3px 12px #0009}.btn:active{transform:translateY(4px)}.close-btn{cursor:pointer;color:#000;background:0 0;border:none;font-family:Bodoni Moda,serif;font-size:24px;line-height:1;transition:all .3s;position:absolute;top:25px;right:30px}.close-btn:hover{opacity:.6}.close-btn:active{transform:translateY(4px)}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;box-sizing:border-box;background:#ffffffe6;border-bottom:1px solid #eee;justify-content:space-between;align-items:center;width:100%;height:64px;padding:0 50px;display:flex;position:fixed;top:0;left:0}.header-logo{align-items:center;display:flex}.header-name{color:#000;margin-right:auto;font-family:Bodoni Moda,serif;font-size:24px;font-weight:700;text-decoration:none}.nav{gap:30px;margin-left:auto;font-family:Bodoni Moda,serif;font-size:16px;display:flex}.nav a{color:#000;text-decoration:none}.nav a:hover{opacity:.6}.nav a:active{transform:translateY(4px)}.menu-button,.mobile-menu{display:none}.language-switch{align-items:center;gap:8px;margin-left:10px;font-family:Bodoni Moda,serif;font-size:15px;display:flex}.language-switch button{cursor:pointer;color:#777;background:0 0;border:none;padding:0;font-family:Bodoni Moda,serif;font-size:15px;transition:all .3s}.language-switch button:hover{color:#000}.language-switch .active{color:#000;font-weight:700}.language-switch span{color:#aaa}.hero{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 64px);padding:40px 20px 80px;display:flex}.hero-logo{-webkit-user-select:none;user-select:none;pointer-events:none;width:min(650px,80vw);height:auto}.hero p{text-align:center;font-family:Noto Sans JP,sans-serif;font-size:19px;line-height:1.6}.mobile-break{display:none}.about{flex-direction:column;align-items:center;padding:100px 20px;display:flex}.about h1{margin-bottom:70px}.about-intro{grid-template-columns:200px 1fr;align-items:center;gap:60px;width:100%;max-width:800px;margin-bottom:100px;display:grid}.about-intro img{object-fit:cover;border-radius:50%;width:200px;height:200px}.about-intro-text h2{margin-bottom:5px;font-family:Bodoni Moda,serif;font-size:32px}.about-role{color:#777;margin-bottom:25px;font-family:Bodoni Moda,serif}.about-intro-text p:last-child{color:#333;font-family:Noto Sans JP,sans-serif;line-height:1.9}.about-section{width:100%;max-width:800px;margin-bottom:90px}.about-section-title{border-bottom:1px solid #ddd;margin-bottom:40px;padding-bottom:15px;font-family:Bodoni Moda,serif;font-size:28px}.about-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.about-item h3{margin-bottom:15px;font-family:Bodoni Moda,serif;font-size:20px}.about-item p{color:#555;font-family:Noto Sans JP,sans-serif;font-size:14px;line-height:1.8}.about-item span{color:#888;margin-top:20px;font-family:Bodoni Moda,serif;font-size:13px;display:block}.about-approach p,.about-more p{color:#333;font-family:Noto Sans JP,sans-serif;line-height:1.9}.projects{flex-direction:column;align-items:center;scroll-margin-top:100px;display:flex}.project-grid{grid-template-columns:repeat(2,1fr);gap:40px;width:100%;max-width:1100px;margin-top:50px;display:grid}.project-card{cursor:pointer}.project-image{position:relative;overflow:hidden}.project-card img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .4s;display:block}.project-card h3{margin-top:15px;font-family:Bodoni Moda,serif;font-weight:500}.project-overlay{color:#fff;opacity:0;background:#0009;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.project-card:hover .project-overlay{opacity:1}.project-card:hover img{transform:scale(1.05)}.modal{z-index:2000;background:#0009;justify-content:center;align-items:center;padding:30px 20px;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#fff;border-radius:20px;width:90%;max-width:700px;max-height:90vh;padding:60px 50px;position:relative;overflow:hidden}.modal-scroll{scrollbar-gutter:stable;max-height:calc(90vh - 120px);overflow:hidden auto}.tech-stack{text-align:left;color:#777;margin-bottom:35px;font-family:Noto Sans JP,sans-serif;font-size:14px}.modal-links{justify-content:center;gap:30px;margin-top:30px;display:flex}.modal-links a{color:#000;border-bottom:1px solid #0000;align-items:center;gap:6px;font-family:Bodoni Moda,serif;font-size:16px;text-decoration:none;transition:all .3s;display:flex}.modal-links a:hover{border-bottom:1px solid #000}.modal-content h2{text-align:center;word-break:keep-all;margin-bottom:25px;font-family:Bodoni Moda,serif;font-size:28px;line-height:1.4}.modal-description{text-align:left;color:#333;margin-bottom:25px;font-family:Noto Sans JP,sans-serif;line-height:1.9}.modal-image{border-radius:12px;width:100%;height:auto;margin-bottom:30px;display:block}.contact{flex-direction:column;align-items:center;padding:100px 20px;display:flex}.contact p{text-align:center;line-height:1.8}.contact-content{text-align:center;max-width:700px;font-family:Noto Sans JP,sans-serif}.contact .btn{margin-top:40px;margin-bottom:80px;font-family:Bodoni Moda,serif}.email-address{font-family:Bodoni Moda,serif;font-size:1.3rem}.footer{border-top:1px solid #eee;justify-content:center;align-items:center;margin-top:10px;font-family:Bodoni Moda,serif;display:flex}.footer a{color:inherit;text-decoration:none}.footer a:hover{text-decoration:underline}@media (width<=768px){.header{height:64px;padding:0 20px}.header-name,.nav{display:none}.menu-button{cursor:pointer;z-index:1100;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;margin-left:auto;padding:8px 4px;display:flex;position:relative}.menu-button span{background:#000;width:100%;height:1px;transition:transform .3s,opacity .3s;display:block}.menu-open .menu-button span:first-child{transform:translateY(6px)rotate(45deg)}.menu-open .menu-button span:nth-child(2){opacity:0}.menu-open .menu-button span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.mobile-menu{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;z-index:1050;background:#fffffffa;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100dvh;transition:opacity .35s,visibility .35s;display:flex;position:fixed;inset:0}.mobile-menu.open{opacity:1;visibility:visible}.mobile-nav{flex-direction:column;align-items:center;gap:28px;display:flex}.mobile-nav a{color:#000;font-family:Bodoni Moda,serif;font-size:32px;text-decoration:none;transition:opacity .3s}.mobile-nav a:hover{opacity:.5}.mobile-language{align-items:center;gap:8px;margin-top:55px;font-family:Bodoni Moda,serif;font-size:14px;display:flex}.mobile-language button{color:#888;cursor:pointer;background:0 0;border:none;padding:0;font-family:Bodoni Moda,serif;font-size:14px;transition:color .3s}.mobile-language button.active{color:#000;font-weight:700}.mobile-language span{color:#aaa}.hero{min-height:80vh}.hero-logo{width:90vw}.hero p{font-size:16px;line-height:1.7}.mobile-break{display:block}.about{padding:80px 20px}.about h1{margin-bottom:50px}.about-intro{text-align:center;grid-template-columns:1fr;gap:30px;margin-bottom:80px}.about-intro img{width:160px;height:160px;margin:0 auto}.about-intro-text h2{font-size:28px}.about-intro-text p:last-child{text-align:left}.about-grid{grid-template-columns:1fr;gap:45px}.about-section{margin-bottom:70px}.about-section-title{margin-bottom:30px;font-size:25px}.project-card h3{overflow-wrap:break-word;font-size:15px;line-height:1.5}.modal{align-items:center;padding:20px}.modal-content{width:100%;max-width:600px;max-height:calc(100dvh - 40px);padding:56px 20px 30px;overflow:hidden}.modal-scroll{scrollbar-gutter:stable;max-height:calc(100dvh - 126px);overflow:hidden auto}.modal-content h2{font-size:22px;line-height:1.4}.close-btn{justify-content:center;align-items:center;padding:8px;font-size:20px;display:flex;top:14px;right:16px}.modal-image{width:100%;height:auto;margin-bottom:20px}.contact p{text-align:left;max-width:800px;margin:0 auto;line-height:1.8}.contact-content{margin-bottom:40px}.email-address{overflow-wrap:break-word}}
