:root{--bg-color:#fff;--bg-gradient-start:#fff;--bg-gradient-mid:#f8f9fa;--bg-gradient-end:#fff;--text-color:#1a1a1a;--text-secondary:#666;--text-tertiary:#999;--text-light:#333;--border-color:#0000000f;--border-light:#0000000d;--border-medium:#0000001a;--card-bg:#fff9;--card-bg-hover:#ffffffb3;--card-bg-active:#ffffffe6;--header-bg:#fffc;--shadow-color:#0000000d;--shadow-medium:#00000014;--shadow-strong:#0003;--button-bg:#000;--button-text:#fff;--button-hover-shadow:#0003}[data-theme=dark]{--bg-color:#0a0a0a;--bg-gradient-start:#0a0a0a;--bg-gradient-mid:#141414;--bg-gradient-end:#0a0a0a;--text-color:#e0e0e0;--text-secondary:#b0b0b0;--text-tertiary:gray;--text-light:#d0d0d0;--border-color:#ffffff14;--border-light:#ffffff0d;--border-medium:#ffffff26;--card-bg:#14141499;--card-bg-hover:#191919b3;--card-bg-active:#1e1e1ee6;--header-bg:#0a0a0acc;--shadow-color:#0000004d;--shadow-medium:#0006;--shadow-strong:#0009;--button-bg:#fff;--button-text:#000;--button-hover-shadow:#fff3;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-color:#0a0a0a;--bg-gradient-start:#0a0a0a;--bg-gradient-mid:#141414;--bg-gradient-end:#0a0a0a;--text-color:#e0e0e0;--text-secondary:#b0b0b0;--text-tertiary:gray;--text-light:#d0d0d0;--border-color:#ffffff14;--border-light:#ffffff0d;--border-medium:#ffffff26;--card-bg:#14141499;--card-bg-hover:#191919b3;--card-bg-active:#1e1e1ee6;--header-bg:#0a0a0acc;--shadow-color:#0000004d;--shadow-medium:#0006;--shadow-strong:#0009;--button-bg:#fff;--button-text:#000;--button-hover-shadow:#fff3;color-scheme:dark}:root:not([data-theme=light]) .logo img{filter:brightness(0)invert()}}*{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--bg-color);color-scheme:light}body{color:var(--text-color);background:linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-mid) 50%, var(--bg-gradient-end) 100%);background-size:200% 200%;font-family:Noto Sans JP,MyYuGothicM,YuGothic,Yu Gothic,ヒラギノ角ゴ ProN W3,Hiragino Kaku Gothic ProN,Arial,メイリオ,Meiryo,sans-serif;font-weight:100;line-height:1.8;transition:background .3s,color .3s;animation:15s infinite gradientShift;position:relative;overflow-x:hidden}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}header{border-bottom:1px solid var(--border-color);background:var(--header-bg);backdrop-filter:blur(10px);z-index:100;padding:1.5rem 0;transition:all .3s;position:sticky;top:0}nav{justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto;padding:0 3rem;display:flex}.logo{align-items:center;transition:all .3s;display:flex}.logo img{filter:brightness(0);width:auto;height:28px;transition:all .3s}[data-theme=dark] .logo img{filter:brightness(0)invert()}.logo:hover img{opacity:.7}.nav-links{gap:3rem;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);letter-spacing:.05em;padding-bottom:.3rem;font-size:.85rem;text-decoration:none;transition:all .3s;position:relative}.nav-links a:after{content:"";background:var(--text-color);width:0;height:1px;transition:width .3s;position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--text-color)}.nav-links a:hover:after{width:100%}.container{max-width:1000px;margin:0 auto;padding:0 3rem}.hero{text-align:center;padding:8rem 0 6rem;position:relative}.hero h1{color:var(--text-color);letter-spacing:.02em;margin-bottom:2rem;font-size:4.5rem;font-weight:100;line-height:1.3;animation:1s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero p{color:var(--text-secondary);max-width:600px;margin-bottom:4rem;margin-left:auto;margin-right:auto;font-size:1.3rem;font-weight:100;line-height:1.9;animation:1s .2s backwards fadeInUp}.cta-button{background:var(--button-bg);color:var(--button-text);letter-spacing:.1em;border-radius:50px;padding:1.2rem 3rem;font-size:.9rem;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1);animation:1s .4s backwards fadeInUp;display:inline-block;position:relative;overflow:hidden}.cta-button:before{content:"";background:var(--button-hover-shadow);border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cta-button:hover:before{width:300px;height:300px}.cta-button:hover{box-shadow:0 10px 30px var(--button-hover-shadow);transform:translateY(-2px)}.section{border-top:1px solid var(--border-color);padding:7rem 0;scroll-margin-top:5rem;position:relative}.section h2{text-align:center;letter-spacing:.1em;color:var(--text-color);width:100%;margin-bottom:4rem;font-size:2.5rem;font-weight:100;display:inline-block;position:relative}.section h2:after{content:"";background:linear-gradient(90deg, transparent, var(--text-color), transparent);width:60px;height:1px;position:absolute;bottom:-1rem;left:50%;transform:translate(-50%)}.services{flex-direction:column;gap:5rem;margin-top:4rem;display:flex}.service{justify-content:space-between;align-items:flex-start;gap:3rem;display:flex}.service-heading{flex:0 0 38%}.service-label{color:var(--text-tertiary);align-items:center;gap:.85rem;margin-bottom:.8rem;display:flex}.service-label svg{flex-shrink:0;width:22px;height:22px}.service-label span{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;font-weight:400}.service h3{color:var(--text-color);letter-spacing:.04em;text-align:left;margin-bottom:0;font-size:1.6rem;font-weight:100;line-height:1.45}.service-body{flex:0 0 50%}.service-body p{color:var(--text-secondary);font-size:1rem;font-weight:100;line-height:2}.about-text{text-align:left;background:var(--card-bg-hover);max-width:700px;box-shadow:0 10px 40px var(--shadow-color);border:1px solid var(--border-light);border-radius:25px;margin:0 auto;padding:3.5rem 4rem;transition:all .4s}.about-text:hover{box-shadow:0 15px 60px var(--shadow-medium);transform:translateY(-5px)}.about-text p{color:var(--text-light);margin-bottom:1.8rem;font-size:1.05rem;font-weight:100;line-height:1.9}.about-text p strong{color:var(--text-color);letter-spacing:.02em;font-weight:100}.about-text ul{margin-top:1.5rem;padding-left:0;list-style:none}.about-text ul li{margin-bottom:1rem;padding-left:1.5em;font-size:1.05rem;line-height:1.8;transition:all .3s;position:relative}.about-text ul li:hover{padding-left:2em}.about-text ul li a{color:var(--text-light);text-decoration:none;transition:color .3s;position:relative}.about-text ul li a:hover{color:var(--text-color)}.contact-details{text-align:center}.contact-toggle{background:var(--button-bg);color:var(--button-text);letter-spacing:.1em;cursor:pointer;border-radius:50px;padding:1.2rem 3rem;font-family:inherit;font-size:.9rem;font-weight:100;list-style:none;transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1);display:inline-block}.contact-toggle::-webkit-details-marker{display:none}.contact-toggle::marker{content:none}.contact-toggle:hover{box-shadow:0 10px 30px var(--button-hover-shadow);transform:translateY(-2px)}.contact-toggle:focus-visible{outline:1px solid var(--text-color);outline-offset:4px}.contact-toggle-close,.contact-details[open] .contact-toggle-open{display:none}.contact-details[open] .contact-toggle-close{display:inline}.contact-embed{background:#fff;border:0;width:100%;max-width:640px;height:1040px;margin:2.5rem auto 0;display:block}footer{border-top:1px solid var(--border-color);text-align:center;margin-top:4rem;padding:4rem 0}footer p{color:var(--text-tertiary);letter-spacing:.05em;font-size:.85rem;font-weight:100}.theme-toggle{background:var(--button-bg);width:50px;height:50px;color:var(--button-text);cursor:pointer;box-shadow:0 4px 12px var(--shadow-medium);z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:all .3s;display:flex;position:fixed;bottom:2rem;right:2rem}.theme-toggle:hover{box-shadow:0 6px 20px var(--shadow-strong);transform:scale(1.1)}.theme-toggle:active{transform:scale(.95)}@media (width<=768px){.nav-links{display:none}.logo img{height:28px}.hero{padding:5rem 0 4rem}.hero h1{font-size:2.8rem}.hero p{margin-bottom:3rem;font-size:1.15rem}.section{padding:5rem 0}.section h2{font-size:2rem}.services{gap:3.5rem}.service{flex-direction:column;gap:1rem}.service-heading,.service-body{flex:none;width:100%}.service h3{font-size:1.35rem}.about-text{padding:2.5rem 2rem}.contact-embed{height:1120px}.container,nav{padding:0 1.5rem}header{padding:1rem 0}.theme-toggle{width:45px;height:45px;font-size:1rem;bottom:1.5rem;right:1.5rem}}
