:root{--white: #FFFFFF;--black: #303030;--gray-50: #F0F0F0;--gray-100: #F5F5F5;--gray-200: #E5E5E5;--gray-300: #D3D3D3;--gray-400: #A3A3A3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--gray-950: #0A0A0A;--red-50: #fef2f2;--red-500: #DC2626;--red-600: #B91C1C;--red-700: #991B1B;--teal-100: #D7EBE7;--teal-500: #16685E;--teal-600: #0F5B52;--teal-700: #0F4F47;--teal-800: #0A3D37;--green-50: #f0fdf4;--green-100: #dcfce7;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--text-heading: var(--black);--text-body: var(--gray-600);--text-muted: var(--gray-500);--text-subtle: var(--gray-400);--bg-primary: var(--white);--bg-secondary: var(--gray-50);--bg-tertiary: var(--gray-200);--border-default: var(--gray-200);--border-strong: var(--gray-500);--accent: var(--gray-300);--accent-hover: var(--gray-400);--accent-urgent: var(--red-500);--accent-solution: var(--teal-700);--gray-light: var(--gray-50);--gray-muted: var(--gray-200);--gray-medium: var(--gray-500);--gray-dark: var(--gray-700);--font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", sans-serif;--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-mono: "SF Mono", "Fira Code", "Source Han Code JP", monospace;--font-display: var(--font-sans);--text-2xs: .625rem;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 2.5rem;--text-6xl: 3rem;--text-7xl: 3.5rem;--text-micro: .6875rem;--text-tiny: .75rem;--text-caption: .875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--space-40: 10rem;--space-48: 12rem;--container-max: 1600px;--container-narrow: 720px;--container-tight: 560px;--header-height: 80px;--radius-none: 0;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--radius-xl: 0;--radius-full: 9999px;--radius-pill: 100px;--radius-round: 50%;--transition-fast: .3s ease;--transition: .4s ease;--transition-slow: .6s ease;--ease-luxury: cubic-bezier(.25, .1, .25, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--shadow-sm: none;--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .05), 0 4px 6px -2px rgba(0, 0, 0, .025);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .05), 0 10px 10px -5px rgba(0, 0, 0, .02);--shadow-subtle: 0 1px 3px rgba(0, 0, 0, .02);--shadow-hover: 0 2px 8px rgba(0, 0, 0, .04);--shadow-btn: 0 4px 12px rgba(0, 0, 0, .15);--shadow-btn-hover: 0 6px 20px rgba(0, 0, 0, .2);--steel-50: hsl(215, 11%, 97%);--steel-100: hsl(215, 11%, 92%);--steel-200: hsl(215, 11%, 82%);--steel-300: hsl(215, 11%, 70%);--steel-400: hsl(215, 11%, 55%);--steel-500: hsl(215, 11%, 40%);--steel-600: hsl(215, 11%, 28%);--steel-700: hsl(215, 11%, 18%);--steel-800: hsl(215, 11%, 10%);--steel-900: hsl(215, 11%, 6%);--alert-100: #FEF3C7;--alert-500: #F59E0B;--alert-600: #D97706;--em-surface: var(--steel-50);--em-surface-raised: #FFFFFF;--em-surface-sunken: var(--steel-100);--em-surface-inverse: var(--steel-800);--em-border-subtle: var(--steel-100);--em-border-default: var(--steel-200);--em-border-strong: var(--steel-400);--em-ink-muted: var(--steel-400);--em-ink-body: var(--steel-600);--em-ink-strong: var(--steel-700);--em-ink-heading: var(--steel-800);--em-ink-inverse: var(--steel-50);--em-alert-bg: var(--alert-100);--em-alert-primary: var(--alert-500);--em-alert-hover: var(--alert-600);--em-text-xs: .75rem;--em-text-sm: .875rem;--em-text-base: 1rem;--em-text-lg: 1.125rem;--em-text-xl: 1.25rem;--em-text-2xl: 1.5625rem;--em-text-3xl: 1.953rem;--em-text-4xl: 2.441rem;--em-text-5xl: 3.052rem;--em-text-6xl: 3.815rem;--em-text-7xl: 4.768rem;--em-text-8xl: 5.96rem;--em-text-fluid-display: clamp(3.052rem, 8vw, 7.451rem);--em-text-fluid-hero: clamp(2.441rem, 6vw, 6.103rem);--em-text-fluid-h1: clamp(1.953rem, 4vw, 3.815rem);--em-text-fluid-h2: clamp(1.5625rem, 3vw, 3.052rem);--em-font-sans: "Inter", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Meiryo", sans-serif;--em-font-mono: "JetBrains Mono", "SF Mono", "Noto Sans Mono CJK JP", "Fira Code", "Source Han Code JP", monospace;--em-lh-tight: 1.1;--em-lh-snug: 1.25;--em-lh-base: 1.5;--em-lh-comfort: 1.7;--em-tracking-label: .1em;--em-tracking-tight: -.01em;--em-space-1: .25rem;--em-space-2: .5rem;--em-space-3: .75rem;--em-space-4: 1rem;--em-space-6: 1.5rem;--em-space-8: 2rem;--em-space-12: 3rem;--em-space-16: 4rem;--em-space-24: 6rem;--em-space-32: 8rem;--em-space-48: 12rem;--em-section-pad-y: clamp(4rem, 10vw, 10rem);--em-section-pad-x: clamp(1.5rem, 4vw, 4rem);--em-col-count: 12;--em-col-gap: var(--em-space-6);--em-prose-max: 65ch;--em-dur-instant: 50ms;--em-dur-fast: .1s;--em-dur-base: .2s;--em-dur-slow: .3s;--em-ease-linear: linear;--em-ease-inout: cubic-bezier(.4, 0, .6, 1);--em-ease-sharp: cubic-bezier(.4, 0, .2, 1)}.header{position:fixed;top:0;left:0;right:0;z-index:100;height:80px;display:flex;align-items:center;padding:0;background:#fff0;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:none;will-change:transform;transform:translateZ(0);transition:background .4s ease,backdrop-filter .4s ease,box-shadow .4s ease,height .4s ease}.header.scrolled,.header--scrolled{height:70px;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px #0000000f}.header .container{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1120px}.logo{font-size:var(--text-base);font-weight:500;color:var(--black);letter-spacing:.02em;text-transform:none;min-width:172px;white-space:nowrap}.nav-menu{display:flex;align-items:center}.nav-menu ul{display:flex;gap:var(--space-6)}.nav-menu a{font-size:var(--text-xs);color:var(--gray-medium);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:color .3s var(--ease-luxury);padding:var(--space-2) 0;min-height:44px;display:flex;align-items:center}.nav-menu a:hover{color:var(--black)}.nav-menu .mobile-cta,.nav-menu .menu-arrow,.nav-menu .submenu-toggle,.nav-menu .submenu{display:none}.mobile-drawer{position:fixed;top:0;right:0;width:100%;height:100dvh;background:#0006;z-index:990;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.mobile-drawer.is-open{opacity:1;visibility:visible}.mobile-drawer__content{position:absolute;top:0;right:0;width:100%;max-height:100dvh;background:var(--white);padding:var(--space-5) var(--space-6) var(--space-8);transform:translate(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);overflow-y:auto}.mobile-drawer.is-open .mobile-drawer__content{transform:translate(0)}.mobile-drawer__header{display:flex;justify-content:flex-end;margin-bottom:var(--space-6)}.menu-close-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--black);cursor:pointer;background:none;border:none}.menu-close-btn svg{width:24px;height:24px}.mobile-drawer ul{display:flex;flex-direction:column;gap:0}.mobile-drawer li{border-bottom:1px solid var(--gray-200)}.mobile-drawer li:first-child{border-top:1px solid var(--gray-200)}.mobile-drawer a{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4);min-height:48px;font-size:var(--text-sm);color:var(--black);text-transform:none;letter-spacing:.02em;text-decoration:none}.mobile-drawer a:hover{color:var(--gray-600)}.mobile-drawer .menu-arrow{display:block!important;width:18px;height:18px;opacity:.4;color:var(--black)}.mobile-drawer .has-submenu{position:relative}.mobile-drawer .has-submenu>a{padding-right:50px}.mobile-drawer .has-submenu>a .menu-arrow{display:none!important}.mobile-drawer .submenu-toggle{position:absolute;right:0;top:0;height:60px;width:50px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-left:1px solid var(--gray-200);cursor:pointer}.mobile-drawer .submenu-arrow{width:18px;height:18px;color:var(--black);opacity:.5;transition:transform .2s ease}.mobile-drawer .submenu-toggle.is-open .submenu-arrow{transform:rotate(180deg)}.mobile-drawer .submenu{display:none;background:var(--gray-50);padding:0;margin:0}.mobile-drawer .submenu.is-open{display:block}.mobile-drawer .submenu li{border-bottom:1px solid var(--gray-200)}.mobile-drawer .submenu li:last-child{border-bottom:none}.mobile-drawer .submenu a{padding:var(--space-4) var(--space-4) var(--space-4) var(--space-6);font-size:var(--text-sm)}.mobile-cta-group{margin-top:var(--space-6);padding-top:0;display:flex;justify-content:center}.mobile-cta{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4) var(--space-8);background:var(--black);color:var(--white);font-size:var(--text-sm);font-weight:500;text-decoration:none}.mobile-cta:hover{opacity:.9}.mobile-cta .cta-arrow{width:16px;height:16px}.nav-toggle{display:none;flex-direction:column;gap:6px;padding:var(--space-2)}.nav-toggle span{width:20px;height:1px;background:var(--black);transition:var(--transition)}@media(max-width:768px){.nav-toggle{display:flex}.nav-menu{display:none;position:fixed;top:80px;left:0;right:0;background:var(--white);padding:var(--space-8);border-bottom:1px solid var(--gray-200)}.nav-menu.active{display:block}.nav-menu ul{flex-direction:column;gap:var(--space-4)}.mobile-drawer{display:block;position:fixed;inset:0;background-color:#0006;z-index:200;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;overflow-y:hidden}.mobile-drawer.is-open{opacity:1;visibility:visible}}.header .header-cta{margin-left:var(--space-8);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-8);min-width:150px;background-color:var(--accent-solution);color:var(--white);font-size:var(--text-xs);font-weight:500;text-decoration:none;border-radius:0;transition:all .3s var(--ease-out-expo);letter-spacing:.04em;white-space:nowrap;border:1px solid var(--accent-solution)}.header.scrolled .header-cta{background-color:var(--accent-solution);color:var(--white);border-color:var(--accent-solution)}.header .header-cta .header-cta-icon{width:14px;height:14px;transition:transform .3s var(--ease-out-expo)}.header .header-cta:hover{background-color:var(--teal-800);border-color:var(--teal-800);transform:translateY(-3px);box-shadow:var(--shadow-md)}.header .header-cta:hover .header-cta-icon{transform:translate(3px)}.btn--sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}@media(max-width:768px){.header .header-cta{display:none}}.footer{padding:var(--space-20) 0 var(--space-12);background:var(--white);border-top:1px solid var(--gray-200)}.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-12);margin-bottom:var(--space-16)}.footer__logo{font-size:var(--text-sm);font-weight:500;color:var(--black);margin-bottom:var(--space-3);letter-spacing:.02em;text-transform:none}.footer__tagline{font-size:var(--text-xs);color:var(--gray-500)}.footer__heading{font-size:var(--text-xs);font-weight:500;color:var(--gray-600);margin-bottom:var(--space-6);letter-spacing:.15em;text-transform:uppercase;padding-bottom:var(--space-2);border-bottom:1px solid var(--gray-200)}.footer__links{display:flex;flex-direction:column;gap:var(--space-3)}.footer__links a{font-size:var(--text-xs);color:var(--gray-500);transition:color var(--transition)}.footer__links a:hover{color:var(--black)}.footer__bottom{display:flex;justify-content:space-between;padding-top:var(--space-8);border-top:1px solid var(--gray-200);font-size:var(--text-xs);color:var(--gray-400)}.footer__bottom a{color:var(--gray-400)}.footer__bottom a:hover{color:var(--black)}@media(max-width:768px){.footer__grid{grid-template-columns:1fr;gap:var(--space-8)}.footer__bottom{flex-direction:column;gap:var(--space-4);text-align:center}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);min-height:48px;font-size:var(--text-sm);font-weight:500;letter-spacing:.04em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:all var(--transition);border:1px solid transparent;position:relative;-webkit-tap-highlight-color:transparent}.btn:focus-visible{outline:2px solid var(--black);outline-offset:2px}.btn:active{transform:scale(.98)}.btn--primary{background:var(--black);color:var(--white);border:1px solid var(--black);box-shadow:var(--shadow-btn)}.btn--primary:hover{background:var(--gray-dark);border-color:var(--gray-dark);box-shadow:var(--shadow-btn-hover);transform:translateY(-2px)}.btn:disabled,.btn--primary:disabled{background:var(--gray-muted);border-color:var(--gray-muted);color:var(--gray-medium);cursor:not-allowed;transform:none;box-shadow:none}.btn:disabled:hover,.btn--primary:disabled:hover{background:var(--gray-muted);border-color:var(--gray-muted);transform:none;box-shadow:none}.btn--primary:active{transform:translateY(0);box-shadow:var(--shadow-btn)}.btn--secondary{background:transparent;color:var(--black);border:1px solid var(--gray-muted)}.btn--secondary:hover{border-color:#0000004d;background:var(--gray-light);transform:translateY(-2px)}.btn--ghost{color:var(--gray-medium);padding:var(--space-3) var(--space-4);min-height:44px;border:none;border-bottom:1px solid var(--gray-muted);background:transparent}.btn--ghost:hover{color:var(--black);border-bottom-color:var(--black)}.btn--lg,.btn--large{padding:var(--space-5) var(--space-12);min-height:56px;font-size:var(--text-base);font-weight:600;letter-spacing:.06em;box-shadow:0 8px 24px #0000001f}.btn--lg:hover,.btn--large:hover{box-shadow:0 12px 32px #0000002e}.btn--text{background:none;border:none;color:var(--gray-medium);padding:var(--space-2) var(--space-3);min-height:44px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.btn--text:hover{color:var(--black)}.btn--full{width:100%}.btn--swap{position:relative}.btn--swap .btn__default,.btn--swap .btn__hover{transition:opacity var(--transition),transform var(--transition)}.btn--swap .btn__hover{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;white-space:nowrap}.btn--swap:hover .btn__default{opacity:0}.btn--swap:hover .btn__hover{opacity:1}
