:root{--color-bg: #fafaf8;--color-surface: #f8f7f5;--color-text: #2f3437;--color-muted: #6b7280;--color-subtle: #aaaaaa;--color-accent: #1f4e79;--color-accent-hover: #163a5a;--color-accent-light: #e8eff5;--color-border: #e4e6e8;--font-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", Georgia, serif;--max-width: 720px;--space-xl: 6rem;--space-lg: 4rem;--space-md: 2.5rem;--space-sm: 1.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.9;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.3;font-weight:600;letter-spacing:.02em}h1{font-size:2.4rem}h2{font-size:1.4rem}h3{font-size:1.05rem}p{margin-bottom:1.1rem}p:last-child{margin-bottom:0}hr.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-xl) 0}.tag{display:inline-block;border:1px solid var(--color-border);color:var(--color-muted);font-size:.72rem;padding:.2rem .65rem;border-radius:2rem;letter-spacing:.04em}.site-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.nav{display:flex;align-items:center;justify-content:space-between;height:56px}.site-name{font-family:var(--font-serif);font-size:1rem;color:var(--color-text);letter-spacing:.04em;font-weight:600}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;padding:0;cursor:pointer}.menu-toggle-bar{display:block;width:22px;height:2px;background:var(--color-text)}.mobile-menu{display:block;position:fixed;inset:0;z-index:200;background:var(--color-bg);transform:translateY(-8px);opacity:0;visibility:hidden;overflow-y:auto;transition:opacity .2s ease,transform .2s ease,visibility .2s}.mobile-menu.is-open{opacity:1;transform:translateY(0);visibility:visible}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;height:56px}.menu-close{background:none;border:none;font-size:1.8rem;line-height:1;color:var(--color-text);cursor:pointer;padding:0}.mobile-menu-links{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;min-height:calc(100% - 56px);padding:2.5rem 0}.mobile-menu-links>a,.menu-group-toggle{font-family:var(--font-serif);font-size:1.4rem;color:var(--color-text)}.mobile-menu-links a.active,.menu-group-toggle.active{color:var(--color-accent)}.menu-group{display:flex;flex-direction:column;align-items:center}.menu-group-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;padding:0;cursor:pointer}.menu-chevron{display:inline-block;font-size:.85rem;color:var(--color-subtle);transition:transform .2s ease}.menu-group-toggle[aria-expanded=true] .menu-chevron{transform:rotate(180deg)}.menu-sublinks{display:flex;flex-direction:column;align-items:center;gap:.9rem;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,margin .25s ease}.menu-sublinks.is-expanded{max-height:20rem;opacity:1;margin-top:1.1rem}.menu-sublinks a{font-family:var(--font-sans);font-size:.9rem;color:var(--color-muted)}.menu-sublinks a.active{color:var(--color-accent);font-weight:600}body.menu-open{overflow:hidden}.site-footer{padding:3rem 0;margin-top:var(--space-xl)}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:.8rem}.footer-name{font-family:var(--font-serif);font-size:.95rem;color:var(--color-text);margin:0}.footer-links{display:flex;gap:1.5rem}.footer-links a{font-size:.82rem;color:var(--color-subtle);letter-spacing:.06em}.footer-links a:hover{color:var(--color-accent)}.footer-copy{font-size:.75rem;color:var(--color-subtle);margin:0}
