:root{--font-sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--page-bg: #f7f9fc;--paper: #ffffff;--surface: #eef2f8;--surface-soft: #f3f6fb;--section-surface: #ffffff;--section-surface-alt: #f4f7fc;--surface-raised: #ffffff;--text: #0f172a;--text-strong: #020617;--muted: #64748b;--accent: #2f5bff;--accent-strong: #1e40af;--accent-light: #eef2ff;--accent-ink: #0b1b4b;--border: #e2e8f0;--surface-border: #cbd5e1;--hairline: rgba(15, 23, 42, .08);--shadow-sm: 0 1px 0 rgba(15, 23, 42, .04);--shadow-md: 0 10px 24px -12px rgba(15, 23, 42, .12), 0 2px 6px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 30px 60px -20px rgba(15, 23, 42, .18), 0 10px 24px -12px rgba(15, 23, 42, .08);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .18s;--duration-base: .32s;--duration-slow: .52s;--max-width: clamp(820px, 62vw, 1080px);--page-gutter: clamp(.75rem, 2vw, 2.5rem);--section-px: clamp(1.6rem, 3.2vw, 4rem);--section-py: clamp(2rem, 3.6vw, 4rem);--section-gap: clamp(1.4rem, 2.5vw, 2.4rem);--font-size-base: clamp(1rem, .94rem + .2vw, 1.12rem);--reading-max: 44rem;--line-height: 1.9}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--page-bg);scroll-behavior:smooth}body{min-height:100dvh;background:var(--page-bg);color:var(--text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:var(--page-gutter)}main.wrap{max-width:var(--max-width);margin:0 auto;background:var(--paper);box-shadow:var(--shadow-lg);border-radius:16px;position:relative;display:flex;flex-direction:column;overflow:hidden}section{display:flex;flex-direction:column;gap:var(--section-gap);padding:var(--section-py) var(--section-px);position:relative}section+section{border-top:1px solid var(--hairline)}h1,h2,h3,p,ul,ol{margin:0}h1{font-family:var(--font-serif);font-size:clamp(1.6rem,2.6vw,2.6rem);font-weight:600;line-height:1.3;letter-spacing:.01em;color:var(--text-strong)}h2{font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}h3{font-family:var(--font-serif);font-size:clamp(1.05rem,1rem + .2vw,1.2rem);font-weight:600;line-height:1.5;color:var(--text-strong);margin:0}p,li,dd,dt,time{line-height:var(--line-height)}p{text-wrap:pretty}a{color:var(--accent);background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;padding-bottom:.12em;text-decoration:none;transition:color var(--duration-fast) var(--ease-out-expo),background-size var(--duration-base) var(--ease-out-expo)}a:hover,a:focus-visible{color:var(--accent-strong);background-size:100% 1px}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;box-shadow:0 0 0 4px var(--accent-light)}ul,ol{padding:0;margin:0;list-style:none}img,svg{display:block;max-width:100%}.study-breadcrumb{max-width:var(--max-width);margin:0 auto .75rem;padding:0 var(--page-gutter);display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;font-size:clamp(.78rem,.74rem + .12vw,.88rem);color:var(--muted)}.study-breadcrumb a{color:var(--muted)}.study-breadcrumb a:hover,.study-breadcrumb a:focus-visible{color:var(--text-strong)}.study-breadcrumb-sep{color:var(--border);user-select:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px}@media(max-width:640px){:root{--page-gutter: .6rem;--section-px: 1.1rem;--section-py: 1.6rem;--section-gap: 1.1rem;--font-size-base: .95rem}body{padding:var(--page-gutter)}}@media(max-width:420px){:root{--page-gutter: .3rem;--section-px: .85rem;--section-py: 1.05rem}}
