@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600&family=Noto+Sans+JP:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg:#ffffff;--bg-alt:#f7f7f7;--bg-deep:#f0f0f0;--surface-primary:#ffffff;--surface-elevated:#f7f7f7;--surface-card:#f0f0f0;--surface-hover:#ebebeb;--surface-inverse:#292423;--ink:#292423;--ink-soft:#5a514c;--ink-mute:#8a817a;--text-primary:#292423;--text-secondary:#5a514c;--text-tertiary:#8a817a;--text-inverse:#faf7f2;--blue:#1e5aa8;--blue-deep:#164380;--gold:#c99a3a;--gold-soft:#e3bc6a;--terracotta:#b4613a;--accent:#1e5aa8;--accent-hover:#164380;--accent-muted:rgba(30,90,168,0.1);--line:#e5e5e5;--line-soft:#f0f0f0;--border-subtle:#f0f0f0;--border-default:#e5e5e5;--border-hover:#d0d0d0;--color-success:#7b9a6e;--color-error:#e85d5d;--font-serif:"Playfair Display","Noto Serif JP",Georgia,serif;--font-sans:"Inter","Noto Sans JP",system-ui,sans-serif;--font-jp:"Noto Sans JP","Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--font-display:"Playfair Display","Noto Serif JP",Georgia,serif;--font-body:"Inter","Noto Sans JP",system-ui,sans-serif;--header-height:0px;--content-max-width:1360px;--page-gutter:20px;--pad:clamp(20px,4vw,56px);--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--duration-fast:150ms;--duration-normal:300ms;--duration-slow:600ms}@media (min-width:768px){:root{--page-gutter:40px}}@media (min-width:1280px){:root{--page-gutter:60px}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:400;color:var(--text-primary);background-color:var(--bg);font-size:18px;line-height:1.55;letter-spacing:.005em;overflow-x:hidden;-webkit-text-size-adjust:100%}@media (pointer:coarse){a,button{touch-action:manipulation}}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit}:focus-visible{outline:1px solid var(--blue);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.skip-link{position:absolute;top:-100%;left:16px;z-index:200;padding:8px 20px;background:var(--blue);color:var(--text-inverse);font-size:13px;letter-spacing:.05em;text-transform:uppercase}.skip-link:focus{top:8px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-alt) 25%,var(--bg-deep) 50%,var(--bg-alt) 75%);background-size:200% 100%;animation:shimmer 2s ease-in-out infinite;border-radius:2px}.container{max-width:var(--content-max-width);margin:0 auto;padding:0 var(--page-gutter)}.section{padding-top:clamp(48px,8vw,100px);padding-bottom:clamp(48px,8vw,100px)}.jp{font-family:var(--font-jp)}.serif{font-family:var(--font-serif)}.mono{font-family:var(--font-mono);letter-spacing:.02em}.display{font-family:var(--font-serif);font-weight:500;font-size:clamp(2rem,5vw,4rem);line-height:1.1;letter-spacing:.01em}.h1{font-size:clamp(1.75rem,3.5vw,2.75rem);line-height:1.15}.h1,.h2{font-family:var(--font-serif);font-weight:500;letter-spacing:.005em}.h2{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.25}.h3{font-family:var(--font-body);font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.4;letter-spacing:0}.h3,.label{font-weight:400}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}.grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:768px){.grid{gap:16px}}@media (min-width:480px){.grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.grid{grid-template-columns:repeat(4,1fr)}}.divider{border:none;border-top:1px solid var(--line);margin:0}.link-hover{position:relative;transition:color .2s ease;padding-bottom:3px}.link-hover:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.link-hover:hover{color:var(--blue)}.link-hover:hover:after{transform:scaleX(1)}