:root{--color-primary: #1A3A5F;--color-primary-hover: #142E4B;--color-accent: #FF6B35;--color-accent-soft: #FFE5D6;--color-bg: #FFFFFF;--color-bg-subtle: #F5F5F5;--color-bg-warm: #FAF7F2;--color-border: #E5E7EB;--color-text: #1A3A5F;--color-text-body: #4B5563;--color-text-muted: #6C757D;--color-text-subtle: #999999;--color-success: #2F855A;--color-warning: #D97706;--color-error: #C53030;--color-info: #3B5F8A;--color-accent-hover: #E55A2B;--font-jp: "Inter", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;--font-jp-serif: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-en: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--text-display: 56px;--text-h1: 40px;--text-h2: 32px;--text-h3: 24px;--text-h4: 20px;--text-body-lg: 18px;--text-body: 16px;--text-body-sm: 14px;--text-caption: 12px;--leading-display: 1.2;--leading-h1: 1.3;--leading-h2: 1.35;--leading-h3: 1.4;--leading-h4: 1.45;--leading-body-lg: 1.75;--leading-body: 1.8;--leading-body-long: 1.75;--leading-body-sm: 1.7;--leading-caption: 1.5;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-black: 900;--tracking-heading: -.01em;--tracking-body: 0;--container-lg: 1120px;--container-md: 720px;--gutter: 24px;--column-gap: 32px;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--space-24: 96px;--space-32: 128px;--section-py-desktop: 96px;--section-py-desktop-md: 64px;--section-py-mobile: 64px;--section-py-mobile-md: 40px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(26, 58, 95, .05);--shadow-sm: 0 1px 3px rgba(26, 58, 95, .08);--shadow-md: 0 4px 12px rgba(26, 58, 95, .08);--shadow-lg: 0 8px 24px rgba(26, 58, 95, .1);--shadow-button: 0 1px 2px rgba(26, 58, 95, .08);--shadow-card: 0 1px 3px rgba(26, 58, 95, .06);--shadow-card-hover: 0 8px 24px rgba(26, 58, 95, .1);--button-height-sm: 36px;--button-height-md: 44px;--button-height-lg: 52px;--button-px: 24px;--button-py: 12px;--header-height: 72px;--input-height: 44px;--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--duration-hover: .15s;--duration-page: .3s;--duration-reveal: .5s}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-jp);font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-regular);color:var(--color-text-body);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,picture,video,canvas,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4{margin:0;color:var(--color-text);letter-spacing:var(--tracking-heading)}h1{font-family:var(--font-jp-serif);font-size:var(--text-h1);line-height:var(--leading-h1);font-weight:var(--weight-semibold)}h2{font-family:var(--font-jp-serif);font-size:var(--text-h2);line-height:var(--leading-h2);font-weight:var(--weight-medium)}h3{font-family:var(--font-jp);font-size:var(--text-h3);line-height:var(--leading-h3);font-weight:var(--weight-semibold)}h4{font-family:var(--font-jp);font-size:var(--text-h4);line-height:var(--leading-h4);font-weight:var(--weight-semibold)}p{margin:0 0 var(--space-4) 0;line-height:var(--leading-body)}a{color:var(--color-primary);text-decoration:underline;text-decoration-color:#1a3a5f4d;text-underline-offset:2px;transition:color var(--duration-hover) var(--ease-out-quint),text-decoration-color var(--duration-hover) var(--ease-out-quint)}a:hover{color:var(--color-primary-hover);text-decoration-color:var(--color-primary)}.display{font-family:var(--font-jp-serif);font-size:var(--text-display);line-height:var(--leading-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);color:var(--color-text);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--button-height-md);padding:var(--button-py) var(--button-px);border:none;border-radius:var(--radius-md);font-family:var(--font-jp);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-hover) var(--ease-out-quint),box-shadow var(--duration-hover) var(--ease-out-quint),transform var(--duration-hover) var(--ease-out-quint)}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-button)}.btn-primary:hover{background-color:var(--color-primary-hover);color:#fff;transform:translateY(-1px)}.btn-accent{background-color:var(--color-accent);color:#fff;box-shadow:var(--shadow-button)}.btn-accent:hover{background-color:var(--color-accent-hover);color:#fff;transform:translateY(-1px)}.btn-secondary{background-color:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}
