:root{--color-brand:#478384;--color-brand-hover:#366566;--color-brand-light:#edf5f5;--color-brand-border:#c0d7d8;--color-bg-base:#fff;--color-bg-subtle:#f8fafb;--color-bg-drawer:#fff;--color-text-title:#11181c;--color-text-body:#475569;--color-text-muted:#64748b;--color-text-dim:#94a3b8;--color-border:#e8efef;--color-border-table:#e5eded;--color-border-card:#d5e0e0;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--container-max:1160px;--container-padding:32px;--header-height:72px;--transition-fast:.18s ease;--transition-normal:.28s cubic-bezier(.16, 1, .3, 1);--transition-slow:.5s cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--color-text-body);background-color:var(--color-bg-base);scroll-behavior:smooth;scroll-padding-top:var(--header-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.7}body{flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}main{flex:1}img,svg{max-width:100%;display:block}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}ul,ol{list-style:none}.container{width:100%;max-width:var(--container-max);padding-left:var(--container-padding);padding-right:var(--container-padding);margin-left:auto;margin-right:auto}.two-col-layout{grid-template-columns:260px 1fr;gap:56px;display:grid}@media (width<=860px){.two-col-layout{grid-template-columns:1fr;gap:28px}}.section-label-group{top:calc(var(--header-height) + 32px);position:sticky}.section-num{font-family:var(--font-mono);color:var(--color-brand);letter-spacing:.1em;margin-bottom:6px;font-size:.85rem;font-weight:700;display:block}.section-category{color:var(--color-text-title);letter-spacing:.08em;font-size:1.35rem;font-weight:800;line-height:1.2}.section-sublabel{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin-top:4px;font-size:.72rem;font-weight:600;display:block}.site-header{z-index:900;height:var(--header-height);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-normal), box-shadow var(--transition-normal);background-color:#fffffff0;position:sticky;top:0}.site-header.is-scrolled{background-color:#fffffffa;box-shadow:0 4px 20px #11181c0a}.header-container{justify-content:space-between;align-items:center;height:100%;display:flex}.brand-logo{transition:opacity var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.brand-logo:hover{opacity:.82}.logo-img{object-fit:contain;width:auto;max-width:140px;height:26px;display:block}.desktop-nav{align-items:center;gap:24px;display:flex}.nav-list{align-items:center;gap:36px;display:flex}.nav-link{color:var(--color-text-muted);letter-spacing:.04em;transition:color var(--transition-fast);align-items:center;gap:6px;padding:6px 0;font-size:.92rem;font-weight:500;display:inline-flex;position:relative}.nav-link:after{content:"";background-color:var(--color-brand);width:0;height:2px;transition:width var(--transition-normal);position:absolute;bottom:0;left:0}.nav-link:hover,.nav-link.is-active{color:var(--color-text-title)}.nav-link:hover:after,.nav-link.is-active:after{width:100%}.nav-num{font-family:var(--font-mono);color:var(--color-brand);font-size:.72rem;font-weight:600}.lang-divider{background-color:var(--color-border);width:1px;height:18px}.lang-switcher{letter-spacing:.05em;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:inline-flex}.lang-item.active{color:var(--color-text-title);font-weight:700}.lang-slash{color:var(--color-text-dim);font-weight:400}.lang-link{color:var(--color-brand);text-underline-offset:3px;transition:color var(--transition-fast);text-decoration:underline}.lang-link:hover{color:var(--color-brand-hover)}.mobile-menu-btn{border:1px solid var(--color-border);background-color:var(--color-bg-base);width:44px;height:44px;transition:background-color var(--transition-fast), border-color var(--transition-fast);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:none}.mobile-menu-btn:hover{background-color:var(--color-bg-subtle)}.hamburger-bar{background-color:var(--color-text-title);width:20px;height:2px;transition:transform var(--transition-normal), opacity var(--transition-normal);border-radius:1px;display:block}@media (width<=768px){.desktop-nav{display:none}.mobile-menu-btn{display:flex}}.mobile-drawer{z-index:1000;pointer-events:none;visibility:hidden;transition:visibility var(--transition-normal);position:fixed;inset:0}.mobile-drawer.is-open{pointer-events:auto;visibility:visible}.drawer-backdrop{-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity var(--transition-normal);background-color:#11181c66;position:absolute;inset:0}.mobile-drawer.is-open .drawer-backdrop{opacity:1}.drawer-panel{background-color:var(--color-bg-drawer);width:100%;max-width:320px;transition:transform var(--transition-normal);flex-direction:column;padding:24px 28px;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 28px #00000014}.mobile-drawer.is-open .drawer-panel{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:24px;display:flex}.drawer-brand{align-items:center;gap:10px;display:flex}.drawer-close-btn{width:36px;height:36px;color:var(--color-text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);border-radius:8px;justify-content:center;align-items:center;font-size:1.5rem;display:inline-flex}.drawer-close-btn:hover{background-color:var(--color-bg-subtle);color:var(--color-text-title)}.drawer-nav{flex:1;margin-top:32px}.drawer-nav-list{flex-direction:column;gap:20px;display:flex}.drawer-link{color:var(--color-text-title);transition:color var(--transition-fast);align-items:center;gap:12px;padding:8px 0;font-size:1.15rem;font-weight:700;display:flex}.drawer-link:hover{color:var(--color-brand)}.drawer-footer{border-top:1px solid var(--color-border);padding-top:24px}.drawer-lang-wrap{justify-content:space-between;align-items:center;display:flex}.drawer-lang-label{color:var(--color-text-muted);font-size:.88rem;font-weight:500}.drawer-lang-pill{background-color:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:600;display:inline-flex}.drawer-lang-item.active{color:var(--color-text-title)}.drawer-lang-slash{color:var(--color-text-dim)}.drawer-lang-link{color:var(--color-brand);text-underline-offset:3px;text-decoration:underline}.hero-section{background:radial-gradient(circle at 50% 25%, #4783840d, transparent 70%), var(--color-bg-base);border-bottom:1px solid var(--color-border);padding-top:120px;padding-bottom:110px;position:relative}.hero-container{flex-direction:column;align-items:flex-start;display:flex}.meta-tag-wrap{margin-bottom:28px}.meta-tag{background-color:var(--color-brand-light);border:1px solid var(--color-brand-border);letter-spacing:.12em;color:var(--color-brand-dark);border-radius:4px;align-items:center;gap:8px;padding:5px 12px;font-size:.75rem;font-weight:700;display:inline-flex}.status-dot{background-color:var(--color-brand);border-radius:50%;width:6px;height:6px}.hero-title{letter-spacing:-.02em;color:var(--color-text-title);margin-bottom:28px;font-size:clamp(2rem,4.4vw,3.25rem);font-weight:800;line-height:1.35}.hero-lead{color:var(--color-text-body);max-width:780px;margin-bottom:56px;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.85}.pc-br{display:block}@media (width<=768px){.pc-br{display:none}.hero-section{padding-top:70px;padding-bottom:60px}.hero-lead{margin-bottom:40px}}.scroll-indicator{align-items:center;gap:12px;display:inline-flex}.scroll-line{background-color:var(--color-brand);width:32px;height:2px;display:block}.scroll-text{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-text-muted);font-size:.72rem;font-weight:600}.about-section{background-color:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);padding-top:110px;padding-bottom:110px}.about-content{flex-direction:column;display:flex}.about-heading{color:var(--color-text-title);letter-spacing:-.01em;margin-bottom:28px;font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:700;line-height:1.45}.about-body{color:var(--color-text-body);flex-direction:column;gap:20px;max-width:760px;margin-bottom:40px;font-size:1.02rem;line-height:1.9;display:flex}.keyword-tags{flex-wrap:wrap;gap:12px;display:flex}.keyword-tag{background-color:var(--color-bg-base);border:1px solid var(--color-border-card);color:var(--color-brand-dark);letter-spacing:.02em;border-radius:4px;padding:8px 18px;font-size:.85rem;font-weight:600;display:inline-block}@media (width<=768px){.about-section{padding-top:70px;padding-bottom:70px}}.company-section{background-color:var(--color-bg-base);border-bottom:1px solid var(--color-border);padding-top:110px;padding-bottom:110px}.company-content{width:100%}.company-table{flex-direction:column;width:100%;display:flex}.company-row{border-bottom:1px solid var(--color-border-table);grid-template-columns:180px 1fr;align-items:baseline;padding:24px 0;display:grid}.company-row:first-child{border-top:1px solid var(--color-border-table)}.company-row dt{color:var(--color-text-muted);font-size:.92rem;font-weight:600}.company-row dd{color:var(--color-text-title);font-size:.98rem;font-weight:500;line-height:1.6}.email-link{color:var(--color-brand);text-underline-offset:4px;transition:color var(--transition-fast);font-weight:600;text-decoration:underline}.email-link:hover{color:var(--color-brand-hover)}@media (width<=768px){.company-section{padding-top:70px;padding-bottom:70px}.company-row{grid-template-columns:1fr;gap:6px;padding:18px 0}}.contact-section{background-color:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);padding-top:110px;padding-bottom:110px}.contact-content{flex-direction:column;gap:16px;display:flex}.contact-message{color:var(--color-text-title);font-size:clamp(1.1rem,1.8vw,1.35rem);font-weight:600;line-height:1.6}.strong-email{font-size:inherit;font-weight:700}.contact-subtext{color:var(--color-text-muted);font-size:.95rem;line-height:1.7}@media (width<=768px){.contact-section{padding-top:70px;padding-bottom:70px}}.site-footer{background-color:var(--color-bg-base);padding-top:48px;padding-bottom:48px}.footer-container{justify-content:space-between;align-items:center;display:flex}.footer-left{align-items:center;gap:20px;display:flex}.footer-brand{letter-spacing:.1em;color:var(--color-text-title);font-size:1.05rem;font-weight:800}.copyright{color:var(--color-text-dim);font-size:.8rem}.sns-list{align-items:center;gap:24px;display:flex}.sns-link{color:var(--color-text-muted);transition:color var(--transition-fast);font-size:.85rem;font-weight:500}.sns-link:hover{color:var(--color-brand)}@media (width<=768px){.footer-container{flex-direction:column;align-items:flex-start;gap:24px}.footer-left{flex-direction:column;align-items:flex-start;gap:8px}}.error-main{flex-direction:column;display:flex}.error-section{flex:1;align-items:center;display:flex}.error-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.btn-primary,.btn-secondary{letter-spacing:.04em;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border-radius:4px;justify-content:center;align-items:center;padding:12px 28px;font-size:.92rem;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--color-brand);color:#fff;border:1px solid var(--color-brand)}.btn-primary:hover{background-color:var(--color-brand-hover);border-color:var(--color-brand-hover);color:#fff}.btn-secondary{background-color:var(--color-bg-base);color:var(--color-text-title);border:1px solid var(--color-border-card)}.btn-secondary:hover{background-color:var(--color-bg-subtle);border-color:var(--color-brand-border);color:var(--color-brand)}.reveal{opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}
