@import url(https://fonts.googleapis.com/css2?family=Libre+Barcode+39+Extended&family=M+PLUS+2:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Quicksand:wght@300..700&display=swap);
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{font-family:"Libre Barcode 39 Extended";background-color:#fff;color:#f0f;overflow-x:hidden;min-height:100vh}body.body-lang-ja{font-family:"Noto Serif JP",serif}body.body-lang-ja .section-title .lang-ja{font-family:"M PLUS 2",sans-serif}body.body-lang-en{font-family:"Quicksand",sans-serif}body.body-lang-en .section-title .lang-en{font-family:"Playfair Display",serif}body .nav-brand{font-family:"Playfair Display",serif}iframe{width:100%;min-width:330px;max-width:480px}#root{min-height:100vh}.lang-en,.lang-ja{display:inline-block;transition:transform .4s cubic-bezier(0.25, 0.46, 0.45, 0.94),opacity .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}body.body-lang-en .lang-ja{display:none}body.body-lang-ja .lang-en{display:none}[alt]{color:#5f9ce6}.lang-toggle-track .lang-toggle-en,.lang-toggle-track .lang-toggle-ja{display:inline-block !important}.lang-slide-out-left{animation:slideOutLeft .3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards}.lang-slide-out-right{animation:slideOutRight .3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards}.lang-slide-in-left{animation:slideInFromRight .35s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards}.lang-slide-in-right{animation:slideInFromLeft .35s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards}@keyframes slideOutLeft{0%{transform:translateX(0);opacity:1}100%{transform:translateX(-30px);opacity:0}}@keyframes slideOutRight{0%{transform:translateX(0);opacity:1}100%{transform:translateX(30px);opacity:0}}@keyframes slideInFromRight{0%{transform:translateX(30px);opacity:0}100%{transform:translateX(0);opacity:1}}@keyframes slideInFromLeft{0%{transform:translateX(-30px);opacity:0}100%{transform:translateX(0);opacity:1}}@media(min-width: 1024px){.main-nav{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:100;padding:.8rem 2.5rem;background:linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.7) 100%);backdrop-filter:blur(12px);border-bottom:1px solid rgba(15,52,96,.15)}}.nav-brand{display:flex;align-items:center;text-decoration:none;cursor:pointer;font-family:"Playfair Display",serif;font-size:1.5rem;font-weight:700;color:#0f3460;letter-spacing:.05em}@media(min-width: 1024px){.nav-brand{transform:scale(1);transform-origin:left center;transition:transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)}}.nav-brand .nav-logo{max-height:24px;margin-right:.4rem}@media(min-width: 1024px){body.on-splash .nav-brand{transform:scale(0)}}.nav-menu-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;position:fixed;bottom:2rem;right:2rem;z-index:1000;width:56px;height:56px;border-radius:50%;border:1px solid rgba(15,52,96,.3);background:#fff;cursor:pointer;box-shadow:0 4px 20px rgba(0,0,0,.4);transition:all .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}@media(min-width: 1024px){.nav-menu-btn{display:none}}.nav-menu-btn .hamburger-line{display:block;width:22px;height:2px;background:#0f3460;border-radius:1px;transition:all .3s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.nav-menu-btn.nav-menu-btn--open{background:#0f3460;border-color:#0f3460}.nav-menu-btn.nav-menu-btn--open .hamburger-line{background:#fff}.nav-menu-btn.nav-menu-btn--open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-menu-btn.nav-menu-btn--open .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.nav-menu-btn.nav-menu-btn--open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-links{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;position:fixed;inset:0;z-index:999;background:hsla(0,0%,100%,.97);backdrop-filter:blur(20px);opacity:0;visibility:hidden;transition:opacity .4s cubic-bezier(0.25, 0.46, 0.45, 0.94),visibility .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.nav-links.nav-links--open{opacity:1;visibility:visible}.nav-links.nav-links--open .nav-link,.nav-links.nav-links--open .lang-toggle{opacity:1;transform:translateY(0)}.nav-links .nav-brand{position:absolute;top:3.5rem;scale:1.5}@media(min-width: 1024px){.nav-links{position:static;width:100%;flex-direction:row;justify-content:flex-end;inset:auto;background:none;backdrop-filter:none;opacity:1;visibility:visible;gap:2rem}.nav-links .nav-link,.nav-links .lang-toggle{opacity:1;transform:none}.nav-links .nav-brand{position:absolute;left:1.5rem;top:auto;scale:none}}.nav-link{text-decoration:none;color:#0b2647;font-size:1.6rem;font-weight:500;letter-spacing:.05em;position:relative;padding:.3rem 0;opacity:0;transform:translateY(20px);transition:opacity .4s cubic-bezier(0.25, 0.46, 0.45, 0.94),transform .4s cubic-bezier(0.25, 0.46, 0.45, 0.94),color .3s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.nav-link:hover{color:#0f3460}.nav-link::after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:#0f3460;transition:width .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.nav-link.nav-link--active{color:#0b2647}.nav-link.nav-link--active::after{width:100%}@media(min-width: 1024px){.nav-link{color:#5f9ce6;font-size:.95rem;letter-spacing:.03em;opacity:1;transform:none}.nav-link:hover,.nav-link.nav-link--active{color:#0b2647}.nav-link:hover::after,.nav-link.nav-link--active::after{width:100%}}.lang-toggle{cursor:pointer;user-select:none;opacity:0;transform:translateY(20px);transition:opacity .4s cubic-bezier(0.25, 0.46, 0.45, 0.94),transform .4s cubic-bezier(0.25, 0.46, 0.45, 0.94);margin-top:1rem}@media(min-width: 1024px){.lang-toggle{opacity:1;transform:none;margin-top:0}}.lang-toggle-track{position:relative;display:flex;align-items:center;justify-content:space-between;column-gap:10px;width:70px;height:32px;background:#cadef7;border-radius:16px;border:1px solid rgba(61,135,225,.3);padding:0 4px;transition:background .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.lang-toggle-label{flex:1;text-align:center;font-size:.7rem;font-weight:600;z-index:1;transition:color .4s cubic-bezier(0.25, 0.46, 0.45, 0.94);pointer-events:none}.lang-toggle-label.lang-toggle-en .lang-en{color:#edf4fc}.lang-toggle-label.lang-toggle-en .lang-ja{color:#5f9ce6}.lang-toggle-label.lang-toggle-ja .lang-en{color:#5f9ce6}.lang-toggle-label.lang-toggle-ja .lang-ja{color:#edf4fc}.lang-toggle-thumb{position:absolute;top:2px;left:2px;width:28px;height:26px;background:#3d87e1;border-radius:13px;transition:transform .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.lang-toggle-thumb.lang-toggle-thumb--ja{transform:translateX(36px)}@media(min-width: 1024px){.sections{position:relative;width:100vw;height:100vh;overflow:hidden}}@media(min-width: 1024px){.sections-track{display:flex;height:100%;transition:transform .7s cubic-bezier(0.22, 1, 0.36, 1)}}.section{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}@media(min-width: 1024px){.section{flex-direction:row;min-width:100vw;height:100vh;justify-content:stretch}.section:nth-child(even){flex-direction:row-reverse}}.section-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}.section-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.85) 60%, rgba(255, 255, 255, 0.95) 100%)}@media(min-width: 1024px){.section-bg{display:none}}.section-text{position:relative;z-index:1;padding:2rem 1.5rem 3rem;background:rgba(220,233,249,.8196078431);backdrop-filter:blur(6px);border-top:1px solid rgba(15,52,96,.15)}@media(min-width: 1024px){.section-text{flex:1;display:flex;flex-direction:column;justify-content:center;padding:6rem 4rem 4rem;background:none;backdrop-filter:none;border-top:none}}.section-title{margin-bottom:1.2rem}.section-title .lang-en,.section-title .lang-ja{font-family:"Playfair Display",serif;font-size:2rem;font-weight:700;color:#0f3460;line-height:1.2;margin-bottom:.5rem;display:block}@media(min-width: 1024px){.section-title{margin-bottom:2rem}.section-title .lang-en,.section-title .lang-ja{font-size:3rem}}.section-body .lang-en,.section-body .lang-ja{font-size:.95rem;line-height:1.7;color:#0b2647;display:block}@media(min-width: 1024px){.section-body .lang-en,.section-body .lang-ja{font-size:1.05rem;line-height:1.8}}.section-image{display:none}@media(min-width: 1024px){.section-image{flex:1;display:flex;align-items:center;justify-content:center;padding:4rem 2rem;position:relative}.section-image img{width:100%;max-width:500px;height:auto;max-height:75vh;object-fit:cover;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4)}.section-image::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle, rgba(15, 52, 96, 0.08) 0%, transparent 70%);z-index:0}}.video-container{position:relative;width:100%;max-width:100%;padding-top:56.25%;margin-top:1.5rem;border-radius:8px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.3)}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}@media(min-width: 1024px){.video-container{max-width:480px;margin-top:2rem}}.carousel-nav{display:none}@media(min-width: 1024px){.carousel-nav{display:flex;position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);align-items:center;gap:1.5rem;z-index:50}}.carousel-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(15,52,96,.4);background:hsla(0,0%,100%,.8);color:#0f3460;font-size:1.2rem;cursor:pointer;transition:all .3s cubic-bezier(0.25, 0.46, 0.45, 0.94);backdrop-filter:blur(8px)}.carousel-btn:hover:not(:disabled){background:#0f3460;color:#fff;border-color:#0f3460}.carousel-btn:disabled{opacity:.3;cursor:not-allowed}.carousel-dots{display:flex;gap:.6rem}.carousel-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(15,52,96,.5);background:rgba(0,0,0,0);cursor:pointer;transition:all .3s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.carousel-dot.carousel-dot--active{background:#0f3460;border-color:#0f3460;transform:scale(1.2)}.carousel-dot:hover:not(.carousel-dot--active){background:rgba(15,52,96,.3)}.section-splash{background:linear-gradient(135deg, #ffffff 0%, #dce9f9 100%)}.section-about{background:linear-gradient(135deg, #dce9f9 0%, #ffffff 100%)}.section-portfolio{background:linear-gradient(135deg, #ffffff 0%, #cadef7 100%)}.section-technical{background:linear-gradient(135deg, #dce9f9 0%, #cadef7 100%)}.section-contact{background:linear-gradient(135deg, #ffffff 0%, #dce9f9 100%)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#3d87e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0f3460}.section-splash{justify-content:center;align-items:center}.splash-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.5rem;z-index:1;padding:2rem;transform:scale(1);transition:transform .5s cubic-bezier(0.25, 0.46, 0.45, 0.94)}body:not(.on-splash) .splash-content{transform:scale(0)}.splash-logo{width:120px;height:auto;filter:drop-shadow(0 4px 20px rgba(0, 0, 0, 0.15))}@media(min-width: 1024px){.splash-logo{width:180px}}.splash-title{font-family:"Playfair Display",serif;font-size:3rem;font-weight:700;color:#0f3460;line-height:1.1;display:block}@media(min-width: 1024px){.splash-title{font-size:5rem}}.splash-subtitle .lang-en,.splash-subtitle .lang-ja{font-size:1.1rem;color:#5f9ce6;letter-spacing:.15em;text-transform:uppercase;display:block}@media(min-width: 1024px){.splash-subtitle .lang-en,.splash-subtitle .lang-ja{font-size:1.4rem}}.portfolio-container{position:relative;z-index:1;padding:2rem 1.5rem 3rem;background:rgba(220,233,249,.8196078431);backdrop-filter:blur(6px);border-top:1px solid rgba(15,52,96,.15);width:100%}@media(min-width: 1024px){.portfolio-container{display:flex;flex-direction:column;height:100%;padding:6rem 4rem 4rem;background:none;backdrop-filter:none;border-top:none;overflow:hidden}}.portfolio-works{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.5rem;padding-bottom:1rem;-webkit-overflow-scrolling:touch}@media(min-width: 1024px){.portfolio-works{flex-direction:column;overflow-x:visible;overflow-y:auto;scroll-snap-type:y mandatory;flex:1;gap:2rem;padding-bottom:0;padding-right:.5rem}}.portfolio-work{flex:0 0 85vw;display:flex;flex-direction:column;scroll-snap-align:start;background:hsla(0,0%,100%,.8);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.1)}@media(min-width: 1024px){.portfolio-work{flex:0 0 auto;flex-direction:row;min-height:280px;scroll-snap-align:start}.portfolio-work.portfolio-work--reversed{flex-direction:row-reverse}}.portfolio-work-image{order:2;flex:0 0 200px}.portfolio-work-image img{width:100%;height:100%;object-fit:cover}@media(min-width: 1024px){.portfolio-work-image{order:unset;flex:0 0 40%;max-width:400px}}.portfolio-work-text{order:1;padding:1.5rem;display:flex;flex-direction:column;gap:.8rem}@media(min-width: 1024px){.portfolio-work-text{order:unset;flex:1;padding:2rem;justify-content:center}}.portfolio-work-title{font-family:"Playfair Display",serif;font-size:1.4rem;font-weight:700;color:#0f3460}@media(min-width: 1024px){.portfolio-work-title{font-size:1.8rem}}.portfolio-work-text p{font-size:.95rem;line-height:1.7;color:#0b2647}@media(min-width: 1024px){.portfolio-work-text p{font-size:1.05rem;line-height:1.8}}.portfolio-nav{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;padding-top:.5rem}.portfolio-nav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(15,52,96,.3);background:hsla(0,0%,100%,.6);color:#0f3460;font-size:1.2rem;cursor:pointer;transition:all .3s cubic-bezier(0.25, 0.46, 0.45, 0.94);backdrop-filter:blur(8px)}.portfolio-nav-btn:hover{background:rgba(15,52,96,.15);border-color:#0f3460}@media(min-width: 1024px){.section-portfolio,.section-technical{flex-direction:row}.section-portfolio:nth-child(even),.section-technical:nth-child(even){flex-direction:row}}
