*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #ffffff;--color-text: #1a1a18;--color-text-muted: #6b6b67;--color-accent: #BC002D;--color-accent-light: #FFD7DE;--color-border: #F0D0D5;--color-white: #ffffff;--color-surface: #FFF5F7;--font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 8rem;--max-width: 1100px;--content-width: 720px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:1rem;line-height:1.8;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-serif);font-weight:400;line-height:1.4;letter-spacing:.05em}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--space-md)}.section{padding-block:var(--space-xl)}.section--alt{background-color:var(--color-surface)}.header{position:sticky;top:0;z-index:100;background-color:#fffffff2;backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.header__inner{display:flex;align-items:center;justify-content:space-between;padding-block:1.25rem}.header__logo{display:flex;flex-direction:column;gap:.1rem}.header__logo-en{font-size:1.25rem;font-weight:700;letter-spacing:.12em;color:var(--color-text);font-family:Georgia,serif}.header__logo-ja{font-size:.65rem;color:var(--color-text-muted);letter-spacing:.15em}.nav{display:flex;gap:var(--space-md);align-items:center}.nav__link{font-size:.875rem;letter-spacing:.1em;color:var(--color-text-muted);transition:color .2s;position:relative}.nav__link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background-color:var(--color-accent);transition:width .3s}.nav__link:hover{color:var(--color-text)}.nav__link:hover:after{width:100%}.nav__link--cta{background-color:var(--color-accent);color:var(--color-white);padding:.5rem 1.25rem;border-radius:2px;font-size:.8125rem;letter-spacing:.12em;transition:background-color .2s}.nav__link--cta:hover{background-color:#8b0022;color:var(--color-white)}.nav__link--cta:after{display:none}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav-toggle span{display:block;width:24px;height:1.5px;background-color:var(--color-text);transition:transform .3s,opacity .3s}@media (max-width: 768px){.nav-toggle{display:flex}.nav{display:none;position:absolute;top:100%;left:0;right:0;background-color:var(--color-bg);border-bottom:1px solid var(--color-border);flex-direction:column;padding:var(--space-md);gap:var(--space-sm)}.nav.is-open{display:flex}.nav__link--cta{text-align:center}}.footer{background-color:var(--color-accent);color:var(--color-white);padding-block:var(--space-lg)}.footer__inner{display:flex;flex-direction:column;gap:var(--space-md)}.footer__logo-en{font-size:1.1rem;font-weight:700;letter-spacing:.15em;font-family:Georgia,serif}.footer__logo-ja{font-size:.7rem;color:#ffffff80;letter-spacing:.15em;margin-top:.2rem}.footer__nav{display:flex;gap:var(--space-md);flex-wrap:wrap}.footer__nav a{font-size:.8125rem;color:#fff9;letter-spacing:.08em;transition:color .2s}.footer__nav a:hover{color:var(--color-white)}.footer__copy{font-size:.75rem;color:#fff6;letter-spacing:.05em;border-top:1px solid rgba(255,255,255,.1);padding-top:var(--space-md);margin-top:var(--space-sm)}.btn{display:inline-block;padding:.875rem 2.5rem;border-radius:2px;font-size:.9375rem;letter-spacing:.15em;transition:all .25s;cursor:pointer;font-family:var(--font-sans)}.btn--primary{background-color:var(--color-accent);color:var(--color-white);border:1px solid var(--color-accent)}.btn--primary:hover{background-color:#8b0022;border-color:#8b0022}.btn--outline{background-color:transparent;color:var(--color-text);border:1px solid var(--color-text)}.btn--outline:hover{background-color:var(--color-text);color:var(--color-white)}.label{display:inline-block;font-size:.6875rem;letter-spacing:.25em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-sm);font-family:Georgia,serif}.divider{width:40px;height:1px;background-color:var(--color-accent);margin-block:var(--space-sm)}
